OSDN Git Service

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