OSDN Git Service

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