OSDN Git Service

PR target/13674
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-01-07  David Edelsohn  <edelsohn@gnu.org>
2
3         PR target/13674
4         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
5         Convert non-word aligned offset address using ld/std into
6         indirect address.
7
8 2005-01-07  Richard Henderson  <rth@redhat.com>
9
10         * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
11
12 2005-01-07  Richard SAndiford  <rsandifo@redhat.com>
13
14         * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
15
16 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
17
18         PR tree-optimization/19283
19         * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
20         is not shorter than the original type.
21
22         PR rtl-optimization/19012
23         * config/i386/i386.md (addqi_1_slp): Set memory attribute.
24
25         PR rtl-optimization/18861
26         * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
27         (FULL_STATE): Define.
28         (mark_tablejump_edge): New function.
29         (purge_dead_tablejump_edges): New function.
30         (find_bb_boundaries): Use it.
31
32         PR tree-optimization/18828
33         * builtins.c (expand_builtin_next_arg): Remove argument and all
34         the argument checking.
35         (expand_builtin): Adjust caller.
36         (expand_builtin_va_start): Likewise.  Remove error for too many
37         arguments.
38         (fold_builtin_next_arg): Issue error for too many arguments.
39         After checking arguments, replace them with magic arguments that
40         prevent further checking of the args.
41
42 2005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
43
44         * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
45
46 2005-01-06  Roger Sayle  <roger@eyesopen.com>
47
48         PR target/6077
49         * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
50         and %{.S:...} (and their negative variants) to test whether the
51         input file is assembler or pre-processed-assembler independent of
52         the actual filename extension.
53
54 2005-01-06  Roger Sayle  <roger@eyesopen.com>
55
56         * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
57         of sign or zero extended values.
58
59 2005-01-06  Geoffrey Keating  <geoffk@apple.com>
60
61         * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
62         for IBM long double format correctly.
63
64 2005-01-06  Daniel Berlin <dberlin@dberlin.org>
65         
66         Fix PR tree-optimization/18792
67
68         * tree-data-ref.c (build_classic_dist_vector): Change first_loop
69         to first_loop_depth, and use loop depth instead of loop number.
70         (build_classic_dir_vector): Ditto.
71         (compute_data_dependences_for_loop): Use depth, not loop number.
72         * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop 
73         number. Pass in loops, instead of loop numbers.
74         (gather_interchange_stats): Ditto.
75         (linear_transform_loops): Ditto.
76
77 2005-01-06  Richard Sandiford  <rsandifo@redhat.com>
78
79         PR rtl-opt/13299
80         * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
81         biv_fits_mode_p, extension_within_bounds_p): New functions.
82         (check_ext_dependent_givs): Use them.
83
84 2005-01-06  Roger Sayle  <roger@eyesopen.com>
85
86         * cfgrtl.c (rtl_delete_block): A basic block may be followed by
87         more than one barrier, in which case we should delete them all.
88
89 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
90
91         * gcc.c (process_command): Change year in 'gcc --version' to 2005.
92
93 2005-01-05  Daniel Berlin  <dberlin@dberlin.org>
94         
95         Fix PR middle-end/19286
96         Fix PR debug/19267
97         * dwarf2out.c (gen_subprogram_die): If we've already tried to
98         output this subprogram, simply ignore this attempt to do it again.
99         (add_abstract_origin_attribute): Don't abort trying to add the abstract
100         origin attribute if it's not possible.
101         (gen_block_die): Don't ignore subblocks of "unused" blocks.
102         (decls_for_scope): Ditto.
103         * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
104         (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
105         
106 2005-01-05  Richard Henderson  <rth@redhat.com>
107
108         PR target/11327
109         * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
110         (bdesc_2arg): Use it.
111         (ix86_expand_binop_builtin): Force operands into registers
112         when optimizing.
113         (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
114         ix86_expand_sse_compare, ix86_expand_sse_comi, 
115         ix86_expand_builtin): Likewise.
116
117 2005-01-05  Richard Henderson  <rth@redhat.com>
118
119         * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
120         and VEC_SELECT.
121         * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
122         (mulv4hi3): Set itanium_class mmmul.
123         (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
124         (fpack): Rename from fpack_sfsf.
125
126 2005-01-05  Richard Henderson  <rth@redhat.com>
127
128         PR rtl-opt/10692
129         * reload1.c (do_input_reload): Restrict the optimization deleteing
130         a previous output reload to RELOAD_FOR_INPUT.
131
132 2005-01-05  Steven Bosscher  <stevenb@suse.de>
133
134         * combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
135         comment that we fall through after case.
136         (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
137         (distribute_links): Likewise.
138         * cse.c (cse_insn): Likewise.
139         * cselib.c (cselib_invalidate_mem): Likewise.
140         * df.c: Update comments at the top of the file.
141         (read_modify_subreg_p): Update comments here too.
142         (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
143         * flow.c (mark_set_1): Likewise.
144         (mark_used_regs): Likewise.
145         * gcse.c (mems_conflict_for_gcse_p): Likewise.
146         (canon_list_insert): Likewise.
147         (mark_set): Likewise.
148         (try_replace_reg): Likewise.
149         (store_killed_in_insn): Likewise.
150         * loop.c (count_one_set): Likewise.
151         (basic_induction_var): Likewise.
152         * postreload-gcse.c (find_mem_conflicts): Likewise.
153         * postreload.c (reload_combine_note_store): Likewise.
154         (move2add_note_store): Likewise.
155         * reload.c (find_equiv_reg): Likewise.
156         (mark_referenced_resources): Likewise.
157         * rtlanal.c (set_noop_p): Likewise.
158         (note_stores): Likewise.
159         (note_uses): Likewise.
160         * sched-deps.c (sched_analyze_1): Likewise.
161         * sched-rgn.c (check_live_1): Likewise.
162         (update_live_1): Likewise.
163         * config/i860/i860.c: Likewise.
164
165         * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
166         an lvalue.
167         (ZERO_EXTRACT): Mention that this one can be an lvalue.
168
169         * doc/rtl.texi: Update documentation for bit-fields and SET.
170
171 2005-01-05  Roger Sayle  <roger@eyesopen.com>
172
173         * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
174
175 2005-01-05  Jan Hubicka  <jh@suse.cz>
176             Richard Henderson  <rth@redhat.com>
177
178         PR target/18910
179         * config/i386/i386.c (ix86_expand_move): Handle tls symbols 
180         with an offset.
181
182 2005-01-05  Richard Henderson  <rth@redhat.com>
183
184         PR target/12902
185         * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
186         (sse_shufps): Change operand 3 to const_int_operand.
187         (sse2_storelps): Fix typo in template.
188         (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
189         * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
190         (ix86_expand_builtin): Likewise.
191
192 2005-01-05  Julian Brown  <julian@codesourcery.com>
193
194         * config/arm/arm.c (arm_return_in_memory): Treat complex types
195         as aggregates for AAPCS ABIs.
196
197 2005-01-05  Stan Shebs  <shebs@apple.com>
198
199         * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
200         Mach-O getters if ppc64.
201         * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
202         size argument.
203         * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
204         signed four-byte field for global code case.
205         (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
206
207 2005-01-05  Roger Sayle  <roger@eyesopen.com>
208
209         PR middle-end/19100
210         * c-common.c: Include real.h.
211         (c_common_truthvalue_conversion): Avoid destructively modifying expr.
212         Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
213         Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
214         * Makefile.in (c-common.o): Update dependencies.
215
216 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
217
218         * c-parse.in (asm_string): Add trailing semicolon.
219
220 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
221
222         * c-parse.in (asm_string): New.  Don't allow wide strings in
223         'asm'.
224         (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
225         asm_string instead of STRING.
226
227 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
228
229         * c-typeck.c (constructor_no_implicit): Remove.
230         (set_designator, process_init_element): Don't check
231         constructor_no_implicit.
232
233 2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
234             Kaz Kojima  <kkojima@gcc.gnu.org>
235
236         PR target/16482
237         * lcm.c (create_pre_exit): New.
238         (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
239         ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
240
241 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
242
243         * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
244         -msoft-float in target_float_switch.
245         * arm.c (arm_override_options): Fix processing of target_float_switch.
246
247 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
248
249         * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
250         preferencing.
251
252 2004-01-05  Uros Bizjak  <uros@kss-loka.si>
253
254         * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
255         Replace i387 with 'i386 compiler' in -mfpmath=sse option.
256
257 2005-01-04  Roger Sayle  <roger@eyesopen.com>
258
259         * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
260         if deleting the then-block allows the test-block to fallthru to the
261         else-block.
262
263 2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
264
265         PR c/19152
266         * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
267         after the full declaration if the are in two different TUs.
268
269 2005-01-04  Richard Henderson  <rth@redhat.com>
270
271         PR tree-opt/19158
272         * tree-sra.c (generate_one_element_init): Just
273         call gimplify_and_add.
274         (generate_element_init): Record the
275         new referenced variables and mark them for renaming
276         and split out to ...
277         (generate_element_init_1): This.
278         (scalarize_init): Don't call push_gimplify_context/
279         pop_gimplify_context.
280
281 2005-01-04  Geoffrey Keating  <geoffk@apple.com>
282
283         * toplev.c (get_src_pwd): Handle failure of getpwd().
284
285 2005-01-04  Roger Sayle  <roger@eyesopen.com>
286
287         * fold-const.c (fold_single_bit_test): Delete unreachable handling
288         of TRUTH_NOT_EXPR.
289         (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
290         all the cases handled by it are inverted by invert_truthvalue.
291
292 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
293
294         * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
295         (save_register_windowsi): Likewise.
296
297 2005-01-04  Richard Henderson  <rth@redhat.com>
298
299         * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
300
301 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
302
303         PR middle-end/17767
304         * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
305         any simplifications of vector mode comparison operators.
306         * simplify-rtx.c (simplify_relational_operation): Fix variable name.
307
308 2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
309             Devang Patel  <dpatel@apple.com>
310
311         PR tree-optimization/18308
312         * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
313         the operands before creating a new expression.
314         * dojump.c (do_jump): Make drop_through_label available
315         for all cases.  Add expansion of COND_EXPR.
316
317 2005-01-04  Ira Rosen  <irar@il.ibm.com>
318
319         * tree-vectorizer.c (vect_analyze_offset_expr): Test for
320         INTEGER_CST instead of TREE_CONSTANT.
321         (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
322         instead of TREE_CONSTANT.
323         (vect_analyze_pointer_ref_access): Test for INTEGER_CST
324         instead of TREE_CONSTANT.
325
326 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
327
328         * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
329
330 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
331
332         PR target/19240
333         * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
334         (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
335
336 2005-01-03  Richard Henderson  <rth@redhat.com>
337
338         * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
339         (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
340         fold_convert_const_real_from_real): Split out from ...
341         (fold_convert_const): ... here.
342
343 2005-01-03  Richard Henderson  <rth@redhat.com>
344
345         PR target/19235
346         * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
347         (mov<MMXMODEI>_internal): Likewise.
348         (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
349         Add V2SF case; use it for SSE1; don't use TI.
350         (movdf_integer): Likewise.
351         (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
352
353 2005-01-03  Ira Rosen  <irar@il.ibm.com>
354
355         * tree-vectorizer.c (vect_strip_conversions): New function.
356         (vect_analyze_offset_expr): Call vect_strip_conversions. Add
357         check for binary class. 
358
359 2005-01-03  Daniel Berlin  <dberlin@dberlin.org>
360
361         Fix PR debug/17924
362         Fix PR debug/19191
363         * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
364         is a decl.
365         * gimple-low.c (mark_blocks_with_used_vars): New function.
366         (mark_blocks_with_used_subblocks): Ditto.
367         (mark_used_blocks): Ditto.
368         (pass_mark_used_blocks): New pass.
369         * tree-inline.c: Include debug.h.
370         (expand_call_inline): Call outlining_inline_function here.
371         * tree-optimize.c (init_tree_optimization_passes): Add
372         pass_mark_used_blocks. 
373         * tree-pass.h (pass_mark_used_blocks): New.
374         * Makefile.in (tree-inline.o): Add debug.h dependency.
375
376 2005-01-03  Geoffrey Keating  <geoffk@apple.com>
377
378         * config/darwin.c (darwin_handle_weak_import_attribute): Permit
379         VAR_DECLs to have weak_import attribute.
380
381         * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
382         'struct ucontext'.
383
384 2004-01-03  Steven Bosscher  <stevenb@suse.de>
385
386         * passes.c (rest_of_compilation): Don't run regmove if only
387         flag_expensive_optimizations, require flag_regmove instead.
388
389 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
390
391         * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
392         register "sparc".
393         * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
394         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
395         * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
396         * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
397
398 2005-01-03  Richard Henderson  <rth@redhat.com>
399
400         * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
401         (ia64_const_ok_for_letter_p): New.
402         (ia64_const_double_ok_for_letter_p): New.
403         (ia64_extra_constraint): New.
404         (ia64_expand_vecint_compare): New.
405         (ia64_expand_vcondu_v2si): New.
406         (ia64_expand_vecint_cmov): New.
407         (ia64_expand_vecint_minmax): New.
408         (ia64_print_operand): Add 'v'.
409         (ia64_preferred_reload_class): New.
410         (ia64_vector_mode_supported_p): New.
411         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
412         (PREFERRED_RELOAD_CLASS): Move to function.
413         (CONST_OK_FOR_LETTER_P): Move to function.
414         (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
415         (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
416         (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
417         (EXTRA_CONSTRAINT): Move to function.
418         * config/ia64/ia64.md: Include vect.md.
419         (itanium_class): Add mmalua.
420         (type): Handle it.
421         * config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
422         (1b_mmalua): New.
423         * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
424         * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
425         CONST0_RTX.
426         (const_int_2bit_operand): New.
427         (fr_reg_or_0_operand): New.
428         * config/ia64/ia64-modes.def: Add vector modes.
429         * config/ia64/ia64-protos.h: Update.
430         * config/ia64/vect.md: New file.
431
432 2005-01-03  Richard Henderson  <rth@redhat.com>
433
434         * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
435
436 2005-01-03  Uros Bizjak  <uros@kss-loka.si>
437
438         PR target/19236
439         * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
440         to SFmode.
441         (log1pdf2): Change mode of operands[0,1] to DFmode.
442
443 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
444
445         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
446         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
447         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
448         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
449         SPARC_RELAXED_ORDERING.
450
451 2005-01-03  Richard Henderson  <rth@redhat.com>
452             Uros Bizjak  <uros@kss-loka.si>
453
454         PR target/14631
455         * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
456         IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
457         * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
458         handling.
459         (*mmx_pinsrw, *sse2_pinsrw): New patterns.
460         * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
461         const_pow2_1_to_128_operand): New predicates.
462
463 2005-01-02  Greg McGary  <greg@mcgary.org>
464
465         * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
466         anonymous decls.
467         (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
468         object.  [ptr_type]: Remove unused variable.
469         Remember nearest addressable array-element or record-component
470         when checking bitfield components.  Tolerate empty BIND_EXPR.
471
472 2005-01-01  Richard Henderson  <rth@redhat.com>
473
474         * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
475         that don't narrow the value.  Fail for other conversions.
476
477 2005-01-01  Richard Henderson  <rth@redhat.com>
478
479         PR c/19031
480         * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
481         * c-lang.c (finish_file): Don't do it here.
482         * objc/objc-act.c (objc_finish_file): Likewise.
483
484         * cgraph.c (decl_assembler_name_equal): New.
485         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
486         (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
487         * cgraph.h (struct cgraph_varpool_node): Add next.
488         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
489         * varasm.c (assemble_alias): Mark the target as needed.
490
491 2005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>
492
493         PR middle-end/19221
494         * function.c (get_arg_pointer_save_area): Use entry_of_function
495         instead of get_insns.
496
497 2005-01-01  Roger Sayle  <roger@eyesopen.com>
498             Andrew Pinski  <pinskia@physics.uc.edu>
499             James E. Wilson  <wilson@specifixinc.com>
500
501         PR rtl-optimization/12092
502         * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
503         is zero.
504
505 2005-01-01  Roger Sayle  <roger@eyesopen.com>
506             Olivier Hainque  <hainque@act-europe.fr>
507
508         * tree.c (int_fits_type_p): A narrower type always fits in a
509         wider one, except for negative values into unsigned types.
510
511 2005-01-01  Roger Sayle  <roger@eyesopen.com>
512
513         * tree.c (int_fits_type_p): Compare the result of force_fit_type
514         with the original constant rather than require TREE_OVERFLOW.
515
516 2005-01-01  Steven Bosscher  <stevenb@suse.de>
517
518         PR middle-end/17544
519         * c-decl.c (finish_function): If compiling C99, annotate the
520         compiler generated return with the current file name and line 0.
521         * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
522         the source line is greater than 0.
523         (remove_bb): Likewise.
524
525 See ChangeLog.12 for earlier changes.