]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
re PR tree-optimization/19768 (ICE: SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set)
[gcc.git] / gcc / ChangeLog
CommitLineData
9df935d8
AP
12005-02-03 Andrew Pinski <pinskia@physics.uc.edu>
2
3 PR tree-opt/19768
4 * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
5 phi flag if the phi is abnormal.
6
50d4a707
AP
72005-02-03 Andrew Pinski <pinskia@physics.uc.edu>
8
9 PR tree-opt/19736
10 * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
11 information for the new statement.
12
cd21f044
JM
132005-02-03 Joseph S. Myers <joseph@codesourcery.com>
14
15 PR driver/19117
16 * gcc.c (main): Include the target in -v output.
17
aa2d0bc3
AO
182005-02-03 Alexandre Oliva <aoliva@redhat.com>
19
20 * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
21 Do not drop the extend if we'd have to add a paradoxical subreg
22 later. Include optabs.h and insn-codes.h.
23 * Makefile.in (combine.o): Depend on $(OPTABS_H).
24
762297d9
RS
252005-02-02 Roger Sayle <roger@eyesopen.com>
26
27 PR middle-end/19405
28 * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
29 * fold-const.c (const_binop): Avoid constant folding floating
30 point operations in modes that use composite representations.
31 * simplify-rtx.c (simplify_binary_operation): Likewise.
32
666158b9
GK
332005-02-02 Geoffrey Keating <geoffk@apple.com>
34
35 * config/rs6000/altivec.md (altivec_dst): Make the first operand
36 a REG, not a MEM.
37 (altivec_dstt): Likewise.
38 (altivec_dstst): Likewise.
39 (altivec_dststt): Likewise.
40 * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
41 of first operand.
42
cce4ca55
DN
432005-02-03 Dorit Naishlos <dorit@il.ibm.com>
44
45 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
46 EXPR_LOCUS from orig_cond to the new cond_stmt.
47 (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
48 the new vec_stmt.
49
502005-02-03 Dorit Naishlos <dorit@il.ibm.com>
51
52 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
53 standard_iv_increment_position. Remove call to bsi_next
54 (no need to bump the iterator anymore).
55 (vect_create_index_for_vector_ref): Call
56 standard_iv_increment_position. Remove second function argument.
57 (vect_finish_stmt_generation): Remove call to bsi_next
58 (no need to bump the iterator anymore).
59 (vect_create_data_ref_ptr): Remove second argument (bsi) in call
60 to vect_create_index_for_vector_ref.
61
622005-02-03 Dorit Naishlos <dorit@il.ibm.com>
63
64 * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
65 phis are used out of the loop.
66
73aea290
JM
672005-02-03 Joseph S. Myers <joseph@codesourcery.com>
68
69 PR c/17807
70 * c-decl.c (undef_nested_function): New variable.
71 (pop_scope): Diagnose undefined nested functions.
72 (finish_function): Don't attempt cgraph processing or genericizing
73 if current top-level function contained an undefined nested
74 function. Reset undef_nested_function at the end of a top-level
75 function.
76
89d12f5d
ZD
772005-02-02 Zdenek Dvorak <dvorakz@suse.cz>
78
79 * tree.c (build_int_cst_type): Take sign of the value into account
80 when deciding whether sign extend the value.
81
740ca4b2
JM
822005-02-02 Joseph S. Myers <joseph@codesourcery.com>
83
84 PR c/18502
85 * gcc.c (cpp_unique_options): Remove %{trigraphs}.
86 (cpp_options, cc1_options): Change %{std*&ansi} to
87 %{std*&ansi&trigraphs}.
88
a52aff23
KH
892005-02-02 Kazu Hirata <kazu@cs.umass.edu>
90
91 * cse.c: Update comments.
92
cf676baa
AH
932005-02-02 Aldy Hernandez <aldyh@redhat.com>
94
95 * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
96 arguments go on the stack. Do not put complex doubles in odd/even
97 pairs.
98
08711fdf
SB
992005-02-02 Steven Bosscher <stevenb@suse.de>
100
101 * doc/invoke.texi: Update the options enabled at -O1, -O2,
102 and -O3. Update the documentation for -fgcse-sm, -fgcse-las,
103 -ftree-pre, and -fthread-jumps.
104
7ded35b4
RS
1052005-02-02 Richard Sandiford <rsandifo@redhat.com>
106
107 PR tree-optimization/19578
108 * tree-flow.h (modified_noreturn_calls): Declare.
109 (noreturn_call_p): Declare.
110 * tree-flow-inline.h (noreturn_call_p): New function.
111 (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
112 * tree-cfg.c (modified_noreturn_calls): New variable.
113 (cleanup_control_flow): Use noreturn_call_p. Split basic blocks
114 that contain a mid-block noreturn call.
115 * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
116
d01da8bd
KH
1172005-02-02 Kazu Hirata <kazu@cs.umass.edu>
118
119 * df.c (df_def_record_1, df_uses_record): Don't use
120 DF_FOR_REGALLOC.
121 * df.h (DF_FOR_REGALLOC): Remove.
122
493179da
JM
1232005-02-02 Joseph S. Myers <joseph@codesourcery.com>
124
125 PR c/19435
126 * c-typeck.c (really_start_incremental_init): Reset
127 constructor_max_index for arrays of incomplete type.
128
ed425871
JL
1292005-02-02 Jeff Law <law@redhat.com>
130
131 * gcse.c (struct reg_set): Store the block index where the register
132 was set rather than the setting insn.
133 (record_one_set, compute_transp): Corresponding changes.
134 (pre_insert_copy_insn): Do not call replace_one_set.
135 (replace_one_set): Remove.
136
d02d7104
JM
1372005-02-02 Joseph S. Myers <joseph@codesourcery.com>
138
139 PR other/15514
140 * doc/gcov.texi: Fix typo.
141
c1c5b5e3
RH
1422005-02-01 Richard Henderson <rth@redhat.com
143
144 PR target/19680
145 * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
146 * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
147 type to bool.
148 (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
149 * config/i386/i386-protos.h: Update.
150
7a442a1d
SB
1512005-02-01 Steven Bosscher <stevenb@suse.de>
152
153 PR tree-optimization/19217
154 * tree-cfg.c (verify_expr): Use the data field to see if TP was
155 seen inside a PHI node. Do not do the ADDR_EXPR check if it was.
156 (verify_stmts): Pass (void*)1 as data to verify_expr to signal
157 that it is walking a PHI node.
158
475b6e22
JM
1592005-02-01 Joseph S. Myers <joseph@codesourcery.com>
160
161 * doc/extend.texi (Nested Functions): Update.
162
ca58f2bc
RH
1632005-02-01 Richard Henderson <rth@redhat.com>
164
165 PR 19696
166 * optabs.c (expand_copysign_absneg): Export.
167 * optabs.h (expand_copysign_absneg): Declare.
168 * config/rs6000/rs6000.md (copysigntf3): New.
169
a1d13fa1
DN
1702005-02-01 Diego Novillo <dnovillo@redhat.com>
171
172 PR tree-optimization/19633
173 * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
174 * tree-ssa-alias.c (init_alias_info): Initialize.
175 (merge_pointed_to_info): Set.
176 (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
177 (dump_points_to_info_for): Show value of pt_null.
178 (struct count_ptr_d): Declare.
179 (find_ptr_dereference): Remove.
180 (ptr_is_dereferenced_by): Remove.
181 (count_ptr_derefs): New local function.
182 (count_uses_and_derefs): New local function.
183 (compute_points_to_and_addr_escape): Call it. If the number
184 of dereferences is greater than zero, mark the pointer as
185 dereferenced. If there are fewer dereferences than uses of
186 the pointer, the pointer's value escapes.
187
28a3618f
DN
1882005-02-01 Diego Novillo <dnovillo@redhat.com>
189
190 PR tree-optimization/19670
191 * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
192 here...
193 (verify_use): ... set it here, instead.
194
8d2d2ec6
JJ
1952005-02-01 Janis Johnson <janis187@us.ibm.com>
196
cc95a845
JJ
197 * doc/sourcebuild.texi (Test directives): Fix formatting.
198
8d2d2ec6
JJ
199 * doc/sourcebuild.texi (Test directives): Describe selector
200 expressions.
201
d1c8addb
SB
2022005-02-01 Segher Boessenkool <segher@kernel.crashing.org>
203
204 * config.gcc (powerpc64-*-linux*): Default to -m64 also for
205 specific 64-bit CPUs.
206
6555b6bd
RE
2072005-02-01 Richard Earnshaw <rearnsha@arm.com>
208
209 PR target/16201
210 * arm.c (arm_eliminable_register): New function.
211 (adjacent_mem_locations): Don't allow eliminable registers. Use
212 HOST_WIDE_INT for address offsets.
213 * arm-protos.h (arm_eliminable_register): Add prototype.
214
bbcb0c05
SB
2152005-02-01 Steven Bosscher <stevenb@suse.de>
216
217 PR optimization/15242
218 * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
219 * basic-block.h (duplicate_computed_gotos): Add prototype.
220 * bb-reorder.c (duplicate_computed_gotos): New function to
221 duplicate sufficiently small blocks ending in a computed jump.
222 * passes.c (rest_of_compilation): Call duplicate_computed_gotos
223 if not optimizing for size.
224 * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
225 never do tail merging for blocks ending in a computed jump.
226 * doc/invoke.texi: Document the max-goto-duplication-insns param.
227
9c0a30c3
EB
2282005-02-01 Eric Botcazou <ebotcazou@libertysurf.fr>
229
230 Patch from Richard Sandiford <rsandifo@redhat.com>
231 * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
232 from inheriting a subreg equivalence with a non-spill register.
233
234 * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
235
7b150713
AO
2362005-02-01 Alexandre Oliva <aoliva@redhat.com>
237
238 * config/frv/frv.c (movcc_fp_destination_operand): New.
239 (gpr_or_memory_operand): Fix typo in comment.
240 (gpr_or_memory_operand_with_scratch): New.
241 * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
242 * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
243 movcc_fp_destination_operand.
244 (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
245 Legitimize memory addresses using a scratch register.
246
dc5d4efb
JL
2472005-01-31 Jeff Law <law@redhat.com>
248
7d793e36
JL
249 * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
250 bitmap a sparse bitmap instead of a simple bitmap.
251 (mark_def_sites_initialize_block): Corresponding changes.
252 (ssa_mark_def_sites_initialize_block): Likewise.
253 (ssa_mark_phi_uses): Likewise.
254 (mark_def_site, ssa_mark_def_sites): Likewise.
255 (mark_def_site_blocks): Likewise.
256 (rewrite_ssa_into_ssa): Likewise.
257
5746637c
JL
258 * tree-ssa-dom.c (record_cond): Pass correct variable type
259 for last argument to htab_find_slot_with_hash.
260
261 * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
262 effects when optimizing 0 % X. Do not try to optimize X % 0.
dc5d4efb 263
3dcec1e9
JW
2642005-01-31 James E. Wilson <wilson@specifixinc.com>
265
266 * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
267 1_mmalua.
268
fc474307
EC
2692005-02-01 Eric Christopher <echristo@redhat.com>
270
271 * config/mips/mips.c (override_options): Warn if -mint64
272 is used.
273 * doc/invoke.texi (MIPS Options): Document that -mint64 is
274 deprecated.
275
bc5e3b54
KH
2762005-02-01 Kazu Hirata <kazu@cs.umass.edu>
277
278 * cse.c (cse_reg_info): Remove hash_next, next, regno. Add
279 timestamp.
280 (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
281 REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
282 cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
283 (cached_regno): Initialize to INVALID_REGNUM.
284 (cse_reg_info_table_size,
285 cse_reg_info_table_first_uninitialized,
286 cse_reg_info_timestamp): New.
287 (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
288 get_cse_reg_info.
289 (init_cse_reg_info, get_cse_reg_info_1): New.
290 (get_cse_reg_info): Cache the last look-up.
291 (new_basic_block): Update the code to clear mappings from
292 registers to cse_reg_info entries.
293 (cse_main): Call init_cse_reg_info.
294
782c0a3e
KH
295 * cse.c (get_cse_reg_info): Update a comment.
296
b4519d39
SB
2972005-01-31 Steven Bosscher <stevenb@suse.de>
298
299 PR c/19333
300 * c-decl.c (start_decl): Do not warn about arrays of elements with
301 an incomplete type here.
302 (grokdeclarator): Do it here by making a pedwarn an error.
303 * c-typeck.c (push_init_level): If there were previous errors with
304 the constructor type, do not warn about braces for initializers.
305 (process_init_element): Likewise for excess initializer elements.
306
65e9fa10
KH
3072005-01-31 Kazu Hirata <kazu@cs.umass.edu>
308
309 * cse.c (delete_trivially_dead_insn): Don't iterate.
310
0530bc70
AP
3112005-01-31 Andrew Pinski <pinskia@physics.uc.edu>
312
313 * config/rs6000/rs6000.md (copysignsf3): New expand.
314 (copysigndf3): Likewise.
315
9ea88834
SB
3162005-01-31 Steven Bosscher <stevenb@suse.de>
317
318 * recog.c (constrain_operands): Only look for earlyclobber operand
319 conflicts if an '&' constraint was seen.
320
75a3bd9d
ME
3212005-01-31 Marc Espie <espie@openbsd.org>
322
323 * config.gcc: Don't include embedded systems fragment, switches default
324 debugging format to ELF.
325 * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
326 longer pick it up there.
327
28697267
DJ
3282005-01-31 Dale Johannesen <dalej@apple.com>
329
330 * doc/extend.texi (nested functions): Fix linkage description.
331 Clarify that static is not allowed.
332
e87d92f4
DJ
3332005-01-31 Dale Johannesen <dalej@apple.com>
334
335 * config/rs6000/darwin.md (movsf_low_di): Make work.
336 (movdf_low_di): Make work.
337
42d262fa
DJ
3382005-01-31 Dale Johannesen <dalej@apple.com>
339
340 * config/rs6000/darwin-tramp.asm (__trampoline_setup):
341 Make work for 64 bit.
342
3b70b82a
DJ
3432005-01-31 Roger Sayle <roger@eyesopen.com>
344 Dale Johannesen <dalej@apple.com>
345
346 PR middle-end/19650
347 * fold-const.c (fold_binary_op_with_conditional_arg):
348 Make types match original operands, before STRIP_NOPS.
349
a7a52913
AM
3502005-01-31 Alan Modra <amodra@bigpond.net.au>
351
352 * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
353 (struct gcc_regs): Rename from gcc_pt_regs. Add more regs.
354 (struct gcc_sigcontext): Delete. Merge contents to..
355 (struct gcc_ucontext): ..here.
356 (get_sigcontext): Delete.
357 (get_regs): New function, like get_sigcontext but return regs ptr.
358 64-bit version finds regs from r1 to support vdso.
359 (ppc_linux_aux_vector): New function.
360 (ppc_fallback_frame_state): Modify for get_regs. Restore fprs
361 and vector regs.
362
261ba0c8
IR
3632005-01-31 Ira Rosen <irar@il.ibm.com>
364
365 * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
366 sizetype.
367 (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
368 redundant fold. Fix misalignment for MINUS_EXPR.
369 (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
370 (vect_analyze_pointer_ref_access): Likewise.
371 (vect_get_memtag_and_dr): Likewise.
372
2ae1ac77
RH
3732005-01-31 Richard Henderson <rth@redhat.com>
374
375 * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
376 (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
377 absnegdf2_i387, absnegxf2_i387): Likewise.
378
ae394659
RH
3792005-01-31 Richard Henderson <rth@redhat.com>
380
381 PR 19696
382 * optabs.c (expand_copysign_absneg): New.
383 (expand_copysign_bit): Split out from ...
384 (expand_copysign): ... here. Use expand_copysign_absneg.
385
ebcaaa21
RS
3862005-01-30 Roger Sayle <roger@eyesopen.com>
387
388 PR middle-end/19697
389 * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
390 constant as the second operand and a register as the third.
391
6cc37e7e
DS
3922005-01-31 Danny Smith <dannysmith@users.sourceforge.net>
393
394 PR target/19704
395 * config/i386/i386.c (ix86_function_ok_for_sibcall): Also check
396 that dllimport'd functions do not use all call-clobbered registers
397 to pass parameters.
398
8c55a142
RH
3992005-01-30 Richard Henderson <rth@redhat.com>
400
401 PR 19696
402 * optabs.c (expand_absneg_bit): Split out from expand_unop and
403 expand_abs_nojump and generalize. Use operand_subword and
404 emit_no_conflict_block. Support large modes.
405 (expand_abs_nojump): Use it. Use HONOR_SIGNED_ZEROS to fall
406 back to maximum.
407 (expand_unop): Likewise. Use HONOR_SIGNED_ZEROS to fall back
408 negation to subtraction.
409 (expand_copysign): Check that the format has signed zeros.
410 Use operand_subword and emit_no_conflict_block. Support large modes.
411
338bc65e
DB
4122005-01-30 Daniel Berlin <dberlin@dberlin.org>
413
414 Fix PR tree-optimization/19624
415
416 * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
417 * tree-ssa-pre.c: Add cfgloop.h.
418 Update comment.
419 (pre_stats): New member, constified.
420 (inserted_exprs): New static variable.
421 (NECESSARY): New macro.
422 (create_expression_by_pieces): Fold the expression, and
423 mark it as defaulting to not necessary. Also put in
424 inserted_exprs.
425 (fully_constant_expression): New function.
426 (insert_into_preds_of_block): Modify to not insert phis when we
427 are playing with induction variables.
428 Push phis onto the inserted_exprs vector, and mark them as not
429 necessary by default.
430 (insert_aux): Call fully_constant_expression on eprime.
431 If all edges produce the same value, mark it constant.
432 (mark_operand_necessary): New function.
433 (remove_dead_inserted_code): New function.
434 (init_pre): Init loop optimizer to get loop info.
435 (fini_pre): Free loop_optimizer, and inserted_exprs vec.
436 (execute_pre): Commit edge inserts, then remove dead code.
437
237f420b
RH
4382005-01-30 Richard Henderson <rth@redhat.com>
439
440 * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
441 * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
442
b99d6d2b
RH
4432005-01-30 Richard Henderson <rth@redhat.com>
444
445 PR target/19700
446 * config/i386/i386.c (ix86_expand_copysign): New.
447 (ix86_split_copysign_const): New.
448 (ix86_split_copysign_var): Rename from ix86_split_copysign,
449 rearrange op1/nmask operands.
450 * config/i386/i386-protos.h: Update.
451 * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
452 (copysigndf3): Likewise.
453 (copysignsf3_const, copysigndf3_const): New.
454 (copysignsf3_var): Rename from copysignsf3, split out splitter
455 and fix split predicate for X constraint.
456 (copysigndf3_var): Similarly.
457
c5c367ac
KH
4582005-01-30 Kazu Hirata <kazu@cs.umass.edu>
459
460 * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
461 doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
462 doc/tm.texi, doc/tree-ssa.texi: Update copyright.
463
d6eabd43
RH
4642005-01-29 Richard Henderson <rth@redhat.com>
465
466 PR target/19690
467 * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
468 of # and * in constraints.
469
8d740330
RH
4702005-01-29 Richard Henderson <rth@redhat.com>
471
472 PR middle-end/19689
473 * expr.c (store_field): Don't strip sub-mode cast when the input
474 data is even smaller.
475
486e4326
RH
4762005-01-29 Richard Henderson <rth@redhat.com>
477
478 PR middle-end/19687
479 * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
480 union being empty.
481
eb2ab511
RH
4822005-01-29 Richard Henderson <rth@redhat.com>
483
484 * combine.c (make_field_assignment): Fix argument order
485 to gen_int_mode.
486
020d90ee
RG
4872005-01-29 Richard Guenther <richard.guenther@uni-tuebingen.de>
488
489 PR tree-optimization/15791
490 * fold-const.c (extract_array_ref): New function.
491 (fold): Fold comparisons between &a[i] and &a[j] or
492 semantically equivalent trees.
493
b6e47ceb
JL
4942005-01-29 Jeff Law <law@redhat.com>
495
496 * gcse.c (insert_expr_in_table): Revamp handling of available
497 and anticipatable occurrence lists to avoid unnecessary list
498 walking.
499 (insert_set_in_table): Similarly.
500
46df2823
JM
5012005-01-29 Joseph S. Myers <joseph@codesourcery.com>
502
503 * c-common.c (fix_string_type): Just use c_build_qualified_type to
504 build string type.
505 (c_build_qualified_type): Build qualified array types with
506 TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
507 * c-decl.c (c_make_fname_decl): Build unqualified array type
508 before qualified type.
509 (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
510 type is qualified, not just if type itself is. Don't apply
511 qualifiers to array type when declarator is processed. Apply
512 qualifiers to field type whether or not it is an array type.
513 Don't handle array types specially for applying qualifiers to
514 variables.
515 * c-typeck.c (composite_type): Build unqualified element type and
516 array type when forming composite of array types.
517 (common_pointer_type, comptypes, comp_target_types,
518 type_lists_compatible_p, build_indirect_ref, build_array_ref,
519 convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
520 types.
521 (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
522 (args2) in variables a1 and a2.
523
26af0046
KH
5242005-01-29 Kazu Hirata <kazu@cs.umass.edu>
525
526 * cse.c (n_elements_made, max_elements_made): Remove.
527 (insert): Don't touch n_elements_made.
528 (cse_main): Don't touch n_elements_made or max_elements_made.
529
3a951664
SC
5302005-01-28 Stephane Carrez <stcarrez@nerim.fr>
531
532 PR target/15384
533 * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
534 configuration part of dp-bit.c to be lost.
535
82dfb9a5
RS
5362005-01-28 Roger Sayle <roger@eyesopen.com>
537
538 * expmed.c (expand_mult_highpart_optab): When attempting to use
539 a non-widening multiplication in a wider mode, the operands need
540 to be converted (zero or sign extended) to that mode.
541
09f8cf2d
ILT
5422005-01-28 Ian Lance Taylor <ian@airs.com>
543
544 PR middle-end/16558
545 PR middle-end/19583
546 * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
547 through if both operands fall through.
548
01aa1d43
KH
5492005-01-28 Kazu Hirata <kazu@cs.umass.edu>
550
551 * cse.c (fold_rtx) <PC>: Don't optimize.
552
139c978a
JL
5532005-01-28 Jeff Law <law@redhat.com>
554
555 * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
556 (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
557
1590d0d4
KH
5582005-01-28 Kazu Hirata <kazu@cs.umass.edu>
559
560 * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
561 cse_reg_info_used_list_end): Remove.
562 (cse_reg_info_list, cse_reg_info_list_free): New.
563 (get_cse_reg_info): When allocating an instance of
564 cse_reg_info, add it to the beginning of the cse_reg_info_list
565 list. Remove code to maintain cse_reg_info_used_list.
566 (new_basic_block): Reset the free list to the beginning of
567 cse_reg_info_list.
568
a738d848
RS
5692005-01-28 Richard Sandiford <rsandifo@redhat.com>
570
571 * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
572 (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
573 (frv_expand_mdpackh_builtin): New function.
574 (frv_expand_builtin): Use it to expand __MDPACKH.
a738d848
RS
575 * doc/extend.texi (__MDPACKH): Update documentation.
576
2aa3d033
UB
5772005-01-28 Uros Bizjak <uros@kss-loka.si>
578
579 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
580 SSE_FLOAT_MODE_P for use_sse computation.
581
7d7f3b95
RC
5822005-01-28 Ralf Corsepius <ralf.corsepius@rtems.org>
583
584 PR target/19663
585 * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
586
046625fa
RH
5872005-01-27 Richard Henderson <rth@redhat.com>
588
589 * builtins.c (expand_builtin_copysign): New.
590 (expand_builtin): Call it.
591 * genopinit.c (optabs): Add copysign_optab.
592 * optabs.c (init_optabs): Initialize it.
593 (expand_copysign): New.
594 * optabs.h (OTI_copysign, copysign_optab): New.
595 (expand_copysign): Declare.
596
597 * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
598 (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
599
600 * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
601 (ix86_expand_fp_absneg_operator): ... here.
602 (ix86_split_copysign): New.
603 * config/i386/i386-protos.h: Update.
604 * config/i386/i386.md (UNSPEC_COPYSIGN): New.
605 (copysignsf3, copysigndf3): New.
606
607 * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
608 (copysignsf3, ncopysignsf3): New.
609 (copysigndf3, ncopysigndf3): New.
610 (copysignxf3, ncopysignxf3): New.
611 * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
612
6c667859
AB
6132005-01-27 Arend Bayer <arend.bayer@web.de>
614 Kazu Hirata <kazu@cs.umass.edu>
615
616 * cse.c: (find_best_addr): Don't call copy_rtx before calling
617 fold_rtx. Save cost recomputation if fold_rtx did nothing.
618 (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
619 NULL_RTX.
620
88af764e
JL
6212005-01-27 Jeff Law <law@redhat.com>
622
623 * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
624 definitions of SSA_NAMEs which are not being rewritten.
625 (rewrite_ssa_into_ssa): Only initialize the current definition
626 of an SSA_NAME if that SSA_NAME has been marked for rewriting.
627 If checking is enabled, assert that SSA_NAME_AUX is clear for all
628 SSA_NAMEs before returning.
629
f93089d2
KH
6302005-01-27 Kazu Hirata <kazu@cs.umass.edu>
631
632 * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
633 cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
634 tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
635 config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
636 config/mips/iris6.h, config/sh/sh.c: Update copyright.
637
116cb604
SB
6382005-01-27 Steven Bosscher <stevenb@suse.de>
639
640 PR middle-end/17278
641 * opts.c (decode_options): Move flag_thread_jumps from -O1 and
642 higher to -O2 and higher. Likewise for tree PRE.
643 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
644 and better.
645
09f8cf2d 6462005-01-27 Ian Lance Taylor <ian@airs.com>
6737ba67
ILT
647
648 PR middle-end/19583
649 * gimple-low.c (try_catch_may_fallthru): New static function.
650 (block_may_fallthru): Handle TRY_CATCH_EXPR.
651 * tree-inline.c (expand_call_inline): Don't warn about reaching
652 the end of a non-void function being inlined if the function uses
653 a return slot.
654
d8dd2f3a
JJ
6552005-01-27 Jakub Jelinek <jakub@redhat.com>
656
9d72d996
JJ
657 * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
658
d8dd2f3a
JJ
659 PR c/18946
660 * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
661 (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
662 (implicitly_declare): Handle error_mark_node.
663
dad2a933
RH
6642005-01-27 Richard Henderson <rth@redhat.com>
665
666 PR tree-opt/14329
667 * tree.h (struct tree_decl): Add debug_expr_is_from.
668 (DECL_DEBUG_EXPR_IS_FROM): New.
669 (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
670 * dwarf2out.c (dwarf2out_var_location): Update to match.
671 * tree-outof-ssa.c (create_temp): Likewise.
672 * var-tracking.c (track_expr_p): Likewise.
673 * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
674 * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
675 * toplev.c (default_tree_printer): Likewise.
676
17c21957
AO
6772005-01-27 Alexandre Oliva <aoliva@redhat.com>
678
679 * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
680 GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
681
ebaae582
SB
6822005-01-27 Steven Bosscher <stevenb@suse.de>
683
684 * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
685 CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
686 ASM_CLOBBERS): Add tree checks.
687
688 * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
689 (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
690 * c-common.def (SWITCH_STMT): Update to match.
691 * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
692 macros instead of SWITCH_EXPR ones.
693 * c-dump.c (c_dump_tree): Likewise.
694 * c-gimplify.c (gimplify_switch_stmt): Likewise.
695 * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
696
697 * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
698
7a706738
AM
6992005-01-27 Alan Modra <amodra@bigpond.net.au>
700
701 * unwind-dw2.c (execute_stack_op): Add missing cases for
702 DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
703
fe15407d
EB
7042005-01-27 Eric Botcazou <ebotcazou@libertysurf.fr>
705
706 * config.gcc (Obsolete configurations): Remove 'dummy', add
707 sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
708 sparc-*-openbsd*.
709
87637d21
DN
7102005-01-26 Diego Novillo <dnovillo@redhat.com>
711
712 PR tree-optimization/19633
713 * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
714 CALL_EXPRs.
715 (maybe_create_global_var): Do not create .GLOBAL_VAR if there
716 are no call-clobbered variables.
717 * tree-outof-ssa.c (check_replaceable): Return false for calls
718 with side-effects.
719
9ff93eb0
UW
7202005-01-26 Ulrich Weigand <uweigand@de.ibm.com>
721
722 * dbxout.c (dbxout_symbol_location): Resolve constant pool references
723 even for variables with NULL DECL_INITIAL.
724
4356a1bf
SH
7252005-01-26 Stuart Hastings <stuart@apple.com>
726
00adda9f 727 * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
4356a1bf 728
48cc8d3b
RH
7292005-01-26 Richard Henderson <rth@redhat.com>
730
731 PR middle-end/18008
732 * c-decl.c (finish_struct): Set DECL_MODE after resetting a
733 field's type.
734 * expr.c (store_field): Strip conversions to odd-bit-sized types
735 if the destination field width matches.
736
eec6bb06
RH
7372005-01-26 Richard Henderson <rth@redhat.com>
738
739 * c-decl.c, expmed.c, expr.c: Revert last change.
740
78ef1e3d
RH
7412005-01-26 Richard Henderson <rth@redhat.com>
742
743 PR middle-end/18008
744 * c-decl.c (finish_struct): Set DECL_MODE after resetting a
745 field's type.
746 * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
747 if we don't need the bits above those present in the current mode.
748 * expr.c (store_field): Strip conversions to odd-bit-sized types
749 if the destination field width matches.
750
5596990f
RS
7512005-01-26 Richard Sandiford <rsandifo@redhat.com>
752
753 * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
754 either -ffast-math or -funsafe-math-optimizations is in use.
755
a3cf5992
MM
7562005-01-26 Marek Michalkiewicz <marekm@amelek.gda.pl>
757
758 PR target/19293
759 PR target/19329
760 * config/avr/avr.c (notice_update_cc): Only set condition code for
761 ashrqi3 if shift count > 0.
762 (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
763 (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
764 ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
765 count <= 0 as a no-op, and shift count >= width by copying zero
766 or sign bit to all bits of the result.
767 * config/avr/avr.md (all shifts): Add alternatives for zero shift
768 count, with attribute "length" set to 0 and "cc" set to "none".
769
e4dd71de
AH
7702005-01-26 Aldy Hernandez <aldyh@redhat.com>
771
772 * doc/invoke.texi: Document -mTLS.
773
774 * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
775 * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
776 * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
777 * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
778 * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
779 * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
780 * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
781 * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
782
783 * configure.ac: Check for a TLS capable gas.
784
785 * configure: Regenerate.
78ef1e3d 786
55e79aef
RH
7872005-01-26 Richard Henderson <rth@redhat.com>
788
789 PR middle-end/18008
790 * combine.c (make_field_assignment): Simplify store to zero_extract
791 from a source with an overlapping mask.
792
af30facd
AH
7932005-01-26 Aldy Hernandez <aldyh@redhat.com>
794
795 2004-11-11 Eric Christopher <echristo@redhat.com>
796
ebaae582
SB
797 * config/frv/frv.md: Add fr400_integer automaton. Don't
798 allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
799 to TYPE_MACC.
af30facd 800
f7aa1423
SB
8012005-01-26 Steven Bosscher <stevenb@suse.de>
802
803 PR middle-end/16585
804 * cfgbuild.c (make_edges): Do not clear or set
805 current_function_has_computed_jump.
806 * function.h (struct function): Remove the has_computed_jump field.
807 (current_function_has_computed_jump): Do not define.
808 * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
809 in a computed jump. Ignore current_function_has_computed_jump.
810
6f642f98
RH
8112005-01-26 Richard Henderson <rth@redhat.com>
812
813 PR middle-end/19515
814 * expr.c (categorize_ctor_elements): New argument p_must_clear.
815 (categorize_ctor_elements_1): Likewise. Detect a union that isn't
816 fully initialized.
817 (mostly_zeros_p): Update for new categorize_ctor_elements argument.
818 * gimplify.c (gimplify_init_constructor): Likewise. Only shove
819 objects into static storage if they have more than one non-zero value.
820 * tree.h (categorize_ctor_elements): Update decl.
821
ead553a1
SB
8222005-01-26 Steven Bosscher <stevenb@suse.de>
823
824 PR middle-end/19616
825 * tree.h (CALL_EXPR_TAILCALL): Add comment.
826 * calls.c (check_sibcall_argument_overlap_1): Revert the change
827 to this function from 2004-07-10.
828 * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
829 the current function for tail call optimizations if the address
830 of one of it its arguments is taken.
831
75335440
KH
8322005-01-26 Kazu Hirata <kazu@cs.umass.edu>
833
834 * cse.c (fold_rtx): Call equiv_constant only when necessary.
835
40184445
BS
8362005-01-26 Bernd Schmidt <bernd.schmidt@analog.com>
837
838 * function.c (expand_function_end): If current_function_calls_alloca,
839 emit stack restore in a place that is reached when the function falls
840 through at the end.
841
144023ad
AO
8422005-01-26 Alexandre Oliva <aoliva@redhat.com>
843
844 * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
845 rule to avoid matching inappropriate suffix rule.
846
e4cf29ae
JH
8472005-01-26 Jan Hubicka <jh@suse.cz>
848
97bd954f 849 PR tree-optimization/19241
e4cf29ae
JH
850 * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
851
fe04ce06
HPN
8522005-01-26 Hans-Peter Nilsson <hp@axis.com>
853
854 * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
855 -lsyssim. Wrap -lc -lsyssim in --start-group --end-group instead
856 of doubling.
857 (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
ead553a1 858 <sim*>: Always use crt1.o, regardless of N in simN.
fe04ce06
HPN
859 <!sim>: Drop support for -pg and -p variants; always use crt0.o.
860 (ENDFILE_SPEC): Add crtn.o, after crtend.o.
861 (CRT_CALL_STATIC_FUNCTION): Remove.
862 * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
863 use crt1.o, regardless of N in simN.
864 <!sim>: Drop support for -pg and -p variants; always use crt0.o.
865 (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
866 (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
867 case isystem setting.
868 (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
869
6a03afdf
ILT
8702005-01-25 Ian Lance Taylor <ian@airs.com>
871
872 * gimple-low.c (block_may_fallthru): Correct handling of
873 SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
874
c555b47f
HPN
8752005-01-26 Hans-Peter Nilsson <hp@axis.com>
876
877 * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
878 handlers to match indentation; nested under the mtune=* handler.
879 Similar for mcpu= and march=.
880
9841a1a7
DJ
8812005-01-25 Daniel Jacobowitz <dan@codesourcery.com>
882
883 * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
884 * config/mips/linux64.h (LIB_SPEC): Likewise.
885 * config/mn10300/linux.h (LIB_SPEC): Likewise.
886 * config/sh/linux.h (LIB_SPEC): Likewise.
887
bef8809e
AH
8882005-01-25 Aldy Hernandez <aldyh@redhat.com>
889
890 * config/frv/frv.c (frv_legitimize_tls_address): New.
891 (TARGET_HAVE_TLS): Define.
892 (FRV_SYMBOL_REF_TLS_P): Define.
893 (frv_override_options): Handle new register classes.
894 (frv_legitimate_address_p): Reject tls addresses.
895 (frv_legitimize_address): Handle TLS addresses.
896 (gen_inlined_tls_plt): New.
897 (gen_tlsmoff): New.
898 (frv_legitimize_tls_address): New.
899 (unspec_got_name): Add TLS entries.
900 (got12_operand): Add R_FRV_TLSMOFF12 case.
901 (frv_emit_move): Fixup TLS addresses.
902 (frv_emit_movsi): Legitimize TLS addresses.
903
904 * config/frv/frv.h (MASK_BIG_TLS): New.
905 (TARGET_BIG_TLS): New.
906 (HAVE_AS_TLS): Define.
907 (TARGET_SWITCHES): Add -mTLS and -mtls options.
908 (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
909 (REG_CLASS_NAMES): Same.
910 (REG_CLASS_CONTENTS): Same.
911 (CONSTRAINT_LEN): New.
912 (REG_CLASS_FROM_CONSTRAINT): New.
913 (PREDICATE_CODES): Add symbolic_operand.
914
915 * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
916 UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
917 UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
918 UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
919 R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
920 R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
921 R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
922 GR9_REG, GR14_REG, LRREG.
923 (type): Add load_or_call attribute.
924 ("load_or_call"): New reservation.
925 ("call_gettlsoff"): New.
926 ("tls_indirect_call"): New.
927 ("tls_load_gottlsoff12"): New.
928 ("tlsoff_hilo"): New.
929 ("tls_tlsdesc_ldd"): New.
930 ("tls_tlsoff_ld"): New.
931 ("tls_lddi"): New.
932
933 * config/frv/frv-protos.h (symbolic_operand): Protoize.
934
935 2005-01-25 Alexandre Oliva <aoliva@redhat.com>
936
ead553a1
SB
937 * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
938 * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
939 * config/frv/frv.c (TLS_BIAS): Define.
940 (frv_output_dwarf_dtprel): New.
bef8809e 941
b8e48b98
JJ
9422005-01-26 Jakub Jelinek <jakub@redhat.com>
943
944 PR rtl-optimization/19579
945 * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
946 both A and B, see if they don't clobber registers the other expr uses.
947
1c673473
R
9482005-01-25 J"orn Rennecke <joern.rennecke@st.com>
949
950 * real.c (do_add): Initialize signalling and canonical members.
951
952 * real.c (real_from_integer): Zero out destination.
953
ed464869
JH
9542005-01-18 Jan Hubicka <jh@suse.cz>
955
956 PR tree-optimize/19337
957 * tree-inline.c (initialize_inlined_parameters): Copy
958 saved_static_chain_decl only.
959
51df7179
RH
9602005-01-25 Richard Henderson <rth@redhat.com>
961
962 PR target/19556
963 PR target/19584
964 * config/i386/i386.c (x86_inter_unit_moves): Zero.
965 (ix86_preferred_reload_class): Rewrite fp-constant section, with
966 80387 enabled, to return a proper subclass. Return the subset that
967 overlaps with GENERAL_REGS for PLUS.
968 * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
969
c63f5a42
RH
9702005-01-25 Richard Henderson <rth@redhat.com>
971
972 PR middle-end/19609
973 * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
974
e71c0aa7
RS
9752005-01-25 Roger Sayle <roger@eyesopen.com>
976
977 * expmed.c (choose_multiplier): Change interface to return the
978 multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
979 (expand_divmod): Update calls to choose_multiplier.
980
a6d2976a
JDA
9812005-01-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
982
983 PR middle-end/19330
984 * expmed.c (extract_bit_field): Use adjust_address instead of
985 gen_lowpart when op0 is a MEM.
986
7315a949
SB
9872005-01-24 Steven Bosscher <stevenb@suse.de>
988
989 * cfgexpand.c (expand_gimple_tailcall): Fix typo.
990
c0fd73a9
RS
9912005-01-24 Richard Sandiford <rsandifo@redhat.com>
992
993 * config/mips/irix-csr.c: New file.
994 * config/mips/t-iris6 (irix-csr.o): New rule to build it.
995 (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
996 * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
997 executables.
998
81b47219
EB
9992005-01-24 Eric Botcazou <ebotcazou@libertysurf.fr>
1000
1001 PR bootstrap/19364
1002 * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
1003 sparc/elf.h, add sparc/sp-elf.h.
1004 (sparc-*-rtems*): Likewise.
1005 (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
1006 tm-dwarf2.h, add sparc/sp-elf.h.
1007 (sparc86x-*-elf): Likewise.
1008 (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
1009 * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
1010 TARGET_OS_CPP_BUILTINS.
1011 * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
1012 * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
1013 Undefine it.
1014 * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
1015 * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
1016 (SWITCH_TAKES_ARG): Likewise.
1017 (LOCAL_LABEL_PREFIX): Likewise.
1018 (ASM_GENERATE_INTERNAL_LABEL): Likewise.
1019 (TARGET_N_FORMAT_TYPES): Delete.
1020 (TARGET_FORMAT_TYPES): Likewise.
1021 (ASM_DECLARE_FUNCTION_SIZE): Likewise.
1022 * config/sparc/elf.h: Delete.
1023 * config/sparc/sp-elf.h: New file.
1024
3a2f1f06
KH
10252005-01-24 Kazu Hirata <kazu@cs.umass.edu>
1026
1027 * tree-flow-inline.h (phi_arg_from_edge): Remove.
1028 * tree-flow.h: Remove the corresponding prototype.
1029 * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
1030 tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
1031
b723e82f
JJ
10322005-01-24 Jakub Jelinek <jakub@redhat.com>
1033
1034 PR target/17751
1035 * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
1036 for AIX ABI or ELF -fPIC.
1037 (rs6000_emit_load_toc_table): Don't create toc_section here.
1038 (rs6000_xcoff_file_start): Nor here.
1039
1a9ce0b7
JR
10402005-01-24 J"orn Rennecke <joern.rennecke@st.com>
1041
1042 * sh.c (ra.h): Don't #include.
1043 (hard_regs_intersect_p): New function, resurrected from ra.c.
1044
1045 * sh.c: Fix 1996 Copyright.
1046
226c62c7 10472005-01-24 Richard Henderson <rth@redhat.com>
97bd954f 1048 Aldy Hernandez <aldyh@redhat.com>
226c62c7 1049
97bd954f 1050 * regrename.c (note_sets): Handle subregs.
226c62c7 1051
2429f3d4
JM
10522005-01-24 Joseph S. Myers <joseph@codesourcery.com>
1053
1054 PR bootstrap/18058
1055 * genconditions.c (write_header, write_conditions): Elide file if
1056 not GCC >= 3.0.1.
1057
deeec1d8
KH
10582005-01-24 Kazu Hirata <kazu@cs.umass.edu>
1059
1060 * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
1061 config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
1062 Update copyright.
1063
7b922122
JJ
10642005-01-24 Jakub Jelinek <jakub@redhat.com>
1065
1066 * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
1067 expand_builtin_printf, expand_builtin_fprintf,
1068 expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
1069 checking against POINTER_TYPE.
1070 (validate_arglist): Handle POINTER_TYPE code by checking
1071 POINTER_TYPE_P.
1072
cf94b0fc
PB
10732005-01-24 Paolo Bonzini <bonzini@gnu.org>
1074
1075 * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
1076 init_rtlanal): New.
1077 (for_each_rtx): Call for_each_rtx_1.
1078 * rtl.h (init_rtlanal): Declare.
1079 * toplev.c (backend_init): Call init_rtlanal.
1080
b77302be
JJ
10812005-01-24 Jakub Jelinek <jakub@redhat.com>
1082
1083 * flow.c (propagate_one_insn): Formatting.
1084
1085 PR middle-end/19551
1086 * flow.c (libcall_dead_p): Be more conservative if unsure.
1087 If there are any instructions between insn and call, see if they are
1088 all dead before saying the libcall is dead.
1089
11c56af5
UB
10902005-01-24 Uros Bizjak <uros@kss-loka.si>
1091
1092 * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
1093 operand constraint for operand 0.
1094
520f34fa
RH
10952005-01-23 Richard Henderson <rth@redhat.com>
1096
1097 PR 19486
1098 * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
1099 edges leading to join block.
1100
0d282692
RS
11012005-01-23 Roger Sayle <roger@eyesopen.com>
1102
1103 * expmed.c (expand_mult_highpart): Make static. Change type of
1104 constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
1105 (expand_divmod): Updates calls to expand_mult_highpart by using
1106 gen_int_mode to pass a CONST_INT rtx.
1107 * rtl.h (expand_mult_highpart): Remove prototype.
1108
edd517b1
KH
11092005-01-23 Kazu Hirata <kazu@cs.umass.edu>
1110
1111 * flow.c (regset_bytes, regset_size): Remove.
1112
708bde14
KH
1113 * cfganal.c: Fix a reference to Harvey's paper.
1114
85840349
SB
11152005-01-23 Steven Bosscher <stevenb@suse.de>
1116
1117 PR rtl-optimization/19464
1118 * tree-optimize.c (init_tree_optimization_passes): Add one more
1119 copyrename pass just before out-of-ssa.
1120
9fcdd891
JM
11212005-01-23 Joseph S. Myers <joseph@codesourcery.com>
1122
1123 PR bootstrap/18058
1124 * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
1125 * ggc-none.c (ggc_free): Define.
1126
d0754bc6
KH
11272005-01-23 Kazu Hirata <kazu@cs.umass.edu>
1128
1129 * cse.c (max_reg, max_insn_uid): Remove.
1130 (cse_main): Don't access max_reg or max_insn_uid.
1131
f3b303fd
KH
1132 * c-common.c (explicit_flag_signed_bitfields,
1133 lang_statement_code_p, lang_expand_function_end): Remove.
1134 * c-common.h: Remove the corresponding declarations.
1135 * c-opts.c (c_common_handle_option): Remove all write access
1136 to explicit_flag_signed_bitfields.
1137
15f0d971
KH
1138 * cgraph.c (cgraph_varpool_n_nodes): Remove.
1139 (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
1140 * cgraph.h: Remove the corresponding declaration.
1141
6d77cdc3
KH
1142 * gcse.c (null_pointer_info): Remove.
1143
b9750434
RS
11442005-01-23 Roger Sayle <roger@eyesopen.com>
1145 Eric Botcazou <ebotcazou@libertysurf.fr>
1146
1147 * combine.c (simplify_logical): Only simplify logical expressions
1148 of the form ior(and(x,y),z) by the inverse distributive law if the
1149 result is cheaper than the original.
1150
35fd3193
KH
11512005-01-23 Kazu Hirata <kazu@cs.umass.edu>
1152
1153 * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
1154 fold-const.c, gimplify.c, params.h, tree-data-ref.c,
1155 tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
1156 tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
1157 config/freebsd-spec.h, config/arm/arm.h,
1158 config/h8300/h8300.md, config/i386/i386.md,
1159 config/i386/predicates.md, config/i386/sse.md,
1160 config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
1161 config/vax/vax.md: Fix comment typos. Follow spelling
1162 conventions.
1163
a62a0172
SB
11642005-01-23 Steven Bosscher <stevenb@suse.de>
1165
1166 * gengtype.c (walk_type): Produce `not equal to' compares for loop
1167 tests, instead of `less than'.
1168
a561d88b
RS
11692005-01-23 Richard Sandiford <rsandifo@redhat.com>
1170
1171 * function.c (assign_parm_setup_block): When creating a new stack slot
1172 for a parameter, get its alignment from the parameter's DECL_ALIGN
1173 rather than the type's TYPE_ALIGN. Make sure that the parameter
1174 is at least word aligned.
1175
d2ebe27c
RS
11762005-01-22 Roger Sayle <roger@eyesopen.com>
1177
1178 PR middle-end/19378
1179 * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
1180
a059cdb8
RH
11812005-01-22 Richard Henderson <rth@redhat.com>
1182
1183 PR target/19506
1184 * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
1185 in both compare operands.
1186 (movdfcc_1_sse_max): Likewise.
1187 (movsfcc_1_sse): Likewise. Add earlyclobber for scratch.
1188 (movdfcc_1_sse): Likewise.
1189 * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
1190 scratch register as needed.
1191
eabd294f
RH
11922005-01-22 Richard Henderson <rth@redhat.com>
1193
b8f06586
RH
1194 * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
1195
eabd294f
RH
1196 * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
1197
5ccbd309
RH
11982005-01-22 Richard Henderson <rth@redhat.com>
1199
1200 * genopinit.c (optabs): Use smin/smax for floating point too.
1201 * doc/md.texi: Update to match. Clarify that floating point
1202 results are undefined for +0/-0 and NaN.
1203 * doc/rtl.texi: Likewise.
1204 * rtl.def (SMIN, SMAX): Likewise
1205 * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
1206
1207 * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
1208 leading 's' to the name.
1209 * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
1210 smaxxf3, sminxf3): Likewise.
1211 * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
1212 Likewise.
1213
b4b2332c
PB
12142005-01-22 Paul Brook <paul@codesourcery.com>
1215
1216 * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
1217
6fa5b390
MD
12182005-01-21 Mark Dettinger <dettinge@de.ibm.com>
1219
1220 * config/s390/s390.c (struct processor_costs): New fields
1221 dlgr, dlr, dr, dsgfr, dsgr.
1222 (z900_cost, z990_cost): Values for new fields.
1223 (s390_rtx_costs): New cases MEM und COMPARE in switch
1224 statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
1225 DIV, MOD, UDIV, UMOD.
1226
eb862a88
UW
12272005-01-21 Ulrich Weigand <uweigand@de.ibm.com>
1228
1229 * config/s390/s390.md ("doloop_si64"): Reload input value directly
1230 into the register being decremented.
1231 ("doloop_si31", "doloop_di"): Likewise.
1232 ("*doloop_si_long"): Adapt pattern.
1233
3776ada0
UW
12342005-01-21 Ulrich Weigand <uweigand@de.ibm.com>
1235
1236 * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
1237 access registers.
1238 (CLASS_MAX_NREGS): Likewise.
1239
d7c71ee3
DB
12402005-01-21 Daniel Berlin <dberlin@dberlin.org>
1241
1242 * doc/tree-ssa.texi (Statement Operands): Add example for new
1243 must-def macro. Note deprecation of old operands interface.
1244
d7f3fc19
RS
12452005-01-22 Richard Sandiford <rsandifo@redhat.com>
1246
1247 PR tree-optimization/19484
1248 * tree-cfg.c (remove_fallthru_edge): New function.
1249 (cleanup_control_flow): Remove fallthru edges from calls that are
1250 now known not to return.
1251
111e0c9f
DB
12522005-01-20 Daniel Berlin <dberlin@dberlin.org>
1253
1254 Fix PR tree-optimization/19038
1255 * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
1256 copies with loop variant ones.
1257
1e052c19
KH
12582005-01-22 Kazu Hirata <kazu@cs.umass.edu>
1259
1260 * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
1261 config/alpha/alpha-protos.h, config/alpha/alpha.h,
1262 config/alpha/alpha.md, config/alpha/predicates.md,
1263 config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
1264 config/sparc/sol2.h: Update copyright.
1265
28773f15
KH
1266 * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
1267 first label to see if it is a nonlocal label.
1268
1e052c19 12692005-01-22 David Edelsohn <edelsohn@gnu.org>
ead553a1 1270 Andrew Pinski <pinskia@physics.uc.edu>
987732e0
DE
1271
1272 PR target/19491
1273 * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
1274 maximum number of GPRs. Saturate n_fpr at maximum number of FPRs.
1275
80d15bce
RC
12762005-01-22 Ralf Corsepius <ralf.corsepius@rtems.org>
1277
1278 * config/rs6000/rtems.h: Update copyright.
1279
b9d13999
RC
12802005-01-22 Ralf Corsepius <ralf.corsepius@rtems.org>
1281
1282 PR target/19548
1283 * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
1284 (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
1285 (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
1286
20913689
VR
12872005-01-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1288
1289 PR c/18809
1290 * c-typeck.c (convert_arguments): Check for error_mark_node.
1291
1e052c19 12922005-01-21 Ian Lance Taylor <ian@airs.com>
089efaa4
ILT
1293
1294 PR tree-optimization/13000
1295 * tree-inline.c: Include "tree-flow.h".
1296 (expand_call_inline): If warn_return_type, warn if non-void inline
1297 function falls through.
1298 * tree-cfg.c (execute_warn_function_return): Don't warn about
1299 control reaching end if TREE_NO_WARNING is set. Set
1300 TREE_NO_WARNING.
1301 * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
1302 has been lowered.
1303 * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
1304 branch if we don't need one.
1305 * c-typeck.c: Include "tree-flow.h"
1306 (c_finish_bc_stmt): Don't add a goto if the current statement
1307 list doesn't fall through to the current point.
1308
d284eb28
RS
13092005-01-21 Roger Sayle <roger@eyesopen.com>
1310
1311 PR rtl-optimization/576
1312 * real.c (real_arithmetic): Change return type from void to bool
1313 to return an indication that the result may be inexact.
1314 * real.h (real_arithmeric): Update prototype.
1315 * fold-const.c (const_binop): Don't constant fold floating
1316 point expressions when the user specifies -frounding-math and
1317 the result may depend upon the run-time rounding mode.
1318 (fold_convert_const_real_from_real): Clean-up.
1319 (fold_initializer): Ignore flag_rounding_math for initializers.
1320 * simplify-rtx.c (simplify_binary_operation): Likewise, don't
1321 constant fold FP operations with flag_rounding_math if the
1322 result may depend upon the run-time rounding mode.
1323
a101957b
TT
13242005-01-21 Tom Tromey <tromey@redhat.com>
1325
1326 * c-cppbuiltin.c (define__GNUC__): Correct assertion.
1327
a85ba5a8
KH
13282005-01-21 Kazu Hirata <kazu@cs.umass.edu>
1329
1330 * tree-cfg.c: Fix comment typos.
1331
5b5e3a31
R
13322005-01-21 J"orn Rennecke <joern.rennecke@st.com>
1333
1334 * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
1335 around the call to rest_of_handle_branch_target_load_optimize.
1336
0b85af22
EB
13372005-01-21 Eric Botcazou <ebotcazou@libertysurf.fr>
1338
1339 * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
1340 (sparc64-*-openbsd*): Likewise.
1341 (sparclite-*-elf*): Include tm-dwarf2.h.
1342 (sparc86x-*-elf*): Likewise.
1343 (sparc64-*-elf*): Likewise.
1344 * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
1345 (DBX_DEBUGGING_INFO): Likewise.
1346 * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
1347 (PREFERRED_DEBUGGING_TYPE): Likewise.
1348 * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
1349 * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
1350 (PREFERRED_DEBUGGING_TYPE): Likewise.
ac11d73b 1351 * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
0b85af22
EB
1352 (PREFERRED_DEBUGGING_TYPE): Likewise.
1353 * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
1354
3eacd71f
HPN
13552005-01-21 Hans-Peter Nilsson <hp@bitrange.com>
1356
1357 PR target/18701
1358 * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
1359
eacf8912
PB
13602005-01-20 Paul Brook <paul@codesourcery.com>
1361
1362 * doc/rtl.texi: Document value extension requirements for CONST_INT.
1363
548414c6
KH
13642005-01-20 Kazu Hirata <kazu@cs.umass.edu>
1365
1366 * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
1367 label is first in a sequence of labels.
1368
cde68236
KH
1369 * tree-cfg.c (tree_verify_flow_info): Fix a typo.
1370
35fdf04e
JJ
13712005-01-20 Janis Johnson <janis187@us.ibm.com>
1372 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1373
1374 * doc/sourcebuild.texi (Test Directives): New.
1375
8ffeac67
RS
13762005-01-20 Roger Sayle <roger@eyesopen.com>
1377
1378 * real.c (real_floor): Don't leave the result uninitialized when
1379 mode is VOIDMode, but return the unrounded intermediate value.
1380 (real_ceil): Likewise.
1381
07ff6dac 13822005-01-20 Paul Brook <paul@codesourcery.com>
b65e6318
PB
1383
1384 * config/arm/arm.md (insv): Use gen_int_mode.
1385
62da8647
EB
13862005-01-20 Eric Botcazou <ebotcazou@libertysurf.fr>
1387
1388 * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
1389 * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
1390 * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
1391 * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
1392 * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
1393
3c46c513
DB
13942005-01-20 Daniel Berlin <dberlin@dberlin.org>
1395
1396 Fix PR debug/19124
1397 * dwarf2out.c (concat_loc_descriptor): We don't know we can use
1398 fbreg, so we have to assume we can't.
1399 (loc_descriptor_from_tree_1): Ditto.
1400 (containing_function_has_frame_base): New function.
1401 (add_location_or_const_value_attribute): Use it.
1402 Also try to generate a frame_base from a single element location
1403 list.
1404
23ab2e4e
KH
14052005-01-20 Kazu Hirata <kazu@cs.umass.edu>
1406
1407 PR tree-optimization/15349
1408 * timevar.def (TV_TREE_MERGE_PHI): New.
1409 * tree-cfg.c (tree_forwarder_block_p): Add a new argument
1410 PHI_WANTED.
1411 (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
1412 calls to tree_forwarder_block_p.
1413 (remove_forwarder_block_with_phi, merge_phi_nodes,
1414 gate_merge_phi, pass_merge_phi): New.
1415 * tree-optimize.c (init_tree_optimization_passes): Add
1416 pass_merge_phi.
1417 * tree-pass.h: Add an extern for pass_merge_phi;
1418
edd5b7da
RH
14192005-01-20 Richard Henderson <rth@redhat.com>
1420
1421 PR target/19418
1422 * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
1423 (_mm_castps_pd, _mm_castps_si128): New.
1424 (_mm_castsi128_ps, _mm_castsi128_pd): New.
1425
0f2698d0
RH
14262005-01-20 Richard Henderson <rth@redhat.com>
1427
1428 PR target/19530
1429 * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
1430 __builtin_ia32_vec_init_v2si.
1431 (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
1432 * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
1433 (ix86_init_mmx_sse_builtins): Create it.
1434 (ix86_expand_builtin): Expand it.
1435 (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
1436 * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
1437 (vec_extractv2si_0, vec_extractv2si_1): New.
1438
6b79c03c
RH
14392005-01-20 Richard Henderson <rth@redhat.com>
1440
58b03a2d 1441 PR target/16533
6b79c03c
RH
1442 * config/i386/i386.c (ix86_expand_push): New.
1443 * config/i386/mmx.md (push<MMXMODE>1): New.
1444 * config/i386/sse.md (push<SSEMODE>1): New.
1445 * config/i386/i386-protos.h: Update.
1446
e42febca
KH
14472005-01-20 Kazu Hirata <kazu@cs.umass.edu>
1448
1449 * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
1450 copyright.
1451
f4770271
RH
14522005-01-20 Richard Henderson <rth@redhat.com>
1453
1454 * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
1455 * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
1456
b4bb3199
RH
14572005-01-19 Richard Henderson <rth@redhat.com>
1458
1459 PR target/19350
1460 * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
1461 to V4SFmode in SSE1 fallback load path.
1462
ceda96fc
RH
14632005-01-19 Richard Henderson <rth@redhat.com>
1464
1465 * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
1466 in QImode expansion to ix86_expand_vector_set.
1467 (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
1468
f75959a6
RH
14692005-01-19 Richard Henderson <rth@redhat.com>
1470
1471 PR target/19511
1472 * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
1473 subclass of the input class.
1474 (ix86_secondary_memory_needed): Always true for cross-MMX classes.
1475 Always true for cross-SSE1 classes. Rationalize conditionals.
1476 * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
1477 * config/i386/i386.md (movsi_1): Add MMX/SSE zeros. Fix alternatives
1478 for SSE1. Don't check TARGET_INTER_UNIT_MOVES.
1479 (movdi_2): Add MMX/SSE zeros.
1480 (movdi_1_rex64): Likewise. Don't check TARGET_INTER_UNIT_MOVES.
1481 (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
1482 (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
1483 (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
1484 (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
1485 (zero_extendsidi2_rex64_1): Remove.
1486 (MOV0 peephole): Check GENERAL_REG_P.
1487
b100079f
RH
14882005-01-19 Richard Henderson <rth@redhat.com>
1489
1490 PR target/19427
1491 * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
1492 shufps elements.
1493 (ix86_expand_vector_extract): Likewise.
1494
539eaa3a
RH
14952005-01-19 Richard Henderson <rth@redhat.com>
1496
1497 PR middle-end/19304
1498 * expr.c (emit_move_change_mode): New argument force; use
1499 simplify_gen_subreg if true.
1500 (emit_move_via_alt_mode): Merge into ...
1501 (emit_move_via_integer): ... here.
1502 (emit_move_ccmode): Use emit_move_change_mode directly.
1503
72910a0b
RH
15042005-01-19 Richard Henderson <rth@redhat.com>
1505
1506 PR target/19518
1507 * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
1508 (alpha_preferred_reload_class): Handle CONST_VECTOR.
1509 (alpha_emit_set_const_1): Add no_output parameter; don't emit
1510 rtl if true.
1511 (alpha_emit_set_const): Likewise. Make static.
1512 (alpha_emit_set_long_const): Make static.
1513 (alpha_extract_integer): Split out from alpha_expand_mov.
1514 (alpha_split_const_mov): Likewise.
1515 (alpha_expand_mov): Use them. Handle CONST_VECTOR.
1516 (alpha_legitimate_constant_p): New.
1517 * config/alpha/alpha-protos.h: Update.
1518 * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
1519 (LEGITIMATE_CONSTANT_P): Re-implement with a function.
1520 * config/alpha/alpha.md (movsi): Add n alternative.
1521 (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
1522 (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
1523 (splitters for all of the above): Use alpha_split_const_mov.
1524 * config/alpha/predicates.md (non_add_const_operand): New.
1525 (non_zero_const_operand): New.
1526 (input_operand): Use alpha_legitimate_constant_p after reload.
1527
4366cf6d
ZD
15282005-01-19 Zdenek Dvorak <dvorakz@suse.cz>
1529
1530 PR tree-optimization/19038
1531 * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
1532 (add_candidate): Add ivs with increment in latch only if
1533 allow_ip_end_pos_p is true.
1534 (determine_iv_cost): Use empty_block_p.
1535
4c7f5fea
DB
15362005-01-19 Daniel Berlin <dberlin@dberlin.org>
1537
1538 * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
1539 (compute_dominance_frontiers): Ditto.
1540
be33b729
RC
15412005-01-19 Ralf Corsepius <ralf.corsepius@rtems.org>
1542
1543 PR target/19529
1544 * config/sh/t-rtems: New.
1545 * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
1546
53dba802
ZD
15472005-01-19 Zdenek Dvorak <dvorakz@suse.cz>
1548
1549 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
1550 the offset of the selected field.
1551
04d38c3b
KH
15522005-01-19 Kazu Hirata <kazu@cs.umass.edu>
1553
1554 * tree-cfg.c (remove_forwarder_block): Fix the check to
1555 prevent a nonlocal label from appearing in the middle of a
1556 basic block.
1557
09f9e288
HPN
15582005-01-19 Hans-Peter Nilsson <hp@axis.com>
1559
1560 PR rtl-optimization/19462
1561 * reorg.c (find_end_label): Create return insn only if
1562 current_function_epilogue_delay_list is empty.
1563
625d4524
PB
15642005-01-19 Paolo Bonzini <bonzini@gnu.org>
1565
1566 * doc/passes.texi: Remove paragraph mentioning new-ra.
1567
e89be13b
JJ
15682005-01-19 Jakub Jelinek <jakub@redhat.com>
1569
49c3b9a8
JJ
1570 PR rtl-optimization/15139
1571 * combine.c: Include params.h.
1572 (count_rtxs): New function.
1573 (record_value_for_reg): If replace_rtx would replace at least
1574 2 occurrences of REG in VALUE and TEM is really large, replace REG with
1575 (clobber (const_int 0)) instead of TEM.
1576 * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
1577 * params.h (MAX_LAST_VALUE_RTL): New.
1578 * Makefile.in (combine.o): Depend on $(PARAMS_H).
1579 * doc/invoke.texi (--param max-last-value-rtl=N): Document.
1580
e89be13b
JJ
1581 PR c/17297
1582 * c-typeck.c (digest_init): Only call build_vector if all constructor
1583 elements are *_CST nodes.
1584 * gimplify.c (gimplify_init_constructor): Likewise.
1585
1586 PR middle-end/19164
1587 * c-typeck.c (digest_init): Only call build_vector if inside_init
1588 is a CONSTRUCTOR.
1589
d74e09c6
TS
15902005-01-18 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
1591
1592 * toplev.c (init_asm_output): Remove dead #ifdef.
1593
e35b30c7
KK
15942005-01-18 Kaz Kojima <kkojima@gcc.gnu.org>
1595
1596 * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
1597
8c96cd51
EB
15982005-01-18 Eric Botcazou <ebotcazou@libertysurf.fr>
1599
1600 * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
1601 accessing DECL_FUNCTION_CODE.
1602 * dojump.c (do_jump): Likewise.
1603 * gimplify.c (gimplify_call_expr): Likewise.
1604 * predict.c (expr_expected_value): Likewise.
1605 (strip_builtin_expect): Likewise.
1606 * tree-inline.c (estimate_num_insns_1): Likewise.
1607 * tree-ssa-loop-im.c (stmt_cost): Likewise
1608 * fold-const.c (fold): Test for BUILT_IN_NORMAL.
1609 (tree_expr_nonnegative_p): Likewise.
1610
eb7a7903
EB
16112005-01-18 Eric Botcazou <ebotcazou@libertysurf.fr>
1612
1613 * config/sparc/sparc.c (load_pic_register): Emit the appropriate
1614 variant of the load_pcrel_sym pattern.
1615 * config/sparc/sparc.md (P macro): Move to the top.
1616 (load_pcrel_sym): Macroize using P.
1617 (save_register_window): Likewise.
1618
7836a61f
AH
16192005-01-18 Aldy Hernandez <aldyh@redhat.com>
1620
1621 * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
1622 ("sordered"): Same.
1623
b4c33883
AP
16242005-01-18 Andrew Pinski <pinskia@physics.uc.edu>
1625
1626 PR C/19472
1627 * c-typeck.c (build_asm_expr): Strip nops off
1628 input memory operands.
1629
56015cee
DE
16302005-01-18 David Edelsohn <edelsohn@gnu.org>
1631
1632 * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
1633 _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
1634 * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
1635 * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
1636
de004e6d
JS
16372005-01-18 Joel Sherrill <joel.sherrill@oarcorp.com>
1638
1639 PR target/19379
1640 * config/i386/i386.c (override_options): If the 80387 is disabled,
1641 then do not return FP values using FP registers.
1642
ad616de1
KH
16432005-01-18 Kazu Hirata <kazu@cs.umass.edu>
1644
1645 * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
1646 c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
1647 combine.c, config.gcc, coverage.h, cse.c, cselib.c,
1648 defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
1649 flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
1650 gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
1651 output.h, postreload-gcse.c, postreload.c, recog.c,
1652 resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
1653 targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
1654 tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
1655 tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
1656 tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
1657 tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
1658 tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
1659 unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
1660
5b86a469
KH
1661 * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
1662 config/alpha/alpha.c, config/arm/vfp.md,
1663 config/i386/emmintrin.h, config/i386/i386-modes.def,
1664 config/i386/i386-protos.h, config/i386/i386.h,
1665 config/i386/pmmintrin.h, config/i386/ppro.md,
1666 config/i386/predicates.md, config/i386/xmmintrin.h,
1667 config/i860/i860.c, config/ia64/ia64-modes.def,
1668 config/ia64/ia64-protos.h, config/ia64/ia64.h,
1669 config/ia64/ia64.md, config/ia64/itanium1.md,
1670 config/ia64/itanium2.md, config/ia64/predicates.md,
1671 config/iq2000/iq2000.h, config/mips/linux64.h,
1672 config/rs6000/aix41.h, config/rs6000/aix43.h,
1673 config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
1674 config/rs6000/rs6000.c, config/rs6000/rs6000.h,
1675 config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
1676 config/sparc/linux64.h, config/sparc/litecoff.h,
1677 config/sparc/sp64-elf.h, config/sparc/sparc.c,
1678 config/sparc/sparc.h, config/sparc/sparc.md,
1679 config/sparc/sysv4-only.h: Update copyright.
1680
51d7bae6
RH
16812005-01-18 Richard Henderson <rth@redhat.com>
1682
1683 PR target/19496
1684 * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
1685
f5975bd5
ME
16862005-01-18 Marc Espie <espie@openbsd.org>
1687 * config/i386/openbsdelf.h: Typo.
1688
9f61886e
RH
16892005-01-18 Richard Henderson <rth@redhat.com>
1690
1691 * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
1692 special case for sse.
1693 * config/i386/predicates.md (sse_comparison_operator): Likewise.
1694
16630a2c
DN
16952005-01-18 Dorit Naishlos <dorit@il.ibm.com>
1696
1697 * tree-inline.c (estimate_num_insns_1): Added cases for
1698 ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
1699
f917ae96
EB
17002005-01-18 Eric Botcazou <ebotcazou@libertysurf.fr>
1701
1702 PR rtl-optimization/19296
1703 * combine.c (simplify_comparison): Rewrite the condition under
1704 which a non-paradoxical SUBREG of a PLUS can be lifted when
1705 compared against a constant.
1706
06da3c24
AK
17072005-01-18 Andi Kleen <ak@muc.de>
1708
1709 * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
1710 * c.opt (-Wpointer-sign): Add.
1711 * doc/invoke.texi: (-Wpointer-sign): Add.
1712
ded1c605
UB
17132005-01-18 Uros Bizjak <uros@kss-loka.si>
1714
1715 * config/i386/i386.c (override_options): Revert 2004-11-24 change.
1716 * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
1717 *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
1718 logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
1719 exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
1720 nearbyintsf2): Disable for TARGET_SSE_MATH. Leave patterns enabled
1721 for TARGET_MIX_SSE_I387.
1722 (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
1723 sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
1724 atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
1725 log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
1726 floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
1727 (TARGET_SSE2 && TARGET_SSE_MATH). Leave patterns enabled for
1728 TARGET_MIX_SSE_I387.
1729 (atan2sf3, atan2df3, atan2xf3): Remove register constraints
1730 from expander.
1731
d0405259
UB
17322005-01-18 Uros Bizjak <uros@kss-loka.si>
1733
1734 PR target/19424
1735 * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
1736 Add movaps alternative for xmm reg->reg move.
1737
0bd65483
JL
17382005-01-17 Jeff Law <law@redhat.com>
1739
1740 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
1741 at the end of the main DOM loop rather than just before DOM exits.
1742
e03a46f5
DN
17432005-01-17 Diego Novillo <dnovillo@redhat.com>
1744
1745 PR tree-optimization/19121
1746 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
1747 adding aliases to a name tag, also add them to the pointer's
1748 type tag.
1749 * tree-ssa-copy.c (merge_alias_info): Do not merge flow
1750 sensitive alias info at all. Only check that the two pointers
1751 have compatible pointed-to sets.
1752 * tree-ssa.c (verify_name_tags): Verify that the alias set of
1753 a pointer's type tag is a superset of the alias set of the
1754 pointer's name tag.
1755
696a2ca1
JW
17562005-01-17 James E Wilson <wilson@specifixinc.com>
1757
1758 PR target/19357
1759 * config/ia64/ia64.md (movxf): Handle general register source. Adjust
1760 comment to document why.
1761
115a33c2
RH
17622005-01-17 Richard Henderson <rth@redhat.com>
1763
1764 * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
1765 sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
1766 sse2_vmsmaxv2df3_finite, sminv2df3_finite,
1767 sse2_vmsminv2df3_finite): New.
1768 (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
1769 sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
1770 Force op1 into register.
1771
ded73657
KC
17722005-01-17 Kelley Cook <kcook@gcc.gnu.org>
1773
1774 * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
1775 bubblestrap from always rebuilding build directory.
1776
d4f52f0e
UW
17772005-01-17 Ulrich Weigand <uweigand@de.ibm.com>
1778
1779 * config/s390/s390.md ("*clc"): Remove incorrect '='.
1780 ("*cmpmem_short"): Likewise.
1781
740ce53d
SB
17822005-01-17 Steven Bosscher <stevenb@suse.de>
1783
1784 * basic-block.h: Document BB_* flags.
1785 * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
1786 use an sbitmap instead.
1787 * sched-rgn.c (compute_trg_info): Likewise.
1788
2184a120
RS
17892005-01-17 Richard Sandiford <rsandifo@redhat.com>
1790
1791 * config.gcc (mips64*-*-linux*): Set the default abi to n32. Remove
1792 redundant target_cpu_default and extra_parts lines. Use the default
1793 "from-abi" ISA.
1794 * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
1795 (SUBTARGET_EXTRA_SPECS): Delete.
1796 (DRIVER_SELF_SPECS): Remove architecture lines. Set the ABI directly.
1797 (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
1798 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
1799 and "n32" for -mabi=n32.
1800
812ad338
ILT
18012005-01-17 Ian Lance Taylor <ian@airs.com>
1802
1803 PR c/5675
1804 * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
1805 fold constant variables into initial values.
1806
26e75214
KH
18072005-01-17 Kazu Hirata <kazu@cs.umass.edu>
1808
1809 * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
1810
f8ef82ea
KH
1811 * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
1812 through the statements backward.
1813
81bafd36
ILT
18142005-01-17 Ian Lance Taylor <ian@airs.com>
1815
1816 PR middle-end/13127:
1817 * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
1818 a variable set to the return value of the inlined function.
1819
edb81165
MD
18202005-01-17 Mark Dettinger <dettinge@de.ibm.com>
1821
1822 * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
1823 when modes are tieable.
1824
658acbb2
RM
18252005-01-17 Ranjit Mathew <rmathew@hotmail.com>
1826
1827 * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
1828 of pthread_create to find out if threads are enabled.
1829 * gthr-posix95.h (__gthread_active_p): Likewise.
1830
cd280abb
PB
18312005-01-17 Paolo Bonzini <bonzini@gnu.org>
1832
1833 * common.opt (-fnew-ra): Remove.
1834 * ra*.*: Remove.
1835 * toplev.h (flag_new_regalloc): Remove.
1836 * Makefile.in (ra*.*): Don't mention.
1837 * passes.c (rest_of_handle_new_regalloc): Remove.
1838 (rest_of_handle_combine, rest_of_compilation): Always consider
1839 flag_new_regalloc as false.
1840 * doc/invoke.texi: Don't document -fnew-ra.
1841
18422005-01-17 Paolo Bonzini <bonzini@gnu.org>
c80a0f26
PB
1843
1844 * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
1845 last parameter to reg_scan.
1846 * loop.c (loop_optimize): Likewise.
1847 * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
1848 rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
1849 rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
1850 rest_of_handle_gcse, rest_of_handle_loop_optimize,
1851 rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
1852 * regclass.c (reg_scan): Likewise, for the declaration.
1853 * rtl.h (reg_scan): Likewise, for the prototype.
1854
724e4d44
KH
18552005-01-17 Kazu Hirata <kazu@cs.umass.edu>
1856
1857 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
1858 mark_dfs_back_edges.
1859
7f233d9f
DB
18602005-01-16 Daniel Berlin <dberlin@dberlin.org>
1861
1862 * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
1863 (compute_avail): Uses don't go in tmp_gen.
1864
6f0947e4
SB
18652005-01-16 Steven Bosscher <stevenb@suse.de>
1866
1867 * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
1868 loop to look for a free slot in a page entry.
1869
083b6717
JDA
18702005-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1871
1872 PR target/16304
1873 * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
1874 * toplev.c (compile_file): Call process_pending_assemble_output_defs
1875 just before targetm.asm_out.file_end.
1876 * tree.h (process_pending_assemble_output_defs): Declare.
1877 * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
1878 New functions.
1879 (assemble_alias): Defer generation of assembly code for defines when
1880 TARGET_DEFERRED_OUTPUT_DEFS is true.
1881 * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
1882 * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
1883 * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
1884
2d5ca9a0
JDA
18852005-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1886
83c32f2e
JDA
1887 PR target/19336
1888 * pa.c (pa_scalar_mode_supported_p): New function.
1889 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
1890 * pa.h (MIN_UNITS_PER_WORD): Add comment.
1891
2d5ca9a0
JDA
1892 * pa-protos.h (prefetch_operand): Delete.
1893 (prefetch_cc_operand, prefetch_nocc_operand): New declations.
1894 * pa.c (prefetch_operand): Delete.
1895 (prefetch_cc_operand, prefetch_nocc_operand): New functions.
1896 * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
1897 (PREDICATE_CODES): Delete prefetch_operand. Add prefetch_cc_operand
1898 and prefetch_nocc_operand.
1899 * pa.md (prefetch): Rework to avoid reload problems handling short
1900 displacements when a cache control completer needs to be provided.
1901 (prefetch_32, prefetch_64): Delete.
1902 (prefetch_cc, prefetch_nocc): New patterns.
1903
6a9836b1
DE
19042005-01-15 David Edelsohn <edelsohn@gnu.org>
1905
1906 * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
1907
22f549fd
JDA
19082005-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1909
1910 PR ada/19388
1911 * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
1912 exceeds maximum alignment for global common data.
1913 * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
1914 * som.h (MAX_OFILE_ALIGNMENT): Likewise.
1915
19e1af6e
RS
19162004-01-15 Roger Sayle <roger@eyesopen.com>
1917
1918 * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
1919
778f72f2
RS
19202004-01-15 Roger Sayle <roger@eyesopen.com>
1921
1922 * harg-reg-set.h (reg_class_names): Prototype global array.
1923 * regclass.c (reg_class_names): Declare here and initialize to
1924 REG_CLASS_NAMES.
1925 (dump_regclass): Remove local declaration of reg_class_names.
1926 (regclass): Likewise.
1927 * cfg.c (dump_flow_info): Likewise.
1928 * ra-debug.c (reg_class_names): Likewise.
1929 * regrename.c (reg_class_names): Likewise.
1930 * reload.c (reg_class_names): Likewise.
1931 * reload1.c (spill_failure): Likewise.
1932 * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
1933
9c3c3dcc
UW
19342005-01-15 Ulrich Weigand <uweigand@de.ibm.com>
1935
1936 * config/s390/s390.md ("reload_outti"): Remove predicate for
1937 output operand. Abort if operand is not a MEM.
1938 ("reload_outdi", "reload_outdf"): Likewise.
1939
378b66d4
ME
19402005-01-15 Marc Espie <espie@openbsd.org>
1941
1942 * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
1943 (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
1944 * config/openbsd.h: Fix C++ includes for native configurations.
1945 Add proper OS_CPP_BUILTINS. Fix libspec for recent OpenBSD.
1946 Add trampoline support.
1947 * config/i386/openbsdelf.h: New.
1948
60828cbd
ME
19492005-01-15 Marc Espie <espie@openbsd.org>
1950
1951 * collect2.c (main): Explicitly parse -dynamic-linker option.
1952
75b9aa9f
JJ
19532005-01-15 Jakub Jelinek <jakub@redhat.com>
1954
1955 PR tree-optimization/19060
1956 * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
1957 Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
1958 (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
1959 and handle extract_range_from_cond returning false.
1960 * fold-const.c (fold): Optimize comparisons with min/max even for
1961 width > HOST_BITS_PER_WIDE_INT.
1962
4ba9f2a1
RC
19632005-01-15 Ralf Corsepius <ralf.corsepius@rtems.org>
1964
1965 * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
1966 * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
1967 Remove little endian multilib variants.
1968 Add mips32 multilib variant.
1969
bbc8fb00
KH
19702005-01-15 Kazu Hirata <kazu@cs.umass.edu>
1971
1972 * explow.c (copy_all_reg, stabilize): Remove.
1973 * expr.h: Remove the corresponding prototypes.
1974
6a29dc8b
KH
1975 * rtlanal.c (regs_set_between_p): Remove.
1976 * rtl.h: Remove the corresponding prototype.
1977
165a5bad
DE
19782005-01-14 David Edelsohn <edelsohn@gnu.org>
1979
1980 * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
1981 to rs6000_nonimmediate_operand.
1982 * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
1983 rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
1984 * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
1985 rs6000_nonimmediate_operand.
1986 * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
1987 rs6000_nonimmediate_operand.
1988
7f9e6d2a
AP
19892005-01-14 Andrew Pinski <pinskia@physics.uc.edu>
1990
1991 * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
1992
54b695e7
AH
19932005-01-14 Aldy Hernandez <aldyh@redhat.com>
1994
1995 * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
1996 on e500v2.
1997 (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
1998 (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
1999
2000 * config/rs6000/rs6000.c (invalid_e500_subreg): New.
2001 (rs6k_nonimmediate_operand): New.
2002 (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
2003 correctly.
2004 (legitimate_lo_sum_address_p): Same.
2005 (rs6000_legitimize_address): Same.
2006 (rs6000_legitimize_reload_address): Same.
2007 (rs6000_legitimate_address): Same.
2008 (spe_build_register_parallel): Pass DF and DC modes in a DI
2009 register.
2010
2011 * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
2012 to rs6k_nonimmediate_operand.
2013
2014 * config/rs6000/spe.md ("*frob_df_di"): New.
2015 ("*frob_di_df"): New.
2016 ("*frob_di_df_2"): New.
2017 ("*mov_sidf_e500_subreg0"): New.
2018 ("*mov_sidf_e500_subreg4"): New.
2019 ("*movdf_e500_double"): Change predicate to
2020 rs6k_nonimmediate_operand.
2021
05075d4e
AH
20222005-01-14 Aldy Hernandez <aldyh@redhat.com>
2023
2024 * postreload.c (move2add_note_store): Only call
2025 trunc_int_for_mode on scalar integers.
2026
a28fee03
SB
20272005-01-14 Steven Bosscher <stevenb@suse.de>
2028
2029 * tree-ssa-dce.c (visited_control_parents): New sbitmap to
2030 replace BB_VISITED uses.
2031 (find_obviously_necessary_stmts): Don't clear BB_VISITED.
2032 (propagate_necessity): Check the bitmap instead of BB_VISITED.
2033 (tree_dce_done): Free visited_control_parents.
2034 (perform_tree_ssa_dce): Allocate and clear it.
2035 * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
2036 (compute_antic): Iterate from here using a DFS. Use an sbitmap
2037 instead of BB_VISITED.
2038
103a83e0
KH
20392005-01-14 Kazu Hirata <kazu@cs.umass.edu>
2040
2041 * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
2042 rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
2043 Remove unused prototypes.
2044
b5a5beb9
AH
20452005-01-14 Aldy Hernandez <aldyh@redhat.com>
2046
2047 * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
2048 64-bit register usage.
2049 (spe_func_has_64bit_regs_p): Add FIXME note.
2050
5ca18999
AH
20512005-01-14 Aldy Hernandez <aldyh@redhat.com>
2052
2053 * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
2054 flag_finite_math_only with flag_unsafe_math_optimizations.
2055
783d2650
J
20562005-01-14 J. D. Johnston <jjohnst@us.ibm.com>
2057
2058 * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
2059 end-of-stack check.
2060 (__tpf_eh_return): Copy TPF private stack area from the module
2061 boundary stack frame. Add check for when module addresses are
2062 equal, but no stub address is found.
2063
b12a00f1
RE
20642005-01-14 Richard Earnshaw <rearnsha@arm.com>
2065
2066 PR target/7525
2067 * arm.h (struct machine_function): Add call_via field.
2068 (thumb_call_via_label): Declare.
2069 * arm.c (thumb_call_via_label): New variable.
2070 (thumb_call_reg_needed): New variable.
2071 (arm_output_function_epilogue): For Thumb code, output any per-function
2072 call-indirect trampolines.
2073 (thumb_call_via_reg): New function.
2074 (arm_file_end): New function.
2075 (TARGET_ASM_FILE_END): Call arm_file_end.
2076 (aof_file_end): Likewise.
2077 * arm-protos.h (thumb_call_via_reg): Declare.
2078 * arm.md (call_reg_thumb, call_value_reg_thumb): Call
2079 thumb_call_via_reg in normal case.
2080
08a0c536
JJ
20812005-01-14 Jakub Jelinek <jakub@redhat.com>
2082
2083 PR middle-end/19084
2084 PR rtl-optimization/19348
2085 * recog.c (peephole2_optimize): Do global life update if some peephole
2086 decides it doesn't need at least one of its inputs and that change
2087 influences liveness at the start of the basic block.
2088
2089 * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
2090 arguments instead of 1.
2091
eebeecac
EB
20922005-01-14 Eric Botcazou <ebotcazou@libertysurf.fr>
2093
2094 PR middle-end/18820
2095 * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
2096 zero for nested functions needing a static chain or functions
2097 with a non-constant address.
2098
a0ee8b5f
RS
20992005-01-13 Roger Sayle <roger@eyesopen.com>
2100
2101 * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
2102 (and (sign_extend X) C) into (zero_extend (and X C)).
2103
92018897
DB
21042005-01-13 David O'Brien <obrien@FreeBSD.org>
2105
2106 * config/freebsd-spec.h: Make KSE pthread lib logic the default.
2107
eaa49b49
RH
21082005-01-13 Richard Henderson <rth@redhat.com>
2109
2d1d3cb2 2110 PR target/19009
eaa49b49
RH
2111 PR target/19250
2112 PR target/19252
2113 * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
2114 bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
2115 not just TARGET_SSE.
2116 (cmpfp_i_387): Rename from cmpfp_i. Move after sse patterns.
2117 (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
2118 (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
2119 (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
2120 (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
2121 (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
2122 (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
2123 fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
2124 (movdicc_c_rex64): Rename with '*'.
2125 (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
2126 (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
2127 (movsfcc_1_387): Rename from movsfcc_1.
2128 (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
2129 (movdfcc_1, movdfcc_1_rex64): Add check for 387.
2130 (sminsf3, smaxsf3, smindf3, smaxdf3): New.
2131 (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
2132 mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
2133 maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
2134 sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
2135 sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
2136 sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
2137 sse_movdfcc_const0_4): Remove.
2138 * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
2139 recognize min/max early. Update for changed sse cmove patterns.
2140 (ix86_split_sse_movcc): New.
2141 * config/i386/i386-protos.h: Update.
2142
1dff80c0
SB
21432005-01-13 Steven Bosscher <stevenb@suse.de>
2144
2145 * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
2146 (fix_stmt_v_may_defs): Likewise.
2147
bb129a4f
RH
21482005-01-13 Richard Henderson <rth@redhat.com>
2149
2150 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
2151 for converting the mask.
2152
2cba2c8b
DE
21532005-01-13 David Edelsohn <edelsohn@gnu.org>
2154
2155 * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
2156 definition to 600.
2157
ed9b5396
RH
21582005-01-13 Richard Henderson <rth@redhat.com>
2159
2160 * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
2161 IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
2162 IX86_BUILTIN_MOVDQ2Q): Remove.
2163 (IX86_BUILTIN_VEC_EXT_V4SI): New.
2164 (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
2165 (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
2166 shuffling.
2167 * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
2168 (sse2_pextrw): Fix immediate constraint.
2169 (sse2_loadq, sse2_loadq_rex64): Remove.
2170 * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
2171 Use __builtin_ia32_vec_ext_<size>.
2172 (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
2173
17284759
AH
21742005-01-13 Aldy Hernandez <aldyh@redhat.com>
2175
2176 * function.c (assign_parm_setup_block): Look inside original
2177 entry_parm when inspecting PARALLEL.
2178
5d58d2f8
RC
21792005-01-13 Ralf Corsepius <ralf.corsepius@rtems.org>
2180 Joel Sherrill <joel@oarcorp.com>
2181
2182 PR target/19399
2183 * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
2184 (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
2185 rtems_gxx_recursive_mutex_init.
2186 (__gthread_recursive_mutex_lock): New function.
2187 (__gthread_recursive_mutex_trylock): Likewise.
2188 (__gthread_recursive_mutex_unlock): Likewise.
2189
52786878
RC
21902005-01-13 Ralf Corsepius <ralf.corsepius@rtems.org>
2191
2192 * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
2193
16d8386b
JB
21942005-01-13 Jan Beulich <jbeulich@novell.com>
2195
2196 * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
2197 (ashrti3_internal): Indicate output is early clobber. Generate result
2198 into output rather than first input. Use move for low word of output
2199 if shift count is exactly 64.
2200 (lshrti3_internal): Likewise.
2201
0149f412
HPN
22022005-01-13 Hans-Peter Nilsson <hp@bitrange.com>
2203
2204 PR target/18329
2205 PR target/18330
2206 * reload1.c (delete_output_reload): Don't delete an output reload
2207 if the pseudo lives longer than a single basic block. Adjust and
2208 improve wording of comment.
2209
e1e04267
AP
22102005-01-12 Andrew Pinski <pinskia@physics.uc.edu>
2211
2212 PR target/19334
2213 * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
2214 of TYPE_SIZE where we mean the number of bytes.
2215
640019aa
AH
22162005-01-12 Aldy Hernandez <aldyh@redhat.com>
2217
2218 * function.c (assign_parm_setup_block): Relax condition on
2219 multi-register optimization.
2220
98e20ffd
NC
22212005-01-12 Nick Clifton <nickc@redhat.com>
2222
2223 * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
2224 an "in_delay_slot" attribute of "no" to prevent them being used in
2225 delay slots. This is forbidden because they might generate
2226 exceptions.
2227
409f61cd
AM
22282005-01-12 Alan Modra <amodra@bigpond.net.au>
2229
2230 PR target/19389
2231 * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
2232 with r->Y and Y->r.
2233
ef6f5655
NC
22342005-01-12 Nick Clifton <nickc@redhat.com>
2235
2236 * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
2237 passed on to GAS) but do not define, as GAS no longer supports or
2238 needs the -m2000 option.
2239
157b3890
RS
22402005-01-11 Roger Sayle <roger@eyesopen.com>
2241
2242 * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
2243 type as args of unprototyped builtins aren't automatically promoted.
2244 (fold_builtin_abs): Likewise.
2245
9a43b902
KG
22462005-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2247
2248 * Makefile.in: Set a `build-warn' variable.
2249
0a915e3d
ZD
22502005-01-11 Zdenek Dvorak <dvorakz@suse.cz>
2251
2252 PR tree-optimization/17949
2253 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
2254 (find_interesting_uses_address): Use it.
2255
f351bfed
AH
22562005-01-11 Aldy Hernandez <aldyh@redhat.com>
2257
2258 * regrename.c (kill_value): Handle subreg's that won't simplify.
2259
eb701deb
RH
22602005-01-11 Richard Henderson <rth@redhat.com>
2261
2262 PR target/13366
2263 * config/i386/i386.h (enum ix86_builtins): Move ...
2264 * config/i386/i386.c: ... here.
2265 (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
2266 IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
2267 IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
2268 IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
2269 IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD, IX86_BUILTIN_STOREHPD,
2270 IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
2271 IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
2272 IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
2273 IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
2274 IX86_BUILTIN_LOADDDUP): Remove.
2275 (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
2276 IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
2277 IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
2278 IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
2279 IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
2280 (ix86_init_builtins): Make static.
2281 (ix86_init_mmx_sse_builtins): Update for changed builtins.
2282 (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
2283 if all the modes match. Otherwise, fake it.
2284 (get_element_number, ix86_expand_vec_init_builtin,
2285 ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
2286 (ix86_expand_builtin): Make static. Update for changed builtins.
2287 (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
2288 operand instead of sse2_loadsd. Cast sse1 fallback to V4SFmode.
2289 (ix86_expand_vector_init_duplicate): New.
2290 (ix86_expand_vector_init_low_nonzero): New.
2291 (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
2292 Split out from ix86_expand_vector_init; handle integer modes.
2293 (ix86_expand_vector_init): Use them.
2294 (ix86_expand_vector_set, ix86_expand_vector_extract): New.
2295 * config/i386/i386-protos.h: Update.
2296 * config/i386/predicates.md (reg_or_0_operand): New.
2297 * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
2298 (movv2sf_internal): Likewise. And a splitter to match them all.
2299 (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
2300 vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
2301 vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
2302 vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
2303 (mmx_pinsrw): Fix operand ordering.
2304 * config/i386/sse.md (movv4sf splitter): Use direct pattern,
2305 rather than sse_loadss expander.
2306 (movv2df splitter): Similarly.
2307 (sse_loadss, sse_loadlss): Remove.
2308 (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
2309 (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
2310 (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
2311 (sse3_movddup): Rename with '*'.
2312 (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
2313 (sse2_loadsd): Remove.
2314 (vec_dupv2df_sse3): Rename from sse3_loadddup.
2315 (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
2316 (sse2_pinsrw): Fix argument ordering.
2317 (sse2_loadld, sse2_loadq): Add sse1 alternatives.
2318 (sse2_stored): Remove 'r' destination.
2319 (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
2320 vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
2321 vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
2322 vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
2323 vec_extractv16qi, vec_initv16qi): New.
2324
2325 * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
2326 (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
2327 _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
2328 constructor form.
2329 (_mm_load_pd, _mm_store_pd): Use plain dereference.
2330 (_mm_load_si128, _mm_store_si128): Likewise.
2331 (_mm_load1_pd): Use _mm_set1_pd.
2332 (_mm_load_sd): Use _mm_set_sd.
2333 (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
2334 (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
2335 (_mm_set_epi64): Use _mm_set_epi64x.
2336 (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
2337 _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
2338 _mm_setr_epi8): Use _mm_set_foo form.
2339 (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
2340 (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
2341 (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
2342 (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
2343 * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
2344 (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
2345 (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
2346 (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
2347 (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
2348 * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
2349 (_mm_movedup_pd): Use _mm_shuffle_pd.
2350 * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
2351 _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
2352 (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
2353 _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
2354 Use _mm_setzero_ps.
2355 (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
2356 (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
2357 (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
2358 (_mm_store_ps): Use raw dereference.
2359 (_mm_store1_ps): Use _mm_storeu_ps.
2360 (_mm_storer_ps): Use _mm_store_ps.
2361 (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
2362 (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
2363
d9e4e4f5
SS
23642005-01-11 Stan Shebs <shebs@apple.com>
2365
2366 * config/rs6000/rs6000.c (machopic_output_stub): Issue
2367 ldu instead of lwzu if 64-bit -mdynamic-no-pic.
2368
85962ac8
AP
23692005-01-11 Andrew Pinski <pinskia@physics.uc.edu>
2370
2371 PR target/18761
2372 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
2373 Skip all DECLs except for FIELD_DECLs.
2374
6b78f6be
AK
23752005-01-11 Andreas Krebbel <krebbel1@de.ibm.com>
2376
2377 * config/s390/s390.c (override_options): Return error if
2378 -mbackchain, -mpacked-stack and -mhard-float are used together.
2379 (s390_va_start): Remove the backchain && packed-stack special case.
2380 (s390_gimplify_va_arg): Likewise.
2381 * doc/invoke.texi: Remove the ABI incompatibility note.
2382
66480e91
AK
23832005-01-11 Andreas Krebbel <krebbel1@de.ibm.com>
2384
fc474307 2385 * config/s390/s390.c (struct s390_frame_layout): Remove
66480e91
AK
2386 save_backchain_p.
2387 (s390_frame_info, s390_emit_prologue): Replace occurrences of
2388 save_backchain_p with TARGET_BACKCHAIN.
2389
bfc45551
AM
23902005-01-11 Alan Modra <amodra@bigpond.net.au>
2391
2392 PR target/18916
2393 * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
2394 * expr.h (struct locate_and_pad_arg_data): Add "boundary".
2395 * function.c (locate_and_pad_parm): Set new field.
2396 (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
2397 Tweak where_pad test to include "none". Always set mem align for
2398 stack_parm.
2399 (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
2400 not sufficient for type.
2401 (assign_parm_setup_block): If stack_parm is zero on entry, always
2402 make a new stack local. Block move old stack parm if necessary
2403 to new aligned stack local.
2404 (assign_parm_setup_stack): Use a block move to handle
2405 potentially misaligned entry_parm.
2406 (assign_parms_unsplit_complex): Specify required alignment when
2407 creating stack local.
2408 * calls.c (compute_argument_addresses): Override alignment of stack
2409 arg calculated from its type with the alignment given by
2410 FUNCTION_ARG_BOUNDARY.
2411 (store_one_arg): Likewise.
2412
d3f6e07b 24132005-01-11 Jan Beulich <jbeulich@novell.com>
bfc45551 2414
d3f6e07b
JB
2415 * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
2416 Change respective itanium_class attribute to ialu.
2417 (shladdp4_internal): New.
2418 * config/ia64/predicates.md (shladd_log2_operand): New.
2419
201dd46b
RH
24202005-01-11 Richard Henderson <rth@redhat.com>
2421
2422 * expr.c (store_constructor): Use rtvec_alloc instead of
2423 alloca+gen_rtvec_v, and an incorrect number passed to alloca.
2424
35c0104b
KH
24252005-01-11 Kazu Hirata <kazu@cs.umass.edu>
2426
2427 * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
2428
abb8b19a
AM
24292005-01-11 Alan Modra <amodra@bigpond.net.au>
2430
2431 * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
2432 * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
2433 (TARGET_RWRELOC): Define.
2434 (ia64_rwreloc_section_type_flags): Delete.
2435 (ia64_section_type_flags): New function.
2436 * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
2437 (TARGET_RWRELOC): Define.
2438
b1eae416
DM
24392005-01-10 David Mosberger <davidm@hpl.hp.com>
2440
2441 PR target/18987
2442 * config/ia64/ia64.c (process_set): For alloc insn, only call
2443 process_epilogue is !frame_pointer_needed.
2444
18d00205
RS
24452005-01-10 Roger Sayle <roger@eyesopen.com>
2446
2447 PR c++/19355
2448 * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
2449 unary operator and can't be treated as a binary/comparison operator.
2450
b3a1ca49
RH
24512005-01-10 Richard Henderson <rth@redhat.com>
2452
2453 * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
2454 (ix86_return_in_memory): Likewise.
2455 (function_arg_advance): Likewise. Mirror structure in function_arg
2456 for choosing register to advance.
2457
1618f948
KH
24582005-01-10 Kazu Hirata <kazu@cs.umass.edu>
2459
2460 * tree-vectorizer.c, tree.def: Fix comment typos.
2461
98fd0d70
MD
24622005-01-10 Mark Dettinger <dettinge@de.ibm.com>
2463
2464 * config/s390/s390.c (struct processor_costs): 4 new fields:
2465 ddbr, ddr, debr, der.
2466 (s390_rtx_costs): More precise handling of divide instructions.
2467
99757961
DE
24682005-01-10 David Edelsohn <edelsohn@gnu.org>
2469
2470 * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
2471
826eb7ed
JB
24722005-01-10 Jan Beulich <jbeulich@novell.com>
2473
2474 * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
2475 names resulting from -ffunction-sections/-fdata-sections and linkonce
2476 ones.
2477 * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
2478 based on the section name. Rearrange the section name comparison logic
2479 slightly so that each section name is compared against at most once.
2480
068d4f38
BE
24812005-01-10 Ben Elliston <bje@au.ibm.com>
2482
2483 * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
2484 targets for which -fPIC reduces limitations on the GOT size.
2485
351bae3d
FH
24862005-01-09 Falk Hueffner <falk@debian.org>
2487
2488 * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
2489 X/C1 cmpop C2.
2490
7142ae77
DE
24912005-01-09 David Edelsohn <edelsohn@gnu.org>
2492
2493 PR target/18720
2494 * collect2.c (main): Set aixrtl_flag for -brtl option.
2495 (resolve_lib_name): Search for .so file extension before .a
2496 if aixrtl_flag set.
2497
5a3ed97a
DN
24982005-01-09 Dorit Naishlos <dorit@il.ibm.com>
2499
2500 * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
2501 (vect_analyze_data_refs_alignment): Add dump prints.
2502
db5dc63d
IR
25032005-01-09 Ira Rosen <irar@il.ibm.com>
2504
fc474307 2505 * tree-vectorizer.c (vect_analyze_offset_expr): Use
db5dc63d
IR
2506 expr_invariant_in_loop_p.
2507 Initialize outputs first thing in the function.
2508 (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
2509 (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
fc474307 2510 (vect_analyze_pointer_ref_access): Check that the initial condition of
db5dc63d
IR
2511 the access function is loop invariant.
2512
80e8bb90
RH
25132005-01-09 Richard Henderson <rth@redhat.com>
2514
2515 * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
2516 (ix86_expand_builtin): Likewise. Frob MASKMOVQ wrt the input mem
2517 just like MASKMOVDQU. Return plain zero for MMX_ZERO.
2518 * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
2519 mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
2520 movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
2521 movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
2522 sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
2523 ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
2524 mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
2525 mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
2526 sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
2527 mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
2528 mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
2529 gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
2530 ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
2531 mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
fc474307 2532 mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
80e8bb90
RH
2533 mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
2534 eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
2535 pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
2536 pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
2537 pswapdv2sf2): Move to mmx.md; rename as necessary with leading
2538 mmx_ prefix.
2539 (mmx_clrdi, pavgusb): Remove.
fc474307 2540 (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
80e8bb90
RH
2541 with leading sse_ prefix.
2542 * config/i386/sse.md: Receive them.
2543 * config/i386/mmx.md: New file.
2544 (MMXMODE12, MMXMODE24, mmxvecsize): New.
2545 (subrv2sf3): Turn into expander for normal subtraction.
2546 (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
2547 mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
2548 mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
2549 mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
2550 commutative; use ix86_binary_operator_ok.
2551 (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
2552 mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
2553 mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
fc474307 2554 mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
80e8bb90
RH
2555 mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
2556 Macroize from existing patterns; use ix86_binary_operator_ok.
2557 (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
2558 (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
2559 mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise. Model
2560 with vec_select+vec_concat.
2561 (mmx_pshufw, mmx_pshufw_1): Likewise.
2562 (mmx_uavgv8qi3): Merge pavgusb. Model correcty.
2563 (mmx_uavgv4hi3): Model correctly.
2564 * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
2565 _mm_xor_si64): Remove casts.
2566
eb0bc7af
ZD
25672005-01-09 Zdenek Dvorak <dvorakz@suse.cz>
2568
2569 PR tree-optimization/19224
2570 * tree-scalar-evolution.c (get_instantiated_value,
2571 set_instantiated_value): New functions.
2572 (instantiate_parameters_1): Cache the results.
2573 (instantiate_parameters, resolve_mixers): Initialize and free
2574 the cache.
2575
d1c9ce9f
DE
25762005-01-08 David Edelsohn <edelsohn@gnu.org>
2577
2578 * config/i386/i386.md (addhi_4): Correct reference in comment.
2579 (addqi_4): Same.
2580
ef719a44
RH
25812005-01-08 Richard Henderson <rth@redhat.com>
2582
2583 * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
2584 (_mm_cvtsi128_si64x): Likewise.
2585 (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
2586 _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
2587 the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
2588 * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
2589 * config/i386/i386-protos.h: Update.
2590 * config/i386/i386.c (print_operand): Add 'H'.
2591 (ix86_fixup_binary_operands): Split out from ...
2592 (ix86_expand_binary_operator): ... here.
2593 (ix86_fixup_binary_operands_no_copy): New.
2594 (ix86_expand_fp_absneg_operator): Handle vector mode results.
2595 (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
2596 (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
2597 (safe_vector_operand): Use CONST0_RTX.
2598 (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
2599 (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
2600 CODE_FOR_sse2_maskmovdqu. Special case SSE version of MASKMOVDQU
2601 expansion. Update names for sse{,2,3}_ prefixes. Remove *maskncmp*
2602 special cases.
2603 * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
2604 (IX86_BUILTIN_CMPNGESS): New.
2605 * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
2606 (attr type): Add sselog1.
2607 (attr unit, attr memory): Handle it.
2608 (movti, movti_internal, movti_rex64): Move near other integer moves.
2609 (movtf, movtf_internal): Move near other fp moves.
2610 (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
2611 vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
fc474307 2612 movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
ef719a44
RH
2613 movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
2614 sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
2615 sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
2616 sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
2617 mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
2618 rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
fc474307
EC
2619 sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
2620 sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
2621 sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
ef719a44
RH
2622 vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
2623 smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
2624 cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
2625 cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
2626 vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
2627 vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
2628 sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
2629 sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
2630 cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
2631 cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
2632 cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
2633 cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
2634 ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
2635 subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
2636 smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
2637 sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
2638 sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
fc474307 2639 sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
ef719a44
RH
2640 gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
2641 ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
2642 ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
fc474307 2643 sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
ef719a44
RH
2644 sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
2645 sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
fc474307 2646 sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
ef719a44
RH
2647 sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
2648 sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
2649 sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
2650 mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
2651 addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
2652 movsldup, lddqu, loadddup, movddup): Move to sse.md. Any with
2653 non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
2654 same time.
2655 (SSEPUSH, push<SSEPUSH>): Remove.
2656 (MMXPUSH, push<MMXPUSH>): Remove.
2657 (sse_movaps, sse_movaps_1, sse_movups): Remove.
2658 (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
2659 (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
2660 (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
2661 (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
2662 (maskncmpv2df3, vmmaskncmpv2df3): Remove.
2663 (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
2664 (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
2665 * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
2666 (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
2667 * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
2668 (ppro_sse_log_V4SF_load): Similarly. Handle sselog1.
2669 (ppro_sse_log_V4SF): Handle sselog1.
2670 * config/i386/predicates.md (const_0_to_1_operand): New.
2671 (const_0_to_255_mul_8_operand): New.
2672 (const_1_to_31_operand): Rename from const_int_1_31_operand.
2673 (const_2_to_3_operand, const_4_to_7_operand): New.
2674 * config/i386/sse.md: New file.
2675 (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
2676 (sse_movups): Rename from sse_movups_1.
2677 (sse_loadlss): Rename from sse_loadss_1.
2678 (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
2679 from the name.
2680 (negv4sf2): Use ix86_expand_fp_absneg_operator.
2681 (absv4sf2, negv2df, absv2df): New.
2682 (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
2683 (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
2684 iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
2685 smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
2686 umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
2687 (sse3_addsubv4sf3): Model correctly.
2688 sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
2689 sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
2690 (sse_movhlps): Model with vec_select+vec_concat.
fc474307 2691 (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
ef719a44
RH
2692 sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
2693 sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
2694 sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
2695 sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
fc474307 2696 sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
ef719a44
RH
2697 sse2_pshufhw_1): Likewise.
2698 (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
2699 (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
2700 sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
2701 ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
2702 sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
fc474307 2703 ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
ef719a44
RH
2704 (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
2705 sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
2706 mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
2707 sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
2708 sminv8hi3): Mark commutative
2709 operands. Use ix86_binary_operator_ok.
2710 (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
2711 sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
2712 sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
2713 sse2_punpcklqdq): Allow operand2 in memory.
2714 (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
2715 sse2_movsd): Add memory alternatives.
2716 (sse_storelps): Turn expander into an insn; split after reload.
2717 (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
2718 (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
2719
080a5bb0
EB
27202005-01-08 Eric Botcazou <ebotcazou@libertysurf.fr>
2721
2722 * configure.ac (DWARF-2 debug_line): Use objdump.
2723 * configure: Regenerate.
2724
e79b60a7
DN
27252005-01-08 Jeff Law <law@redhat.com>
2726 Diego Novillo <dnovillo@redhat.com>
2727
a6331d85 2728 PR tree-optimization/18241
e79b60a7
DN
2729 * tree-nrv.c (tree_nrv): Ignore volatile return values.
2730 * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
2731 statements with volatile operands.
2732 * tree-ssa-operands.c (add_stmt_operand): Do add volatile
2733 operands after marking a statement with has_volatile_ops.
2734
4634cf7e
RS
27352005-01-08 Roger Sayle <roger@eyesopen.com>
2736
2737 * tree.c (int_fits_type_p): Always honor integer constant
2738 TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
2739
88c0f1c6
RS
27402005-01-08 Roger Sayle <roger@eyesopen.com>
2741
2742 * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
2743 the latent bug in rtl_delete_block has been resolved.
2744
37e30acc
RS
27452005-01-08 Richard Sandiford <rsandifo@redhat.com>
2746
2747 * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
2748 (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
2749
943cb1d0
RS
27502005-01-08 Richard Sandiford <rsandifo@redhat.com>
2751
2752 * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
2753 library as @multilib_dir@/$(SHLIB_SONAME).
2754
1b5c0152
EB
27552005-01-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2756
2757 * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
2758 * configure: Regenerate.
2759
b827788f
JJ
27602005-01-07 Jakub Jelinek <jakub@redhat.com>
2761
2762 * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
2763 TYPE_MODE.
2764
4937d02d
DE
27652005-01-07 David Edelsohn <edelsohn@gnu.org>
2766
2767 PR target/13674
2768 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
2769 Convert non-word aligned offset address using ld/std into
2770 indirect address.
2771
db396999
RH
27722005-01-07 Richard Henderson <rth@redhat.com>
2773
2774 * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
2775
4600cc14
RS
27762005-01-07 Richard SAndiford <rsandifo@redhat.com>
2777
2778 * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
2779
8870e212
JJ
27802005-01-07 Jakub Jelinek <jakub@redhat.com>
2781
2a0958c5
JJ
2782 PR tree-optimization/19283
2783 * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
2784 is not shorter than the original type.
2785
ebc0c8bb
JJ
2786 PR rtl-optimization/19012
2787 * config/i386/i386.md (addqi_1_slp): Set memory attribute.
2788
0210ae14
JJ
2789 PR rtl-optimization/18861
2790 * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
2791 (FULL_STATE): Define.
2792 (mark_tablejump_edge): New function.
2793 (purge_dead_tablejump_edges): New function.
2794 (find_bb_boundaries): Use it.
2795
8870e212
JJ
2796 PR tree-optimization/18828
2797 * builtins.c (expand_builtin_next_arg): Remove argument and all
2798 the argument checking.
2799 (expand_builtin): Adjust caller.
2800 (expand_builtin_va_start): Likewise. Remove error for too many
2801 arguments.
2802 (fold_builtin_next_arg): Issue error for too many arguments.
2803 After checking arguments, replace them with magic arguments that
2804 prevent further checking of the args.
2805
9fb29c46
JDA
28062005-01-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2807
2808 * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
2809
9a3bf943
RS
28102005-01-06 Roger Sayle <roger@eyesopen.com>
2811
2812 PR target/6077
2813 * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
2814 and %{.S:...} (and their negative variants) to test whether the
2815 input file is assembler or pre-processed-assembler independent of
2816 the actual filename extension.
2817
c79fc296
RS
28182005-01-06 Roger Sayle <roger@eyesopen.com>
2819
2820 * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
2821 of sign or zero extended values.
2822
59d7d767
GK
28232005-01-06 Geoffrey Keating <geoffk@apple.com>
2824
2825 * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
2826 for IBM long double format correctly.
2827
1f24dd47 28282005-01-06 Daniel Berlin <dberlin@dberlin.org>
fc474307 2829
1f24dd47
DB
2830 Fix PR tree-optimization/18792
2831
2832 * tree-data-ref.c (build_classic_dist_vector): Change first_loop
2833 to first_loop_depth, and use loop depth instead of loop number.
2834 (build_classic_dir_vector): Ditto.
2835 (compute_data_dependences_for_loop): Use depth, not loop number.
fc474307 2836 * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
1f24dd47
DB
2837 number. Pass in loops, instead of loop numbers.
2838 (gather_interchange_stats): Ditto.
2839 (linear_transform_loops): Ditto.
2840
27916b83
RS
28412005-01-06 Richard Sandiford <rsandifo@redhat.com>
2842
2843 PR rtl-opt/13299
2844 * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
2845 biv_fits_mode_p, extension_within_bounds_p): New functions.
2846 (check_ext_dependent_givs): Use them.
2847
4ab80063
RS
28482005-01-06 Roger Sayle <roger@eyesopen.com>
2849
2850 * cfgrtl.c (rtl_delete_block): A basic block may be followed by
2851 more than one barrier, in which case we should delete them all.
2852
12d3e34b
TS
28532005-01-06 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2854
2855 * gcc.c (process_command): Change year in 'gcc --version' to 2005.
2856
9acf766f 28572005-01-05 Daniel Berlin <dberlin@dberlin.org>
fc474307 2858
9acf766f
DB
2859 Fix PR middle-end/19286
2860 Fix PR debug/19267
2861 * dwarf2out.c (gen_subprogram_die): If we've already tried to
2862 output this subprogram, simply ignore this attempt to do it again.
2863 (add_abstract_origin_attribute): Don't abort trying to add the abstract
2864 origin attribute if it's not possible.
2865 (gen_block_die): Don't ignore subblocks of "unused" blocks.
2866 (decls_for_scope): Ditto.
2867 * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
2868 (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
fc474307 2869
e358acde
RH
28702005-01-05 Richard Henderson <rth@redhat.com>
2871
2872 PR target/11327
2873 * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
2874 (bdesc_2arg): Use it.
2875 (ix86_expand_binop_builtin): Force operands into registers
2876 when optimizing.
2877 (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
fc474307 2878 ix86_expand_sse_compare, ix86_expand_sse_comi,
e358acde
RH
2879 ix86_expand_builtin): Likewise.
2880
051d8245
RH
28812005-01-05 Richard Henderson <rth@redhat.com>
2882
2883 * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
2884 and VEC_SELECT.
2885 * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
2886 (mulv4hi3): Set itanium_class mmmul.
2887 (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
2888 (fpack): Rename from fpack_sfsf.
2889
19f17bb9
RH
28902005-01-05 Richard Henderson <rth@redhat.com>
2891
2892 PR rtl-opt/10692
2893 * reload1.c (do_input_reload): Restrict the optimization deleteing
2894 a previous output reload to RELOAD_FOR_INPUT.
2895
46d096a3
SB
28962005-01-05 Steven Bosscher <stevenb@suse.de>
2897
2898 * combine.c (expand_compound_operation) <ZERO_EXTRACT>: Add
2899 comment that we fall through after case.
2900 (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
2901 (distribute_links): Likewise.
2902 * cse.c (cse_insn): Likewise.
2903 * cselib.c (cselib_invalidate_mem): Likewise.
2904 * df.c: Update comments at the top of the file.
2905 (read_modify_subreg_p): Update comments here too.
2906 (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
2907 * flow.c (mark_set_1): Likewise.
2908 (mark_used_regs): Likewise.
2909 * gcse.c (mems_conflict_for_gcse_p): Likewise.
2910 (canon_list_insert): Likewise.
2911 (mark_set): Likewise.
2912 (try_replace_reg): Likewise.
2913 (store_killed_in_insn): Likewise.
2914 * loop.c (count_one_set): Likewise.
2915 (basic_induction_var): Likewise.
2916 * postreload-gcse.c (find_mem_conflicts): Likewise.
2917 * postreload.c (reload_combine_note_store): Likewise.
2918 (move2add_note_store): Likewise.
2919 * reload.c (find_equiv_reg): Likewise.
2920 (mark_referenced_resources): Likewise.
2921 * rtlanal.c (set_noop_p): Likewise.
2922 (note_stores): Likewise.
2923 (note_uses): Likewise.
2924 * sched-deps.c (sched_analyze_1): Likewise.
2925 * sched-rgn.c (check_live_1): Likewise.
2926 (update_live_1): Likewise.
2927 * config/i860/i860.c: Likewise.
2928
2929 * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
2930 an lvalue.
2931 (ZERO_EXTRACT): Mention that this one can be an lvalue.
2932
2933 * doc/rtl.texi: Update documentation for bit-fields and SET.
2934
65a878f5
RS
29352005-01-05 Roger Sayle <roger@eyesopen.com>
2936
2937 * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
2938
d2ad2c8a
JH
29392005-01-05 Jan Hubicka <jh@suse.cz>
2940 Richard Henderson <rth@redhat.com>
2941
2942 PR target/18910
fc474307 2943 * config/i386/i386.c (ix86_expand_move): Handle tls symbols
d2ad2c8a
JH
2944 with an offset.
2945
2cdb3148
RH
29462005-01-05 Richard Henderson <rth@redhat.com>
2947
2948 PR target/12902
2949 * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
2950 (sse_shufps): Change operand 3 to const_int_operand.
2951 (sse2_storelps): Fix typo in template.
2952 (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
2953 * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
2954 (ix86_expand_builtin): Likewise.
2955
29562005-01-05 Julian Brown <julian@codesourcery.com>
3dd7ab65
JB
2957
2958 * config/arm/arm.c (arm_return_in_memory): Treat complex types
2959 as aggregates for AAPCS ABIs.
2960
59d8fe27
SS
29612005-01-05 Stan Shebs <shebs@apple.com>
2962
2963 * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
2964 Mach-O getters if ppc64.
2965 * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
2966 size argument.
2967 * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
2968 signed four-byte field for global code case.
2969 (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
2970
010c4d9c
RS
29712005-01-05 Roger Sayle <roger@eyesopen.com>
2972
2973 PR middle-end/19100
2974 * c-common.c: Include real.h.
2975 (c_common_truthvalue_conversion): Avoid destructively modifying expr.
2976 Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
2977 Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
2978 * Makefile.in (c-common.o): Update dependencies.
2979
9368fb8f
JM
29802005-01-05 Joseph S. Myers <joseph@codesourcery.com>
2981
2982 * c-parse.in (asm_string): Add trailing semicolon.
2983
9143de5c
JM
29842005-01-05 Joseph S. Myers <joseph@codesourcery.com>
2985
2986 * c-parse.in (asm_string): New. Don't allow wide strings in
2987 'asm'.
2988 (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
2989 asm_string instead of STRING.
2990
0953878d
JM
29912005-01-05 Joseph S. Myers <joseph@codesourcery.com>
2992
2993 * c-typeck.c (constructor_no_implicit): Remove.
2994 (set_designator, process_init_element): Don't check
2995 constructor_no_implicit.
2996
cf99f196
R
29972005-01-05 J"orn Rennecke <joern.rennecke@st.com>
2998 Kaz Kojima <kkojima@gcc.gnu.org>
2999
3000 PR target/16482
3001 * lcm.c (create_pre_exit): New.
3002 (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
3003 ENTRY_EXIT_EXTRA to 3. Use create_pre_exit.
3004
712ecf4d
RE
30052004-01-05 Richard Earnshaw <rearnsha@arm.com>
3006
3007 * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
3008 -msoft-float in target_float_switch.
3009 * arm.c (arm_override_options): Fix processing of target_float_switch.
3010
082cca25
RE
30112004-01-05 Richard Earnshaw <rearnsha@arm.com>
3012
3013 * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
3014 preferencing.
3015
c2b43d7a
UB
30162004-01-05 Uros Bizjak <uros@kss-loka.si>
3017
3018 * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
ead553a1 3019 Replace i387 with 'i386 compiler' in -mfpmath=sse option.
c2b43d7a 3020
e82f5749
RS
30212005-01-04 Roger Sayle <roger@eyesopen.com>
3022
3023 * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
3024 if deleting the then-block allows the test-block to fallthru to the
3025 else-block.
3026
f8f5c4b3
AP
30272005-01-04 Andrew Pinski <pinskia@physics.uc.edu>
3028
3029 PR c/19152
3030 * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
3031 after the full declaration if the are in two different TUs.
3032
30332005-01-04 Richard Henderson <rth@redhat.com>
fa588429
RH
3034
3035 PR tree-opt/19158
3036 * tree-sra.c (generate_one_element_init): Just
3037 call gimplify_and_add.
3038 (generate_element_init): Record the
3039 new referenced variables and mark them for renaming
3040 and split out to ...
3041 (generate_element_init_1): This.
3042 (scalarize_init): Don't call push_gimplify_context/
3043 pop_gimplify_context.
3044
5f0c48ed
GK
30452005-01-04 Geoffrey Keating <geoffk@apple.com>
3046
3047 * toplev.c (get_src_pwd): Handle failure of getpwd().
3048
e3523f56
RS
30492005-01-04 Roger Sayle <roger@eyesopen.com>
3050
3051 * fold-const.c (fold_single_bit_test): Delete unreachable handling
3052 of TRUTH_NOT_EXPR.
3053 (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
3054 all the cases handled by it are inverted by invert_truthvalue.
3055
9746bb27
EB
30562005-01-04 Eric Botcazou <ebotcazou@libertysurf.fr>
3057
3058 * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
3059 (save_register_windowsi): Likewise.
3060
bfee926b
RH
30612005-01-04 Richard Henderson <rth@redhat.com>
3062
3063 * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
3064
21e5076a
UB
30652005-01-04 Uros Bizjak <uros@kss-loka.si>
3066
3067 PR middle-end/17767
3068 * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
3069 any simplifications of vector mode comparison operators.
3070 * simplify-rtx.c (simplify_relational_operation): Fix variable name.
3071
8ea9d0c7
PB
30722005-01-04 Paolo Bonzini <bonzini@gnu.org>
3073 Devang Patel <dpatel@apple.com>
3074
3075 PR tree-optimization/18308
8ea9d0c7
PB
3076 * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
3077 the operands before creating a new expression.
3078 * dojump.c (do_jump): Make drop_through_label available
3079 for all cases. Add expansion of COND_EXPR.
3080
8c427b58
IR
30812005-01-04 Ira Rosen <irar@il.ibm.com>
3082
3083 * tree-vectorizer.c (vect_analyze_offset_expr): Test for
3084 INTEGER_CST instead of TREE_CONSTANT.
3085 (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
3086 instead of TREE_CONSTANT.
3087 (vect_analyze_pointer_ref_access): Test for INTEGER_CST
3088 instead of TREE_CONSTANT.
3089
8287d24a
EB
30902005-01-04 Eric Botcazou <ebotcazou@libertysurf.fr>
3091
3092 * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
3093
9e4ae64b
UB
30942005-01-04 Uros Bizjak <uros@kss-loka.si>
3095
3096 PR target/19240
3097 * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
3098 (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
3099
c756af79
RH
31002005-01-03 Richard Henderson <rth@redhat.com>
3101
3102 * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
3103 (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
3104 fold_convert_const_real_from_real): Split out from ...
3105 (fold_convert_const): ... here.
3106
d30c9461
RH
31072005-01-03 Richard Henderson <rth@redhat.com>
3108
3109 PR target/19235
3110 * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
3111 (mov<MMXMODEI>_internal): Likewise.
3112 (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
3113 Add V2SF case; use it for SSE1; don't use TI.
3114 (movdf_integer): Likewise.
3115 (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
3116
7d23434b
IR
31172005-01-03 Ira Rosen <irar@il.ibm.com>
3118
3119 * tree-vectorizer.c (vect_strip_conversions): New function.
3120 (vect_analyze_offset_expr): Call vect_strip_conversions. Add
fc474307 3121 check for binary class.
7d23434b 3122
1eb3331e
DB
31232005-01-03 Daniel Berlin <dberlin@dberlin.org>
3124
3125 Fix PR debug/17924
3126 Fix PR debug/19191
3127 * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
3128 is a decl.
3129 * gimple-low.c (mark_blocks_with_used_vars): New function.
3130 (mark_blocks_with_used_subblocks): Ditto.
3131 (mark_used_blocks): Ditto.
3132 (pass_mark_used_blocks): New pass.
3133 * tree-inline.c: Include debug.h.
3134 (expand_call_inline): Call outlining_inline_function here.
3135 * tree-optimize.c (init_tree_optimization_passes): Add
fc474307 3136 pass_mark_used_blocks.
1eb3331e
DB
3137 * tree-pass.h (pass_mark_used_blocks): New.
3138 * Makefile.in (tree-inline.o): Add debug.h dependency.
3139
a035080c
GK
31402005-01-03 Geoffrey Keating <geoffk@apple.com>
3141
d7001ae5
GK
3142 * config/darwin.c (darwin_handle_weak_import_attribute): Permit
3143 VAR_DECLs to have weak_import attribute.
3144
a035080c
GK
3145 * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
3146 'struct ucontext'.
3147
1ab219d3
SB
31482004-01-03 Steven Bosscher <stevenb@suse.de>
3149
3150 * passes.c (rest_of_compilation): Don't run regmove if only
3151 flag_expensive_optimizations, require flag_regmove instead.
3152
e6abef61
EB
31532005-01-03 Eric Botcazou <ebotcazou@libertysurf.fr>
3154
3155 * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
3156 register "sparc".
3157 * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
3158 * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
3159 * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
3160 * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
3161
f61134e8
RH
31622005-01-03 Richard Henderson <rth@redhat.com>
3163
3164 * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
3165 (ia64_const_ok_for_letter_p): New.
3166 (ia64_const_double_ok_for_letter_p): New.
3167 (ia64_extra_constraint): New.
3168 (ia64_expand_vecint_compare): New.
3169 (ia64_expand_vcondu_v2si): New.
3170 (ia64_expand_vecint_cmov): New.
3171 (ia64_expand_vecint_minmax): New.
3172 (ia64_print_operand): Add 'v'.
3173 (ia64_preferred_reload_class): New.
3174 (ia64_vector_mode_supported_p): New.
3175 * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
3176 (PREFERRED_RELOAD_CLASS): Move to function.
3177 (CONST_OK_FOR_LETTER_P): Move to function.
3178 (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
3179 (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
3180 (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
3181 (EXTRA_CONSTRAINT): Move to function.
3182 * config/ia64/ia64.md: Include vect.md.
3183 (itanium_class): Add mmalua.
3184 (type): Handle it.
3185 * config/ia64/itanium1.md (1_mmalua): New. Add it to bypasses.
3186 (1b_mmalua): New.
3187 * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
3188 * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
3189 CONST0_RTX.
3190 (const_int_2bit_operand): New.
3191 (fr_reg_or_0_operand): New.
3192 * config/ia64/ia64-modes.def: Add vector modes.
3193 * config/ia64/ia64-protos.h: Update.
3194 * config/ia64/vect.md: New file.
3195
3198b947
RH
31962005-01-03 Richard Henderson <rth@redhat.com>
3197
3198 * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
3199
088df4c2
UB
32002005-01-03 Uros Bizjak <uros@kss-loka.si>
3201
3202 PR target/19236
3203 * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
3204 to SFmode.
3205 (log1pdf2): Change mode of operands[0,1] to DFmode.
3206
548a6c4f
EB
32072005-01-03 Eric Botcazou <ebotcazou@libertysurf.fr>
3208
3209 * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
3210 * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
3211 * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
3212 * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
3213 SPARC_RELAXED_ORDERING.
3214
0703dceb
RH
32152005-01-03 Richard Henderson <rth@redhat.com>
3216 Uros Bizjak <uros@kss-loka.si>
3217
3218 PR target/14631
3219 * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
3220 IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
3221 * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
3222 handling.
3223 (*mmx_pinsrw, *sse2_pinsrw): New patterns.
3224 * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
3225 const_pow2_1_to_128_operand): New predicates.
3226
97236777
GM
32272005-01-02 Greg McGary <greg@mcgary.org>
3228
3229 * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
3230 anonymous decls.
3231 (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
3232 object. [ptr_type]: Remove unused variable.
3233 Remember nearest addressable array-element or record-component
3234 when checking bitfield components. Tolerate empty BIND_EXPR.
3235
155a8213
RH
32362005-01-01 Richard Henderson <rth@redhat.com>
3237
3238 * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
3239 that don't narrow the value. Fail for other conversions.
3240
bedb9fc0
RH
32412005-01-01 Richard Henderson <rth@redhat.com>
3242
3243 PR c/19031
3244 * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
3245 * c-lang.c (finish_file): Don't do it here.
3246 * objc/objc-act.c (objc_finish_file): Likewise.
3247
3248 * cgraph.c (decl_assembler_name_equal): New.
3249 (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
3250 (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
3251 * cgraph.h (struct cgraph_varpool_node): Add next.
3252 (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
3253 * varasm.c (assemble_alias): Mark the target as needed.
3254
1cb2fc7b
AP
32552005-01-01 Andrew Pinski <pinskia@physics.uc.edu>
3256
3257 PR middle-end/19221
3258 * function.c (get_arg_pointer_save_area): Use entry_of_function
3259 instead of get_insns.
3260
0ca5fbc0
RS
32612005-01-01 Roger Sayle <roger@eyesopen.com>
3262 Andrew Pinski <pinskia@physics.uc.edu>
3263 James E. Wilson <wilson@specifixinc.com>
3264
3265 PR rtl-optimization/12092
3266 * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
3267 is zero.
3268
91c537b7
RS
32692005-01-01 Roger Sayle <roger@eyesopen.com>
3270 Olivier Hainque <hainque@act-europe.fr>
3271
3272 * tree.c (int_fits_type_p): A narrower type always fits in a
3273 wider one, except for negative values into unsigned types.
3274
69618c49
RS
32752005-01-01 Roger Sayle <roger@eyesopen.com>
3276
3277 * tree.c (int_fits_type_p): Compare the result of force_fit_type
3278 with the original constant rather than require TREE_OVERFLOW.
3279
43e05e45
SB
32802005-01-01 Steven Bosscher <stevenb@suse.de>
3281
3282 PR middle-end/17544
3283 * c-decl.c (finish_function): If compiling C99, annotate the
3284 compiler generated return with the current file name and line 0.
3285 * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
3286 the source line is greater than 0.
3287 (remove_bb): Likewise.
3288
7a4515d7 3289See ChangeLog.12 for earlier changes.
This page took 0.473241 seconds and 5 git commands to generate.