]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
pr17133.c: New.
[gcc.git] / gcc / ChangeLog
CommitLineData
57a71826
DE
12005-03-03 David Edelsohn <edelsohn@gnu.org>
2
3 * config/rs6000/predicates.md (branch_comparison_operator):
4 Convert from C block to conditional format.
5
59c982fe
JH
62005-03-03 Jan Hubicka <jh@suse.cz>
7
8 * tree-dfa.c (add_referenced_var): Don't walk initializer of external
9 and non-constant public variables.
10
229cc11f
KH
112005-03-03 Kazu Hirata <kazu@cs.umass.edu>
12
13 * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
14 with LABEL_EXPR.
15
8fb790fd
KH
16 * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
17 EDGE_I.
18
4430da7f
KH
19 * tree-phinodes.c (remove_phi_node): Clean up by factoring out
20 calls to release_ssa_name and release_phi_node.
21
af85b8e4
KH
22 * fold-const.c (fold): Remove handling of unary expressions.
23
4b58fc4d
KH
24 * fold-const.c (fold_unary): Avoid directly using the original
25 expression t as much as possible.
26
9550206b
RS
272005-03-03 Roger Sayle <roger@eyesopen.com>
28 Andrew Pinski <pinskia@physics.uc.edu>
29
30 * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
31 RETURN rtx, and not a LABEL_REF containing a NULL pointer.
32
f60c7155
HPN
332005-03-03 Hans-Peter Nilsson <hp@axis.com>
34
35 Describe special registers SRP and MOF as allocatable registers.
36 * config/cris/cris.c (cris_md_asm_clobbers): New function.
37 (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
38 (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
39 TARGET_HAS_MUL_INSNS.
40 (cris_print_operand) <case 'd'>: New case.
41 <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
42 * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
43 define.
44 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
45 (REG_ALLOC_ORDER): Update for MOF.
46 (enum reg_class): New members MOF_REGS, GENERAL_REGS and
47 SPECIAL_REGS.
48 (GENERAL_REGS): No longer a define of ALL_REGS.
49 (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
50 (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
51 Adjust accordingly.
52 (CRIS_SPECIAL_REGS_CONTENTS): New macro.
53 (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
54 (SECONDARY_RELOAD_CLASS): Define.
55 (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
56 (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
57 (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
58 (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
59 (REGISTER_MOVE_COST): Define.
60 (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
61 * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
62 (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
63 (CRIS_MOF_REGNUM): New define_constants.
64 ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
65 special registers.
2a60a1b1
HPN
66 ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
67 New patterns.
f60c7155
HPN
68 ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
69 ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
70 Adjust for MOF being properly described as a register.
71 (indir_to_reg_split): Name this split. Conditionalize on the
72 destination register being a general register.
73 (movei): Conditionalize on on operands 0 and 1 having the same
74 register class.
75
768875a8
AM
762005-03-03 Alan Modra <amodra@bigpond.net.au>
77
78 PR target/20277
79 * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
80 -mcpu to override any other explicitly given flags.
81
0a634832
R
822005-03-02 J"orn Rennecke <joern.rennecke@st.com>
83
84 * recog.c (verify_changes, confirm_change_group): New functions,
85 broken out of apply_change_group.
86 (apply_change_group): Use them.
87 * recog.h (verify_change, confirm_change_group): Declare.
88 * rtl.h (redirect_jump_2): Declare.
89 * jump.c (redirect_exp, invert_exp): Delete.
90 (invert_exp_1): Take second parameter. Return value. Changed caller.
91 (redirect_jump_2): New function, broken out of redirect_jump.
92 (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
93 (invert_jump): Use invert_jump_1 and redirect_jump_2.
94 * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
95
0aca3a61
GK
962005-03-02 Geoffrey Keating <geoffk@apple.com>
97
7df74013
GK
98 * varasm.c (named_section): Use xstrdup rather than doing it by
99 hand.
100
0aca3a61
GK
101 * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
102
2af51b88
DP
1032005-03-02 Devang Patel <dpatel@apple.com>
104
105 Undo PR tree-optimization/18815 fix.
106
ac0bd801
DP
1072005-03-02 Devang Patel <dpatel@apple.com>
108
109 PR tree-optimization/18815
110 * tree-if-conv.c (combine_blocks): Adjust loop header edges for
111 loops with zero exit edges.
112
adf4a335
KH
1132005-03-02 Kazu Hirata <kazu@cs.umass.edu>
114
115 * cfg.c (connect_src, connect_dest, disconnect_src,
116 disconnct_dest): New.
117 (unchecked_make_edge, remove_edge, redirect_edge_succ,
118 redirect_edge_pred): Use the new functions.
119
13396b14
KH
120 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
121 free_dominance_info only when needed.
122
94dcded2
DE
1232005-03-02 David Edelsohn <edelsohn@gnu.org>
124
125 PR target/20276
126 * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
127 (reg_or_sub_cint64_operand): Same.
128
68023570
JL
1292005-03-02 Jeff Law <law@redhat.com>
130
131 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
132 CFG_ALTERED in the main DOM iteration loop.
133
9560cbde
MM
1342005-03-02 Mark Mitchell <mark@codesourcery.com>
135
136 PR c++/19916
137 * varasm.c (initializer_constant_valid_p): Allow conversions
138 between OFFSET_TYPEs. Tidy.
139
bf95bc65
HPN
1402005-03-02 Hans-Peter Nilsson <hp@axis.com>
141
142 * config/cris/cris.md ("return"): Remove epilogue delay list
143 sanity check.
144
f92ba6d1
DJ
1452005-03-02 Daniel Jacobowitz <dan@codesourcery.com>
146
147 * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
148 for Thumb.
149 * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
150
613c5cd0
KH
1512005-03-02 Kazu Hirata <kazu@cs.umass.edu>
152
153 * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
154 loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
155 config/m68k/m68k.c, config/mips/mips.h,
156 config/rs6000/rs6000-protos.h, doc/contrib.texi,
157 doc/include/gcc-common.texi: Update copyright.
158
92fb2d32
KH
159 PR middle-end/18029 and PR middle-end/18030
160 * expr.c (optimize_bitfield_assignment_op): Add a special case
161 to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
162
659d8efa
KH
163 * fold-const.c (fold_unary): New.
164 (fold): Call fold_unary on unary expressions.
165
2563c224
RG
1662005-03-02 Richard Guenther <rguenth@gcc.gnu.org>
167
168 * cgraph.h (struct cgraph_edge): Add prev_caller and
169 prev_callee fields.
170 (cgraph_node_remove_callees): Export.
171 * cgraph.c (cgraph_create_edge): Initialize prev_caller
172 and prev_callee.
173 (cgraph_edge_remove_callee): New function.
174 (cgraph_edge_remove_caller): Likewise.
175 (cgraph_remove_edge): Use.
176 (cgraph_redirect_edge_callee): Likewise.
177 (cgraph_node_remove_callees): New function.
178 (cgraph_node_remove_callers): Likewise.
179 (cgraph_remove_node): Use.
180 * tree-optimize.c (tree_rest_of_compilation): Use
181 cgraph_node_remove_callees instead of manual loop.
182 * cgraphunit.c (cgraph_finalize_function): Likewise.
183 (cgraph_expand_function): Likewise.
184 (cgraph_remove_unreachable_nodes): Likewise.
185
766beb40
JM
1862005-03-02 Joseph S. Myers <joseph@codesourcery.com>
187
188 PR c/8927
189 * c-tree.h (undeclared_variable, build_external_ref): Add extra
190 argument.
191 * c-decl.c (undeclared_variable): Take location as argument.
192 * c-typeck.c (build_external_ref): Likewise.
193 * c-parser.c (c_parser_postfix_expression): Pass location of
194 identifier to build_external_ref.
195
364849ee
DE
1962005-03-01 David Edelsohn <edelsohn@gnu.org>
197
198 * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
199 CCEQ mode for branch_positive_comparison_operator test.
200 * config/rs6000/predicates (branch_comparison_operator): Revert to
201 define_predicate.
202 (scc_comparison_operator): Same.
203 (branch_positive_comparison_operator): Same.
204
b6c8b412
HPN
2052005-03-01 Hans-Peter Nilsson <hp@axis.com>
206
207 * config/cris/cris.c (cris_eligible_for_epilogue_delay)
208 (cris_delay_slots_for_epilogue): Remove.
209 (save_last): Move into cris_target_asm_function_epilogue.
210 (cris_target_asm_function_epilogue): Remove tests for file being
211 NULL.
212 * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
213 (cris_delay_slots_for_epilogue): Remove prototypes.
214 * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
215 (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
216
4a80dc82
DE
2172005-03-01 David Edelsohn <edelsohn@gnu.org>
218
219 * config/rs6000/predicates.md (branch_comparison_operator): Change
220 to define_special_predicate.
221 (scc_comparison_operator): Same.
222 (branch_positive_comparison_operator): Same.
223
fa555252
DB
2242005-03-01 Daniel Berlin <dberlin@dberlin.org>
225
226 * Makefile.in (tree-ssa-sink.o): New.
227 (OBJS-common): Add tree-ssa-sink.o.
228 * common.opt: Add -ftree-sink
229 * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
230 * timevar.def (TV_TREE_SINK): new timevar.
231 * tree-flow.h (is_hidden_global_store): Prototype.
232 * tree-optimize.c (init_tree_optimization_passes): Add
233 pass_sink_code.
234 * tree-pass.h (pass_sink_code): New.
235 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
236 for non-obvious global store store to is_hidden_global_store, and
237 call that new function.
238 * tree-ssa-sink.c: New file.
239 * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
240 * doc/passes.texi: Document forward store motion.
241 * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
242 * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
243 * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
244 * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
245
255508dd
PB
2462005-03-01 Per Bothner <per@bothner.com>
247
248 * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
249 and we have a non-zero column-number, add it to the message.
250 Also factor out the diagnostic_kind_text.
251
70388d94
ZD
2522005-03-01 Zdenek Dvorak <dvorakz@suse.cz>
253
254 * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
255 flow_loop_pre_header_scan, flow_loop_pre_header_find,
256 flow_loop_scan): Removed.
257 (flow_loop_dump): Do not dump removed fields.
258 (flow_loop_free): Do not free removed fields.
259 (flow_loops_find): Flags argument removed. Do not call flow_loop_scan.
260 (loop_exit_edge_p): New function.
261 * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
262 num_pre_header_edges, entry_edges, num_entries, exit_edges,
263 num_exits, exits_doms.
264 (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
265 LOOP_EDGES, LOOP_ALL): Removed.
266 (flow_loop_scan): Declaration removed.
267 (loop_exit_edge_p, mark_loop_exit_edges): Declare.
268 * cfgloopmanip.c (create_loop_notes): Do not pass flags to
269 flow_loops_find.
270 * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
271 (if_convert): Call flow_loops_find and flow_loops_free
272 when calling mark_loop_exit_edges.
273 * cfgloopanal.c (mark_loop_exit_edges): Moved from
274 ifcvt.c. Removed the flow_loops_find, flow_loops_free and
275 free_dominance_info calls.
276 * loop-init.c (flow_loops_find): Ditto.
277 * passes.c (rest_of_handle_branch_prob): Ditto.
278 * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
279 * loop-unroll.c (analyze_insns_in_loop): Do not use
280 EDGE_LOOP_EXIT.
281 * predict.c (predict_loops): Do not call flow_loop_scan.
282 Use get_loop_exit_edges.
283 (tree_estimate_probability): Do not pass flags to flow_loops_find.
284 * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
285 Do not use EDGE_LOOP_EXIT.
286 (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
287 to bb_with_exit_edge_p.
288 (if_convertible_loop_p): Do not call flow_loop_scan. Use
289 loop->single_exit. Do not use EDGE_LOOP_EXIT. Pass loop
290 to bb_with_exit_edge_p.
291 (combine_blocks): Pass loop to bb_with_exit_edge_p. Do not use
292 EDGE_LOOP_EXIT.
293 * tree-loop-linear.c (linear_transform_loops): Do not call
294 flow_loop_scan. Use loop->single_exit.
295 * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
296 (vect_analyze_loop_form): Do not call flow_loop_scan.
297 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
298 loop->single_exit.
299 (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
300 loop->single_exit.
301 * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
302 slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
303 slpeel_tree_duplicate_loop_to_edge_cfg,
304 slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
305 Use loop_preheader_edge and loop->single_exit. Do not call
306 flow_loop_scan.
307
b279b20a
NC
3082005-03-01 Nick Clifton <nickc@redhat.com>
309
310 * config/arm/arm.c (thumb_find_work_register): Check all of the
311 argument registers to see if they are free, and a couple of
312 special cases where the last argument register but can be proved
313 to be available during the function's prologue.
314 (print_multi_reg, arm_compute_save_reg0_reg12_mask,
315 output_return_instruction, emit_multi_reg_push, thumb_pushpop,
316 thumb_unexpanded_epilogue): Use unsigned long as the type for the
317 register bit-mask.
318 (thumb_compute_save_reg_mask): Likewise. Also use
319 thumb_find_work_register() to ensure that there is agreement about
320 which work register is going to be used in the prologue.
321 (thumb_output_function_prologue): Use unsigned long as the type
322 for the register bit-mask. Also delay pushing the link register if
323 other high registers are going to be pushed.
324 (thumb_compute_save_reg_mask, emit_multi_reg_push,
325 print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
326 redundant prototypes.
327
d7459fa8
JDA
3282005-02-28 John David Anglin <dave.anglin#nrc-cnrc.gc.ca>
329
330 PR target/19819
331 * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
332 and after reload in REG+REG indexed addresses without REG_POINTER
333 set in the base and not set in the index.
334
65f527e0
KK
3352005-02-28 Kaz Kojima <kkojima@gcc.gnu.org>
336
337 * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
338 Don't undefine here.
339 (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
340 (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
341 (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
342 (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
343 LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
344 Delete.
345 * config.gcc (sh*-*-linux*): Use config/linux.h.
346
0b5383eb
DJ
3472005-02-28 Dale Johannesen <dalej@apple.com>
348 Stan Shebs <shebs@apple.com>
349
350 Rewrite of 64-bit Darwin structure-by-value pass/return.
351 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
352 intoffset, use_stack, named.
353 * config/rs6000/rs6000.c (rs6000_darwin64_function_arg): Remove.
354 (rs6000_darwin64_record_arg_advance_flush): New.
355 (rs6000_darwin64_record_arg_advance_recurse): New.
356 (rs6000_darwin64_record_arg_flush): New.
357 (rs6000_darwin64_record_arg_recurse): New.
358 (rs6000_darwin64_record_arg): New.
359 (rs6000_return_in_memory): Remove AGGREGATE_TYPE_P check.
360 (function_arg_boundary): Handle 128-bit aligned structs.
361 (function_arg_advance): Rewrite darwin64 struct handling.
362 (function_arg): Call rs6000_darwin64_record_arg.
363 (function_arg_partial_nregs): Handle darwin64 structs.
364 (rs6000_darwin64_function_value): Remove.
365 (rs6000_function_value): Call rs6000_darwin64_record_arg.
366
1a9dddad
RS
3672005-02-28 Roger Sayle <roger@eyesopen.com>
368
369 PR tree-optimization/20216
370 * tree-chrec.c (tree_fold_factorial): Delete.
371 (tree_fold_binomial): Change argument list to take a return type
372 and change the type of K to unsigned int. Rewrite to avoid explicit
373 evaluation of factorials, and (recursively) calling fold to perform
374 compile-time arithmetic. Return NULL on (internal) overflow.
375 (chrec_evaluate): Change type of K to an unsigned int. Avoid
376 calling tree_fold_binomial unnecessarily. Return chrec_dont_know
377 if any intermediate calculation overflows.
378 (chrec_apply): Update call to chrec_evaluate.
379
f50c57ba
JW
3802005-02-28 James E Wilson <wilson@specifixinc.com>
381
382 * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
383
4e3d9146
JM
3842005-02-28 Joseph S. Myers <joseph@codesourcery.com>
385
386 PR c/20245
387 * c-parser.c (c_parser_compound_statement): Return error_mark_node
388 instead of NULL_TREE on error.
389
48d72335
DE
3902005-02-28 David Edelsohn <edelsohn@gnu.org>
391
392 * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
393 (EASY_VECTOR_15_ADD_SELF): Remove.
394 (num_insns_constant_wide): Not static.
395 (validate_condition_mode): Not static.
396 (toc_relative_expr_p): Not static.
397 (legitimate_indirect_address_p): Not static.
398 (macho_lo_sum_memory_operand): Not static.
399 (invalid_e500_subreg): Not static.
400 (easy_vector_same): Not static.
401 (easy_vector_splat_const): Not static.
402 (RS6000_SYMBOL_REF_TLS_P): Remove.
403 (any_operand): Delete.
404 (any_parallel_operand): Delete.
405 (count_register_operand): Delete.
406 (altivec_register_operand): Delete.
407 (xer_operand): Delete.
408 (s8bit_cint_operand): Delete.
409 (short_cint_operand): Delete.
410 (u_short_cint_operand): Delete.
411 (non_short_cint_operand): Delete.
412 (exact_log2_cint_operand): Delete.
413 (gpc_reg_operand): Delete.
414 (cc_reg_operand): Delete.
415 (cc_reg_not_cr0_operand): Delete.
416 (reg_or_short_operand): Delete.
417 (reg_or_neg_short_operand): Delete.
418 (reg_or_aligned_short_operand): Delete.
419 (reg_or_u_short_operand): Delete.
420 (reg_or_cint_operand): Delete.
421 (reg_or_arith_cint_operand): Delete.
422 (reg_or_add_cint64_operand): Delete.
423 (reg_or_sub_cint64_operand): Delete.
424 (reg_or_logical_cint_operand): Delete.
425 (got_operand): Delete.
426 (got_no_const_operand): Delete.
427 (easy_fp_constant): Delete.
428 (easy_vector_constant): Delete.
429 (easy_vector_constant_add_self): Delete.
430 (zero_constant): Delete.
431 (zero_fp_constant): Delete.
432 (volatile_mem_operand): Delete.
433 (offsettable_mem_operand): Delete.
434 (mem_or_easy_const_operand): Delete.
435 (add_operand): Delete.
436 (non_add_cint_operand): Delete.
437 (logical_operand): Delete.
438 (non_logical_cint_operand): Delete.
439 (mask_operand): Delete.
440 (mask_operand_wrap): Delete.
441 (mask64_operand): Delete.
442 (mask64_2_operand): Delete.
443 (and64_operand): Delete.
444 (and64_2_operand): Delete.
445 (and_operand): Delete.
446 (reg_or_mem_operand): Delete.
447 (lwa_operand): Delete.
448 (symbol_ref_operand): Delete.
449 (call_operand): Delete.
450 (current_file_function_operand): Delete.
451 (input_operand): Delete.
452 (rs6000_nonimmediate_operand): Delete.
453 (rs6000_tls_symbol_ref): Delete.
454 (save_world_operation): Delete.
455 (restore_world_operation): Delete.
456 (load_multiple_operation): Delete.
457 (store_multiple_operation): Delete.
458 (vrsave_operation): Delete.
459 (mfcr_operation): Delete.
460 (mtcrf_operation): Delete.
461 (lmw_operation): Delete.
462 (stmw_operation): Delete.
463 (branch_comparison_operator): Delete.
464 (branch_positive_comparison_operator): Delete.
465 (scc_comparison_operator): Delete.
466 (trap_comparison_operator): Delete.
467 (boolean_operator): Delete.
468 (boolean_or_operator): Delete.
469 (min_max_operator): Delete.
470 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
471 (EASY_VECTOR_15): Moved to here.
472 (EASY_VECTOR_15_ADD_SELF): Move to here.
473 (PREDICATE_CODES): Delete.
474 * config/rs6000/rs6000-protos.h: Delete predicate functions.
475 Declare functions no longer static.
476 * config/rs6000/predicates.md: New.
477 * config/rs6000/rs6000.md: Include predicates.md
478
321cf1f2
KH
4792005-02-28 Kazu Hirata <kazu@cs.umass.edu>
480
481 * calls.c (emit_call_1): Don't use REG_ALWAYS_RETURN.
482 (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
483 REG_ALWAYS_RETURN.
484 * cfgrtl.c (need_fake_edge_p): Likewise.
485 * combine.c (distribute_notes): Likewise.
486 * emit-rtl.c (try_split): Likewise.
487 * recog.c (peephole2_opimize): Likewise.
488 * reg-notes.def (ALWAYS_RETURN): Remove.
489 * rtl.h (LCT_ALWAYS_RETURN): Remove.
490 * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
491 * tree.h (ECF_ALWAYS_RETURN): Remove.
492
4f380bf8
RS
4932005-02-28 Roger Sayle <roger@eyesopen.com>
494
495 PR middle-end/19874
496 * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
497 between different machine modes is never a "useless" conversion.
498
4992005-02-28 Geert Bosch <bosch@gnat.com>
dd1f53fb
GB
500
501 PR ada/15977
502 * doc/contrib.texi: List contributors for Ada front end
503
0a67e02c
PB
5042005-02-28 Paolo Bonzini <bonzini@gnu.org>
505
506 * simplify-rtx.c (simplify_unary_operation_1,
507 simplify_const_unary_operation): New, extracted from...
508 (simplify_unary_operation): ... this one.
509 (simplify_binary_operation_1,
510 simplify_const_binary_operation): New, extracted from...
511 (simplify_binary_operation): ... this one.
512 * rtl.h (simplify_const_unary_operation,
513 simplify_const_binary_operation): Add prototypes.
514
920b9c8d
JB
5152005-02-28 Julian Brown <julian@codesourcery.com>
516
517 * config/elfos.h: Revert my patch from 2005-02-25 since it broke
518 building libjava and caused PR regression/20228.
519
215c351a
PB
5202005-02-28 Paolo Bonzini <bonzini@gnu.org>
521
522 PR bootstrap/17383
523 * Makefile.in (host_subdir): New.
524 (build_objdir): New. Replace ../$(build_subdir) with it throughout.
525 * configure: Regenerate.
526
f51d6cb4
ZW
5272005-02-27 Zack Weinberg <zack@codesourcery.com>
528
529 * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
530 * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
531 installation directory first.
532
23369bef
HPN
5332005-02-28 Hans-Peter Nilsson <hp@axis.com>
534
535 PR target/19065.
536 * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
537 not including (reg). Do not check for reg being CRIS_PC_REGNUM.
538 (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
539 * config/cris/cris.md: Tweak comments referring to Q.
540 ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
541 ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
542 ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
543 ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
544 ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
545 Insert spaces in constraints to align alternatives vertically for
546 readability.
17c1e037 547 ("cmphi"): Ditto. Add separate alternative for operand 0 "r",
23369bef
HPN
548 operand 1: "M".
549
c0d12712
JDA
5502005-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
551
552 PR rtl-optimization/17728
553 * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
554 operand 0 from general_operand to move_dest_operand.
555
478a1f5e
JDA
5562005-02-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
557
558 * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
559 instead of trying to save and restore TREE_SYMBOL_REFERENCED.
560 * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
561 (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
562
5395b47b
NN
5632005-02-26 Nathanael Nerode <neroden@gcc.gnu.org>
564
565 * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
566 * configure: Regenerate.
f51d6cb4 567 * libada-mk.in: Remove CC; rename
5395b47b
NN
568 cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
569
c529e0fe
AP
5702005-02-26 Andrew Pinski <pinskia@physics.uc.edu>
571
572 PR tree-opt/20188
573 * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
574 for the lhs, also walk over the tree. Likewise for rhs.
575
f67e783f
ZD
5762005-02-26 Zdenek Dvorak <dvorakz@suse.cz>
577
578 * tree-ssa-dom.c (simple_iv_increment_p): New function.
579 (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
580 Do not propagate value of iv before increment over the increment.
581
27bf414c
JM
5822005-02-25 Joseph S. Myers <joseph@codesourcery.com>
583
584 * c-parser.c: New file.
585 * c-parse.in: Remove.
586 * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
587 Remove.
588 (c-parser.o): Add dependencies.
589 (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
590 maintainer-clean, TAGS): Update.
591 * c-config-lang.in (gtfiles): Update.
592 * gengtype-lex.l: Don't handle "@@".
593 * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
594 objc_build_synchronized, objc_begin_try_stmt,
595 objc_begin_catch_clause, objc_finish_catch_clause,
596 objc_build_finally_clause, objc_finish_try_stmt): New.
597 * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
598 type_seen_p.
599 (c_parse_init): Update comment.
600 * c-decl.c (c_init_decl_processing): Update comment.
601 (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
602 declspecs_add_scspec, declspecs_add_attrs): Initialize and update
603 new c_declspecs members.
604
d8652772
JB
6052005-02-25 Julian Brown <julian@codesourcery.com>
606
607 * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
608 from being used for symbols with vague linkage when
609 HAVE_GAS_COMDAT_GROUP is true.
610
04270aa4
MM
6112005-02-25 Mark Mitchell <mark@codesourcery.com>
612
613 * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
614
4e9db8b2
SE
6152005-02-25 Steve Ellcey <sje@cup.hp.com>
616
617 PR target/19930
618 * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
619 (LIBGCC2_HAS_DF_MODE): New.
620 (LIBGCC2_HAS_XF_MODE): New.
621 (LIBGCC2_HAS_TF_MODE): New.
622 * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
623 (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
624 * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
625 (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
626 (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
627 * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
628 and add _fixtfdi, _fixunstfdi, _floatditf
629 * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
630 L_fixunstfdi, L_floatditf.
631 * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
632 (LIBGCC2_HAS_TF_MODE): Define.
633
736c86ad
DN
6342005-02-25 Diego Novillo <dnovillo@redhat.com>
635
636 PR tree-optimization/20204
637 * tree-into-ssa.c (insert_phi_nodes_for): Do not use
638 REWRITE_THIS_STMT markers on PHI nodes.
639 (rewrite_initialize_block): Likewise.
640
3bf4da72
MM
6412005-02-25 Mark Mitchell <mark@codesourcery.com>
642
643 * version.c (version_string): Update to 4.1.
644
a1e73046
PC
6452005-02-25 Paolo Carlini <pcarlini@suse.de>
646
647 * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
648 Clarify that the alternative way doesn't work in GNU C++.
649
9e7376e5
ZD
6502005-02-25 Zdenek Dvorak <dvorakz@suse.cz>
651
652 PR tree-optimization/19937
653 * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
654 to the type of the induction variable.
655
bd182be8
KK
6562005-02-25 Kaz Kojima <kkojima@gcc.gnu.org>
657
658 PR rtl-optimization/20117
659 * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
660 the block including noncopyable insn.
661
2b5936fd
KH
6622005-02-24 Kazu Hirata <kazu@cs.umass.edu>
663
664 * cse.c (delete_trivially_dead_insns): Speed up by minimizing
665 calls to find_reg_note.
666
964a9831
RH
6672005-02-24 Richard Henderson <rth@redhat.com>
668
669 PR tree-opt/20127
670 * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
671 the type.
672
78796ad5
FJ
6732005-02-24 Fariborz Jahanian <fjahanian@apple.com>
674
675 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
676 vector types if to use base reg for misaligned non-word ld/std.
677
b2142ad8
HPN
6782005-02-24 Hans-Peter Nilsson <hp@axis.com>
679
680 PR target/14619
681 * config/cris/cris.c (cris_target_asm_function_prologue): Create
682 dwarf2 label manually and put it after, not before the prologue.
683
b436d712
DE
6842005-02-24 David Edelsohn <edelsohn@gnu.org>
685
686 PR target/19019
687 * reload.c (operands_match_p): Only increment register number for
688 SCALAR_INT_MODE_P modes in multiple hard registers.
689
589b3fda
DE
690 * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
691 Fix formatting.
692
3f117656
VR
6932005-02-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
694
695 * ChangeLog.5: Fix log message typo(s).
696 * ChangeLog.7: Likewise.
697 * ChangeLog.tree-ssa: Likewise.
698 * cfgexpand.c: Fix comment typo(s).
699 * conflict.c: Likewise.
700 * defaults.h: Likewise.
701 * dwarf2out.c: Likewise.
702 * gcse.c: Likewise.
703 * ggc-page.c: Likewise.
704 * tree-eh.c: Likewise.
705 * tree-ssa-dom.c: Likewise.
706
04fa46cf
JJ
7072005-02-24 Jakub Jelinek <jakub@redhat.com>
708
df8a7c49
JJ
709 PR target/19019
710 * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
711 * config/rs6000/darwin-ldouble.c: Only use the .symver directives
712 if SHARED is defined.
713
04fa46cf
JJ
714 PR target/20196
715 * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
716 allow splitting only if operands 0 and 3 don't overlap.
717
a0d2281e
RH
7182005-02-24 Richard Henderson <rth@redhat.com>
719
720 PR middle-end/19953
721 * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
722 (fold_builtin_1): Call them.
723 * fold-const.c (fold_complex_mult_parts): Split out from ...
724 (fold_complex_mult): ... here. Fix typo in both imaginary case.
725 (fold_complex_div_parts, fold_complex_div): New.
726 (fold): Use them.
727 * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
728
4961152d
RK
7292005-02-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
730
ae95537a
RK
731 * tree-ssa-ccp.c (visit_assignment): Verify that result of
732 VIEW_CONVERT_EXPR is_gimple_min_invariant.
733
4961152d
RK
734 * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
735 (print_node): Likewise.
736 Print TYPE_SIZES_GIMPLIFIED.
737
ef6201a6
HPN
7382005-02-24 Hans-Peter Nilsson <hp@axis.com>
739
740 * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
741 ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
742 operands as commutative in constraints.
743
7256233c
DN
7442005-02-24 Diego Novillo <dnovillo@redhat.com>
745
746 * tree-into-ssa.c: Re-organize internal functions.
747
c7463669
RH
7482005-02-24 Richard Henderson <rth@redhat.com>
749
750 PR middle-end/18902
751 * c-opts.c (c_common_post_options): Set flag_complex_method to 2
752 for c99.
753 * common.opt (fcx-limited-range): New.
754 * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
755 * toplev.c (flag_complex_method): Initialize to 1.
756 (process_options): Set flag_complex_method to 0 if
757 flag_cx_limited_range.
758 * doc/invoke.texi (-fcx-limited-range): New.
759
03ce14db
KH
7602005-02-24 Kazu Hirata <kazu@cs.umass.edu>
761
762 * cse.c (delete_trivially_dead_insns): Speed up by using
763 NEXT_INSN and PREV_INSN directly instead of next_real_insn and
764 prev_real_insn.
765
b86ba8a3
AT
7662005-02-24 Andrea Tarani <andrea.tarani@gilbarco.com>
767
768 * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
769 functions when -mid-shared-library is being used.
770
57642751
DJ
7712005-02-23 Daniel Jacobowitz <dan@codesourcery.com>
772
773 * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
774 (LINK_LIBGCC_SPECIAL_1): Don't mention it.
775 * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
776 * system.h: Poison LINK_LIBGCC_SPECIAL.
777
79e4e6a6
JW
7782005-02-23 James E Wilson <wilson@specifixinc.com>
779
780 * gengtype.c (note_insn_name): Make 1 element larger.
781
61961eff
RS
7822005-02-23 Roger Sayle <roger@eyesopen.com>
783
784 PR target/20018
785 PR rtl-optimization/20097
786 * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
787 BImode SUBREGs of SImode registers which confuse the ia64 backend.
788
1628a835
DE
7892005-02-23 David Edelsohn <edelsohn@gnu.org>
790
791 * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
792 * t-aix52 (SHLIB_INSTALL): Same.
793
f439764f
KH
7942005-02-23 Kazu Hirata <kazu@cs.umass.edu>
795
796 * genpreds.c: Update copyright.
797
3f9f087b
MB
7982005-02-23 Michael Beach <michaelb@ieee.org>
799
800 PR target/20159
801 * config/sparc/t-elf (startup files): Assemble with CPP.
802
bb56fc39
PB
8032005-02-23 Paolo Bonzini <bonzini@gnu.org>
804
805 * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
806 (write_predicate_expr): Likewise.
807
90c1d75a
DN
8082005-02-22 Diego Novillo <dnovillo@redhat.com>
809
810 PR tree-optimization/20100
811 PR tree-optimization/20115
812 * tree-optimize.c (init_tree_optimization_passes): Remove
813 pass_maybe_create_global_var.
814 * tree-pass.h (pass_maybe_create_global_var): Remove.
815 * tree-ssa-alias.c (aliases_computed_p): Declare.
816 (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
817 (count_calls_and_maybe_create_global_var): Remove.
818 (pass_maybe_create_global_var): Remove.
819 (init_alias_info): Do not declare aliases_computed_p.
820 (maybe_create_global_var): If the function contains no
821 call-clobbered variables and a mix of pure/const and regular
822 function calls, create .GLOBAL_VAR.
823 Mark all call-clobbered variables for renaming.
824 (merge_pointed_to_info): Update comment.
825 (add_pointed_to_var): Likewise.
826 (is_escape_site): Likewise.
827 Accept struct alias_info * instead of size_t *.
828 Update all users.
829 Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
830 as necessary.
831 * tree-ssa-operands.c (get_call_expr_operands): If
832 ALIASES_COMPUTED_P is false, do not add call-clobbering
833 operands.
834 * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
835 (delete_tree_ssa): Likewise.
836
e59ba1bc
JW
8372005-02-22 James E Wilson <wilson@specifixinc.com>
838
839 * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
840 (do_compile): Do call it here.
841
78d5a34b
KH
8422005-02-22 Kazu Hirata <kazu@cs.umass.edu>
843
844 PR rtl-optimization/20017.
845 * passes.c (rest_of_handle_combine, rest_of_handle_cse,
846 rest_of_handle_cse2, rest_of_handle_gcse): Call
847 delete_dead_jumptables immediately before calling cleanup_cfg.
848
263fb23d
DP
8492005-02-22 Devang Patel <dpatel@apple.com>
850
851 PR 19952
f51d6cb4 852 * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
263fb23d 853 all labels
f51d6cb4 854
466db3c1
DE
8552005-02-22 David Edelsohn <edelsohn@gnu.org>
856
857 * config/rs6000/aix.h (WINT_TYPE): Define.
858
d9168963
SS
8592005-02-22 Stan Shebs <shebs@apple.com>
860
861 * config/rs6000/rs6000.c (rs6000_override_options): Default to
862 natural alignment for 64-bit Darwin.
863 (rs6000_parse_alignment_option): Warn about uses of -malign-power
864 on 64-bit Darwin.
865 * doc/invoke.texi: Document this.
866
19b3ffbc
DD
8672005-02-22 DJ Delorie <dj@redhat.com>
868
869 * c-common.c (c_common_type_for_mode): Pass the mode's precision
870 to make_[un]signed_type, not the mode itself.
871
e2c879a1
KH
8722005-02-22 Kazu Hirata <kazu@cs.umass.edu>
873
874 * cfg.c (cached_make_edge): Call make_edge if edge cache is
875 not available. Use tail calls wherever possible.
876 (make_edge): Call unchecked_make_edge to create an edge.
877
35bea171
KH
878 * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
879 (coalesce_ssa_name): Don't check for
880 SSANORM_USE_COALESCE_LIST.
881 (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
882
554beb3a
DN
8832005-02-22 Diego Novillo <dnovillo@redhat.com>
884
885 * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
886 (rewrite_into_ssa): ... here.
887
bb2e1640
AO
8882005-02-21 Alexandre Oliva <aoliva@redhat.com>
889
890 PR tree-optimization/19786
891 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
892 tag to another's may-alias bitmap when adding to the other's list.
893
1d27fed4
DD
8942005-02-21 DJ Delorie <dj@redhat.com>
895
896 * tree-ssa-loop-ivopts.c (computation_cost): Start register
897 numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
898 registers in unsupported ways.
899 * expmed.c (init_expmed): Likewise.
f51d6cb4 900
10e70392
SC
9012005-02-21 Stan Cox <scox@redhat.com>
902
903 * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
904
fca01525
KH
9052005-02-21 Kazu Hirata <kazu@cs.umass.edu>
906
907 * tree-cfg.c (fold_cond_expr_cond): New.
908 (make_edges): Call fold_cond_expr_cond.
909 (find_taken_edge): Accept nothing but INTEGER_CST.
910 (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
911 and 1.
912 (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
913
88312d26
KH
914 * flow.c (delete_dead_jumptables): Speed up by scanning insns
915 that do not belong to any basic block.
916
0b612e0b
JL
9172005-02-21 Jeff Law <law@redhat.com>
918
919 * cfganal.c (find_unreachable_blocks): Manually CSE load of
920 e->dest.
921
dfd9f74c
KH
9222005-02-21 Kazu Hirata <kazu@cs.umass.edu>
923
924 * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
925 (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
926 Adjust their definitions.
927 (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
928 (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
929
a4de48bc
KH
930 * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
931 genautomata.c, langhooks.c, langhooks.h, system.h,
932 config/arm/lib1funcs.asm: Update copyright.
933
4a22dcdd
UW
9342005-02-21 Ulrich Weigand <uweigand@de.ibm.com>
935
936 * dbxout.c (dbxout_function_end): Emit Lscope label always.
937
5dd90688
RG
9382005-02-21 Richard Guenther <rguenth@gcc.gnu.org>
939
940 PR bootstrap/13770
941 * doc/install.texi: Document --with-gc.
942
35ef372d
PB
9432005-02-21 Paolo Bonzini <bonzini@gnu.org>
944
945 * simplify-rtx.c (simplify_unary_operation): Add a missing
946 "break" statement.
947
ee167207
EB
9482005-02-21 Eric Botcazou <ebotcazou@libertysurf.fr>
949
950 PR tree-optimization/18663
951 * tree-ssa-dom.c (extract_range_from_cond): Return 0
952 if the type has variable bounds.
953
a3c28ba2
KH
9542005-02-20 Kazu Hirata <kazu@cs.umass.edu>
955
956 * gcse.c: Remove an obsolete comment.
957
a811c672
KH
958 * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
959
50c177f7
HPN
9602005-02-20 Hans-Peter Nilsson <hp@axis.com>
961
962 * doc/extend.texi (Function Attributes) <Attribute const>: The
963 attribute "pure" is below this text, not above.
964
cdcb88d7
JDA
9652005-02-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
966
967 * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
968 (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
969 * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
970
c5ff069d
ZW
9712005-02-20 Zack Weinberg <zack@codesourcery.com>
972
973 PR 18785
974 * langhooks.h (struct lang_hooks): Add to_target_charset.
975 * langhooks.c (lhd_to_target_charset): New function.
976 * langhooks-def.h: Declare lhd_to_target_charset.
977 (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
978 (LANG_HOOKS_INITIALIZER): Update.
979 * c-common.c (c_common_to_target_charset): New function.
980 * c-common.h: Declare it.
981 * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
982 c_common_to_target_charset.
983
984 * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
985 (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
986 Delete definitions.
987 * system.h: Poison them.
988 * doc/tm.texi: Don't discuss them.
989 * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
990 * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
991 (pp_c_char): Do not attempt to generate letter escapes for
992 newline, tab, etc.
993 * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
994 * config/mips/mips.c (mips_output_ascii): Likewise.
995
ac59a959
DN
9962005-02-20 Dorit Naishlos <dorit@il.ibm.com>
997
998 PR tree-optimization/19951
999 * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
1000 is abnormal.
c5ff069d 1001
a310245f
SB
10022005-02-19 Steven Bosscher <stevenb@suse.de>
1003
c5ff069d 1004 PR middle-end/19698
a310245f
SB
1005 * function.h (struct function): New field `max_loop_depth'.
1006 * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
1007 (flow_loops_find): Reset the max loop depth count before finding loops.
1008 * flow.c (MAX_LIVENESS_ROUNDS): New constant.
1009 (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
1010 (calculate_global_regs_live): Make sure the loop will terminate
1011 when the initial sets are not empty.
1012
2cdc2073
ZW
10132005-02-19 Zack Weinberg <zack@codesourcery.com>
1014
1015 * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
1016 object inside.
1017 * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
1018
4e8d0554
RS
10192005-02-19 Richard Sandiford <rsandifo@redhat.com>
1020
1021 PR other/19525
1022 * doc/invoke.texi: Remove documentation of %M spec.
1023 * gcc.c: Likewise.
1024 (init_spec): Remove %M suffix from -lgcc_s.
1025 (do_spec_1): Remove 'M' case.
1026 * mklibgcc.in: Remove SHLIB_MULTILIB handling. Expect SHLIB_LINK
1027 to put shared libraries in the multilib directory. Remove the
1028 shlib_so_soname substitution variable. Don't add a multilib encoding
1029 to shlib_base_name. Set shlib_slibdir_qual to the full pathname
1030 reported by -print-multi-os-directory. Pass @multilib_dir@ to
1031 SHLIB_INSTALL as well as SHLIB_LINK.
1032 * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
1033 (SHLIB_NAME): Delete.
1034 (SHLIB_DIR): New macro.
1035 (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
1036 (SHLIB_INSTALL): Adjust accordingly.
1037 * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
1038 * config/t-slibgcc-sld: Likewise.
1039 * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
1040 (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
1041 (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
1042 in $(SHLIB_DIR).
1043 (SHLIBUNWIND_INSTALL): Adjust accordingly.
1044 * config/i386/t-nwld (SHLIB_SONAME): Delete.
1045 (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
1046 Use @shlib_base_name@ instead of @shlib_so_name@.
1047 * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
1048 and @shlib_base_name@.so in @multilib_dir@.
1049 (SHLIB_INSTALL): Adjust accordingly. Add @shlib_slibdir_qual@
1050 to the install path.
1051 * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
1052 (SHLIB_LINK): Remove previous workaround.
1053 * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
1054 (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
1055 (SHLIB_INSTALL): Adjust accordingly. Add $(SHLIB_SLIBDIR_QUAL) to
1056 the install path.
1057 * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
1058 @multilib_dir@. Use @multilib_dir@ to check for threading libraries.
1059 (SHLIB_INSTALL): Adjust accordingly.
1060 (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
1061 * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
1062 * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
1063 config/t-slibgcc-elf-ver.
1064
f10a6654
ZD
10652005-02-19 Zdenek Dvorak <dvorakz@suse.cz>
1066 Jakub Jelinek <jakub@redhat.com>
1067
1068 PR tree-optimization/19828
1069 * tree-ssa-loop-im.c: Add a TODO comment.
1070 (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
1071 without side-effects.
1072
5ff489f1
JM
10732005-02-18 James A. Morrison <phython@gcc.gnu.org>
1074
1075 * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
1076 call fold_convert.
1077
4c334b37
JW
10782005-02-18 James E. Wilson <wilson@specifixinc.com>
1079
1080 * doc/invoke.texi (IA-64 Options): Delete -mb-step.
1081 * config/ia64/ia64.c (last_group, group_idx): Delete variables.
1082 (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
1083 functions.
1084 (ia64_reorg): Delete fixup_errata call.
1085 * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
1086 (TARGET_SWITCHES): Delete -mb-step entry.
1087
58cb41e6
JJ
10882005-02-19 Jakub Jelinek <jakub@redhat.com>
1089
1090 PR c/20043
1091 * c-typeck.c (composite_type): Handle quals in transparent unions.
1092 (type_lists_compatible_p): Likewise.
1093
b79d4265
SS
10942005-02-18 Stan Shebs <shebs@apple.com>
1095
1096 * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
1097 expressions in the .literal8 section.
1098
a7138657
GK
10992005-02-18 Geoffrey Keating <geoffk@apple.com>
1100
1101 * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
1102
0a9c6fdf
RS
11032005-02-18 Roger Sayle <roger@eyesopen.com>
1104
1105 * fold-const.c (constant_boolean_node): Always create values of the
1106 specified type, don't bother calling truthvalue_conversion.
1107
f6775e78
JM
11082005-02-18 Joseph S. Myers <joseph@codesourcery.com>
1109
1110 * except.c (output_function_exception_table): Call
1111 assemble_external_libcall (eh_personality_libfunc).
1112
5b4275db
JM
11132005-02-18 Joseph S. Myers <joseph@codesourcery.com>
1114
1115 PR target/19886
1116 * config/ia64/ia64.h (struct machine_function): Add state_num.
1117 * config/ia64/ia64.c (process_epilogue,
1118 process_for_unwind_directive): Use new unwind state numbers each
1119 time rather than state 1.
1120
d6083c7d
UW
11212005-02-18 Ulrich Weigand <uweigand@de.ibm.com>
1122
1123 PR target/20054
1124 * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
1125 before the "*llgt_didi" pattern.
1126
258dba8f
JM
11272005-02-18 Jason Merrill <jason@redhat.com>
1128
1129 * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
1130
2155b886
RE
11312005-02-18 Richard Earnshaw <rearnsha@arm.com>
1132
1133 * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
1134 (div0): Use it in place of ARM_FUNC_ALIAS.
1135 (lshrdi3, ashrdi3, ashlrdi3): Likewise.
1136
0d56ab33
AP
11372005-02-18 Andrew Pinski <pinskia@physics.uc.edu>
1138
1139 PR middle-end/20030
a310245f
SB
1140 * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
1141 access, the lower bound of the array type if it exists.
0d56ab33 1142
2aabee29
AO
11432005-02-18 Alexandre Oliva <aoliva@redhat.com>
1144
1145 PR c++/20008
1146 * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
1147 cases that are out-of-range for the index type.
1148
aeba6c28
JM
11492005-02-18 James A. Morrison <phython@gcc.gnu.org>
1150
1151 * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
1152 (estimate_case_costs): Don't call convert.
1153 * expmed.c (expand_shift): Likewise.
2cdc2073 1154 (make_tree): Call fold_convert instead of convert.
aeba6c28 1155
3a96c3b9
JJ
11562005-02-18 Jakub Jelinek <jakub@redhat.com>
1157
1158 PR c++/19813
1159 * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
1160 that ref to be marked MEM_READONLY_P doesn't have base that needs
1161 constructing.
1162
9fd64c63
JM
11632005-02-18 Joseph S. Myers <joseph@codesourcery.com>
1164
1165 * genautomata.c (output_get_cpu_unit_code_func,
1166 output_cpu_unit_reservation_p): Don't generate old-style function
1167 definitions.
1168
58203599
JJ
11692005-02-18 Jakub Jelinek <jakub@redhat.com>
1170
0948e392
JJ
1171 PR c++/20023
1172 PR tree-optimization/20009
1173 * convert.c (convert_to_integer): Revert 2005-02-16 change.
1174
58203599
JJ
1175 PR tree-optimization/18947
1176 * cgraphunit.c (cgraph_finalize_function): When redefining an extern
1177 inline, remove all nodes that are inlined into the extern inline
1178 being redefined.
1179
c8d3e15a
KH
11802005-02-17 Kazu Hirata <kazu@cs.umass.edu>
1181
1182 * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
1183 loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
1184 tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
1185 config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
1186 Update copyright.
1187
9b396d7c
RS
11882005-02-17 Roger Sayle <roger@eyesopen.com>
1189
1190 PR tree-optimization/19917
1191 * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
1192 to be potentially trapping.
1193
2e681715
KH
11942005-02-17 Kazu Hirata <kazu@cs.umass.edu>
1195
1196 * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
1197
c6d01079
AK
11982005-02-17 Andreas Krebbel <krebbel1@de.ibm.com>
1199
1200 * builtins.c (expand_builtin_return_addr): Remove tem parameter.
2cdc2073 1201 tem becomes a local variable which is set to the value of the
c6d01079 1202 back end defined INITIAL_FRAME_ADDRESS macro.
2cdc2073 1203 (expand_builtin_frame_address): Omit the base parameter to
c6d01079
AK
1204 expand_builtin_return_addr.
1205 (expand_builtin_profile_func): Likewise.
1206 * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
1207 (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
1208 * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
1209
7b210806
JJ
12102005-02-17 Jakub Jelinek <jakub@redhat.com>
1211
1212 * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
1213 s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
1214 * config/frv/frv.c (frv_function_epilogue): Likewise.
1215
eae600b9
DB
12162005-02-17 Daniel Berlin <dberlin@dberlin.org>
1217
1218 * lambda-code (perfect_nestify): Remove mark/unmark
1219 for rewriting hack.
1220 * tree-loop-linear.c (linear_transform_loops): Add
1221 rewrite_into_ssa call so that ssa is correct for
1222 rewriting into loop closed.
1223
8bdbfff5
NS
12242005-02-17 Nathan Sidwell <nathan@codesourcery.com>
1225
1226 * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
1227 * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
1228 BITMAP_FREE.
1229 * bt-load.c (btr_def_live_range, combine_btr_defs,
1230 migrate_btr_def, migrate_btr_defs): Likewise.
1231 * cfgcleanup.c (thread_jump): Likewise.
1232 * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
1233 * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
1234 df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
1235 df_rd_local_compute, df_reg_info_compute): Likewise.
1236 * dominance.c (init_dom_info, free_dom_info): Likewise.
1237 * flow.c (init_propagate_block_info,
1238 free_propagate_block_info): Likewise.
1239 * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
1240 * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
1241 modify_reg_pav): Likewise.
1242 * loop-invariant.c (find_defs, find_invariant_insn,
1243 find_invariants, free_inv_motion_data): Likewise.
1244 * predict.c (tree_predict_by_opcode,
1245 estimate_bb_frequencies): Likewise.
1246 * stmt.c (expand_case): Likewise.
1247 * tree-cfg.c (tree_duplicate_sese_region): Likewise.
1248 * tree-dfa.c (mark_new_vars_to_rename): Likewise.
1249 * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
1250 * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
1251 get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
1252 rewrite_ssa_into_ssa): Likewise.
1253 * tree-optimize.c (tree_rest_of_compilation): Likewise.
1254 * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
1255 analyze_edges_for_bb, perform_edge_inserts): Likewise.
1256 * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
1257 * tree-sra.c (tree_sra): Likewise.
1258 * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
1259 * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
1260 * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
1261 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1262 * tree-ssa-dse.c (tree_ssa_dse): Likewise.
1263 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
1264 Likewise.
1265 * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
1266 calculate_live_on_entry, calculate_live_on_exit,
1267 build_tree_conflict_graph): Likewise.
1268 * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
1269 record_important_candidates, set_use_iv_cost, find_depends,
1270 determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
1271 tree_ssa_iv_optimize_finalize): Likewise.
1272 * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
1273 find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
1274 tree_duplicate_loop_to_header_edge): Likewise.
1275 * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
1276 * tree-ssa.c (verify_flow_insensitive_alias_info,
1277 verify_name_tags, verify_ssa, init_tree_ssa,
1278 delete_tree_ssa): Likewise.
1279 * tree-ssanames.c (marked_ssa_names, init_ssanames,
1280 fini_ssanames): Likewise.
1281 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
1282
3abbb738
RC
12832005-02-17 Ralf Corsepius <ralf.corsepius@rtems.org>
1284
2cdc2073 1285 * config/rs6000/t-rtems: Completely reworked.
3abbb738 1286
9d182aa5
IR
12872005-02-17 Ira Rosen <irar@il.ibm.com>
1288
2cdc2073 1289 * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
9d182aa5 1290
2427fa80
IR
12912005-02-17 Ira Rosen <irar@il.ibm.com>
1292
1293 * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
1294 POINTER_TYPE_P when checking that type is a pointer.
1295 (vect_get_memtag): Remove.
1296 (vect_address_analysis): Use POINTER_TYPE_P. Call
1297 vect_object_analysis with dummy parameter for memtag.
1298 (vect_object_analysis): Extract memtag (functionality that
1299 used to be in vect_get_memtag and moved here). Fix printings.
1300 (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
1301 with correct parameters. Remove call to vect_get_memtag.
1302
f7064d11
DN
13032005-02-17 Dorit Naishlos <dorit@il.ibm.com>
1304
1305 * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
1306 (tree-vectorizer.o): Added missing dependencies.
1307
1308 * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
1309 decleration.
1310 (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
1311 declaration in tree-vectorizer.c, now has an extern declaration in
1312 tree-vectorizer.h).
1313 (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
2cdc2073
ZW
1314 slpeel_verify_cfg_after_peeling, vect_strip_conversion,
1315 get_vectype_for_scalar_type, vect_is_simple_use,
f7064d11
DN
1316 vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
1317 vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
2cdc2073 1318 new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
f7064d11
DN
1319 vectorizable_store, vectorizable_operation, vectorizable_assignment,
1320 vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
1321 find_loop_location): Likewise.
1322
1323 * tree-vectorizer.c (langhooks.h): #include removed.
1324 (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
1325 moved to tree-vectorized.h.
1326 (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
1327 slpeel_verify_cfg_after_peeling, vect_strip_conversion,
1328 get_vectype_for_scalar_type, vect_is_simple_use,
1329 vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
1330 vect_supportable_dr_alignment, new_loop_vec_info,
1331 destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
1332 vect_set_verbosity_level, find_loop_location): Likewise.
1333
2cdc2073 1334 (vect_analyze_loop): Function externalized. Declaration moved to
f7064d11
DN
1335 tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
1336 (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
1337 (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
1338 vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
1339 vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
1340 vect_enhance_data_refs_alignment, vect_analyze_operations,
1341 exist_non_indexing_operands_for_use_p, vect_mark_relevant,
1342 vect_stmt_relevant_p, vect_get_loop_niters,
1343 vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
1344 vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
1345 vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
1346 vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
1347 vect_get_memtag): Likewise.
1348
2cdc2073 1349 (vectorizable_load): Function externalized. Declaration moved to
f7064d11
DN
1350 tree-vectorized.h. Function definition moved to tree-vect-transform.c.
1351 (vectorizable_store, vectorizable_operation, vectorizable_assignment,
1352 vect_transform_loop): Likewise.
1353 (vect_transform_stmt): Moved to tree-vect-transform.c.
2cdc2073 1354 (vect_align_data_ref, vect_create_destination_var,
f7064d11
DN
1355 vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
1356 vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
1357 vect_get_vec_def_for_operand, vect_init_vector,
1358 vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
1359 vect_build_loop_niters, vect_update_ivs_after_vectorizer,
1360 vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
1361 vect_update_inits_of_drs, vect_do_peeling_for_alignment,
1362 vect_do_peeling_for_loop_bound): Likewise.
2cdc2073 1363
f7064d11
DN
1364 * tree-vect-analyze.c: New file.
1365 * tree-vect-transform.c: New file.
1366
eff9a5d0
JM
13672005-02-17 Jason Merrill <jason@redhat.com>
1368
1369 PR mudflap/19319, c++/19317
1370 * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
1371 slot explicit.
1372
beb5f807
GP
13732005-02-17 Gerald Pfeifer <gerald@pfeifer.com>
1374
1375 * doc/install.texi (Specific): Update link for Darwin-specific
1376 tool binary site.
2cdc2073 1377
9ace7f9e
JM
13782005-02-16 James A. Morrison <phython@gcc.gnu.org>
1379
1380 * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
1381 constant_boolean_node.
1382
ee01c339 13832005-02-16 David Edelsohn <edelsohn@gnu.org>
53de343a
DE
1384
1385 PR target/19019
1386 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
1387 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
1388
4f2e0d5e
RH
13892005-02-16 Richard Henderson <rth@redhat.com>
1390
1391 PR 19920
1392 * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
1393 with W_TYPE_SIZE.
1394 (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
1395 replace uses with Wtype_MAXp1_F.
1396 (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
1397 L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
1398 L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
1399 L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
1400 and HAVE_TFMODE as appropriate.
1401 (__fixunssfDI): Provide an implementation that doesn't need DFmode.
1402 (__floatdisf): Likewise.
1403 * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
1404 (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
1405 (Wtype_MAXp1_F): New.
1406 (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
1407 __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
1408
9f7bf991
RE
14092005-02-16 Richard Earnshaw <rearnsha@arm.com>
1410
1411 * PR target/19162
1412 * arm.c (arm_apply_result_size): New function.
1413 * arm.h (APPLY_RESULT_SIZE): Define.
1414 * arm-protos.h (arm_apply_result_size): Add prototype.
1415 * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
1416 (movxf): New expand.
1417 (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
1418 (call_value_symbol): Remove predicate for operand 0.
1419 (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
1420 (untyped_call): Rework to correclty return values for any type.
1421 (untyped_return): New expand.
1422 * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
1423
f0b81cbc
SS
14242005-02-16 Stan Shebs <shebs@apple.com>
1425
1426 * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
1427 * config/rs6000/t-darwin8: New, for 64-bit multilib.
1428
25c62e24
EB
14292005-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
1430
927c8259 1431 * doc/install.texi (sparc-sun-solaris2*): Document required GMP
25c62e24
EB
1432 configure settings on Solaris 7 and later.
1433
3bd09563
DN
14342005-02-16 Diego Novillo <dnovillo@redhat.com>
1435
1436 PR tree-optimization/19865
1437 * tree-optimize.c (init_tree_optimization_passes): Run
1438 pass_may_alias after pass_sra.
1439
847d0c08
RH
14402005-02-16 Richard Henderson <rth@redhat.com>
1441 Stuart Hastings <stuart@apple.com>
1442
1443 PR debug/19521
1444 * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
1445 Do nothing if debug info suppressed for this function.
1446 (dbxout_begin_function): Early exit if debug info suppressed for
1447 this function.
1448
de332a85
KH
14492005-02-16 Kazu Hirata <kazu@cs.umass.edu>
1450
1451 PR target/20007
1452 * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
1453 find_basic_blocks.
1454 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1455
5fcfe0b2
KH
1456 PR tree-optimization/19967
1457 * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
1458 expand_builtin_strchr, expand_builtin_strrchr): Take a new
1459 argument TYPE. Adjust calls to fold_builtin_XXX.
1460 (expand_builtin, fold_builtin_1): Adjust calls to
1461 expand_builtin_XXX.
1462 (fold_builtin_strchr, fold_builtin_strpbrk,
1463 fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
1464 result to a requested type TYPE.
1465
8940b3b2
JJ
14662005-02-16 Jakub Jelinek <jakub@redhat.com>
1467
1468 PR middle-end/19857
1469 * fold-const.c (fold): Don't optimize (T)(x & cst) to
1470 (T)x & (T)cst if (T)cst overflows.
1471 * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
1472 TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
1473
aa47fcfa
JL
14742005-02-15 Jeff Law <law@redhat.com>
1475
1476 * gcse.c (blocks_with_calls): New bitmap.
1477 (alloc_gcse_mem): Allocate it.
1478 (free_gcse_mem): Free it.
1479 (clear_modifY_mem_tables): Clear it.
1480 (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
1481 when we encounter CALL_INSNs.
1482 (compute_transp, case MEM): Handle blocks with calls separate
1483 from blocks without calls. Use bitmap iterators rather than
1484 FOR_EACH_BB.
1485
489ce9e7
PG
14862005-02-15 Peter O'Gorman <peter@pogma.com>
1487
1488 PR bootstrap/18810
1489 * mklibgcc.in (vis_hide): Use a temporary object file, not
1490 -o /dev/null.
1491
1dd8ce20
AH
14922005-02-15 Andy Hutchinson <HutchinsonAndy@netscape.net>
1493
1494 PR target/19924
1495 * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
1496 access optimization.
1497
6f85d0c4 14982005-02-15 David Edelsohn <edelsohn@gnu.org>
fd9850d5 1499 Alan Modra <amodra@bigpond.net.au>
6f85d0c4
DE
1500
1501 PR target/19019
1502 * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
1503 (_xlqsub): Rename to __gcc_qsub.
1504 (_xlqmul): Rename to __gcc_qmul.
1505 (_xlqdiv): Rename to __gcc_qdiv.
1506 Provide versioned symbol aliases with old names.
1507 * config/rs6000/libgcc-ppc64.ver: Rename symbols.
1508 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
1509 * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
1510 * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
1511 * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
1512
40f84775
JM
15132005-02-15 James A. Morrison <phython@gcc.gnu.org>
1514
1515 * fold-const.c (fold): Fold -(~A) to A + 1. Fold ~(-A) to A - 1.
1516 Fold ~(A - 1) and ~(A + -1) to -A.
1517
14be52a2
JM
15182005-02-15 James A. Morrison <phython@gcc.gnu.org>
1519
1520 PR pch/14940
1521 PR target/19300
1522 * config/host-linux.c (linux_gt_pch_use_address): Copy from
1523 config/pa/pa-host.c:pa_gt_pch_use_address.
1524
eace8c18
DB
15252005-02-15 Daniel Berlin <dberlin@dberlin.org>
1526
1527 * tree-vn.c (get_value_handle): Make sure that given an
1528 is_gimple_min_invariant expression, we always return it.
1529
83cc36c8
KH
15302005-02-15 Kazu Hirata <kazu@cs.umass.edu>
1531
1532 * passes.c (rest_of_handle_gcse): Fix a comment.
1533
9a6cf911
JL
15342005-02-15 Jeff Law <law@redhat.com>
1535
1536 * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
1537 bitmap.
1538 (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
1539 (canon_list_insert, record_last_mem_set_info): Similarly.
1540 (clear_modify_mem_tables): Similarly.
1541
6a6305e4
KH
15422005-02-15 Kazu Hirata <kazu@cs.umass.edu>
1543
1544 * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
1545 tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
1546 config/mips/mips.md, config/rs6000/aix.h,
1547 config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
1548
934677f9
RH
15492005-02-15 Richard Henderson <rth@redhat.com>
1550
2cdc2073 1551 * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
934677f9
RH
1552 call to be best_edge.
1553
2e09ee33
KH
15542005-02-14 Kazu Hirata <kazu@cs.umass.edu>
1555
1556 * basic-block.h: Adjust the prototype for find_basic_blocks.
1557 * cfgbuild.c (find_basic_blocks): Remove unused arguments.
1558 * passes.c (rest_of_handle_loop_optimize): Adjust the call to
1559 find_basic_blocks.
1560
e22857eb
KH
1561 * flow.c (recompute_reg_usage): Remove all arguments.
1562 * passes.c (rest_of_compilation): Adjust the call to
1563 recompute_reg_usage.
1564 * rtl.h: Adjust the prototype for recompute_reg_usage.
1565
f46fe224 15662005-02-14 Daniel Berlin <dberlin@dberlin.org>
2cdc2073 1567
f46fe224
DB
1568 * tree-dump.c (dump_files): Update to reflect new member
1569 of dump_file_info.
1570 (dump_register): Add new argument.
1571 Set glob name.
1572 (dump_switch_p_1): Check against glob name if doglob was passed.
1573 (dump_switch_p): Check against regular first, then glob if
1574 we didn't have any hits on the dump name.
1575 * tree-optimize.c (register_one_dump_file):
1576 Pass in glob name as well.
1577 * tree-pass.h (struct dump_file_info): Add glob
1578 member.
1579
90689ae1
JM
15802005-02-14 Joseph S. Myers <joseph@codesourcery.com>
1581
1582 PR preprocessor/16323
1583 * doc/invoke.texi: Document that -Wendif-labels is on by default.
1584
8cb320b8
DE
15852005-02-14 David Edelsohn <edelsohn@gnu.org>
1586
1587 PR target/19019
2fe433c2 1588 * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
8cb320b8 1589 (trunctfdf2_internal1): New.
2fe433c2 1590 (trunctfdf2_internal2): Renamed from trunctfdf2.
8cb320b8 1591
9a06c1cb
DN
15922005-02-14 Diego Novillo <dnovillo@redhat.com>
1593
1594 PR tree-optimization/19853
1595 * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
1596
0c86d709
KH
15972005-02-14 Kazu Hirata <kazu@cs.umass.edu>
1598
1599 * passes.c (rest_of_handle_loop_optimize): Remove calls to
1600 delete_dead_jumptables and cleanup_cfg.
1601
e88d55cd
UW
16022005-02-14 Ulrich Weigand <uweigand@de.ibm.com>
1603
1604 * reload.c (find_reloads): Swap address_reloaded flags when
1605 swapping commutative operands.
1606
92d2b330 16072005-02-14 Sebastian Pop <pop@cri.ensmp.fr>
9a06c1cb 1608
92d2b330
SP
1609 * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
1610 Use standard_iv_increment_position for computing the bsi position
1611 for create_iv.
1612 * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
1613 the bsi position.
1614
af9ecd0c
ZD
16152005-02-13 Zdenek Dvorak <dvorakz@suse.cz>
1616
1617 PR target/17428
9a06c1cb
DN
1618 * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
1619 life range of hard registers.
1620 * value-prof.c (insn_prefetch_values_to_profile): Only
1621 scan normal insns.
af9ecd0c
ZD
1622
1623 * value-prof.c (rtl_find_values_to_profile): Do not look for values to
1624 profile in libcalls.
1625
90bb1c1f
NS
16262005-02-13 Nathan Sidwell <nathan@codesourcery.com>
1627
1628 * bitmap.h (bitmap_and_compl_into): Return bool.
1629 * bitmap.c (bitmap_and_compl_into): Return changed flag.
1630
623049aa
JM
16312005-02-13 James A. Morrison <phython@gcc.gnu.org>
1632
1633 PR tree-optimization/19944
1634 * fold-const.c (fold): Re-add ABS_EXPR folding.
1635
de17c25f
DE
16362005-02-13 David Edelsohn <edelsohn@gnu.org>
1637
1638 PR target/19019
1639 * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
1640 {TARGET,MASK}_XL_COMPAT.
1641 (SUBTARGET_SWITCHES): Rename xl-call to xl-compat. Use
1642 MASK_XL_COMPAT.
1643 * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
1644 * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
1645 TARGET_XL_COMPAT.
1646 (rs6000_arg_partial_bytes): Same.
1647 (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
1648 and XL compatibility enabled.
1649 * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
1650 * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
1651 test to final condition.
1652 (cmptf_internal2): New.
1653 * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
1654 xl-compat. Add TFmode information to description.
1655
e04369ac
KH
16562005-02-13 Kazu Hirata <kazu@cs.umass.edu>
1657
1658 * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
1659
38116e3d
JM
16602005-02-13 Jason Merrill <jason@redhat.com>
1661
38116e3d
JM
1662 PR c++/16405
1663 * fold-const.c (fold_indirect_ref_1): Split out from...
1664 (build_fold_indirect_ref): Here.
1665 (fold_indirect_ref): New fn.
1666 * tree.h: Declare it.
1667 * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
1668 (gimplify_modify_expr_rhs): Likewise.
1669 (gimplify_expr): Likewise.
1670
60a8fb5e
JM
16712005-02-13 James A. Morrison <phython@gcc.gnu.org>
1672
1673 PR tree-optimization/14303
1674 PR tree-optimization/15784
1675 * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
1676 Fold ABS_EXPR<x> < 0 to false. Fold ABS_EXPR<x> == 0 to x == 0 and
1677 ABS_EXPR<x> != 0 to x != 0.
1678
647eea9d
KH
16792005-02-12 Kazu Hirata <kazu@cs.umass.edu>
1680
1681 * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
1682 simplify-rtx.c, tree-ssa-live.h: Fix comment typos. Follow
1683 spelling conventions.
1684
6f9087d7
KH
1685 * passes.c (rest_of_handle_gcse): Don't run cse_main and
1686 delete_trivially_dead_insns too many times.
1687
ea24f64b
KH
1688 * passes.c (rest_of_handle_gcse): Remove dead assignments to
1689 tem and tem2.
1690
8ad833ac
IR
16912005-02-12 Ira Rosen <irar@il.ibm.com>
1692
1693 * tree-vectorizer.c (vect_get_base_and_offset): Remove.
1694 (vect_is_simple_iv_evolution): Remove redundant parameter
1695 and step check.
1696 (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
1697 without last parameter.
1698 (vect_analyze_pointer_ref_access): Get access_fn as parameter.
1699 Return pointer step. Call vect_is_simple_iv_evolution without
1700 last parameter. Check only that the step is multiple of size
1701 type. Remove stmt_vinfo updates.
1702 (vect_get_memtag_and_dr): Remove.
1703 (vect_get_memtag): New function.
1704 (vect_address_analysis): New function.
1705 (vect_object_analysis): New function.
1706 (vect_analyze_data_refs): Call vect_object_analysis and
1707 vect_get_memtag. Update stmt_vinfo fields.
1708
e3a8a4ed
IR
17092005-02-12 Ira Rosen <irar@il.ibm.com>
1710
1711 * tree-data-ref.c (array_base_name_differ_p): Check that the bases
1712 exist and are objects. Remove checks for pointer.
1713 * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
1714 STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
1715 (vect_create_data_ref_ptr): Likewise.
1716 (vect_base_addr_differ_p): New function.
1717 (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
1718 (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
1719 Don't set the DR_BASE_NAME field of data-ref.
1720 (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
1721
c94a75af
UB
17222005-02-12 Uros Bizjak <uros@kss-loka.si>
1723
1724 * optabs.h (enum optab_index): Add new OTI_ldexp.
1725 (ldexp_optab): Define corresponding macro.
1726 * optabs.c (init_optabs): Initialize ldexp_optab.
1727 * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
1728 patterns.
1729 * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
1730 using ldexp_optab.
1731 (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
1732 expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
1733
1734 * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
1735 to implement ldexpf, ldexp and ldexpl built-ins as inline x87
1736 intrinsics.
1737
e3a8a4ed 17382005-02-12 Ira Rosen <irar@il.ibm.com>
a5ae3ad6
IR
1739
1740 * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
1741 to base_address.
1742 * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
1743 stmt_vec_info.
1744 (vect_get_base_and_offset): Always return an address.
1745 (vect_create_addr_base_for_vector_ref): Remove treatment for
1746 different data reference types.
1747 (vect_compute_data_ref_alignment): Rename base to base_address in
1748 stmt_vec_info. Get the object in order to force its alignment.
1749 (vect_get_memtag_and_dr): Rename base to base_address in
1750 stmt_vec_info. Extract the object for memtag analysis.
1751
f4ddaddd
HPN
17522005-02-12 Hans-Peter Nilsson <hp@axis.com>
1753
1754 PR regression/19898.
1755 * config/cris/cris.c (cris_notice_update_cc): When testing if insn
1756 changes cc_status, use apply modified_in_p to part of cc_status
1757 and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
1758 body.
1759
7e7e470f
RH
17602005-02-11 Richard Henderson <rth@redhat.com>
1761
1762 * tree-complex.c (expand_complex_libcall): New.
1763 (expand_complex_multiplication): Use it for c99 compliance.
1764 (expand_complex_division): Likewise.
1765 * fold-const.c (fold_complex_add, fold_complex_mult): New.
1766 (fold): Call them.
1767 * builtins.c (built_in_names): Remove const.
1768 * tree.c (build_common_builtin_nodes): Build complex arithmetic
1769 builtins.
1770 * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
1771 (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
1772 (built_in_names): Remove const.
1773 * c-common.c (c_common_type_for_mode): Handle complex modes.
1774 * flags.h, toplev.c (flag_complex_method): Rename from
1775 flag_complex_divide_method.
1776 * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
1777 __mulsc3, __muldc3, __mulxc3, __multc3): New.
1778 * libgcc2.h: Declare them.
a310245f 1779 * libgcc-std.ver: Export them.
7e7e470f
RH
1780 * mklibgcc.in (lib2funcs): Build them.
1781
c33bae88
SB
17822005-02-11 Steven Bosscher <stevenb@suse.de>
1783
1784 PR tree-optimization/19876
1785 Partially revert my change from 2005-01-14
1786 * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
1787 (compute_antic): ...and remove the loop here.
1788
28f8ecf9
JJ
17892005-02-11 Jakub Jelinek <jakub@redhat.com>
1790
97e9692b
JJ
1791 PR middle-end/19858
1792 * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
1793 is number of inner's bits, avoid creating a BIT_FIELD_REF.
1794
28f8ecf9
JJ
1795 * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
1796 crtend.o if -pie. Use %{x:a;:b} spec syntax.
1797
d04b77ac
DJ
17982005-02-11 Daniel Jacobowitz <dan@codesourcery.com>
1799
1800 * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
1801 offsets for the big-endian 32-bit case.
1802
70406574
JM
18032005-02-11 Joseph S. Myers <joseph@codesourcery.com>
1804
1805 * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1806
7e42db17
DJ
18072005-02-11 Dale Johannesen <dalej@apple.com>
1808
1809 * cselib.c (cselib_process_insn): Clear out regs where
1810 HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
1811 * reload.c (find_equiv_reg): Ditto.
1812
f6254da4
ILT
18132005-02-11 Ian Lance Taylor <ian@airs.com>
1814
c5d97f6e
ILT
1815 * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
1816 with no elements.
1817
f6254da4
ILT
1818 * tree.c (build_function_type_list): Work correctly if there are
1819 no arguments.
1820
f4f41b4e
UW
18212005-02-11 Ulrich Weigand <uweigand@de.ibm.com>
1822
1823 * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
1824 "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
1825 ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
1826 TARGET_ZARCH instead of TARGET_64BIT.
1827
f203217e
RC
18282005-02-11 Ralf Corsepius <ralf.corsepius@rtems.org>
1829
1830 * config/rs6000/t-rtems:
1831 (MULTILIB_OPTIONS): Remove mcpu=602.
1832 (MUTLILIB_DIRNAMES): Remove m602.
2cdc2073 1833 (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
f203217e
RC
1834 Let mcpu=602 match mcpu=603.
1835 (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
1836
9dcab61e
JDA
18372005-02-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1838
1839 * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
1840 signal trampolines.
1841
70ad1f9f
DD
18422005-02-10 David Daney <ddaney@avtrex.com>
1843
1844 * config/alpha/linux-unwind.h: Add exception clause to copyright.
1845 * config/i386/linux-unwind.h: Likewise.
1846 * config/ia64/linux-unwind.h: Likewise.
1847 * config/mips/linux-unwind.h: Likewise.
1848 * config/pa/linux-unwind.h: Likewise.
1849 * config/rs6000/linux-unwind.h: Likewise.
1850 * config/s390/linux-unwind.h: Likewise.
1851 * config/sh/linux-unwind.h: Likewise.
1852 * config/sparc/linux-unwind.h: Likewise.
1853
3b6616dd
SB
18542005-02-10 Steven Bosscher <stevenb@suse.de>
1855
1856 PR tree-optimization/17549
1857 * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
1858 TER to replace a DEF with its expression if the DEF and the
1859 rhs of the expression we replace into have the same root
1860 variable.
1861
a0c5992a
RS
18622005-02-10 Richard Sandiford <rsandifo@redhat.com>
1863
1864 * config/mips/mips.md: Fix the placement of the match_scratch in the
1865 lea64 peephole2.
1866
0388d40a
KH
18672005-02-10 Kazu Hirata <kazu@cs.umass.edu>
1868
1869 * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
1870 Fix comment typos.
1871
f5e2738c
ZD
18722005-02-10 Zdenek Dvorak <dvorakz@suse.cz>
1873
1874 * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
1875 (strip_offset): Handle addresses.
1876 (add_address_candidates): Use strip_offset.
1877 (difference_cost): Reflect strip_offset change.
1878 (force_var_cost, difference_cost): Strip nops.
1879
33d6a74c
KH
18802005-02-10 Kazu Hirata <kazu@cs.umass.edu>
1881
1882 * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
1883
c486021d
KH
1884 * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
1885 tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
1886 config/cris/cris-protos.h, config/cris/cris.c: Update
1887 copyright.
1888
8d6f7195
JL
18892005-02-10 Jeff Law <law@redhat.com>
1890
1891 * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
1892 (lookup_avail_expr): Similarly.
1893
ba78d452
RG
18942005-02-10 Richard Guenther <rguenth@gcc.gnu.org>
1895
1896 * builtins.c (fold_builtin_powi): New function.
1897 (fold_builtin_1): Call it.
1898
0d3e9f35
SB
18992005-02-10 Steven Bosscher <stevenb@suse.de>
1900
1901 PR documentation/19309
1902 * doc/cpp.texi: The __GNUC__ and related predefined macros
1903 are also defined for the "standalone" cpp.
1904 Some non-GCC compilers may also define __GNUC__.
1905
ccf7f880
JJ
19062005-02-10 Jakub Jelinek <jakub@redhat.com>
1907
1908 PR c/19342
1909 * c-typeck.c (common_type): New routine. Old common_type renamed
1910 to...
1911 (c_common_type): ...this.
1912 (build_conditional_expr, build_binary_op): Use c_common_type instead
1913 of common_type.
1914
b49900cc
SB
19152005-02-10 Steven Bosscher <stevenb@suse.de>
1916
1917 * doc/md.texi: Replace @samp{length} with @code{length}.
1918
ca4c3169
ZD
19192005-02-09 Zdenek Dvorak <dvorakz@suse.cz>
1920
1921 PR tree-optimization/18687
1922 * tree-flow.h (find_loop_niter): Declare.
1923 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
1924 Try using scev even for loops with more than one exit.
1925 * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
1926 (struct ivopts_data): Added niters field.
1927 (struct nfe_cache_elt): New.
1928 (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
1929 functions.
1930 (tree_ssa_iv_optimize_init): Initialize niters cache.
1931 (determine_number_of_iterations): Removed.
1932 (find_induction_variables): Do not call determine_number_of_iterations.
1933 Access niters for single exit through niter_for_single_dom_exit.
1934 (add_iv_outer_candidates): Access niters for single exit through
1935 niter_for_single_dom_exit.
1936 (may_eliminate_iv): Take data argument. Use niter_for_exit. Do not use
1937 number_of_iterations_cond.
1938 (iv_period): New function.
1939 (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
1940 (may_replace_final_value): Take data argument. Use
1941 niter_for_single_dom_exit.
1942 (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
1943 (rewrite_use_compare): Pass data to may_eliminate_iv.
1944 (rewrite_use_outer): Pass data to may_replace_final_value.
1945 (free_loop_data): Clean up the niters cache.
1946 (tree_ssa_iv_optimize_finalize): Free the niters cache.
1947 (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
1948 * tree-ssa-loop-niter.c (find_loop_niter): New function.
1949 (find_loop_niter_by_eval): Use tree_int_cst_lt.
1950 (num_ending_zeros): Moved to tree.c.
1951 * tree.h (num_ending_zeros): Declare.
1952 * tree.c (num_ending_zeros): Moved from tree.c.
1953
c6a912da
RH
19542005-02-09 Richard Henderson <rth@redhat.com>
1955
1956 * builtins.c (DEF_BUILTIN): Add COND argument.
1957 * tree.h (DEF_BUILTIN): Likewise.
1958 * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
1959 DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
1960 match.
1961 (DEF_BUILTIN_STUB): New.
1962 (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
1963 BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
1964 BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
1965 * c-common.c (DEF_BUILTIN): Add COND argument.
1966 * tree.c (local_define_builtin): New.
1967 (build_common_builtin_nodes): New.
1968
e3bb43c0
RS
19692005-02-09 Roger Sayle <roger@eyesopen.com>
1970
1971 * fold-const.c (fold_strip_sign_ops): New function to simplify a
1972 floating point expression ignoring the sign of the result.
1973 (fold) <ABS_EXPR>: Use it to simplify fabs(x).
1974 (fold) <MULT_EXPR>: Use it to simplify x*x.
1975 * tree.h (fold_strip_sign_ops): Prototype here.
1976 * builtins.c (fold_builtin_copysign): Take an additional FNDECL
1977 argument. Use fold_strip_sign_ops to simplify the first argument.
1978 (fold_builtin_pow): Use fold_strip_sign_ops to simplify the
1979 first argument when the second argument is an even integer
1980 constant, but only with -funsafe_math_optimizations.
1981 (fold_builtin_1): Update call to fold_builtin_copysign.
1982
5eefcf2f
ILT
19832005-02-09 Ian Lance Taylor <ian@airs.com>
1984
1985 PR middle-end/19583
1986 * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
1987 just check whether EH_FILTER_FAILURE falls through.
1988
dab80c81
AK
19892005-02-09 Andreas Krebbel <krebbel1@de.ibm.com>
1990
1991 * gcc/haifa-sched.c (schedule_block): Make queued sched group
1992 insns return to ready list in the next turn.
1993
17684d46
RG
19942005-02-09 Richard Guenther <rguenth@gcc.gnu.org>
1995
1996 PR middle-end/19402
1997 * builtins.def: New __builtin_powi[lf].
1998 * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
1999 (expand_builtin_powi): New function.
2000 (expand_builtin): Dispatch to expand_builtin_powi.
2001 * libgcc2.h: Add prototypes for __builtin_powi[lf].
2002 * libgcc2.c: Add __builtin_powi[lf] implementation.
2003 * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
2004 * optabs.h: Add powi_optab.
2005 * optabs.c (init_optabs): Initialize powi_optab.
2006 * doc/extend.texi: Document __builtin_powi[lf].
2007
8ca3515f
DN
20082005-02-09 Dorit Naishlos <dorit@il.ibm.com>
2009
2cdc2073 2010 * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
8ca3515f
DN
2011 exists.
2012
0c6c135b
RG
20132005-02-09 Richard Guenther <rguenth@gcc.gnu.org>
2014
2015 PR middle-end/19854
2016 * fold-const.c (try_move_mult_to_index): Remove redundant
2017 type argument. Create ADDR_EXPR with correct type.
2018 (fold): Update callers of try_move_mult_to_index. Convert
2019 result to the appropriate type.
2020
8f2bf9f1
RS
20212005-02-09 Roger Sayle <roger@eyesopen.com>
2022
2023 PR target/19597
2024 * config/avr/avr.c (default_rtx_costs): Delete.
2025 (avr_operand_rtx_cost): New function.
2026 (avr_rtx_costs): Completely rewrite.
2027
453bd0f5
HPN
20282005-02-08 Hans-Peter Nilsson <hp@axis.com>
2029
2030 PR target/19806
2031 * config/cris/cris.c (in_code): New variable.
2032 (cris_output_addr_const): Now a static function, a wrapper for
2033 output_addr_const.
2034 (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
2035 case from old cris_output_addr_const.
2036 (cris_asm_output_label_ref): Similar for LABEL_REF.
2037 (cris_output_addr_const_extra): Similar for UNSPEC.
2038 * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
2039 (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
2040 * config/cris/cris-protos.h (cris_output_addr_const): Remove
2041 declaration.
2042 (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
2043 (cris_asm_output_label_ref): Declare.
2044
749c6ef9
PB
20452005-02-08 Paolo Bonzini <bonzini@gnu.org>
2046
2047 PR preprocessor/19801
2048 * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
2049 filenames that changed when libcpp was moved to the toplevel.
2050
f8eacd97
RS
20512005-02-07 Roger Sayle <roger@eyesopen.com>
2052
2053 * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
2054 zero extensions of BImode operands. Call lowpart_subreg instead
2055 of gen_lowpart_common and gen_lowpart_SUBREG.
2056
1e3fad21
NN
20572005-02-07 Nathanael Nerode <neroden@gcc.gnu.org>
2058
2059 PR ada/19489
2060 * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
2061 * configure.ac: Set cc_for_cross_gnattools.
2062 * configure: Regenerate.
2063
b0ad2de2
AM
20642005-02-08 Alan Modra <amodra@bigpond.net.au>
2065
2066 PR target/19803
2067 * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
2068
b950a32e
EB
20692005-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2070
2071 PR debug/19327
2072 * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
2073 of nested functions.
2074
6871294a
JW
20752005-02-07 Jonathan Wakely <redi@gcc.gnu.org>
2076
2077 * doc/extend.texi: Document deprecated extensions allowing
2078 static floating-point members to have initializers and allowing
2079 floating-point literals in integral constant expressions.
2080
17385e0d
KH
20812005-02-07 Kazu Hirata <kazu@cs.umass.edu>
2082
2083 * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
2084 config/darwin7.h, config/mips/mips.c,
2085 config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
2086 Update copyright.
2087
459281be
KH
2088 * cse.c: Update comments.
2089
6a96f5c1
RG
20902005-02-07 Richard Guenther <rguenth@gcc.gnu.org>
2091
2092 PR middle-end/19775
2093 * builtins.c (fold_builtin_sqrt): Transform
2094 sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
2095 pow(x,y*0.5).
2096
c866976a
LB
20972005-02-07 Leehod Baruch <leehod@il.ibm.com>
2098 Dorit Naishlos <dorit@il.ibm.com>
2099
2100 * doc/invoke.texi (ftree-vectorizer-verbose): New.
2101 * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
2102 * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
2103 was added.
2104 * tree.h (vect_set_verbosity_level): New extern function declaration
2105 added.
2106 * tree-vectorizer.h (verbosity_levels): New enum type.
2107 * tree-vectorizer.c (vect_debug_stats): Function removed.
2108 (vect_debug_details): Likewise.
2109 (vect_verbosity_level): Global variable was defined and initialized.
2110 (vect_dump): Global variable definition.
2111 (vect_print_dump_info): New function.
2112 (vect_set_dump_settings): New function.
2113 (vect_set_verbosity_level): New function.
2114 (vectorize_loops): Add call to vect_set_dump_settings.
2115
2116 (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
2117 (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
2118 (slpeel_tree_peel_loop_to_edge): Likewise.
2119
2120 (vect_analyze_offset_expr): Call to vect_print_dump_info with
2cdc2073
ZW
2121 appropriate verbosity level instead of call to vect_debug_details
2122 or vect_debug_stats.
c866976a
LB
2123 (vect_get_base_and_offset):
2124 (vect_create_addr_base_for_vector_ref):
2125 (get_vectype_for_scalar_type):
2126 (vect_create_data_ref_ptr):
2127 (vect_init_vector):
2128 (vect_get_vec_def_for_operand):
2129 (vect_finish_stmt_generation):
2130 (vectorizable_assignment):
2131 (vectorizable_operation):
2132 (vectorizable_store):
2133 (vectorizable_load):
2134 (vect_transform_stmt):
2135 (vect_update_ivs_after_vectorizer):
2136 (vect_do_peeling_for_loop_bound):
2137 (vect_update_inits_of_drs):
2138 (vect_do_peeling_for_alignment):
2139 (vect_transform_loop):
2140 (vect_is_simple_use):
2141 (vect_analyze_operations):
2142 (vect_is_simple_iv_evolution):
2143 (vect_analyze_scalar_cycles):
2144 (vect_analyze_data_ref_dependence):
2145 (vect_analyze_data_ref_dependences):
2146 (vect_compute_data_ref_alignment):
2147 (vect_enhance_data_refs_alignment):
2148 (vect_analyze_data_refs_alignment):
2149 (vect_analyze_data_ref_access):
2150 (vect_analyze_data_ref_accesses):
2151 (vect_analyze_pointer_ref_access):
2152 (vect_get_memtag_and_dr):
2153 (vect_analyze_data_refs):
2154 (vect_mark_relevant):
2155 (vect_stmt_relevant_p):
2156 (vect_mark_stmts_to_be_vectorized):
2157 (vect_can_advance_ivs_p):
2158 (vect_get_loop_niters):
2159 (vect_analyze_loop_form):
2160 (vect_analyze_loop):
2161 (vectorize_loops): Likewise.
2162
2163 (vect_do_peeling_for_loop_bound): Dump format slightly changed.
2164 (vect_update_inits_of_drs):
2165 (vect_do_peeling_for_alignment):
2166 (vect_transform_loop):
2167 (vect_analyze_operations):
2168 (vect_analyze_scalar_cycles):
2169 (vect_analyze_data_ref_dependences):
2170 (vect_analyze_data_refs_alignment):
2171 (vect_analyze_data_ref_accesses):
2172 (vect_analyze_data_refs):
2173 (vect_mark_stmts_to_be_vectorized):
2174 (vect_get_loop_niters):
2175 (vect_analyze_loop_form):
2cdc2073 2176 (vect_analyze_loop): Likewise.
c866976a
LB
2177 (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
2178
88ab13d6
RS
21792005-02-07 Richard Sandiford <rsandifo@redhat.com>
2180
2181 PR bootstrap/19796
2182 Revert:
2183 2005-01-26 Richard Sandiford <rsandifo@redhat.com>
2184 * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
2185 either -ffast-math or -funsafe-math-optimizations is in use.
2186
2187 2005-01-24 Richard Sandiford <rsandifo@redhat.com>
2188 * config/mips/irix-csr.c: New file.
2189 * config/mips/t-iris6 (irix-csr.o): New rule to build it.
2190 (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
2191 * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
2192 executables.
2193
a701780f
AO
21942005-02-07 Alexandre Oliva <aoliva@redhat.com>
2195
dcb15c6c
AO
2196 * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
2197 redundant, incorrect definitions.
2198
a701780f
AO
2199 * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
2200 expand.
2201 ("*tls_indirect_call"): New, reference hard regs directly.
2202 * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
2203
888b0310
RC
22042005-02-07 Ralf Corsepius <ralf.corsepius@rtems.org>
2205
2cdc2073 2206 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
888b0310
RC
2207 Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
2208
b1a22407
RS
22092005-02-06 Roger Sayle <roger@eyesopen.com>
2210
2211 PR rtl-optimization/19800
7f5c93ac 2212 * simplify_rtx.c (simplify_relational_operation_1): Explicitly
b1a22407
RS
2213 call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
2214 gen_lowpart.
2215
149056b0
RC
22162005-02-07 Ralf Corsepius <ralf.corsepius@rtems.org>
2217
2218 * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
2219
3e8cb558
JM
22202005-02-07 Joseph S. Myers <joseph@codesourcery.com>
2221
2222 PR other/17135
2223 * doc/invoke.texi: Correct documentation of -freorder-functions.
2224
ee86feaf
JM
22252005-02-06 Joseph S. Myers <joseph@codesourcery.com>
2226
2227 PR other/14402
2228 * doc/invoke.texi: Don't mention gccbug.
2229
1419a885
RS
22302005-02-06 Roger Sayle <roger@eyesopen.com>
2231 Andrew Pinski <pinskia@physics.uc.edu>
2232 Paolo Bonzini <paolo.bonzini@lu.unisi.ch>
2233
2234 * simplify-rtx.c (simplify_relational_operation_1): Simplify
2235 (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
2236 into just (zero_extract:SI FOO (const_int 1) BAR).
2237
706bb773
JM
22382005-02-06 Joseph S. Myers <joseph@codesourcery.com>
2239
2240 * doc/cpp.texi: Include gcc-common.texi. Don't define gcctabopt
2241 macro locally. Don't give last revision date. Use GCC version
2242 number from gcc-common.texi.
2243 * doc/cppinternals.texi: Include gcc-common.texi. Don't give last
2244 revision date. Use GCC version number from gcc-common.texi.
2245 Describe being a library as current state rather than as 3.x
2246 history.
2247 * doc/gcc.texi: Remove last update date.
2248 * doc/gccint.texi: Likewise. Update copyright dates.
2249 * doc/install.texi: Update copyright dates.
2250
69cdf050
JM
22512005-02-06 Joseph S. Myers <joseph@codesourcery.com>
2252
2253 PR other/7549
2254 * doc/invoke.texi: Mention for each option included in -Wall that
2255 it is included in -Wall.
2256 * doc/gcc.texi: Update copyright and last modification date.
2257
3520b745
ZD
22582005-02-06 Zdenek Dvorak <dvorakz@suse.cz>
2259
2260 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
2261 unnecessary cast to original induction variable increments.
2262
b0a168b6
ZD
22632005-02-06 Zdenek Dvorak <dvorakz@suse.cz>
2264
2265 PR tree-optimization/18219
2266 * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
2267 in distributed form.
2268
2c58f7dd
RS
22692005-02-06 Richard Sandiford <rsandifo@redhat.com>
2270
2271 * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
2272 Set bitpos and offset later in the function. Do nothing if the
2273 target is a register and if the bitfield lies completely outside
2274 that register.
2275 (extract_bit_field): Make the same SUBREG, bitpos and offset changes
2276 here. Return an uninitialised register if the source value is stored
2277 in a register and the bitfield lies completely outside that register.
2278
55c4ae3f
SB
22792005-02-06 Steven Bosscher <stevenb@suse.de>
2280
2281 * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
2282 not SET_DEST.
2283
cbd13f8a
MD
22842005-02-06 Marcin Dalecki <martin@dalecki.de>
2285
2286 * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
2287
f1b4c8d8
GK
22882005-02-06 Geoffrey Keating <geoffk@apple.com>
2289
2290 * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
2291 * config/darwin8.h: New.
2292 * config/darwin7.h: Update comment.
2293
773af5d0
LB
22942005-02-03 Leehod Baruch <leehod@il.ibm.com>
2295 Dorit Naishlos <dorit@il.ibm.com>
2296
2297 * tree-vectorizer.h (LOC): New type.
2298 (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
2299 (loop_line_number): New field in struct _loop_vec_info.
2300 (LOOP_VINFO_LOC, LOOP_LOC): New macros.
2301
2302 * tree-vectorizer.c (input.h): Included.
2303 (find_loop_location): New function.
2304 (vect_debug_stats): Argument changed from loop to LOC. Computation of
2305 loop line number removed.
2306 (vect_debug_details): Likewise.
2307 (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
2308
2309 (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
2310 call to vect_debug_details/stats changed from loop to loop_loc.
2311 (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
2312 (slpeel_tree_peel_loop_to_edge): Likewise.
2313
2314 (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
2315 changed from NULL to UNKNOWN_LOC.
2316 (vect_get_base_and_offset):
2317 (vect_create_addr_base_for_vector_ref):
2318 (get_vectype_for_scalar_type):
2319 (vect_create_data_ref_ptr):
2320 (vect_init_vector):
2321 (vect_get_vec_def_for_operand):
2322 (vect_finish_stmt_generation):
2323 (vectorizable_assignment):
2324 (vectorizable_operation):
2325 (vectorizable_store):
2326 (vectorizable_load):
2327 (vect_transform_stmt):
2328 (vect_update_ivs_after_vectorizer):
2329 (vect_do_peeling_for_loop_bound):
2330 (vect_do_peeling_for_alignment):
2331 (vect_transform_loop):
2332 (vect_is_simple_use):
2333 (vect_analyze_operations):
2334 (vect_is_simple_iv_evolution):
2335 (vect_analyze_scalar_cycles):
2336 (vect_analyze_data_ref_dependences):
2337 (vect_compute_data_ref_alignment):
2338 (vect_enhance_data_refs_alignment):
2339 (vect_analyze_data_ref_access):
2340 (vect_analyze_data_ref_accesses):
2341 (vect_analyze_pointer_ref_access):
2342 (vect_get_memtag_and_dr):
2343 (vect_analyze_data_refs):
2344 (vect_mark_relevant):
2345 (vect_stmt_relevant_p):
2346 (vect_mark_stmts_to_be_vectorized):
2347 (vect_can_advance_ivs_p):
2348 (vect_get_loop_niters):
2349 (vect_analyze_loop):
2350 (vectorize_loops): Likewise.
2351
2352 (vectorizable_load): Argument in call to vect_debug_details/stats
2353 changed from loop to LOOP_LOC (loop_vinfo).
2354 (vect_transform_loop):
2355 (vect_analyze_operations):
2356 (vect_analyze_scalar_cycles):
2357 (vect_analyze_data_ref_dependence):
2358 (vect_enhance_data_refs_alignment):
2359 (vect_analyze_data_ref_accesses):
2360 (vect_analyze_pointer_ref_access):
2361 (vect_analyze_data_refs):
2362 (vect_analyze_loop): Likewise.
2363
2364 (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
2365 changed from loop to loop_loc.
2366
2cdc2073 2367 (vect_enhance_data_refs_alignment): Removed unused variable loop.
773af5d0 2368
ef302293
LB
23692005-02-03 Leehod Baruch <leehod@il.ibm.com>
2370 Dorit Naishlos <dorit@il.ibm.com>
2371
2372 * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
2373 declaration added.
2374 (vect_analyze_data_ref_dependences): Likewise.
2375
2376 (vect_is_simple_use): Argument changed from loop structure to
2377 loop_vect_info structure.
2378 (vect_can_advance_ivs_p): Likewise.
2379 (vect_create_index_for_vector_ref): Likewise.
2380 (vect_update_ivs_after_vectorizer): Likewise.
2381 (new_stmt_vec_info): Likewise.
2cdc2073 2382
ef302293
LB
2383 (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
2384 changed from loop to loop_vinfo.
2385 (vect_create_data_ref_ptr): First argument in call to
2386 vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
2387 (vectorizable_assignment): Second argument in call to vect_is_simple_use
2388 was changed from loop to loop_vinfo.
2389 (vectorizable_operation): Likewise.
2390 (vectorizable_store): Likewise.
2391 (vect_mark_stmts_to_be_vectorized): Likewise.
2392 (vect_do_peeling_for_loop_bound): First argument in call to
2393 vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
2394 (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
2395 was changed from loop to loop_vinfo.
2396 (vect_analyze_data_ref_dependences): Third argument in call to
2397 vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
2cdc2073 2398
ef302293
LB
2399 (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
2400 (vect_create_data_ref_ptr): Likewise.
2401 (vect_init_vector): Likewise.
2402 (vect_get_vec_def_for_operand): Likewise.
2403 (vectorizable_assignment): Likewise.
2404 (vectorizable_operation): Likewise.
2405 (vectorizable_store): Likewise.
2406 (vectorizable_load): Likewise.
2407 (vect_update_ivs_after_vectorizer): Likewise.
2408 (vect_is_simple_use): Likewise.
2409 (vect_analyze_data_ref_dependence): Likewise.
2410 (vect_analyze_pointer_ref_access): Likewise.
2411 (vect_can_advance_ivs_p): Likewise.
2412
2413 * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
2414 before _stmt_vec_info.
2415 (_stmt_vec_info): Loop field replaced by loop_vec_info.
2416 (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
2417 (new_stmt_vec_info): Argument changed from loop structure to
2418 loop_vect_info structure
2419
2420 (vect_analyze_data_ref_dependences): Unnecessary line was removed.
2421 (vect_analyze_offset_expr): Avoid 80 columns overflow.
2422 (vect_create_addr_base_for_vector_ref): Likewise.
2423 (vect_analyze_pointer_ref_access): Likewise.
2424
9df935d8
AP
24252005-02-03 Andrew Pinski <pinskia@physics.uc.edu>
2426
2427 PR tree-opt/19768
2428 * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
2429 phi flag if the phi is abnormal.
2430
50d4a707
AP
24312005-02-03 Andrew Pinski <pinskia@physics.uc.edu>
2432
2433 PR tree-opt/19736
2434 * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
2435 information for the new statement.
2436
cd21f044
JM
24372005-02-03 Joseph S. Myers <joseph@codesourcery.com>
2438
2439 PR driver/19117
2440 * gcc.c (main): Include the target in -v output.
2441
aa2d0bc3
AO
24422005-02-03 Alexandre Oliva <aoliva@redhat.com>
2443
2444 * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
2445 Do not drop the extend if we'd have to add a paradoxical subreg
2446 later. Include optabs.h and insn-codes.h.
2447 * Makefile.in (combine.o): Depend on $(OPTABS_H).
2448
762297d9
RS
24492005-02-02 Roger Sayle <roger@eyesopen.com>
2450
2451 PR middle-end/19405
2452 * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
2453 * fold-const.c (const_binop): Avoid constant folding floating
2454 point operations in modes that use composite representations.
2455 * simplify-rtx.c (simplify_binary_operation): Likewise.
2456
666158b9
GK
24572005-02-02 Geoffrey Keating <geoffk@apple.com>
2458
2459 * config/rs6000/altivec.md (altivec_dst): Make the first operand
2460 a REG, not a MEM.
2461 (altivec_dstt): Likewise.
2462 (altivec_dstst): Likewise.
2463 (altivec_dststt): Likewise.
2464 * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
2465 of first operand.
2466
cce4ca55
DN
24672005-02-03 Dorit Naishlos <dorit@il.ibm.com>
2468
2469 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
2470 EXPR_LOCUS from orig_cond to the new cond_stmt.
2471 (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
2472 the new vec_stmt.
2473
24742005-02-03 Dorit Naishlos <dorit@il.ibm.com>
2475
2476 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
2cdc2073 2477 standard_iv_increment_position. Remove call to bsi_next
cce4ca55
DN
2478 (no need to bump the iterator anymore).
2479 (vect_create_index_for_vector_ref): Call
2480 standard_iv_increment_position. Remove second function argument.
2cdc2073 2481 (vect_finish_stmt_generation): Remove call to bsi_next
cce4ca55
DN
2482 (no need to bump the iterator anymore).
2483 (vect_create_data_ref_ptr): Remove second argument (bsi) in call
2484 to vect_create_index_for_vector_ref.
2485
24862005-02-03 Dorit Naishlos <dorit@il.ibm.com>
2487
2488 * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
2489 phis are used out of the loop.
2490
73aea290
JM
24912005-02-03 Joseph S. Myers <joseph@codesourcery.com>
2492
2493 PR c/17807
2494 * c-decl.c (undef_nested_function): New variable.
2495 (pop_scope): Diagnose undefined nested functions.
2496 (finish_function): Don't attempt cgraph processing or genericizing
2497 if current top-level function contained an undefined nested
2498 function. Reset undef_nested_function at the end of a top-level
2499 function.
2500
89d12f5d
ZD
25012005-02-02 Zdenek Dvorak <dvorakz@suse.cz>
2502
2503 * tree.c (build_int_cst_type): Take sign of the value into account
2504 when deciding whether sign extend the value.
2505
740ca4b2
JM
25062005-02-02 Joseph S. Myers <joseph@codesourcery.com>
2507
2508 PR c/18502
2509 * gcc.c (cpp_unique_options): Remove %{trigraphs}.
2510 (cpp_options, cc1_options): Change %{std*&ansi} to
2511 %{std*&ansi&trigraphs}.
2512
a52aff23
KH
25132005-02-02 Kazu Hirata <kazu@cs.umass.edu>
2514
2515 * cse.c: Update comments.
2516
cf676baa
AH
25172005-02-02 Aldy Hernandez <aldyh@redhat.com>
2518
2519 * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
2520 arguments go on the stack. Do not put complex doubles in odd/even
2521 pairs.
2522
08711fdf
SB
25232005-02-02 Steven Bosscher <stevenb@suse.de>
2524
2525 * doc/invoke.texi: Update the options enabled at -O1, -O2,
2526 and -O3. Update the documentation for -fgcse-sm, -fgcse-las,
2527 -ftree-pre, and -fthread-jumps.
2528
7ded35b4
RS
25292005-02-02 Richard Sandiford <rsandifo@redhat.com>
2530
2531 PR tree-optimization/19578
2532 * tree-flow.h (modified_noreturn_calls): Declare.
2533 (noreturn_call_p): Declare.
2534 * tree-flow-inline.h (noreturn_call_p): New function.
2535 (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
2536 * tree-cfg.c (modified_noreturn_calls): New variable.
2537 (cleanup_control_flow): Use noreturn_call_p. Split basic blocks
2538 that contain a mid-block noreturn call.
2539 * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
2540
d01da8bd
KH
25412005-02-02 Kazu Hirata <kazu@cs.umass.edu>
2542
2543 * df.c (df_def_record_1, df_uses_record): Don't use
2544 DF_FOR_REGALLOC.
2545 * df.h (DF_FOR_REGALLOC): Remove.
2546
493179da
JM
25472005-02-02 Joseph S. Myers <joseph@codesourcery.com>
2548
2549 PR c/19435
2550 * c-typeck.c (really_start_incremental_init): Reset
2551 constructor_max_index for arrays of incomplete type.
2552
ed425871
JL
25532005-02-02 Jeff Law <law@redhat.com>
2554
2555 * gcse.c (struct reg_set): Store the block index where the register
2556 was set rather than the setting insn.
2557 (record_one_set, compute_transp): Corresponding changes.
2558 (pre_insert_copy_insn): Do not call replace_one_set.
2559 (replace_one_set): Remove.
2560
d02d7104
JM
25612005-02-02 Joseph S. Myers <joseph@codesourcery.com>
2562
2563 PR other/15514
2564 * doc/gcov.texi: Fix typo.
2565
c1c5b5e3
RH
25662005-02-01 Richard Henderson <rth@redhat.com
2567
2568 PR target/19680
2569 * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
2570 * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
2571 type to bool.
2572 (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
2573 * config/i386/i386-protos.h: Update.
2574
7a442a1d
SB
25752005-02-01 Steven Bosscher <stevenb@suse.de>
2576
2577 PR tree-optimization/19217
2578 * tree-cfg.c (verify_expr): Use the data field to see if TP was
2579 seen inside a PHI node. Do not do the ADDR_EXPR check if it was.
2580 (verify_stmts): Pass (void*)1 as data to verify_expr to signal
2581 that it is walking a PHI node.
2582
475b6e22
JM
25832005-02-01 Joseph S. Myers <joseph@codesourcery.com>
2584
2585 * doc/extend.texi (Nested Functions): Update.
2586
ca58f2bc
RH
25872005-02-01 Richard Henderson <rth@redhat.com>
2588
2589 PR 19696
2590 * optabs.c (expand_copysign_absneg): Export.
2591 * optabs.h (expand_copysign_absneg): Declare.
2592 * config/rs6000/rs6000.md (copysigntf3): New.
2593
a1d13fa1
DN
25942005-02-01 Diego Novillo <dnovillo@redhat.com>
2595
2596 PR tree-optimization/19633
2597 * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
2598 * tree-ssa-alias.c (init_alias_info): Initialize.
2599 (merge_pointed_to_info): Set.
2600 (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
2601 (dump_points_to_info_for): Show value of pt_null.
2602 (struct count_ptr_d): Declare.
2603 (find_ptr_dereference): Remove.
2604 (ptr_is_dereferenced_by): Remove.
2605 (count_ptr_derefs): New local function.
2606 (count_uses_and_derefs): New local function.
2607 (compute_points_to_and_addr_escape): Call it. If the number
2608 of dereferences is greater than zero, mark the pointer as
2609 dereferenced. If there are fewer dereferences than uses of
2610 the pointer, the pointer's value escapes.
2611
28a3618f
DN
26122005-02-01 Diego Novillo <dnovillo@redhat.com>
2613
2614 PR tree-optimization/19670
2615 * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
2616 here...
2617 (verify_use): ... set it here, instead.
2618
8d2d2ec6
JJ
26192005-02-01 Janis Johnson <janis187@us.ibm.com>
2620
cc95a845
JJ
2621 * doc/sourcebuild.texi (Test directives): Fix formatting.
2622
8d2d2ec6
JJ
2623 * doc/sourcebuild.texi (Test directives): Describe selector
2624 expressions.
2625
d1c8addb
SB
26262005-02-01 Segher Boessenkool <segher@kernel.crashing.org>
2627
2628 * config.gcc (powerpc64-*-linux*): Default to -m64 also for
2629 specific 64-bit CPUs.
2630
6555b6bd
RE
26312005-02-01 Richard Earnshaw <rearnsha@arm.com>
2632
2633 PR target/16201
2634 * arm.c (arm_eliminable_register): New function.
2635 (adjacent_mem_locations): Don't allow eliminable registers. Use
2636 HOST_WIDE_INT for address offsets.
2637 * arm-protos.h (arm_eliminable_register): Add prototype.
2638
bbcb0c05
SB
26392005-02-01 Steven Bosscher <stevenb@suse.de>
2640
2641 PR optimization/15242
2642 * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
2643 * basic-block.h (duplicate_computed_gotos): Add prototype.
2644 * bb-reorder.c (duplicate_computed_gotos): New function to
2645 duplicate sufficiently small blocks ending in a computed jump.
2646 * passes.c (rest_of_compilation): Call duplicate_computed_gotos
2647 if not optimizing for size.
2648 * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
2649 never do tail merging for blocks ending in a computed jump.
2650 * doc/invoke.texi: Document the max-goto-duplication-insns param.
2651
9c0a30c3
EB
26522005-02-01 Eric Botcazou <ebotcazou@libertysurf.fr>
2653
2654 Patch from Richard Sandiford <rsandifo@redhat.com>
2655 * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
2656 from inheriting a subreg equivalence with a non-spill register.
2657
2658 * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
2659
7b150713
AO
26602005-02-01 Alexandre Oliva <aoliva@redhat.com>
2661
2662 * config/frv/frv.c (movcc_fp_destination_operand): New.
2663 (gpr_or_memory_operand): Fix typo in comment.
2664 (gpr_or_memory_operand_with_scratch): New.
2665 * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
2666 * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
2667 movcc_fp_destination_operand.
2668 (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
2669 Legitimize memory addresses using a scratch register.
2670
dc5d4efb
JL
26712005-01-31 Jeff Law <law@redhat.com>
2672
7d793e36
JL
2673 * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
2674 bitmap a sparse bitmap instead of a simple bitmap.
2675 (mark_def_sites_initialize_block): Corresponding changes.
2676 (ssa_mark_def_sites_initialize_block): Likewise.
2677 (ssa_mark_phi_uses): Likewise.
2678 (mark_def_site, ssa_mark_def_sites): Likewise.
2679 (mark_def_site_blocks): Likewise.
2680 (rewrite_ssa_into_ssa): Likewise.
2681
5746637c
JL
2682 * tree-ssa-dom.c (record_cond): Pass correct variable type
2683 for last argument to htab_find_slot_with_hash.
2684
2685 * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
2686 effects when optimizing 0 % X. Do not try to optimize X % 0.
dc5d4efb 2687
3dcec1e9
JW
26882005-01-31 James E. Wilson <wilson@specifixinc.com>
2689
2690 * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
2691 1_mmalua.
2692
fc474307
EC
26932005-02-01 Eric Christopher <echristo@redhat.com>
2694
2695 * config/mips/mips.c (override_options): Warn if -mint64
2696 is used.
2697 * doc/invoke.texi (MIPS Options): Document that -mint64 is
2698 deprecated.
2699
bc5e3b54
KH
27002005-02-01 Kazu Hirata <kazu@cs.umass.edu>
2701
2702 * cse.c (cse_reg_info): Remove hash_next, next, regno. Add
2703 timestamp.
2704 (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
2705 REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
2706 cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
2707 (cached_regno): Initialize to INVALID_REGNUM.
2708 (cse_reg_info_table_size,
2709 cse_reg_info_table_first_uninitialized,
2710 cse_reg_info_timestamp): New.
2711 (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
2712 get_cse_reg_info.
2713 (init_cse_reg_info, get_cse_reg_info_1): New.
2714 (get_cse_reg_info): Cache the last look-up.
2715 (new_basic_block): Update the code to clear mappings from
2716 registers to cse_reg_info entries.
2717 (cse_main): Call init_cse_reg_info.
2718
782c0a3e
KH
2719 * cse.c (get_cse_reg_info): Update a comment.
2720
b4519d39
SB
27212005-01-31 Steven Bosscher <stevenb@suse.de>
2722
2723 PR c/19333
2724 * c-decl.c (start_decl): Do not warn about arrays of elements with
2725 an incomplete type here.
2726 (grokdeclarator): Do it here by making a pedwarn an error.
2727 * c-typeck.c (push_init_level): If there were previous errors with
2728 the constructor type, do not warn about braces for initializers.
2729 (process_init_element): Likewise for excess initializer elements.
2730
65e9fa10
KH
27312005-01-31 Kazu Hirata <kazu@cs.umass.edu>
2732
2733 * cse.c (delete_trivially_dead_insn): Don't iterate.
2734
0530bc70
AP
27352005-01-31 Andrew Pinski <pinskia@physics.uc.edu>
2736
2737 * config/rs6000/rs6000.md (copysignsf3): New expand.
2738 (copysigndf3): Likewise.
2739
9ea88834
SB
27402005-01-31 Steven Bosscher <stevenb@suse.de>
2741
2742 * recog.c (constrain_operands): Only look for earlyclobber operand
2743 conflicts if an '&' constraint was seen.
2744
75a3bd9d
ME
27452005-01-31 Marc Espie <espie@openbsd.org>
2746
2747 * config.gcc: Don't include embedded systems fragment, switches default
2748 debugging format to ELF.
2cdc2073 2749 * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
75a3bd9d
ME
2750 longer pick it up there.
2751
28697267 27522005-01-31 Dale Johannesen <dalej@apple.com>
2cdc2073 2753
28697267
DJ
2754 * doc/extend.texi (nested functions): Fix linkage description.
2755 Clarify that static is not allowed.
2756
e87d92f4 27572005-01-31 Dale Johannesen <dalej@apple.com>
2cdc2073 2758
e87d92f4
DJ
2759 * config/rs6000/darwin.md (movsf_low_di): Make work.
2760 (movdf_low_di): Make work.
2761
42d262fa
DJ
27622005-01-31 Dale Johannesen <dalej@apple.com>
2763
2764 * config/rs6000/darwin-tramp.asm (__trampoline_setup):
2765 Make work for 64 bit.
2766
3b70b82a
DJ
27672005-01-31 Roger Sayle <roger@eyesopen.com>
2768 Dale Johannesen <dalej@apple.com>
2769
2770 PR middle-end/19650
2771 * fold-const.c (fold_binary_op_with_conditional_arg):
2772 Make types match original operands, before STRIP_NOPS.
2773
a7a52913
AM
27742005-01-31 Alan Modra <amodra@bigpond.net.au>
2775
2776 * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
2777 (struct gcc_regs): Rename from gcc_pt_regs. Add more regs.
2778 (struct gcc_sigcontext): Delete. Merge contents to..
2779 (struct gcc_ucontext): ..here.
2780 (get_sigcontext): Delete.
2781 (get_regs): New function, like get_sigcontext but return regs ptr.
2782 64-bit version finds regs from r1 to support vdso.
2783 (ppc_linux_aux_vector): New function.
2784 (ppc_fallback_frame_state): Modify for get_regs. Restore fprs
2785 and vector regs.
2786
261ba0c8
IR
27872005-01-31 Ira Rosen <irar@il.ibm.com>
2788
2789 * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
2790 sizetype.
2791 (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
2792 redundant fold. Fix misalignment for MINUS_EXPR.
2793 (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
2794 (vect_analyze_pointer_ref_access): Likewise.
2795 (vect_get_memtag_and_dr): Likewise.
2796
2ae1ac77
RH
27972005-01-31 Richard Henderson <rth@redhat.com>
2798
2799 * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
2800 (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
2801 absnegdf2_i387, absnegxf2_i387): Likewise.
2802
ae394659
RH
28032005-01-31 Richard Henderson <rth@redhat.com>
2804
2805 PR 19696
2806 * optabs.c (expand_copysign_absneg): New.
2807 (expand_copysign_bit): Split out from ...
2808 (expand_copysign): ... here. Use expand_copysign_absneg.
2809
ebcaaa21
RS
28102005-01-30 Roger Sayle <roger@eyesopen.com>
2811
2812 PR middle-end/19697
2813 * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
2814 constant as the second operand and a register as the third.
2815
6cc37e7e
DS
28162005-01-31 Danny Smith <dannysmith@users.sourceforge.net>
2817
2818 PR target/19704
2819 * config/i386/i386.c (ix86_function_ok_for_sibcall): Also check
2820 that dllimport'd functions do not use all call-clobbered registers
2821 to pass parameters.
2822
8c55a142
RH
28232005-01-30 Richard Henderson <rth@redhat.com>
2824
2825 PR 19696
2826 * optabs.c (expand_absneg_bit): Split out from expand_unop and
2827 expand_abs_nojump and generalize. Use operand_subword and
2828 emit_no_conflict_block. Support large modes.
2829 (expand_abs_nojump): Use it. Use HONOR_SIGNED_ZEROS to fall
2830 back to maximum.
2831 (expand_unop): Likewise. Use HONOR_SIGNED_ZEROS to fall back
2832 negation to subtraction.
2833 (expand_copysign): Check that the format has signed zeros.
2834 Use operand_subword and emit_no_conflict_block. Support large modes.
2835
338bc65e
DB
28362005-01-30 Daniel Berlin <dberlin@dberlin.org>
2837
2838 Fix PR tree-optimization/19624
2cdc2073 2839
338bc65e
DB
2840 * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
2841 * tree-ssa-pre.c: Add cfgloop.h.
2842 Update comment.
2843 (pre_stats): New member, constified.
2844 (inserted_exprs): New static variable.
2845 (NECESSARY): New macro.
2846 (create_expression_by_pieces): Fold the expression, and
2847 mark it as defaulting to not necessary. Also put in
2848 inserted_exprs.
2849 (fully_constant_expression): New function.
2850 (insert_into_preds_of_block): Modify to not insert phis when we
2851 are playing with induction variables.
2852 Push phis onto the inserted_exprs vector, and mark them as not
2853 necessary by default.
2854 (insert_aux): Call fully_constant_expression on eprime.
2855 If all edges produce the same value, mark it constant.
2856 (mark_operand_necessary): New function.
2857 (remove_dead_inserted_code): New function.
2858 (init_pre): Init loop optimizer to get loop info.
2859 (fini_pre): Free loop_optimizer, and inserted_exprs vec.
2860 (execute_pre): Commit edge inserts, then remove dead code.
2861
237f420b
RH
28622005-01-30 Richard Henderson <rth@redhat.com>
2863
2864 * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
2865 * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
2866
b99d6d2b
RH
28672005-01-30 Richard Henderson <rth@redhat.com>
2868
2869 PR target/19700
2870 * config/i386/i386.c (ix86_expand_copysign): New.
2871 (ix86_split_copysign_const): New.
2cdc2073 2872 (ix86_split_copysign_var): Rename from ix86_split_copysign,
b99d6d2b
RH
2873 rearrange op1/nmask operands.
2874 * config/i386/i386-protos.h: Update.
2875 * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
2876 (copysigndf3): Likewise.
2877 (copysignsf3_const, copysigndf3_const): New.
2878 (copysignsf3_var): Rename from copysignsf3, split out splitter
2879 and fix split predicate for X constraint.
2880 (copysigndf3_var): Similarly.
2881
c5c367ac
KH
28822005-01-30 Kazu Hirata <kazu@cs.umass.edu>
2883
2884 * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
2885 doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
2886 doc/tm.texi, doc/tree-ssa.texi: Update copyright.
2887
d6eabd43
RH
28882005-01-29 Richard Henderson <rth@redhat.com>
2889
2890 PR target/19690
2891 * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
2892 of # and * in constraints.
2893
8d740330
RH
28942005-01-29 Richard Henderson <rth@redhat.com>
2895
2896 PR middle-end/19689
2897 * expr.c (store_field): Don't strip sub-mode cast when the input
2898 data is even smaller.
2899
486e4326
RH
29002005-01-29 Richard Henderson <rth@redhat.com>
2901
2902 PR middle-end/19687
2903 * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
2904 union being empty.
2905
eb2ab511
RH
29062005-01-29 Richard Henderson <rth@redhat.com>
2907
2908 * combine.c (make_field_assignment): Fix argument order
2909 to gen_int_mode.
2910
020d90ee
RG
29112005-01-29 Richard Guenther <richard.guenther@uni-tuebingen.de>
2912
2913 PR tree-optimization/15791
2914 * fold-const.c (extract_array_ref): New function.
2915 (fold): Fold comparisons between &a[i] and &a[j] or
2916 semantically equivalent trees.
2917
b6e47ceb
JL
29182005-01-29 Jeff Law <law@redhat.com>
2919
2920 * gcse.c (insert_expr_in_table): Revamp handling of available
2921 and anticipatable occurrence lists to avoid unnecessary list
2922 walking.
2923 (insert_set_in_table): Similarly.
2924
46df2823
JM
29252005-01-29 Joseph S. Myers <joseph@codesourcery.com>
2926
2927 * c-common.c (fix_string_type): Just use c_build_qualified_type to
2928 build string type.
2929 (c_build_qualified_type): Build qualified array types with
2930 TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
2931 * c-decl.c (c_make_fname_decl): Build unqualified array type
2932 before qualified type.
2933 (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
2934 type is qualified, not just if type itself is. Don't apply
2935 qualifiers to array type when declarator is processed. Apply
2936 qualifiers to field type whether or not it is an array type.
2937 Don't handle array types specially for applying qualifiers to
2938 variables.
2939 * c-typeck.c (composite_type): Build unqualified element type and
2940 array type when forming composite of array types.
2941 (common_pointer_type, comptypes, comp_target_types,
2942 type_lists_compatible_p, build_indirect_ref, build_array_ref,
2943 convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
2944 types.
2945 (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
2946 (args2) in variables a1 and a2.
2947
26af0046
KH
29482005-01-29 Kazu Hirata <kazu@cs.umass.edu>
2949
2950 * cse.c (n_elements_made, max_elements_made): Remove.
2951 (insert): Don't touch n_elements_made.
2952 (cse_main): Don't touch n_elements_made or max_elements_made.
2953
3a951664
SC
29542005-01-28 Stephane Carrez <stcarrez@nerim.fr>
2955
2956 PR target/15384
2957 * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
2958 configuration part of dp-bit.c to be lost.
2959
82dfb9a5
RS
29602005-01-28 Roger Sayle <roger@eyesopen.com>
2961
2962 * expmed.c (expand_mult_highpart_optab): When attempting to use
2963 a non-widening multiplication in a wider mode, the operands need
2964 to be converted (zero or sign extended) to that mode.
2965
09f8cf2d
ILT
29662005-01-28 Ian Lance Taylor <ian@airs.com>
2967
2968 PR middle-end/16558
2969 PR middle-end/19583
2970 * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
2971 through if both operands fall through.
2972
01aa1d43
KH
29732005-01-28 Kazu Hirata <kazu@cs.umass.edu>
2974
2975 * cse.c (fold_rtx) <PC>: Don't optimize.
2976
139c978a
JL
29772005-01-28 Jeff Law <law@redhat.com>
2978
2979 * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
2980 (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
2981
1590d0d4
KH
29822005-01-28 Kazu Hirata <kazu@cs.umass.edu>
2983
2984 * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
2985 cse_reg_info_used_list_end): Remove.
2986 (cse_reg_info_list, cse_reg_info_list_free): New.
2987 (get_cse_reg_info): When allocating an instance of
2988 cse_reg_info, add it to the beginning of the cse_reg_info_list
2989 list. Remove code to maintain cse_reg_info_used_list.
2990 (new_basic_block): Reset the free list to the beginning of
2991 cse_reg_info_list.
2992
a738d848
RS
29932005-01-28 Richard Sandiford <rsandifo@redhat.com>
2994
2995 * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
2996 (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
2997 (frv_expand_mdpackh_builtin): New function.
2998 (frv_expand_builtin): Use it to expand __MDPACKH.
a738d848
RS
2999 * doc/extend.texi (__MDPACKH): Update documentation.
3000
2aa3d033
UB
30012005-01-28 Uros Bizjak <uros@kss-loka.si>
3002
3003 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
3004 SSE_FLOAT_MODE_P for use_sse computation.
3005
7d7f3b95
RC
30062005-01-28 Ralf Corsepius <ralf.corsepius@rtems.org>
3007
3008 PR target/19663
3009 * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
3010
046625fa
RH
30112005-01-27 Richard Henderson <rth@redhat.com>
3012
3013 * builtins.c (expand_builtin_copysign): New.
3014 (expand_builtin): Call it.
3015 * genopinit.c (optabs): Add copysign_optab.
3016 * optabs.c (init_optabs): Initialize it.
3017 (expand_copysign): New.
3018 * optabs.h (OTI_copysign, copysign_optab): New.
3019 (expand_copysign): Declare.
3020
3021 * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
3022 (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
3023
3024 * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
3025 (ix86_expand_fp_absneg_operator): ... here.
3026 (ix86_split_copysign): New.
3027 * config/i386/i386-protos.h: Update.
3028 * config/i386/i386.md (UNSPEC_COPYSIGN): New.
3029 (copysignsf3, copysigndf3): New.
3030
3031 * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
3032 (copysignsf3, ncopysignsf3): New.
3033 (copysigndf3, ncopysigndf3): New.
3034 (copysignxf3, ncopysignxf3): New.
3035 * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
3036
6c667859
AB
30372005-01-27 Arend Bayer <arend.bayer@web.de>
3038 Kazu Hirata <kazu@cs.umass.edu>
3039
3040 * cse.c: (find_best_addr): Don't call copy_rtx before calling
3041 fold_rtx. Save cost recomputation if fold_rtx did nothing.
3042 (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
3043 NULL_RTX.
3044
88af764e
JL
30452005-01-27 Jeff Law <law@redhat.com>
3046
3047 * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
3048 definitions of SSA_NAMEs which are not being rewritten.
3049 (rewrite_ssa_into_ssa): Only initialize the current definition
3050 of an SSA_NAME if that SSA_NAME has been marked for rewriting.
3051 If checking is enabled, assert that SSA_NAME_AUX is clear for all
3052 SSA_NAMEs before returning.
3053
f93089d2
KH
30542005-01-27 Kazu Hirata <kazu@cs.umass.edu>
3055
3056 * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
3057 cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
3058 tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
3059 config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
3060 config/mips/iris6.h, config/sh/sh.c: Update copyright.
3061
116cb604
SB
30622005-01-27 Steven Bosscher <stevenb@suse.de>
3063
3064 PR middle-end/17278
3065 * opts.c (decode_options): Move flag_thread_jumps from -O1 and
3066 higher to -O2 and higher. Likewise for tree PRE.
3067 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
3068 and better.
3069
09f8cf2d 30702005-01-27 Ian Lance Taylor <ian@airs.com>
6737ba67
ILT
3071
3072 PR middle-end/19583
3073 * gimple-low.c (try_catch_may_fallthru): New static function.
3074 (block_may_fallthru): Handle TRY_CATCH_EXPR.
3075 * tree-inline.c (expand_call_inline): Don't warn about reaching
3076 the end of a non-void function being inlined if the function uses
3077 a return slot.
3078
d8dd2f3a
JJ
30792005-01-27 Jakub Jelinek <jakub@redhat.com>
3080
9d72d996
JJ
3081 * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
3082
d8dd2f3a
JJ
3083 PR c/18946
3084 * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
3085 (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
3086 (implicitly_declare): Handle error_mark_node.
3087
dad2a933
RH
30882005-01-27 Richard Henderson <rth@redhat.com>
3089
3090 PR tree-opt/14329
3091 * tree.h (struct tree_decl): Add debug_expr_is_from.
3092 (DECL_DEBUG_EXPR_IS_FROM): New.
3093 (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
3094 * dwarf2out.c (dwarf2out_var_location): Update to match.
3095 * tree-outof-ssa.c (create_temp): Likewise.
3096 * var-tracking.c (track_expr_p): Likewise.
3097 * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
3098 * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
3099 * toplev.c (default_tree_printer): Likewise.
3100
17c21957
AO
31012005-01-27 Alexandre Oliva <aoliva@redhat.com>
3102
3103 * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
3104 GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
3105
ebaae582
SB
31062005-01-27 Steven Bosscher <stevenb@suse.de>
3107
3108 * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
3109 CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
3110 ASM_CLOBBERS): Add tree checks.
3111
3112 * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
3113 (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
3114 * c-common.def (SWITCH_STMT): Update to match.
3115 * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
3116 macros instead of SWITCH_EXPR ones.
3117 * c-dump.c (c_dump_tree): Likewise.
3118 * c-gimplify.c (gimplify_switch_stmt): Likewise.
3119 * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
3120
3121 * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
3122
7a706738
AM
31232005-01-27 Alan Modra <amodra@bigpond.net.au>
3124
3125 * unwind-dw2.c (execute_stack_op): Add missing cases for
3126 DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
3127
fe15407d
EB
31282005-01-27 Eric Botcazou <ebotcazou@libertysurf.fr>
3129
3130 * config.gcc (Obsolete configurations): Remove 'dummy', add
3131 sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
3132 sparc-*-openbsd*.
3133
87637d21
DN
31342005-01-26 Diego Novillo <dnovillo@redhat.com>
3135
3136 PR tree-optimization/19633
3137 * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
3138 CALL_EXPRs.
3139 (maybe_create_global_var): Do not create .GLOBAL_VAR if there
3140 are no call-clobbered variables.
3141 * tree-outof-ssa.c (check_replaceable): Return false for calls
3142 with side-effects.
3143
9ff93eb0
UW
31442005-01-26 Ulrich Weigand <uweigand@de.ibm.com>
3145
3146 * dbxout.c (dbxout_symbol_location): Resolve constant pool references
3147 even for variables with NULL DECL_INITIAL.
3148
4356a1bf
SH
31492005-01-26 Stuart Hastings <stuart@apple.com>
3150
00adda9f 3151 * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
4356a1bf 3152
48cc8d3b
RH
31532005-01-26 Richard Henderson <rth@redhat.com>
3154
3155 PR middle-end/18008
3156 * c-decl.c (finish_struct): Set DECL_MODE after resetting a
3157 field's type.
3158 * expr.c (store_field): Strip conversions to odd-bit-sized types
3159 if the destination field width matches.
3160
eec6bb06
RH
31612005-01-26 Richard Henderson <rth@redhat.com>
3162
3163 * c-decl.c, expmed.c, expr.c: Revert last change.
3164
78ef1e3d
RH
31652005-01-26 Richard Henderson <rth@redhat.com>
3166
3167 PR middle-end/18008
3168 * c-decl.c (finish_struct): Set DECL_MODE after resetting a
3169 field's type.
3170 * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
3171 if we don't need the bits above those present in the current mode.
3172 * expr.c (store_field): Strip conversions to odd-bit-sized types
3173 if the destination field width matches.
3174
5596990f
RS
31752005-01-26 Richard Sandiford <rsandifo@redhat.com>
3176
3177 * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
3178 either -ffast-math or -funsafe-math-optimizations is in use.
3179
a3cf5992
MM
31802005-01-26 Marek Michalkiewicz <marekm@amelek.gda.pl>
3181
3182 PR target/19293
3183 PR target/19329
3184 * config/avr/avr.c (notice_update_cc): Only set condition code for
3185 ashrqi3 if shift count > 0.
3186 (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
3187 (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
3188 ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
3189 count <= 0 as a no-op, and shift count >= width by copying zero
3190 or sign bit to all bits of the result.
3191 * config/avr/avr.md (all shifts): Add alternatives for zero shift
3192 count, with attribute "length" set to 0 and "cc" set to "none".
3193
e4dd71de
AH
31942005-01-26 Aldy Hernandez <aldyh@redhat.com>
3195
3196 * doc/invoke.texi: Document -mTLS.
3197
3198 * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
3199 * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
3200 * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
3201 * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
3202 * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
3203 * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
3204 * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
3205 * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
3206
3207 * configure.ac: Check for a TLS capable gas.
3208
3209 * configure: Regenerate.
78ef1e3d 3210
55e79aef
RH
32112005-01-26 Richard Henderson <rth@redhat.com>
3212
3213 PR middle-end/18008
3214 * combine.c (make_field_assignment): Simplify store to zero_extract
3215 from a source with an overlapping mask.
3216
af30facd
AH
32172005-01-26 Aldy Hernandez <aldyh@redhat.com>
3218
3219 2004-11-11 Eric Christopher <echristo@redhat.com>
3220
ebaae582
SB
3221 * config/frv/frv.md: Add fr400_integer automaton. Don't
3222 allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
3223 to TYPE_MACC.
af30facd 3224
f7aa1423
SB
32252005-01-26 Steven Bosscher <stevenb@suse.de>
3226
3227 PR middle-end/16585
3228 * cfgbuild.c (make_edges): Do not clear or set
3229 current_function_has_computed_jump.
3230 * function.h (struct function): Remove the has_computed_jump field.
3231 (current_function_has_computed_jump): Do not define.
3232 * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
3233 in a computed jump. Ignore current_function_has_computed_jump.
3234
6f642f98
RH
32352005-01-26 Richard Henderson <rth@redhat.com>
3236
3237 PR middle-end/19515
3238 * expr.c (categorize_ctor_elements): New argument p_must_clear.
3239 (categorize_ctor_elements_1): Likewise. Detect a union that isn't
3240 fully initialized.
3241 (mostly_zeros_p): Update for new categorize_ctor_elements argument.
3242 * gimplify.c (gimplify_init_constructor): Likewise. Only shove
3243 objects into static storage if they have more than one non-zero value.
3244 * tree.h (categorize_ctor_elements): Update decl.
3245
ead553a1
SB
32462005-01-26 Steven Bosscher <stevenb@suse.de>
3247
2cdc2073 3248 PR middle-end/19616
ead553a1
SB
3249 * tree.h (CALL_EXPR_TAILCALL): Add comment.
3250 * calls.c (check_sibcall_argument_overlap_1): Revert the change
3251 to this function from 2004-07-10.
3252 * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
3253 the current function for tail call optimizations if the address
3254 of one of it its arguments is taken.
3255
75335440
KH
32562005-01-26 Kazu Hirata <kazu@cs.umass.edu>
3257
3258 * cse.c (fold_rtx): Call equiv_constant only when necessary.
3259
40184445
BS
32602005-01-26 Bernd Schmidt <bernd.schmidt@analog.com>
3261
3262 * function.c (expand_function_end): If current_function_calls_alloca,
3263 emit stack restore in a place that is reached when the function falls
3264 through at the end.
3265
144023ad
AO
32662005-01-26 Alexandre Oliva <aoliva@redhat.com>
3267
3268 * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
3269 rule to avoid matching inappropriate suffix rule.
3270
e4cf29ae
JH
32712005-01-26 Jan Hubicka <jh@suse.cz>
3272
97bd954f 3273 PR tree-optimization/19241
e4cf29ae
JH
3274 * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
3275
fe04ce06
HPN
32762005-01-26 Hans-Peter Nilsson <hp@axis.com>
3277
3278 * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
3279 -lsyssim. Wrap -lc -lsyssim in --start-group --end-group instead
3280 of doubling.
3281 (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
ead553a1 3282 <sim*>: Always use crt1.o, regardless of N in simN.
fe04ce06
HPN
3283 <!sim>: Drop support for -pg and -p variants; always use crt0.o.
3284 (ENDFILE_SPEC): Add crtn.o, after crtend.o.
3285 (CRT_CALL_STATIC_FUNCTION): Remove.
3286 * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
3287 use crt1.o, regardless of N in simN.
3288 <!sim>: Drop support for -pg and -p variants; always use crt0.o.
3289 (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
3290 (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
3291 case isystem setting.
3292 (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
3293
6a03afdf
ILT
32942005-01-25 Ian Lance Taylor <ian@airs.com>
3295
3296 * gimple-low.c (block_may_fallthru): Correct handling of
3297 SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
3298
c555b47f
HPN
32992005-01-26 Hans-Peter Nilsson <hp@axis.com>
3300
3301 * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
3302 handlers to match indentation; nested under the mtune=* handler.
3303 Similar for mcpu= and march=.
3304
9841a1a7
DJ
33052005-01-25 Daniel Jacobowitz <dan@codesourcery.com>
3306
3307 * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
3308 * config/mips/linux64.h (LIB_SPEC): Likewise.
3309 * config/mn10300/linux.h (LIB_SPEC): Likewise.
3310 * config/sh/linux.h (LIB_SPEC): Likewise.
3311
bef8809e
AH
33122005-01-25 Aldy Hernandez <aldyh@redhat.com>
3313
3314 * config/frv/frv.c (frv_legitimize_tls_address): New.
3315 (TARGET_HAVE_TLS): Define.
3316 (FRV_SYMBOL_REF_TLS_P): Define.
3317 (frv_override_options): Handle new register classes.
3318 (frv_legitimate_address_p): Reject tls addresses.
3319 (frv_legitimize_address): Handle TLS addresses.
3320 (gen_inlined_tls_plt): New.
3321 (gen_tlsmoff): New.
3322 (frv_legitimize_tls_address): New.
3323 (unspec_got_name): Add TLS entries.
3324 (got12_operand): Add R_FRV_TLSMOFF12 case.
3325 (frv_emit_move): Fixup TLS addresses.
3326 (frv_emit_movsi): Legitimize TLS addresses.
3327
3328 * config/frv/frv.h (MASK_BIG_TLS): New.
3329 (TARGET_BIG_TLS): New.
3330 (HAVE_AS_TLS): Define.
3331 (TARGET_SWITCHES): Add -mTLS and -mtls options.
3332 (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
3333 (REG_CLASS_NAMES): Same.
3334 (REG_CLASS_CONTENTS): Same.
3335 (CONSTRAINT_LEN): New.
3336 (REG_CLASS_FROM_CONSTRAINT): New.
3337 (PREDICATE_CODES): Add symbolic_operand.
3338
3339 * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
3340 UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
3341 UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
3342 UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
3343 R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
3344 R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
3345 R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
3346 GR9_REG, GR14_REG, LRREG.
3347 (type): Add load_or_call attribute.
3348 ("load_or_call"): New reservation.
3349 ("call_gettlsoff"): New.
3350 ("tls_indirect_call"): New.
3351 ("tls_load_gottlsoff12"): New.
3352 ("tlsoff_hilo"): New.
3353 ("tls_tlsdesc_ldd"): New.
3354 ("tls_tlsoff_ld"): New.
3355 ("tls_lddi"): New.
3356
3357 * config/frv/frv-protos.h (symbolic_operand): Protoize.
3358
3359 2005-01-25 Alexandre Oliva <aoliva@redhat.com>
3360
ead553a1
SB
3361 * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
3362 * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
3363 * config/frv/frv.c (TLS_BIAS): Define.
3364 (frv_output_dwarf_dtprel): New.
bef8809e 3365
b8e48b98
JJ
33662005-01-26 Jakub Jelinek <jakub@redhat.com>
3367
3368 PR rtl-optimization/19579
3369 * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
3370 both A and B, see if they don't clobber registers the other expr uses.
3371
1c673473
R
33722005-01-25 J"orn Rennecke <joern.rennecke@st.com>
3373
3374 * real.c (do_add): Initialize signalling and canonical members.
3375
3376 * real.c (real_from_integer): Zero out destination.
3377
ed464869
JH
33782005-01-18 Jan Hubicka <jh@suse.cz>
3379
3380 PR tree-optimize/19337
3381 * tree-inline.c (initialize_inlined_parameters): Copy
3382 saved_static_chain_decl only.
3383
51df7179
RH
33842005-01-25 Richard Henderson <rth@redhat.com>
3385
3386 PR target/19556
3387 PR target/19584
3388 * config/i386/i386.c (x86_inter_unit_moves): Zero.
3389 (ix86_preferred_reload_class): Rewrite fp-constant section, with
3390 80387 enabled, to return a proper subclass. Return the subset that
3391 overlaps with GENERAL_REGS for PLUS.
3392 * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
3393
c63f5a42
RH
33942005-01-25 Richard Henderson <rth@redhat.com>
3395
3396 PR middle-end/19609
3397 * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
3398
e71c0aa7
RS
33992005-01-25 Roger Sayle <roger@eyesopen.com>
3400
3401 * expmed.c (choose_multiplier): Change interface to return the
3402 multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
3403 (expand_divmod): Update calls to choose_multiplier.
3404
a6d2976a
JDA
34052005-01-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3406
3407 PR middle-end/19330
3408 * expmed.c (extract_bit_field): Use adjust_address instead of
3409 gen_lowpart when op0 is a MEM.
3410
7315a949
SB
34112005-01-24 Steven Bosscher <stevenb@suse.de>
3412
3413 * cfgexpand.c (expand_gimple_tailcall): Fix typo.
3414
c0fd73a9
RS
34152005-01-24 Richard Sandiford <rsandifo@redhat.com>
3416
3417 * config/mips/irix-csr.c: New file.
3418 * config/mips/t-iris6 (irix-csr.o): New rule to build it.
3419 (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
3420 * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
3421 executables.
3422
81b47219
EB
34232005-01-24 Eric Botcazou <ebotcazou@libertysurf.fr>
3424
3425 PR bootstrap/19364
3426 * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
3427 sparc/elf.h, add sparc/sp-elf.h.
3428 (sparc-*-rtems*): Likewise.
3429 (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
3430 tm-dwarf2.h, add sparc/sp-elf.h.
3431 (sparc86x-*-elf): Likewise.
3432 (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
3433 * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
3434 TARGET_OS_CPP_BUILTINS.
3435 * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
3436 * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
3437 Undefine it.
3438 * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
3439 * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
3440 (SWITCH_TAKES_ARG): Likewise.
3441 (LOCAL_LABEL_PREFIX): Likewise.
3442 (ASM_GENERATE_INTERNAL_LABEL): Likewise.
3443 (TARGET_N_FORMAT_TYPES): Delete.
3444 (TARGET_FORMAT_TYPES): Likewise.
3445 (ASM_DECLARE_FUNCTION_SIZE): Likewise.
3446 * config/sparc/elf.h: Delete.
3447 * config/sparc/sp-elf.h: New file.
3448
3a2f1f06
KH
34492005-01-24 Kazu Hirata <kazu@cs.umass.edu>
3450
3451 * tree-flow-inline.h (phi_arg_from_edge): Remove.
3452 * tree-flow.h: Remove the corresponding prototype.
3453 * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
3454 tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
3455
b723e82f
JJ
34562005-01-24 Jakub Jelinek <jakub@redhat.com>
3457
3458 PR target/17751
3459 * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
3460 for AIX ABI or ELF -fPIC.
3461 (rs6000_emit_load_toc_table): Don't create toc_section here.
3462 (rs6000_xcoff_file_start): Nor here.
3463
1a9ce0b7
JR
34642005-01-24 J"orn Rennecke <joern.rennecke@st.com>
3465
3466 * sh.c (ra.h): Don't #include.
3467 (hard_regs_intersect_p): New function, resurrected from ra.c.
3468
3469 * sh.c: Fix 1996 Copyright.
3470
226c62c7 34712005-01-24 Richard Henderson <rth@redhat.com>
97bd954f 3472 Aldy Hernandez <aldyh@redhat.com>
226c62c7 3473
97bd954f 3474 * regrename.c (note_sets): Handle subregs.
226c62c7 3475
2429f3d4
JM
34762005-01-24 Joseph S. Myers <joseph@codesourcery.com>
3477
3478 PR bootstrap/18058
3479 * genconditions.c (write_header, write_conditions): Elide file if
3480 not GCC >= 3.0.1.
3481
deeec1d8
KH
34822005-01-24 Kazu Hirata <kazu@cs.umass.edu>
3483
3484 * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
3485 config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
3486 Update copyright.
3487
7b922122
JJ
34882005-01-24 Jakub Jelinek <jakub@redhat.com>
3489
3490 * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
3491 expand_builtin_printf, expand_builtin_fprintf,
3492 expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
3493 checking against POINTER_TYPE.
3494 (validate_arglist): Handle POINTER_TYPE code by checking
3495 POINTER_TYPE_P.
3496
cf94b0fc
PB
34972005-01-24 Paolo Bonzini <bonzini@gnu.org>
3498
3499 * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
3500 init_rtlanal): New.
3501 (for_each_rtx): Call for_each_rtx_1.
3502 * rtl.h (init_rtlanal): Declare.
3503 * toplev.c (backend_init): Call init_rtlanal.
3504
b77302be
JJ
35052005-01-24 Jakub Jelinek <jakub@redhat.com>
3506
3507 * flow.c (propagate_one_insn): Formatting.
3508
3509 PR middle-end/19551
3510 * flow.c (libcall_dead_p): Be more conservative if unsure.
3511 If there are any instructions between insn and call, see if they are
3512 all dead before saying the libcall is dead.
3513
11c56af5
UB
35142005-01-24 Uros Bizjak <uros@kss-loka.si>
3515
3516 * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
3517 operand constraint for operand 0.
3518
520f34fa
RH
35192005-01-23 Richard Henderson <rth@redhat.com>
3520
3521 PR 19486
3522 * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
3523 edges leading to join block.
3524
0d282692
RS
35252005-01-23 Roger Sayle <roger@eyesopen.com>
3526
3527 * expmed.c (expand_mult_highpart): Make static. Change type of
3528 constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
3529 (expand_divmod): Updates calls to expand_mult_highpart by using
3530 gen_int_mode to pass a CONST_INT rtx.
3531 * rtl.h (expand_mult_highpart): Remove prototype.
3532
edd517b1
KH
35332005-01-23 Kazu Hirata <kazu@cs.umass.edu>
3534
3535 * flow.c (regset_bytes, regset_size): Remove.
3536
708bde14
KH
3537 * cfganal.c: Fix a reference to Harvey's paper.
3538
85840349
SB
35392005-01-23 Steven Bosscher <stevenb@suse.de>
3540
3541 PR rtl-optimization/19464
3542 * tree-optimize.c (init_tree_optimization_passes): Add one more
3543 copyrename pass just before out-of-ssa.
3544
9fcdd891
JM
35452005-01-23 Joseph S. Myers <joseph@codesourcery.com>
3546
3547 PR bootstrap/18058
3548 * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
3549 * ggc-none.c (ggc_free): Define.
3550
d0754bc6
KH
35512005-01-23 Kazu Hirata <kazu@cs.umass.edu>
3552
3553 * cse.c (max_reg, max_insn_uid): Remove.
3554 (cse_main): Don't access max_reg or max_insn_uid.
3555
f3b303fd
KH
3556 * c-common.c (explicit_flag_signed_bitfields,
3557 lang_statement_code_p, lang_expand_function_end): Remove.
3558 * c-common.h: Remove the corresponding declarations.
3559 * c-opts.c (c_common_handle_option): Remove all write access
3560 to explicit_flag_signed_bitfields.
3561
15f0d971
KH
3562 * cgraph.c (cgraph_varpool_n_nodes): Remove.
3563 (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
3564 * cgraph.h: Remove the corresponding declaration.
3565
6d77cdc3
KH
3566 * gcse.c (null_pointer_info): Remove.
3567
b9750434
RS
35682005-01-23 Roger Sayle <roger@eyesopen.com>
3569 Eric Botcazou <ebotcazou@libertysurf.fr>
3570
3571 * combine.c (simplify_logical): Only simplify logical expressions
3572 of the form ior(and(x,y),z) by the inverse distributive law if the
3573 result is cheaper than the original.
3574
35fd3193
KH
35752005-01-23 Kazu Hirata <kazu@cs.umass.edu>
3576
3577 * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
3578 fold-const.c, gimplify.c, params.h, tree-data-ref.c,
3579 tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
3580 tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
3581 config/freebsd-spec.h, config/arm/arm.h,
3582 config/h8300/h8300.md, config/i386/i386.md,
3583 config/i386/predicates.md, config/i386/sse.md,
3584 config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
3585 config/vax/vax.md: Fix comment typos. Follow spelling
3586 conventions.
3587
a62a0172
SB
35882005-01-23 Steven Bosscher <stevenb@suse.de>
3589
3590 * gengtype.c (walk_type): Produce `not equal to' compares for loop
3591 tests, instead of `less than'.
3592
a561d88b
RS
35932005-01-23 Richard Sandiford <rsandifo@redhat.com>
3594
3595 * function.c (assign_parm_setup_block): When creating a new stack slot
3596 for a parameter, get its alignment from the parameter's DECL_ALIGN
3597 rather than the type's TYPE_ALIGN. Make sure that the parameter
3598 is at least word aligned.
3599
d2ebe27c
RS
36002005-01-22 Roger Sayle <roger@eyesopen.com>
3601
3602 PR middle-end/19378
3603 * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
3604
a059cdb8
RH
36052005-01-22 Richard Henderson <rth@redhat.com>
3606
3607 PR target/19506
3608 * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
3609 in both compare operands.
3610 (movdfcc_1_sse_max): Likewise.
3611 (movsfcc_1_sse): Likewise. Add earlyclobber for scratch.
3612 (movdfcc_1_sse): Likewise.
3613 * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
3614 scratch register as needed.
3615
eabd294f
RH
36162005-01-22 Richard Henderson <rth@redhat.com>
3617
b8f06586
RH
3618 * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
3619
eabd294f
RH
3620 * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
3621
5ccbd309
RH
36222005-01-22 Richard Henderson <rth@redhat.com>
3623
3624 * genopinit.c (optabs): Use smin/smax for floating point too.
3625 * doc/md.texi: Update to match. Clarify that floating point
3626 results are undefined for +0/-0 and NaN.
3627 * doc/rtl.texi: Likewise.
3628 * rtl.def (SMIN, SMAX): Likewise
3629 * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
3630
3631 * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
3632 leading 's' to the name.
3633 * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
3634 smaxxf3, sminxf3): Likewise.
3635 * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
3636 Likewise.
3637
b4b2332c
PB
36382005-01-22 Paul Brook <paul@codesourcery.com>
3639
3640 * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
3641
6fa5b390
MD
36422005-01-21 Mark Dettinger <dettinge@de.ibm.com>
3643
2cdc2073 3644 * config/s390/s390.c (struct processor_costs): New fields
6fa5b390
MD
3645 dlgr, dlr, dr, dsgfr, dsgr.
3646 (z900_cost, z990_cost): Values for new fields.
3647 (s390_rtx_costs): New cases MEM und COMPARE in switch
3648 statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
3649 DIV, MOD, UDIV, UMOD.
3650
eb862a88
UW
36512005-01-21 Ulrich Weigand <uweigand@de.ibm.com>
3652
3653 * config/s390/s390.md ("doloop_si64"): Reload input value directly
3654 into the register being decremented.
3655 ("doloop_si31", "doloop_di"): Likewise.
3656 ("*doloop_si_long"): Adapt pattern.
3657
3776ada0
UW
36582005-01-21 Ulrich Weigand <uweigand@de.ibm.com>
3659
3660 * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
3661 access registers.
3662 (CLASS_MAX_NREGS): Likewise.
3663
d7c71ee3
DB
36642005-01-21 Daniel Berlin <dberlin@dberlin.org>
3665
3666 * doc/tree-ssa.texi (Statement Operands): Add example for new
3667 must-def macro. Note deprecation of old operands interface.
3668
d7f3fc19
RS
36692005-01-22 Richard Sandiford <rsandifo@redhat.com>
3670
3671 PR tree-optimization/19484
3672 * tree-cfg.c (remove_fallthru_edge): New function.
3673 (cleanup_control_flow): Remove fallthru edges from calls that are
3674 now known not to return.
3675
111e0c9f
DB
36762005-01-20 Daniel Berlin <dberlin@dberlin.org>
3677
3678 Fix PR tree-optimization/19038
3679 * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
3680 copies with loop variant ones.
3681
1e052c19
KH
36822005-01-22 Kazu Hirata <kazu@cs.umass.edu>
3683
3684 * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
3685 config/alpha/alpha-protos.h, config/alpha/alpha.h,
3686 config/alpha/alpha.md, config/alpha/predicates.md,
3687 config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
3688 config/sparc/sol2.h: Update copyright.
3689
28773f15
KH
3690 * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
3691 first label to see if it is a nonlocal label.
3692
1e052c19 36932005-01-22 David Edelsohn <edelsohn@gnu.org>
ead553a1 3694 Andrew Pinski <pinskia@physics.uc.edu>
987732e0
DE
3695
3696 PR target/19491
3697 * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
3698 maximum number of GPRs. Saturate n_fpr at maximum number of FPRs.
3699
80d15bce
RC
37002005-01-22 Ralf Corsepius <ralf.corsepius@rtems.org>
3701
3702 * config/rs6000/rtems.h: Update copyright.
3703
b9d13999
RC
37042005-01-22 Ralf Corsepius <ralf.corsepius@rtems.org>
3705
3706 PR target/19548
3707 * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
3708 (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
3709 (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
3710
20913689
VR
37112005-01-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3712
3713 PR c/18809
3714 * c-typeck.c (convert_arguments): Check for error_mark_node.
3715
1e052c19 37162005-01-21 Ian Lance Taylor <ian@airs.com>
089efaa4
ILT
3717
3718 PR tree-optimization/13000
3719 * tree-inline.c: Include "tree-flow.h".
3720 (expand_call_inline): If warn_return_type, warn if non-void inline
3721 function falls through.
3722 * tree-cfg.c (execute_warn_function_return): Don't warn about
3723 control reaching end if TREE_NO_WARNING is set. Set
3724 TREE_NO_WARNING.
3725 * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
3726 has been lowered.
3727 * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
3728 branch if we don't need one.
3729 * c-typeck.c: Include "tree-flow.h"
3730 (c_finish_bc_stmt): Don't add a goto if the current statement
3731 list doesn't fall through to the current point.
3732
d284eb28
RS
37332005-01-21 Roger Sayle <roger@eyesopen.com>
3734
3735 PR rtl-optimization/576
3736 * real.c (real_arithmetic): Change return type from void to bool
3737 to return an indication that the result may be inexact.
3738 * real.h (real_arithmeric): Update prototype.
3739 * fold-const.c (const_binop): Don't constant fold floating
3740 point expressions when the user specifies -frounding-math and
3741 the result may depend upon the run-time rounding mode.
3742 (fold_convert_const_real_from_real): Clean-up.
3743 (fold_initializer): Ignore flag_rounding_math for initializers.
3744 * simplify-rtx.c (simplify_binary_operation): Likewise, don't
3745 constant fold FP operations with flag_rounding_math if the
3746 result may depend upon the run-time rounding mode.
3747
a101957b
TT
37482005-01-21 Tom Tromey <tromey@redhat.com>
3749
3750 * c-cppbuiltin.c (define__GNUC__): Correct assertion.
3751
a85ba5a8
KH
37522005-01-21 Kazu Hirata <kazu@cs.umass.edu>
3753
3754 * tree-cfg.c: Fix comment typos.
3755
5b5e3a31
R
37562005-01-21 J"orn Rennecke <joern.rennecke@st.com>
3757
3758 * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
3759 around the call to rest_of_handle_branch_target_load_optimize.
3760
0b85af22
EB
37612005-01-21 Eric Botcazou <ebotcazou@libertysurf.fr>
3762
3763 * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
3764 (sparc64-*-openbsd*): Likewise.
3765 (sparclite-*-elf*): Include tm-dwarf2.h.
3766 (sparc86x-*-elf*): Likewise.
3767 (sparc64-*-elf*): Likewise.
3768 * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
3769 (DBX_DEBUGGING_INFO): Likewise.
3770 * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
3771 (PREFERRED_DEBUGGING_TYPE): Likewise.
3772 * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
3773 * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
3774 (PREFERRED_DEBUGGING_TYPE): Likewise.
ac11d73b 3775 * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
0b85af22
EB
3776 (PREFERRED_DEBUGGING_TYPE): Likewise.
3777 * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
3778
3eacd71f
HPN
37792005-01-21 Hans-Peter Nilsson <hp@bitrange.com>
3780
3781 PR target/18701
3782 * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
3783
eacf8912
PB
37842005-01-20 Paul Brook <paul@codesourcery.com>
3785
3786 * doc/rtl.texi: Document value extension requirements for CONST_INT.
3787
548414c6
KH
37882005-01-20 Kazu Hirata <kazu@cs.umass.edu>
3789
3790 * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
3791 label is first in a sequence of labels.
3792
cde68236
KH
3793 * tree-cfg.c (tree_verify_flow_info): Fix a typo.
3794
35fdf04e
JJ
37952005-01-20 Janis Johnson <janis187@us.ibm.com>
3796 Giovanni Bajo <giovannibajo@gcc.gnu.org>
3797
3798 * doc/sourcebuild.texi (Test Directives): New.
3799
8ffeac67
RS
38002005-01-20 Roger Sayle <roger@eyesopen.com>
3801
3802 * real.c (real_floor): Don't leave the result uninitialized when
3803 mode is VOIDMode, but return the unrounded intermediate value.
3804 (real_ceil): Likewise.
3805
07ff6dac 38062005-01-20 Paul Brook <paul@codesourcery.com>
b65e6318
PB
3807
3808 * config/arm/arm.md (insv): Use gen_int_mode.
3809
62da8647
EB
38102005-01-20 Eric Botcazou <ebotcazou@libertysurf.fr>
3811
3812 * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
3813 * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
3814 * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
3815 * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
3816 * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
3817
3c46c513
DB
38182005-01-20 Daniel Berlin <dberlin@dberlin.org>
3819
3820 Fix PR debug/19124
3821 * dwarf2out.c (concat_loc_descriptor): We don't know we can use
3822 fbreg, so we have to assume we can't.
3823 (loc_descriptor_from_tree_1): Ditto.
3824 (containing_function_has_frame_base): New function.
3825 (add_location_or_const_value_attribute): Use it.
3826 Also try to generate a frame_base from a single element location
3827 list.
2cdc2073 3828
23ab2e4e
KH
38292005-01-20 Kazu Hirata <kazu@cs.umass.edu>
3830
3831 PR tree-optimization/15349
3832 * timevar.def (TV_TREE_MERGE_PHI): New.
3833 * tree-cfg.c (tree_forwarder_block_p): Add a new argument
3834 PHI_WANTED.
3835 (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
3836 calls to tree_forwarder_block_p.
3837 (remove_forwarder_block_with_phi, merge_phi_nodes,
3838 gate_merge_phi, pass_merge_phi): New.
3839 * tree-optimize.c (init_tree_optimization_passes): Add
3840 pass_merge_phi.
3841 * tree-pass.h: Add an extern for pass_merge_phi;
3842
edd5b7da
RH
38432005-01-20 Richard Henderson <rth@redhat.com>
3844
3845 PR target/19418
3846 * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
3847 (_mm_castps_pd, _mm_castps_si128): New.
3848 (_mm_castsi128_ps, _mm_castsi128_pd): New.
3849
0f2698d0
RH
38502005-01-20 Richard Henderson <rth@redhat.com>
3851
3852 PR target/19530
3853 * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
3854 __builtin_ia32_vec_init_v2si.
3855 (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
3856 * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
3857 (ix86_init_mmx_sse_builtins): Create it.
3858 (ix86_expand_builtin): Expand it.
3859 (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
3860 * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
3861 (vec_extractv2si_0, vec_extractv2si_1): New.
3862
6b79c03c
RH
38632005-01-20 Richard Henderson <rth@redhat.com>
3864
58b03a2d 3865 PR target/16533
6b79c03c
RH
3866 * config/i386/i386.c (ix86_expand_push): New.
3867 * config/i386/mmx.md (push<MMXMODE>1): New.
3868 * config/i386/sse.md (push<SSEMODE>1): New.
3869 * config/i386/i386-protos.h: Update.
3870
e42febca
KH
38712005-01-20 Kazu Hirata <kazu@cs.umass.edu>
3872
3873 * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
3874 copyright.
3875
f4770271
RH
38762005-01-20 Richard Henderson <rth@redhat.com>
3877
3878 * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
3879 * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
3880
b4bb3199
RH
38812005-01-19 Richard Henderson <rth@redhat.com>
3882
3883 PR target/19350
3884 * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
3885 to V4SFmode in SSE1 fallback load path.
3886
ceda96fc
RH
38872005-01-19 Richard Henderson <rth@redhat.com>
3888
3889 * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
3890 in QImode expansion to ix86_expand_vector_set.
3891 (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
3892
f75959a6
RH
38932005-01-19 Richard Henderson <rth@redhat.com>
3894
3895 PR target/19511
3896 * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
3897 subclass of the input class.
3898 (ix86_secondary_memory_needed): Always true for cross-MMX classes.
3899 Always true for cross-SSE1 classes. Rationalize conditionals.
3900 * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
3901 * config/i386/i386.md (movsi_1): Add MMX/SSE zeros. Fix alternatives
3902 for SSE1. Don't check TARGET_INTER_UNIT_MOVES.
3903 (movdi_2): Add MMX/SSE zeros.
3904 (movdi_1_rex64): Likewise. Don't check TARGET_INTER_UNIT_MOVES.
3905 (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
3906 (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
3907 (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
3908 (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
3909 (zero_extendsidi2_rex64_1): Remove.
3910 (MOV0 peephole): Check GENERAL_REG_P.
3911
b100079f
RH
39122005-01-19 Richard Henderson <rth@redhat.com>
3913
3914 PR target/19427
3915 * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
3916 shufps elements.
3917 (ix86_expand_vector_extract): Likewise.
3918
539eaa3a
RH
39192005-01-19 Richard Henderson <rth@redhat.com>
3920
3921 PR middle-end/19304
3922 * expr.c (emit_move_change_mode): New argument force; use
3923 simplify_gen_subreg if true.
3924 (emit_move_via_alt_mode): Merge into ...
3925 (emit_move_via_integer): ... here.
3926 (emit_move_ccmode): Use emit_move_change_mode directly.
3927
72910a0b
RH
39282005-01-19 Richard Henderson <rth@redhat.com>
3929
3930 PR target/19518
3931 * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
3932 (alpha_preferred_reload_class): Handle CONST_VECTOR.
3933 (alpha_emit_set_const_1): Add no_output parameter; don't emit
3934 rtl if true.
3935 (alpha_emit_set_const): Likewise. Make static.
3936 (alpha_emit_set_long_const): Make static.
3937 (alpha_extract_integer): Split out from alpha_expand_mov.
3938 (alpha_split_const_mov): Likewise.
3939 (alpha_expand_mov): Use them. Handle CONST_VECTOR.
3940 (alpha_legitimate_constant_p): New.
3941 * config/alpha/alpha-protos.h: Update.
3942 * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
3943 (LEGITIMATE_CONSTANT_P): Re-implement with a function.
3944 * config/alpha/alpha.md (movsi): Add n alternative.
3945 (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
3946 (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
3947 (splitters for all of the above): Use alpha_split_const_mov.
3948 * config/alpha/predicates.md (non_add_const_operand): New.
3949 (non_zero_const_operand): New.
3950 (input_operand): Use alpha_legitimate_constant_p after reload.
3951
4366cf6d
ZD
39522005-01-19 Zdenek Dvorak <dvorakz@suse.cz>
3953
3954 PR tree-optimization/19038
3955 * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
3956 (add_candidate): Add ivs with increment in latch only if
3957 allow_ip_end_pos_p is true.
3958 (determine_iv_cost): Use empty_block_p.
3959
4c7f5fea
DB
39602005-01-19 Daniel Berlin <dberlin@dberlin.org>
3961
3962 * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
3963 (compute_dominance_frontiers): Ditto.
3964
be33b729
RC
39652005-01-19 Ralf Corsepius <ralf.corsepius@rtems.org>
3966
3967 PR target/19529
2cdc2073 3968 * config/sh/t-rtems: New.
be33b729
RC
3969 * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
3970
53dba802
ZD
39712005-01-19 Zdenek Dvorak <dvorakz@suse.cz>
3972
3973 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
3974 the offset of the selected field.
3975
04d38c3b
KH
39762005-01-19 Kazu Hirata <kazu@cs.umass.edu>
3977
3978 * tree-cfg.c (remove_forwarder_block): Fix the check to
3979 prevent a nonlocal label from appearing in the middle of a
3980 basic block.
3981
09f9e288
HPN
39822005-01-19 Hans-Peter Nilsson <hp@axis.com>
3983
3984 PR rtl-optimization/19462
3985 * reorg.c (find_end_label): Create return insn only if
3986 current_function_epilogue_delay_list is empty.
3987
625d4524
PB
39882005-01-19 Paolo Bonzini <bonzini@gnu.org>
3989
3990 * doc/passes.texi: Remove paragraph mentioning new-ra.
3991
e89be13b
JJ
39922005-01-19 Jakub Jelinek <jakub@redhat.com>
3993
49c3b9a8
JJ
3994 PR rtl-optimization/15139
3995 * combine.c: Include params.h.
3996 (count_rtxs): New function.
3997 (record_value_for_reg): If replace_rtx would replace at least
3998 2 occurrences of REG in VALUE and TEM is really large, replace REG with
3999 (clobber (const_int 0)) instead of TEM.
4000 * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
4001 * params.h (MAX_LAST_VALUE_RTL): New.
4002 * Makefile.in (combine.o): Depend on $(PARAMS_H).
4003 * doc/invoke.texi (--param max-last-value-rtl=N): Document.
4004
e89be13b
JJ
4005 PR c/17297
4006 * c-typeck.c (digest_init): Only call build_vector if all constructor
4007 elements are *_CST nodes.
4008 * gimplify.c (gimplify_init_constructor): Likewise.
4009
4010 PR middle-end/19164
4011 * c-typeck.c (digest_init): Only call build_vector if inside_init
4012 is a CONSTRUCTOR.
4013
d74e09c6
TS
40142005-01-18 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
4015
4016 * toplev.c (init_asm_output): Remove dead #ifdef.
4017
e35b30c7
KK
40182005-01-18 Kaz Kojima <kkojima@gcc.gnu.org>
4019
4020 * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
4021
8c96cd51
EB
40222005-01-18 Eric Botcazou <ebotcazou@libertysurf.fr>
4023
4024 * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
4025 accessing DECL_FUNCTION_CODE.
4026 * dojump.c (do_jump): Likewise.
4027 * gimplify.c (gimplify_call_expr): Likewise.
4028 * predict.c (expr_expected_value): Likewise.
4029 (strip_builtin_expect): Likewise.
4030 * tree-inline.c (estimate_num_insns_1): Likewise.
4031 * tree-ssa-loop-im.c (stmt_cost): Likewise
4032 * fold-const.c (fold): Test for BUILT_IN_NORMAL.
4033 (tree_expr_nonnegative_p): Likewise.
4034
eb7a7903
EB
40352005-01-18 Eric Botcazou <ebotcazou@libertysurf.fr>
4036
4037 * config/sparc/sparc.c (load_pic_register): Emit the appropriate
4038 variant of the load_pcrel_sym pattern.
4039 * config/sparc/sparc.md (P macro): Move to the top.
4040 (load_pcrel_sym): Macroize using P.
4041 (save_register_window): Likewise.
4042
7836a61f
AH
40432005-01-18 Aldy Hernandez <aldyh@redhat.com>
4044
4045 * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
4046 ("sordered"): Same.
4047
b4c33883
AP
40482005-01-18 Andrew Pinski <pinskia@physics.uc.edu>
4049
4050 PR C/19472
4051 * c-typeck.c (build_asm_expr): Strip nops off
4052 input memory operands.
4053
56015cee
DE
40542005-01-18 David Edelsohn <edelsohn@gnu.org>
4055
4056 * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
4057 _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
4058 * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
4059 * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
4060
de004e6d
JS
40612005-01-18 Joel Sherrill <joel.sherrill@oarcorp.com>
4062
4063 PR target/19379
4064 * config/i386/i386.c (override_options): If the 80387 is disabled,
4065 then do not return FP values using FP registers.
4066
ad616de1
KH
40672005-01-18 Kazu Hirata <kazu@cs.umass.edu>
4068
4069 * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
4070 c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
4071 combine.c, config.gcc, coverage.h, cse.c, cselib.c,
4072 defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
4073 flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
4074 gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
4075 output.h, postreload-gcse.c, postreload.c, recog.c,
4076 resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
4077 targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
4078 tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
4079 tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
4080 tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
4081 tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
4082 tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
4083 unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
4084
5b86a469
KH
4085 * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
4086 config/alpha/alpha.c, config/arm/vfp.md,
4087 config/i386/emmintrin.h, config/i386/i386-modes.def,
4088 config/i386/i386-protos.h, config/i386/i386.h,
4089 config/i386/pmmintrin.h, config/i386/ppro.md,
4090 config/i386/predicates.md, config/i386/xmmintrin.h,
4091 config/i860/i860.c, config/ia64/ia64-modes.def,
4092 config/ia64/ia64-protos.h, config/ia64/ia64.h,
4093 config/ia64/ia64.md, config/ia64/itanium1.md,
4094 config/ia64/itanium2.md, config/ia64/predicates.md,
4095 config/iq2000/iq2000.h, config/mips/linux64.h,
4096 config/rs6000/aix41.h, config/rs6000/aix43.h,
4097 config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
4098 config/rs6000/rs6000.c, config/rs6000/rs6000.h,
4099 config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
4100 config/sparc/linux64.h, config/sparc/litecoff.h,
4101 config/sparc/sp64-elf.h, config/sparc/sparc.c,
4102 config/sparc/sparc.h, config/sparc/sparc.md,
4103 config/sparc/sysv4-only.h: Update copyright.
4104
51d7bae6
RH
41052005-01-18 Richard Henderson <rth@redhat.com>
4106
4107 PR target/19496
4108 * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
4109
f5975bd5
ME
41102005-01-18 Marc Espie <espie@openbsd.org>
4111 * config/i386/openbsdelf.h: Typo.
4112
9f61886e
RH
41132005-01-18 Richard Henderson <rth@redhat.com>
4114
4115 * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
4116 special case for sse.
4117 * config/i386/predicates.md (sse_comparison_operator): Likewise.
4118
16630a2c
DN
41192005-01-18 Dorit Naishlos <dorit@il.ibm.com>
4120
4121 * tree-inline.c (estimate_num_insns_1): Added cases for
4122 ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
4123
f917ae96
EB
41242005-01-18 Eric Botcazou <ebotcazou@libertysurf.fr>
4125
4126 PR rtl-optimization/19296
4127 * combine.c (simplify_comparison): Rewrite the condition under
4128 which a non-paradoxical SUBREG of a PLUS can be lifted when
4129 compared against a constant.
4130
06da3c24
AK
41312005-01-18 Andi Kleen <ak@muc.de>
4132
4133 * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
4134 * c.opt (-Wpointer-sign): Add.
4135 * doc/invoke.texi: (-Wpointer-sign): Add.
4136
ded1c605
UB
41372005-01-18 Uros Bizjak <uros@kss-loka.si>
4138
4139 * config/i386/i386.c (override_options): Revert 2004-11-24 change.
4140 * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
4141 *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
4142 logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
4143 exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
4144 nearbyintsf2): Disable for TARGET_SSE_MATH. Leave patterns enabled
4145 for TARGET_MIX_SSE_I387.
4146 (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
4147 sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
4148 atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
4149 log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
4150 floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
4151 (TARGET_SSE2 && TARGET_SSE_MATH). Leave patterns enabled for
4152 TARGET_MIX_SSE_I387.
4153 (atan2sf3, atan2df3, atan2xf3): Remove register constraints
4154 from expander.
4155
d0405259
UB
41562005-01-18 Uros Bizjak <uros@kss-loka.si>
4157
4158 PR target/19424
4159 * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
4160 Add movaps alternative for xmm reg->reg move.
4161
0bd65483
JL
41622005-01-17 Jeff Law <law@redhat.com>
4163
4164 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
4165 at the end of the main DOM loop rather than just before DOM exits.
4166
e03a46f5
DN
41672005-01-17 Diego Novillo <dnovillo@redhat.com>
4168
4169 PR tree-optimization/19121
4170 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
4171 adding aliases to a name tag, also add them to the pointer's
4172 type tag.
4173 * tree-ssa-copy.c (merge_alias_info): Do not merge flow
4174 sensitive alias info at all. Only check that the two pointers
4175 have compatible pointed-to sets.
4176 * tree-ssa.c (verify_name_tags): Verify that the alias set of
4177 a pointer's type tag is a superset of the alias set of the
4178 pointer's name tag.
4179
696a2ca1
JW
41802005-01-17 James E Wilson <wilson@specifixinc.com>
4181
4182 PR target/19357
4183 * config/ia64/ia64.md (movxf): Handle general register source. Adjust
4184 comment to document why.
4185
115a33c2
RH
41862005-01-17 Richard Henderson <rth@redhat.com>
4187
4188 * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
4189 sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
4190 sse2_vmsmaxv2df3_finite, sminv2df3_finite,
4191 sse2_vmsminv2df3_finite): New.
4192 (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
4193 sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
4194 Force op1 into register.
4195
ded73657
KC
41962005-01-17 Kelley Cook <kcook@gcc.gnu.org>
4197
4198 * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
4199 bubblestrap from always rebuilding build directory.
4200
d4f52f0e
UW
42012005-01-17 Ulrich Weigand <uweigand@de.ibm.com>
4202
4203 * config/s390/s390.md ("*clc"): Remove incorrect '='.
4204 ("*cmpmem_short"): Likewise.
4205
740ce53d
SB
42062005-01-17 Steven Bosscher <stevenb@suse.de>
4207
4208 * basic-block.h: Document BB_* flags.
4209 * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
4210 use an sbitmap instead.
4211 * sched-rgn.c (compute_trg_info): Likewise.
4212
2184a120
RS
42132005-01-17 Richard Sandiford <rsandifo@redhat.com>
4214
4215 * config.gcc (mips64*-*-linux*): Set the default abi to n32. Remove
4216 redundant target_cpu_default and extra_parts lines. Use the default
4217 "from-abi" ISA.
4218 * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
4219 (SUBTARGET_EXTRA_SPECS): Delete.
4220 (DRIVER_SELF_SPECS): Remove architecture lines. Set the ABI directly.
4221 (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
4222 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
4223 and "n32" for -mabi=n32.
4224
812ad338
ILT
42252005-01-17 Ian Lance Taylor <ian@airs.com>
4226
4227 PR c/5675
4228 * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
4229 fold constant variables into initial values.
4230
26e75214
KH
42312005-01-17 Kazu Hirata <kazu@cs.umass.edu>
4232
4233 * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
4234
f8ef82ea
KH
4235 * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
4236 through the statements backward.
4237
81bafd36
ILT
42382005-01-17 Ian Lance Taylor <ian@airs.com>
4239
4240 PR middle-end/13127:
4241 * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
4242 a variable set to the return value of the inlined function.
4243
edb81165
MD
42442005-01-17 Mark Dettinger <dettinge@de.ibm.com>
4245
4246 * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
4247 when modes are tieable.
4248
658acbb2
RM
42492005-01-17 Ranjit Mathew <rmathew@hotmail.com>
4250
4251 * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
4252 of pthread_create to find out if threads are enabled.
4253 * gthr-posix95.h (__gthread_active_p): Likewise.
4254
cd280abb
PB
42552005-01-17 Paolo Bonzini <bonzini@gnu.org>
4256
4257 * common.opt (-fnew-ra): Remove.
4258 * ra*.*: Remove.
4259 * toplev.h (flag_new_regalloc): Remove.
4260 * Makefile.in (ra*.*): Don't mention.
4261 * passes.c (rest_of_handle_new_regalloc): Remove.
4262 (rest_of_handle_combine, rest_of_compilation): Always consider
4263 flag_new_regalloc as false.
4264 * doc/invoke.texi: Don't document -fnew-ra.
4265
42662005-01-17 Paolo Bonzini <bonzini@gnu.org>
c80a0f26
PB
4267
4268 * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
4269 last parameter to reg_scan.
4270 * loop.c (loop_optimize): Likewise.
4271 * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
4272 rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
4273 rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
4274 rest_of_handle_gcse, rest_of_handle_loop_optimize,
4275 rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
4276 * regclass.c (reg_scan): Likewise, for the declaration.
4277 * rtl.h (reg_scan): Likewise, for the prototype.
4278
724e4d44
KH
42792005-01-17 Kazu Hirata <kazu@cs.umass.edu>
4280
4281 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
4282 mark_dfs_back_edges.
4283
7f233d9f
DB
42842005-01-16 Daniel Berlin <dberlin@dberlin.org>
4285
4286 * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
4287 (compute_avail): Uses don't go in tmp_gen.
4288
6f0947e4
SB
42892005-01-16 Steven Bosscher <stevenb@suse.de>
4290
4291 * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
4292 loop to look for a free slot in a page entry.
4293
083b6717
JDA
42942005-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4295
4296 PR target/16304
4297 * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
4298 * toplev.c (compile_file): Call process_pending_assemble_output_defs
4299 just before targetm.asm_out.file_end.
4300 * tree.h (process_pending_assemble_output_defs): Declare.
4301 * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
4302 New functions.
4303 (assemble_alias): Defer generation of assembly code for defines when
4304 TARGET_DEFERRED_OUTPUT_DEFS is true.
4305 * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
4306 * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
4307 * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
4308
2d5ca9a0
JDA
43092005-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4310
83c32f2e
JDA
4311 PR target/19336
4312 * pa.c (pa_scalar_mode_supported_p): New function.
4313 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
4314 * pa.h (MIN_UNITS_PER_WORD): Add comment.
4315
2d5ca9a0
JDA
4316 * pa-protos.h (prefetch_operand): Delete.
4317 (prefetch_cc_operand, prefetch_nocc_operand): New declations.
4318 * pa.c (prefetch_operand): Delete.
4319 (prefetch_cc_operand, prefetch_nocc_operand): New functions.
4320 * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
4321 (PREDICATE_CODES): Delete prefetch_operand. Add prefetch_cc_operand
4322 and prefetch_nocc_operand.
4323 * pa.md (prefetch): Rework to avoid reload problems handling short
4324 displacements when a cache control completer needs to be provided.
4325 (prefetch_32, prefetch_64): Delete.
4326 (prefetch_cc, prefetch_nocc): New patterns.
4327
6a9836b1
DE
43282005-01-15 David Edelsohn <edelsohn@gnu.org>
4329
4330 * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
4331
22f549fd
JDA
43322005-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4333
4334 PR ada/19388
4335 * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
4336 exceeds maximum alignment for global common data.
4337 * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
4338 * som.h (MAX_OFILE_ALIGNMENT): Likewise.
4339
19e1af6e
RS
43402004-01-15 Roger Sayle <roger@eyesopen.com>
4341
4342 * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
4343
778f72f2
RS
43442004-01-15 Roger Sayle <roger@eyesopen.com>
4345
4346 * harg-reg-set.h (reg_class_names): Prototype global array.
4347 * regclass.c (reg_class_names): Declare here and initialize to
4348 REG_CLASS_NAMES.
4349 (dump_regclass): Remove local declaration of reg_class_names.
4350 (regclass): Likewise.
4351 * cfg.c (dump_flow_info): Likewise.
4352 * ra-debug.c (reg_class_names): Likewise.
4353 * regrename.c (reg_class_names): Likewise.
4354 * reload.c (reg_class_names): Likewise.
4355 * reload1.c (spill_failure): Likewise.
4356 * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
4357
9c3c3dcc
UW
43582005-01-15 Ulrich Weigand <uweigand@de.ibm.com>
4359
4360 * config/s390/s390.md ("reload_outti"): Remove predicate for
4361 output operand. Abort if operand is not a MEM.
4362 ("reload_outdi", "reload_outdf"): Likewise.
4363
378b66d4
ME
43642005-01-15 Marc Espie <espie@openbsd.org>
4365
4366 * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
4367 (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
4368 * config/openbsd.h: Fix C++ includes for native configurations.
4369 Add proper OS_CPP_BUILTINS. Fix libspec for recent OpenBSD.
4370 Add trampoline support.
4371 * config/i386/openbsdelf.h: New.
4372
60828cbd
ME
43732005-01-15 Marc Espie <espie@openbsd.org>
4374
4375 * collect2.c (main): Explicitly parse -dynamic-linker option.
4376
75b9aa9f
JJ
43772005-01-15 Jakub Jelinek <jakub@redhat.com>
4378
4379 PR tree-optimization/19060
4380 * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
4381 Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
4382 (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
4383 and handle extract_range_from_cond returning false.
4384 * fold-const.c (fold): Optimize comparisons with min/max even for
4385 width > HOST_BITS_PER_WIDE_INT.
4386
4ba9f2a1
RC
43872005-01-15 Ralf Corsepius <ralf.corsepius@rtems.org>
4388
4389 * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
2cdc2073 4390 * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
4ba9f2a1
RC
4391 Remove little endian multilib variants.
4392 Add mips32 multilib variant.
4393
bbc8fb00
KH
43942005-01-15 Kazu Hirata <kazu@cs.umass.edu>
4395
4396 * explow.c (copy_all_reg, stabilize): Remove.
4397 * expr.h: Remove the corresponding prototypes.
4398
6a29dc8b
KH
4399 * rtlanal.c (regs_set_between_p): Remove.
4400 * rtl.h: Remove the corresponding prototype.
4401
165a5bad
DE
44022005-01-14 David Edelsohn <edelsohn@gnu.org>
4403
4404 * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
4405 to rs6000_nonimmediate_operand.
4406 * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
4407 rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
4408 * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
4409 rs6000_nonimmediate_operand.
4410 * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
4411 rs6000_nonimmediate_operand.
4412
7f9e6d2a
AP
44132005-01-14 Andrew Pinski <pinskia@physics.uc.edu>
4414
4415 * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
4416
54b695e7
AH
44172005-01-14 Aldy Hernandez <aldyh@redhat.com>
4418
4419 * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
4420 on e500v2.
4421 (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
4422 (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
4423
4424 * config/rs6000/rs6000.c (invalid_e500_subreg): New.
4425 (rs6k_nonimmediate_operand): New.
4426 (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
4427 correctly.
4428 (legitimate_lo_sum_address_p): Same.
4429 (rs6000_legitimize_address): Same.
4430 (rs6000_legitimize_reload_address): Same.
4431 (rs6000_legitimate_address): Same.
4432 (spe_build_register_parallel): Pass DF and DC modes in a DI
4433 register.
4434
4435 * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
4436 to rs6k_nonimmediate_operand.
4437
4438 * config/rs6000/spe.md ("*frob_df_di"): New.
4439 ("*frob_di_df"): New.
4440 ("*frob_di_df_2"): New.
4441 ("*mov_sidf_e500_subreg0"): New.
4442 ("*mov_sidf_e500_subreg4"): New.
4443 ("*movdf_e500_double"): Change predicate to
4444 rs6k_nonimmediate_operand.
4445
05075d4e
AH
44462005-01-14 Aldy Hernandez <aldyh@redhat.com>
4447
4448 * postreload.c (move2add_note_store): Only call
4449 trunc_int_for_mode on scalar integers.
4450
a28fee03
SB
44512005-01-14 Steven Bosscher <stevenb@suse.de>
4452
4453 * tree-ssa-dce.c (visited_control_parents): New sbitmap to
4454 replace BB_VISITED uses.
4455 (find_obviously_necessary_stmts): Don't clear BB_VISITED.
4456 (propagate_necessity): Check the bitmap instead of BB_VISITED.
4457 (tree_dce_done): Free visited_control_parents.
4458 (perform_tree_ssa_dce): Allocate and clear it.
4459 * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
4460 (compute_antic): Iterate from here using a DFS. Use an sbitmap
4461 instead of BB_VISITED.
4462
103a83e0
KH
44632005-01-14 Kazu Hirata <kazu@cs.umass.edu>
4464
4465 * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
4466 rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
4467 Remove unused prototypes.
4468
b5a5beb9
AH
44692005-01-14 Aldy Hernandez <aldyh@redhat.com>
4470
4471 * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
4472 64-bit register usage.
4473 (spe_func_has_64bit_regs_p): Add FIXME note.
4474
5ca18999
AH
44752005-01-14 Aldy Hernandez <aldyh@redhat.com>
4476
4477 * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
4478 flag_finite_math_only with flag_unsafe_math_optimizations.
4479
783d2650
J
44802005-01-14 J. D. Johnston <jjohnst@us.ibm.com>
4481
4482 * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
4483 end-of-stack check.
4484 (__tpf_eh_return): Copy TPF private stack area from the module
4485 boundary stack frame. Add check for when module addresses are
4486 equal, but no stub address is found.
4487
b12a00f1
RE
44882005-01-14 Richard Earnshaw <rearnsha@arm.com>
4489
4490 PR target/7525
4491 * arm.h (struct machine_function): Add call_via field.
4492 (thumb_call_via_label): Declare.
4493 * arm.c (thumb_call_via_label): New variable.
4494 (thumb_call_reg_needed): New variable.
4495 (arm_output_function_epilogue): For Thumb code, output any per-function
4496 call-indirect trampolines.
4497 (thumb_call_via_reg): New function.
4498 (arm_file_end): New function.
4499 (TARGET_ASM_FILE_END): Call arm_file_end.
4500 (aof_file_end): Likewise.
4501 * arm-protos.h (thumb_call_via_reg): Declare.
2cdc2073 4502 * arm.md (call_reg_thumb, call_value_reg_thumb): Call
b12a00f1
RE
4503 thumb_call_via_reg in normal case.
4504
08a0c536
JJ
45052005-01-14 Jakub Jelinek <jakub@redhat.com>
4506
4507 PR middle-end/19084
4508 PR rtl-optimization/19348
4509 * recog.c (peephole2_optimize): Do global life update if some peephole
4510 decides it doesn't need at least one of its inputs and that change
4511 influences liveness at the start of the basic block.
4512
4513 * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
4514 arguments instead of 1.
4515
eebeecac
EB
45162005-01-14 Eric Botcazou <ebotcazou@libertysurf.fr>
4517
4518 PR middle-end/18820
4519 * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
4520 zero for nested functions needing a static chain or functions
4521 with a non-constant address.
4522
a0ee8b5f
RS
45232005-01-13 Roger Sayle <roger@eyesopen.com>
4524
4525 * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
4526 (and (sign_extend X) C) into (zero_extend (and X C)).
4527
92018897
DB
45282005-01-13 David O'Brien <obrien@FreeBSD.org>
4529
4530 * config/freebsd-spec.h: Make KSE pthread lib logic the default.
4531
eaa49b49
RH
45322005-01-13 Richard Henderson <rth@redhat.com>
4533
2d1d3cb2 4534 PR target/19009
eaa49b49
RH
4535 PR target/19250
4536 PR target/19252
4537 * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
4538 bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
4539 not just TARGET_SSE.
4540 (cmpfp_i_387): Rename from cmpfp_i. Move after sse patterns.
4541 (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
4542 (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
4543 (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
4544 (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
4545 (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
4546 (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
4547 fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
4548 (movdicc_c_rex64): Rename with '*'.
4549 (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
4550 (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
4551 (movsfcc_1_387): Rename from movsfcc_1.
4552 (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
4553 (movdfcc_1, movdfcc_1_rex64): Add check for 387.
4554 (sminsf3, smaxsf3, smindf3, smaxdf3): New.
4555 (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
4556 mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
4557 maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
4558 sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
4559 sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
4560 sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
4561 sse_movdfcc_const0_4): Remove.
4562 * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
4563 recognize min/max early. Update for changed sse cmove patterns.
4564 (ix86_split_sse_movcc): New.
4565 * config/i386/i386-protos.h: Update.
4566
1dff80c0
SB
45672005-01-13 Steven Bosscher <stevenb@suse.de>
4568
4569 * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
4570 (fix_stmt_v_may_defs): Likewise.
4571
bb129a4f
RH
45722005-01-13 Richard Henderson <rth@redhat.com>
4573
4574 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
4575 for converting the mask.
4576
2cba2c8b
DE
45772005-01-13 David Edelsohn <edelsohn@gnu.org>
4578
4579 * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
4580 definition to 600.
4581
ed9b5396
RH
45822005-01-13 Richard Henderson <rth@redhat.com>
4583
4584 * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
4585 IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
4586 IX86_BUILTIN_MOVDQ2Q): Remove.
4587 (IX86_BUILTIN_VEC_EXT_V4SI): New.
4588 (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
2cdc2073 4589 (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
ed9b5396
RH
4590 shuffling.
4591 * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
4592 (sse2_pextrw): Fix immediate constraint.
4593 (sse2_loadq, sse2_loadq_rex64): Remove.
4594 * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
4595 Use __builtin_ia32_vec_ext_<size>.
4596 (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
4597
17284759
AH
45982005-01-13 Aldy Hernandez <aldyh@redhat.com>
4599
4600 * function.c (assign_parm_setup_block): Look inside original
4601 entry_parm when inspecting PARALLEL.
4602
5d58d2f8
RC
46032005-01-13 Ralf Corsepius <ralf.corsepius@rtems.org>
4604 Joel Sherrill <joel@oarcorp.com>
4605
4606 PR target/19399
4607 * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
4608 (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
4609 rtems_gxx_recursive_mutex_init.
4610 (__gthread_recursive_mutex_lock): New function.
4611 (__gthread_recursive_mutex_trylock): Likewise.
4612 (__gthread_recursive_mutex_unlock): Likewise.
4613
52786878
RC
46142005-01-13 Ralf Corsepius <ralf.corsepius@rtems.org>
4615
4616 * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
4617
16d8386b
JB
46182005-01-13 Jan Beulich <jbeulich@novell.com>
4619
4620 * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
4621 (ashrti3_internal): Indicate output is early clobber. Generate result
4622 into output rather than first input. Use move for low word of output
4623 if shift count is exactly 64.
4624 (lshrti3_internal): Likewise.
4625
0149f412
HPN
46262005-01-13 Hans-Peter Nilsson <hp@bitrange.com>
4627
4628 PR target/18329
4629 PR target/18330
4630 * reload1.c (delete_output_reload): Don't delete an output reload
4631 if the pseudo lives longer than a single basic block. Adjust and
4632 improve wording of comment.
4633
e1e04267
AP
46342005-01-12 Andrew Pinski <pinskia@physics.uc.edu>
4635
4636 PR target/19334
4637 * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
4638 of TYPE_SIZE where we mean the number of bytes.
4639
640019aa
AH
46402005-01-12 Aldy Hernandez <aldyh@redhat.com>
4641
4642 * function.c (assign_parm_setup_block): Relax condition on
4643 multi-register optimization.
4644
98e20ffd
NC
46452005-01-12 Nick Clifton <nickc@redhat.com>
4646
4647 * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
4648 an "in_delay_slot" attribute of "no" to prevent them being used in
4649 delay slots. This is forbidden because they might generate
4650 exceptions.
4651
409f61cd
AM
46522005-01-12 Alan Modra <amodra@bigpond.net.au>
4653
4654 PR target/19389
4655 * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
4656 with r->Y and Y->r.
4657
ef6f5655
NC
46582005-01-12 Nick Clifton <nickc@redhat.com>
4659
4660 * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
4661 passed on to GAS) but do not define, as GAS no longer supports or
4662 needs the -m2000 option.
4663
157b3890
RS
46642005-01-11 Roger Sayle <roger@eyesopen.com>
4665
4666 * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
4667 type as args of unprototyped builtins aren't automatically promoted.
4668 (fold_builtin_abs): Likewise.
4669
9a43b902
KG
46702005-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4671
4672 * Makefile.in: Set a `build-warn' variable.
4673
0a915e3d
ZD
46742005-01-11 Zdenek Dvorak <dvorakz@suse.cz>
4675
4676 PR tree-optimization/17949
4677 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
4678 (find_interesting_uses_address): Use it.
4679
f351bfed
AH
46802005-01-11 Aldy Hernandez <aldyh@redhat.com>
4681
4682 * regrename.c (kill_value): Handle subreg's that won't simplify.
4683
eb701deb
RH
46842005-01-11 Richard Henderson <rth@redhat.com>
4685
4686 PR target/13366
4687 * config/i386/i386.h (enum ix86_builtins): Move ...
4688 * config/i386/i386.c: ... here.
4689 (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
4690 IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
4691 IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
4692 IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
4693 IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD, IX86_BUILTIN_STOREHPD,
4694 IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
4695 IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
4696 IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
4697 IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
4698 IX86_BUILTIN_LOADDDUP): Remove.
4699 (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
4700 IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
4701 IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
4702 IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
4703 IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
4704 (ix86_init_builtins): Make static.
4705 (ix86_init_mmx_sse_builtins): Update for changed builtins.
4706 (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
4707 if all the modes match. Otherwise, fake it.
4708 (get_element_number, ix86_expand_vec_init_builtin,
4709 ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
4710 (ix86_expand_builtin): Make static. Update for changed builtins.
4711 (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
4712 operand instead of sse2_loadsd. Cast sse1 fallback to V4SFmode.
4713 (ix86_expand_vector_init_duplicate): New.
4714 (ix86_expand_vector_init_low_nonzero): New.
4715 (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
4716 Split out from ix86_expand_vector_init; handle integer modes.
4717 (ix86_expand_vector_init): Use them.
4718 (ix86_expand_vector_set, ix86_expand_vector_extract): New.
4719 * config/i386/i386-protos.h: Update.
4720 * config/i386/predicates.md (reg_or_0_operand): New.
4721 * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
4722 (movv2sf_internal): Likewise. And a splitter to match them all.
4723 (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
4724 vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
4725 vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
4726 vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
4727 (mmx_pinsrw): Fix operand ordering.
4728 * config/i386/sse.md (movv4sf splitter): Use direct pattern,
4729 rather than sse_loadss expander.
4730 (movv2df splitter): Similarly.
4731 (sse_loadss, sse_loadlss): Remove.
4732 (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
4733 (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
4734 (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
4735 (sse3_movddup): Rename with '*'.
4736 (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
4737 (sse2_loadsd): Remove.
4738 (vec_dupv2df_sse3): Rename from sse3_loadddup.
4739 (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
4740 (sse2_pinsrw): Fix argument ordering.
4741 (sse2_loadld, sse2_loadq): Add sse1 alternatives.
4742 (sse2_stored): Remove 'r' destination.
4743 (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
4744 vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
4745 vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
4746 vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
4747 vec_extractv16qi, vec_initv16qi): New.
4748
4749 * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
2cdc2073 4750 (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
eb701deb
RH
4751 _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
4752 constructor form.
4753 (_mm_load_pd, _mm_store_pd): Use plain dereference.
4754 (_mm_load_si128, _mm_store_si128): Likewise.
4755 (_mm_load1_pd): Use _mm_set1_pd.
4756 (_mm_load_sd): Use _mm_set_sd.
4757 (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
4758 (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
4759 (_mm_set_epi64): Use _mm_set_epi64x.
4760 (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
4761 _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
4762 _mm_setr_epi8): Use _mm_set_foo form.
4763 (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
4764 (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
4765 (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
4766 (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
4767 * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
4768 (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
4769 (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
4770 (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
4771 (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
4772 * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
4773 (_mm_movedup_pd): Use _mm_shuffle_pd.
4774 * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
4775 _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
4776 (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
4777 _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
4778 Use _mm_setzero_ps.
4779 (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
4780 (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
4781 (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
4782 (_mm_store_ps): Use raw dereference.
4783 (_mm_store1_ps): Use _mm_storeu_ps.
4784 (_mm_storer_ps): Use _mm_store_ps.
4785 (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
4786 (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
4787
d9e4e4f5
SS
47882005-01-11 Stan Shebs <shebs@apple.com>
4789
4790 * config/rs6000/rs6000.c (machopic_output_stub): Issue
4791 ldu instead of lwzu if 64-bit -mdynamic-no-pic.
4792
85962ac8
AP
47932005-01-11 Andrew Pinski <pinskia@physics.uc.edu>
4794
4795 PR target/18761
4796 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
4797 Skip all DECLs except for FIELD_DECLs.
4798
6b78f6be
AK
47992005-01-11 Andreas Krebbel <krebbel1@de.ibm.com>
4800
4801 * config/s390/s390.c (override_options): Return error if
4802 -mbackchain, -mpacked-stack and -mhard-float are used together.
4803 (s390_va_start): Remove the backchain && packed-stack special case.
4804 (s390_gimplify_va_arg): Likewise.
4805 * doc/invoke.texi: Remove the ABI incompatibility note.
4806
66480e91
AK
48072005-01-11 Andreas Krebbel <krebbel1@de.ibm.com>
4808
fc474307 4809 * config/s390/s390.c (struct s390_frame_layout): Remove
66480e91
AK
4810 save_backchain_p.
4811 (s390_frame_info, s390_emit_prologue): Replace occurrences of
4812 save_backchain_p with TARGET_BACKCHAIN.
4813
bfc45551
AM
48142005-01-11 Alan Modra <amodra@bigpond.net.au>
4815
4816 PR target/18916
4817 * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
4818 * expr.h (struct locate_and_pad_arg_data): Add "boundary".
4819 * function.c (locate_and_pad_parm): Set new field.
4820 (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
4821 Tweak where_pad test to include "none". Always set mem align for
4822 stack_parm.
4823 (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
4824 not sufficient for type.
4825 (assign_parm_setup_block): If stack_parm is zero on entry, always
4826 make a new stack local. Block move old stack parm if necessary
4827 to new aligned stack local.
4828 (assign_parm_setup_stack): Use a block move to handle
4829 potentially misaligned entry_parm.
4830 (assign_parms_unsplit_complex): Specify required alignment when
4831 creating stack local.
4832 * calls.c (compute_argument_addresses): Override alignment of stack
4833 arg calculated from its type with the alignment given by
4834 FUNCTION_ARG_BOUNDARY.
4835 (store_one_arg): Likewise.
4836
d3f6e07b 48372005-01-11 Jan Beulich <jbeulich@novell.com>
bfc45551 4838
d3f6e07b
JB
4839 * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
4840 Change respective itanium_class attribute to ialu.
4841 (shladdp4_internal): New.
4842 * config/ia64/predicates.md (shladd_log2_operand): New.
4843
201dd46b
RH
48442005-01-11 Richard Henderson <rth@redhat.com>
4845
4846 * expr.c (store_constructor): Use rtvec_alloc instead of
4847 alloca+gen_rtvec_v, and an incorrect number passed to alloca.
4848
35c0104b
KH
48492005-01-11 Kazu Hirata <kazu@cs.umass.edu>
4850
4851 * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
4852
abb8b19a
AM
48532005-01-11 Alan Modra <amodra@bigpond.net.au>
4854
4855 * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
4856 * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
4857 (TARGET_RWRELOC): Define.
4858 (ia64_rwreloc_section_type_flags): Delete.
4859 (ia64_section_type_flags): New function.
4860 * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
4861 (TARGET_RWRELOC): Define.
4862
b1eae416
DM
48632005-01-10 David Mosberger <davidm@hpl.hp.com>
4864
4865 PR target/18987
4866 * config/ia64/ia64.c (process_set): For alloc insn, only call
4867 process_epilogue is !frame_pointer_needed.
4868
18d00205
RS
48692005-01-10 Roger Sayle <roger@eyesopen.com>
4870
4871 PR c++/19355
4872 * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
4873 unary operator and can't be treated as a binary/comparison operator.
4874
b3a1ca49
RH
48752005-01-10 Richard Henderson <rth@redhat.com>
4876
4877 * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
4878 (ix86_return_in_memory): Likewise.
4879 (function_arg_advance): Likewise. Mirror structure in function_arg
4880 for choosing register to advance.
4881
1618f948
KH
48822005-01-10 Kazu Hirata <kazu@cs.umass.edu>
4883
4884 * tree-vectorizer.c, tree.def: Fix comment typos.
4885
98fd0d70
MD
48862005-01-10 Mark Dettinger <dettinge@de.ibm.com>
4887
4888 * config/s390/s390.c (struct processor_costs): 4 new fields:
4889 ddbr, ddr, debr, der.
4890 (s390_rtx_costs): More precise handling of divide instructions.
4891
99757961
DE
48922005-01-10 David Edelsohn <edelsohn@gnu.org>
4893
4894 * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
4895
826eb7ed
JB
48962005-01-10 Jan Beulich <jbeulich@novell.com>
4897
4898 * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
4899 names resulting from -ffunction-sections/-fdata-sections and linkonce
4900 ones.
4901 * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
4902 based on the section name. Rearrange the section name comparison logic
4903 slightly so that each section name is compared against at most once.
4904
068d4f38
BE
49052005-01-10 Ben Elliston <bje@au.ibm.com>
4906
4907 * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
4908 targets for which -fPIC reduces limitations on the GOT size.
4909
351bae3d
FH
49102005-01-09 Falk Hueffner <falk@debian.org>
4911
4912 * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
4913 X/C1 cmpop C2.
4914
7142ae77
DE
49152005-01-09 David Edelsohn <edelsohn@gnu.org>
4916
4917 PR target/18720
4918 * collect2.c (main): Set aixrtl_flag for -brtl option.
4919 (resolve_lib_name): Search for .so file extension before .a
4920 if aixrtl_flag set.
4921
5a3ed97a
DN
49222005-01-09 Dorit Naishlos <dorit@il.ibm.com>
4923
4924 * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
4925 (vect_analyze_data_refs_alignment): Add dump prints.
4926
db5dc63d
IR
49272005-01-09 Ira Rosen <irar@il.ibm.com>
4928
fc474307 4929 * tree-vectorizer.c (vect_analyze_offset_expr): Use
db5dc63d
IR
4930 expr_invariant_in_loop_p.
4931 Initialize outputs first thing in the function.
4932 (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
4933 (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
fc474307 4934 (vect_analyze_pointer_ref_access): Check that the initial condition of
db5dc63d
IR
4935 the access function is loop invariant.
4936
80e8bb90
RH
49372005-01-09 Richard Henderson <rth@redhat.com>
4938
4939 * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
4940 (ix86_expand_builtin): Likewise. Frob MASKMOVQ wrt the input mem
4941 just like MASKMOVDQU. Return plain zero for MMX_ZERO.
4942 * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
4943 mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
4944 movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
4945 movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
4946 sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
4947 ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
4948 mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
4949 mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
4950 sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
4951 mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
4952 mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
4953 gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
4954 ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
4955 mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
fc474307 4956 mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
80e8bb90
RH
4957 mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
4958 eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
4959 pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
4960 pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
4961 pswapdv2sf2): Move to mmx.md; rename as necessary with leading
4962 mmx_ prefix.
4963 (mmx_clrdi, pavgusb): Remove.
fc474307 4964 (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
80e8bb90
RH
4965 with leading sse_ prefix.
4966 * config/i386/sse.md: Receive them.
4967 * config/i386/mmx.md: New file.
4968 (MMXMODE12, MMXMODE24, mmxvecsize): New.
4969 (subrv2sf3): Turn into expander for normal subtraction.
4970 (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
4971 mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
4972 mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
4973 mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
4974 commutative; use ix86_binary_operator_ok.
4975 (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
4976 mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
4977 mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
fc474307 4978 mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
80e8bb90
RH
4979 mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
4980 Macroize from existing patterns; use ix86_binary_operator_ok.
4981 (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
4982 (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
4983 mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise. Model
4984 with vec_select+vec_concat.
4985 (mmx_pshufw, mmx_pshufw_1): Likewise.
4986 (mmx_uavgv8qi3): Merge pavgusb. Model correcty.
4987 (mmx_uavgv4hi3): Model correctly.
4988 * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
4989 _mm_xor_si64): Remove casts.
4990
eb0bc7af
ZD
49912005-01-09 Zdenek Dvorak <dvorakz@suse.cz>
4992
4993 PR tree-optimization/19224
4994 * tree-scalar-evolution.c (get_instantiated_value,
4995 set_instantiated_value): New functions.
4996 (instantiate_parameters_1): Cache the results.
4997 (instantiate_parameters, resolve_mixers): Initialize and free
4998 the cache.
4999
d1c9ce9f
DE
50002005-01-08 David Edelsohn <edelsohn@gnu.org>
5001
5002 * config/i386/i386.md (addhi_4): Correct reference in comment.
5003 (addqi_4): Same.
5004
ef719a44
RH
50052005-01-08 Richard Henderson <rth@redhat.com>
5006
5007 * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
5008 (_mm_cvtsi128_si64x): Likewise.
5009 (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
5010 _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
5011 the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
5012 * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
5013 * config/i386/i386-protos.h: Update.
5014 * config/i386/i386.c (print_operand): Add 'H'.
5015 (ix86_fixup_binary_operands): Split out from ...
5016 (ix86_expand_binary_operator): ... here.
5017 (ix86_fixup_binary_operands_no_copy): New.
5018 (ix86_expand_fp_absneg_operator): Handle vector mode results.
5019 (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
5020 (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
5021 (safe_vector_operand): Use CONST0_RTX.
5022 (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
5023 (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
5024 CODE_FOR_sse2_maskmovdqu. Special case SSE version of MASKMOVDQU
5025 expansion. Update names for sse{,2,3}_ prefixes. Remove *maskncmp*
5026 special cases.
5027 * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
5028 (IX86_BUILTIN_CMPNGESS): New.
5029 * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
5030 (attr type): Add sselog1.
5031 (attr unit, attr memory): Handle it.
5032 (movti, movti_internal, movti_rex64): Move near other integer moves.
5033 (movtf, movtf_internal): Move near other fp moves.
5034 (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
5035 vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
fc474307 5036 movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
ef719a44
RH
5037 movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
5038 sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
5039 sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
5040 sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
5041 mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
5042 rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
fc474307
EC
5043 sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
5044 sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
5045 sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
ef719a44
RH
5046 vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
5047 smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
5048 cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
5049 cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
5050 vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
5051 vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
5052 sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
5053 sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
5054 cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
5055 cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
5056 cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
5057 cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
5058 ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
5059 subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
5060 smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
5061 sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
5062 sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
fc474307 5063 sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
ef719a44
RH
5064 gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
5065 ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
5066 ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
fc474307 5067 sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
ef719a44
RH
5068 sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
5069 sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
fc474307 5070 sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
ef719a44
RH
5071 sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
5072 sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
5073 sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
5074 mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
5075 addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
5076 movsldup, lddqu, loadddup, movddup): Move to sse.md. Any with
5077 non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
5078 same time.
5079 (SSEPUSH, push<SSEPUSH>): Remove.
5080 (MMXPUSH, push<MMXPUSH>): Remove.
5081 (sse_movaps, sse_movaps_1, sse_movups): Remove.
5082 (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
5083 (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
5084 (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
5085 (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
5086 (maskncmpv2df3, vmmaskncmpv2df3): Remove.
5087 (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
5088 (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
5089 * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
5090 (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
5091 * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
5092 (ppro_sse_log_V4SF_load): Similarly. Handle sselog1.
5093 (ppro_sse_log_V4SF): Handle sselog1.
5094 * config/i386/predicates.md (const_0_to_1_operand): New.
5095 (const_0_to_255_mul_8_operand): New.
5096 (const_1_to_31_operand): Rename from const_int_1_31_operand.
5097 (const_2_to_3_operand, const_4_to_7_operand): New.
5098 * config/i386/sse.md: New file.
5099 (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
5100 (sse_movups): Rename from sse_movups_1.
5101 (sse_loadlss): Rename from sse_loadss_1.
5102 (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
5103 from the name.
5104 (negv4sf2): Use ix86_expand_fp_absneg_operator.
5105 (absv4sf2, negv2df, absv2df): New.
5106 (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
5107 (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
5108 iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
5109 smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
5110 umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
5111 (sse3_addsubv4sf3): Model correctly.
5112 sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
5113 sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
5114 (sse_movhlps): Model with vec_select+vec_concat.
fc474307 5115 (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
ef719a44
RH
5116 sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
5117 sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
5118 sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
5119 sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
fc474307 5120 sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
ef719a44
RH
5121 sse2_pshufhw_1): Likewise.
5122 (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
5123 (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
5124 sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
5125 ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
5126 sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
fc474307 5127 ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
ef719a44
RH
5128 (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
5129 sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
5130 mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
5131 sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
5132 sminv8hi3): Mark commutative
5133 operands. Use ix86_binary_operator_ok.
5134 (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
5135 sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
5136 sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
5137 sse2_punpcklqdq): Allow operand2 in memory.
5138 (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
5139 sse2_movsd): Add memory alternatives.
5140 (sse_storelps): Turn expander into an insn; split after reload.
5141 (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
5142 (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
5143
080a5bb0
EB
51442005-01-08 Eric Botcazou <ebotcazou@libertysurf.fr>
5145
5146 * configure.ac (DWARF-2 debug_line): Use objdump.
5147 * configure: Regenerate.
5148
e79b60a7
DN
51492005-01-08 Jeff Law <law@redhat.com>
5150 Diego Novillo <dnovillo@redhat.com>
5151
a6331d85 5152 PR tree-optimization/18241
e79b60a7
DN
5153 * tree-nrv.c (tree_nrv): Ignore volatile return values.
5154 * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
5155 statements with volatile operands.
5156 * tree-ssa-operands.c (add_stmt_operand): Do add volatile
5157 operands after marking a statement with has_volatile_ops.
5158
4634cf7e
RS
51592005-01-08 Roger Sayle <roger@eyesopen.com>
5160
5161 * tree.c (int_fits_type_p): Always honor integer constant
5162 TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
5163
88c0f1c6
RS
51642005-01-08 Roger Sayle <roger@eyesopen.com>
5165
5166 * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
5167 the latent bug in rtl_delete_block has been resolved.
5168
37e30acc
RS
51692005-01-08 Richard Sandiford <rsandifo@redhat.com>
5170
5171 * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
5172 (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
5173
943cb1d0
RS
51742005-01-08 Richard Sandiford <rsandifo@redhat.com>
5175
5176 * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
5177 library as @multilib_dir@/$(SHLIB_SONAME).
5178
1b5c0152
EB
51792005-01-07 Eric Botcazou <ebotcazou@libertysurf.fr>
5180
5181 * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
5182 * configure: Regenerate.
5183
b827788f
JJ
51842005-01-07 Jakub Jelinek <jakub@redhat.com>
5185
5186 * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
5187 TYPE_MODE.
5188
4937d02d
DE
51892005-01-07 David Edelsohn <edelsohn@gnu.org>
5190
5191 PR target/13674
5192 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
5193 Convert non-word aligned offset address using ld/std into
5194 indirect address.
5195
db396999
RH
51962005-01-07 Richard Henderson <rth@redhat.com>
5197
5198 * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
5199
4600cc14
RS
52002005-01-07 Richard SAndiford <rsandifo@redhat.com>
5201
5202 * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
5203
8870e212
JJ
52042005-01-07 Jakub Jelinek <jakub@redhat.com>
5205
2a0958c5
JJ
5206 PR tree-optimization/19283
5207 * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
5208 is not shorter than the original type.
5209
ebc0c8bb
JJ
5210 PR rtl-optimization/19012
5211 * config/i386/i386.md (addqi_1_slp): Set memory attribute.
5212
0210ae14
JJ
5213 PR rtl-optimization/18861
5214 * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
5215 (FULL_STATE): Define.
5216 (mark_tablejump_edge): New function.
5217 (purge_dead_tablejump_edges): New function.
5218 (find_bb_boundaries): Use it.
5219
8870e212
JJ
5220 PR tree-optimization/18828
5221 * builtins.c (expand_builtin_next_arg): Remove argument and all
5222 the argument checking.
5223 (expand_builtin): Adjust caller.
5224 (expand_builtin_va_start): Likewise. Remove error for too many
5225 arguments.
5226 (fold_builtin_next_arg): Issue error for too many arguments.
5227 After checking arguments, replace them with magic arguments that
5228 prevent further checking of the args.
5229
9fb29c46
JDA
52302005-01-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5231
5232 * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
5233
9a3bf943
RS
52342005-01-06 Roger Sayle <roger@eyesopen.com>
5235
5236 PR target/6077
5237 * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
5238 and %{.S:...} (and their negative variants) to test whether the
5239 input file is assembler or pre-processed-assembler independent of
5240 the actual filename extension.
5241
c79fc296
RS
52422005-01-06 Roger Sayle <roger@eyesopen.com>
5243
5244 * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
5245 of sign or zero extended values.
5246
59d7d767
GK
52472005-01-06 Geoffrey Keating <geoffk@apple.com>
5248
5249 * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
5250 for IBM long double format correctly.
5251
1f24dd47 52522005-01-06 Daniel Berlin <dberlin@dberlin.org>
fc474307 5253
1f24dd47
DB
5254 Fix PR tree-optimization/18792
5255
5256 * tree-data-ref.c (build_classic_dist_vector): Change first_loop
5257 to first_loop_depth, and use loop depth instead of loop number.
5258 (build_classic_dir_vector): Ditto.
5259 (compute_data_dependences_for_loop): Use depth, not loop number.
fc474307 5260 * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
1f24dd47
DB
5261 number. Pass in loops, instead of loop numbers.
5262 (gather_interchange_stats): Ditto.
5263 (linear_transform_loops): Ditto.
5264
27916b83
RS
52652005-01-06 Richard Sandiford <rsandifo@redhat.com>
5266
5267 PR rtl-opt/13299
5268 * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
5269 biv_fits_mode_p, extension_within_bounds_p): New functions.
5270 (check_ext_dependent_givs): Use them.
5271
4ab80063
RS
52722005-01-06 Roger Sayle <roger@eyesopen.com>
5273
5274 * cfgrtl.c (rtl_delete_block): A basic block may be followed by
5275 more than one barrier, in which case we should delete them all.
5276
12d3e34b
TS
52772005-01-06 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
5278
5279 * gcc.c (process_command): Change year in 'gcc --version' to 2005.
5280
9acf766f 52812005-01-05 Daniel Berlin <dberlin@dberlin.org>
fc474307 5282
9acf766f
DB
5283 Fix PR middle-end/19286
5284 Fix PR debug/19267
5285 * dwarf2out.c (gen_subprogram_die): If we've already tried to
5286 output this subprogram, simply ignore this attempt to do it again.
5287 (add_abstract_origin_attribute): Don't abort trying to add the abstract
5288 origin attribute if it's not possible.
5289 (gen_block_die): Don't ignore subblocks of "unused" blocks.
5290 (decls_for_scope): Ditto.
5291 * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
5292 (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
fc474307 5293
e358acde
RH
52942005-01-05 Richard Henderson <rth@redhat.com>
5295
5296 PR target/11327
5297 * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
5298 (bdesc_2arg): Use it.
5299 (ix86_expand_binop_builtin): Force operands into registers
5300 when optimizing.
5301 (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
fc474307 5302 ix86_expand_sse_compare, ix86_expand_sse_comi,
e358acde
RH
5303 ix86_expand_builtin): Likewise.
5304
051d8245
RH
53052005-01-05 Richard Henderson <rth@redhat.com>
5306
5307 * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
5308 and VEC_SELECT.
5309 * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
5310 (mulv4hi3): Set itanium_class mmmul.
5311 (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
5312 (fpack): Rename from fpack_sfsf.
5313
19f17bb9
RH
53142005-01-05 Richard Henderson <rth@redhat.com>
5315
5316 PR rtl-opt/10692
5317 * reload1.c (do_input_reload): Restrict the optimization deleteing
5318 a previous output reload to RELOAD_FOR_INPUT.
5319
46d096a3
SB
53202005-01-05 Steven Bosscher <stevenb@suse.de>
5321
5322 * combine.c (expand_compound_operation) <ZERO_EXTRACT>: Add
5323 comment that we fall through after case.
5324 (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
5325 (distribute_links): Likewise.
5326 * cse.c (cse_insn): Likewise.
5327 * cselib.c (cselib_invalidate_mem): Likewise.
5328 * df.c: Update comments at the top of the file.
5329 (read_modify_subreg_p): Update comments here too.
5330 (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
5331 * flow.c (mark_set_1): Likewise.
5332 (mark_used_regs): Likewise.
5333 * gcse.c (mems_conflict_for_gcse_p): Likewise.
5334 (canon_list_insert): Likewise.
5335 (mark_set): Likewise.
5336 (try_replace_reg): Likewise.
5337 (store_killed_in_insn): Likewise.
5338 * loop.c (count_one_set): Likewise.
5339 (basic_induction_var): Likewise.
5340 * postreload-gcse.c (find_mem_conflicts): Likewise.
5341 * postreload.c (reload_combine_note_store): Likewise.
5342 (move2add_note_store): Likewise.
5343 * reload.c (find_equiv_reg): Likewise.
5344 (mark_referenced_resources): Likewise.
5345 * rtlanal.c (set_noop_p): Likewise.
5346 (note_stores): Likewise.
5347 (note_uses): Likewise.
5348 * sched-deps.c (sched_analyze_1): Likewise.
5349 * sched-rgn.c (check_live_1): Likewise.
5350 (update_live_1): Likewise.
5351 * config/i860/i860.c: Likewise.
5352
5353 * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
5354 an lvalue.
5355 (ZERO_EXTRACT): Mention that this one can be an lvalue.
5356
5357 * doc/rtl.texi: Update documentation for bit-fields and SET.
5358
65a878f5
RS
53592005-01-05 Roger Sayle <roger@eyesopen.com>
5360
5361 * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
5362
d2ad2c8a
JH
53632005-01-05 Jan Hubicka <jh@suse.cz>
5364 Richard Henderson <rth@redhat.com>
5365
5366 PR target/18910
fc474307 5367 * config/i386/i386.c (ix86_expand_move): Handle tls symbols
d2ad2c8a
JH
5368 with an offset.
5369
2cdb3148
RH
53702005-01-05 Richard Henderson <rth@redhat.com>
5371
5372 PR target/12902
5373 * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
5374 (sse_shufps): Change operand 3 to const_int_operand.
5375 (sse2_storelps): Fix typo in template.
5376 (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
5377 * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
5378 (ix86_expand_builtin): Likewise.
5379
53802005-01-05 Julian Brown <julian@codesourcery.com>
3dd7ab65
JB
5381
5382 * config/arm/arm.c (arm_return_in_memory): Treat complex types
5383 as aggregates for AAPCS ABIs.
5384
59d8fe27
SS
53852005-01-05 Stan Shebs <shebs@apple.com>
5386
5387 * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
5388 Mach-O getters if ppc64.
5389 * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
5390 size argument.
5391 * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
5392 signed four-byte field for global code case.
5393 (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
5394
010c4d9c
RS
53952005-01-05 Roger Sayle <roger@eyesopen.com>
5396
5397 PR middle-end/19100
5398 * c-common.c: Include real.h.
5399 (c_common_truthvalue_conversion): Avoid destructively modifying expr.
5400 Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
5401 Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
5402 * Makefile.in (c-common.o): Update dependencies.
5403
9368fb8f
JM
54042005-01-05 Joseph S. Myers <joseph@codesourcery.com>
5405
5406 * c-parse.in (asm_string): Add trailing semicolon.
5407
9143de5c
JM
54082005-01-05 Joseph S. Myers <joseph@codesourcery.com>
5409
5410 * c-parse.in (asm_string): New. Don't allow wide strings in
5411 'asm'.
5412 (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
5413 asm_string instead of STRING.
5414
0953878d
JM
54152005-01-05 Joseph S. Myers <joseph@codesourcery.com>
5416
5417 * c-typeck.c (constructor_no_implicit): Remove.
5418 (set_designator, process_init_element): Don't check
5419 constructor_no_implicit.
5420
cf99f196
R
54212005-01-05 J"orn Rennecke <joern.rennecke@st.com>
5422 Kaz Kojima <kkojima@gcc.gnu.org>
5423
5424 PR target/16482
5425 * lcm.c (create_pre_exit): New.
5426 (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
5427 ENTRY_EXIT_EXTRA to 3. Use create_pre_exit.
5428
712ecf4d
RE
54292004-01-05 Richard Earnshaw <rearnsha@arm.com>
5430
5431 * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
5432 -msoft-float in target_float_switch.
5433 * arm.c (arm_override_options): Fix processing of target_float_switch.
5434
082cca25
RE
54352004-01-05 Richard Earnshaw <rearnsha@arm.com>
5436
5437 * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
5438 preferencing.
5439
c2b43d7a
UB
54402004-01-05 Uros Bizjak <uros@kss-loka.si>
5441
5442 * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
ead553a1 5443 Replace i387 with 'i386 compiler' in -mfpmath=sse option.
c2b43d7a 5444
e82f5749
RS
54452005-01-04 Roger Sayle <roger@eyesopen.com>
5446
5447 * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
5448 if deleting the then-block allows the test-block to fallthru to the
5449 else-block.
5450
f8f5c4b3
AP
54512005-01-04 Andrew Pinski <pinskia@physics.uc.edu>
5452
5453 PR c/19152
5454 * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
5455 after the full declaration if the are in two different TUs.
5456
54572005-01-04 Richard Henderson <rth@redhat.com>
fa588429
RH
5458
5459 PR tree-opt/19158
5460 * tree-sra.c (generate_one_element_init): Just
5461 call gimplify_and_add.
5462 (generate_element_init): Record the
5463 new referenced variables and mark them for renaming
5464 and split out to ...
5465 (generate_element_init_1): This.
5466 (scalarize_init): Don't call push_gimplify_context/
5467 pop_gimplify_context.
5468
5f0c48ed
GK
54692005-01-04 Geoffrey Keating <geoffk@apple.com>
5470
5471 * toplev.c (get_src_pwd): Handle failure of getpwd().
5472
e3523f56
RS
54732005-01-04 Roger Sayle <roger@eyesopen.com>
5474
5475 * fold-const.c (fold_single_bit_test): Delete unreachable handling
5476 of TRUTH_NOT_EXPR.
5477 (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
5478 all the cases handled by it are inverted by invert_truthvalue.
5479
9746bb27
EB
54802005-01-04 Eric Botcazou <ebotcazou@libertysurf.fr>
5481
5482 * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
5483 (save_register_windowsi): Likewise.
5484
bfee926b
RH
54852005-01-04 Richard Henderson <rth@redhat.com>
5486
5487 * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
5488
21e5076a
UB
54892005-01-04 Uros Bizjak <uros@kss-loka.si>
5490
5491 PR middle-end/17767
5492 * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
5493 any simplifications of vector mode comparison operators.
5494 * simplify-rtx.c (simplify_relational_operation): Fix variable name.
5495
8ea9d0c7
PB
54962005-01-04 Paolo Bonzini <bonzini@gnu.org>
5497 Devang Patel <dpatel@apple.com>
5498
5499 PR tree-optimization/18308
8ea9d0c7
PB
5500 * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
5501 the operands before creating a new expression.
5502 * dojump.c (do_jump): Make drop_through_label available
5503 for all cases. Add expansion of COND_EXPR.
5504
8c427b58
IR
55052005-01-04 Ira Rosen <irar@il.ibm.com>
5506
5507 * tree-vectorizer.c (vect_analyze_offset_expr): Test for
5508 INTEGER_CST instead of TREE_CONSTANT.
5509 (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
5510 instead of TREE_CONSTANT.
5511 (vect_analyze_pointer_ref_access): Test for INTEGER_CST
5512 instead of TREE_CONSTANT.
5513
8287d24a
EB
55142005-01-04 Eric Botcazou <ebotcazou@libertysurf.fr>
5515
5516 * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
5517
9e4ae64b
UB
55182005-01-04 Uros Bizjak <uros@kss-loka.si>
5519
5520 PR target/19240
5521 * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
5522 (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
5523
c756af79
RH
55242005-01-03 Richard Henderson <rth@redhat.com>
5525
5526 * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
5527 (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
5528 fold_convert_const_real_from_real): Split out from ...
5529 (fold_convert_const): ... here.
5530
d30c9461
RH
55312005-01-03 Richard Henderson <rth@redhat.com>
5532
5533 PR target/19235
5534 * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
5535 (mov<MMXMODEI>_internal): Likewise.
5536 (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
5537 Add V2SF case; use it for SSE1; don't use TI.
5538 (movdf_integer): Likewise.
5539 (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
5540
7d23434b
IR
55412005-01-03 Ira Rosen <irar@il.ibm.com>
5542
5543 * tree-vectorizer.c (vect_strip_conversions): New function.
5544 (vect_analyze_offset_expr): Call vect_strip_conversions. Add
fc474307 5545 check for binary class.
7d23434b 5546
1eb3331e
DB
55472005-01-03 Daniel Berlin <dberlin@dberlin.org>
5548
5549 Fix PR debug/17924
5550 Fix PR debug/19191
5551 * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
5552 is a decl.
5553 * gimple-low.c (mark_blocks_with_used_vars): New function.
5554 (mark_blocks_with_used_subblocks): Ditto.
5555 (mark_used_blocks): Ditto.
5556 (pass_mark_used_blocks): New pass.
5557 * tree-inline.c: Include debug.h.
5558 (expand_call_inline): Call outlining_inline_function here.
5559 * tree-optimize.c (init_tree_optimization_passes): Add
fc474307 5560 pass_mark_used_blocks.
1eb3331e
DB
5561 * tree-pass.h (pass_mark_used_blocks): New.
5562 * Makefile.in (tree-inline.o): Add debug.h dependency.
5563
a035080c
GK
55642005-01-03 Geoffrey Keating <geoffk@apple.com>
5565
d7001ae5
GK
5566 * config/darwin.c (darwin_handle_weak_import_attribute): Permit
5567 VAR_DECLs to have weak_import attribute.
5568
a035080c
GK
5569 * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
5570 'struct ucontext'.
5571
1ab219d3
SB
55722004-01-03 Steven Bosscher <stevenb@suse.de>
5573
5574 * passes.c (rest_of_compilation): Don't run regmove if only
5575 flag_expensive_optimizations, require flag_regmove instead.
5576
e6abef61
EB
55772005-01-03 Eric Botcazou <ebotcazou@libertysurf.fr>
5578
5579 * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
5580 register "sparc".
5581 * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
5582 * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
5583 * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
5584 * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
5585
f61134e8
RH
55862005-01-03 Richard Henderson <rth@redhat.com>
5587
5588 * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
5589 (ia64_const_ok_for_letter_p): New.
5590 (ia64_const_double_ok_for_letter_p): New.
5591 (ia64_extra_constraint): New.
5592 (ia64_expand_vecint_compare): New.
5593 (ia64_expand_vcondu_v2si): New.
5594 (ia64_expand_vecint_cmov): New.
5595 (ia64_expand_vecint_minmax): New.
5596 (ia64_print_operand): Add 'v'.
5597 (ia64_preferred_reload_class): New.
5598 (ia64_vector_mode_supported_p): New.
5599 * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
5600 (PREFERRED_RELOAD_CLASS): Move to function.
5601 (CONST_OK_FOR_LETTER_P): Move to function.
5602 (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
5603 (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
5604 (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
5605 (EXTRA_CONSTRAINT): Move to function.
5606 * config/ia64/ia64.md: Include vect.md.
5607 (itanium_class): Add mmalua.
5608 (type): Handle it.
5609 * config/ia64/itanium1.md (1_mmalua): New. Add it to bypasses.
5610 (1b_mmalua): New.
5611 * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
5612 * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
5613 CONST0_RTX.
5614 (const_int_2bit_operand): New.
5615 (fr_reg_or_0_operand): New.
5616 * config/ia64/ia64-modes.def: Add vector modes.
5617 * config/ia64/ia64-protos.h: Update.
5618 * config/ia64/vect.md: New file.
5619
3198b947
RH
56202005-01-03 Richard Henderson <rth@redhat.com>
5621
5622 * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
5623
088df4c2
UB
56242005-01-03 Uros Bizjak <uros@kss-loka.si>
5625
5626 PR target/19236
5627 * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
5628 to SFmode.
5629 (log1pdf2): Change mode of operands[0,1] to DFmode.
5630
548a6c4f
EB
56312005-01-03 Eric Botcazou <ebotcazou@libertysurf.fr>
5632
5633 * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
5634 * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
5635 * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
5636 * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
5637 SPARC_RELAXED_ORDERING.
5638
0703dceb
RH
56392005-01-03 Richard Henderson <rth@redhat.com>
5640 Uros Bizjak <uros@kss-loka.si>
5641
5642 PR target/14631
5643 * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
5644 IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
5645 * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
5646 handling.
5647 (*mmx_pinsrw, *sse2_pinsrw): New patterns.
5648 * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
5649 const_pow2_1_to_128_operand): New predicates.
5650
97236777
GM
56512005-01-02 Greg McGary <greg@mcgary.org>
5652
5653 * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
5654 anonymous decls.
5655 (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
5656 object. [ptr_type]: Remove unused variable.
5657 Remember nearest addressable array-element or record-component
5658 when checking bitfield components. Tolerate empty BIND_EXPR.
5659
155a8213
RH
56602005-01-01 Richard Henderson <rth@redhat.com>
5661
5662 * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
5663 that don't narrow the value. Fail for other conversions.
5664
bedb9fc0
RH
56652005-01-01 Richard Henderson <rth@redhat.com>
5666
5667 PR c/19031
5668 * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
5669 * c-lang.c (finish_file): Don't do it here.
5670 * objc/objc-act.c (objc_finish_file): Likewise.
5671
5672 * cgraph.c (decl_assembler_name_equal): New.
5673 (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
5674 (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
5675 * cgraph.h (struct cgraph_varpool_node): Add next.
5676 (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
5677 * varasm.c (assemble_alias): Mark the target as needed.
5678
1cb2fc7b
AP
56792005-01-01 Andrew Pinski <pinskia@physics.uc.edu>
5680
5681 PR middle-end/19221
5682 * function.c (get_arg_pointer_save_area): Use entry_of_function
5683 instead of get_insns.
5684
0ca5fbc0
RS
56852005-01-01 Roger Sayle <roger@eyesopen.com>
5686 Andrew Pinski <pinskia@physics.uc.edu>
5687 James E. Wilson <wilson@specifixinc.com>
5688
5689 PR rtl-optimization/12092
5690 * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
5691 is zero.
5692
91c537b7
RS
56932005-01-01 Roger Sayle <roger@eyesopen.com>
5694 Olivier Hainque <hainque@act-europe.fr>
5695
5696 * tree.c (int_fits_type_p): A narrower type always fits in a
5697 wider one, except for negative values into unsigned types.
5698
69618c49
RS
56992005-01-01 Roger Sayle <roger@eyesopen.com>
5700
5701 * tree.c (int_fits_type_p): Compare the result of force_fit_type
5702 with the original constant rather than require TREE_OVERFLOW.
5703
43e05e45
SB
57042005-01-01 Steven Bosscher <stevenb@suse.de>
5705
5706 PR middle-end/17544
5707 * c-decl.c (finish_function): If compiling C99, annotate the
5708 compiler generated return with the current file name and line 0.
5709 * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
5710 the source line is greater than 0.
5711 (remove_bb): Likewise.
5712
7a4515d7 5713See ChangeLog.12 for earlier changes.
This page took 0.752866 seconds and 5 git commands to generate.