PR target/11327
[official-gcc.git] / gcc / ChangeLog
blob43e651c84bf480b9041509026a7ba10fdb7bd975
1 2005-01-05  Richard Henderson  <rth@redhat.com>
3         PR target/11327
4         * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
5         (bdesc_2arg): Use it.
6         (ix86_expand_binop_builtin): Force operands into registers
7         when optimizing.
8         (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
9         ix86_expand_sse_compare, ix86_expand_sse_comi, 
10         ix86_expand_builtin): Likewise.
12 2005-01-05  Richard Henderson  <rth@redhat.com>
14         * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
15         and VEC_SELECT.
16         * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
17         (mulv4hi3): Set itanium_class mmmul.
18         (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
19         (fpack): Rename from fpack_sfsf.
21 2005-01-05  Richard Henderson  <rth@redhat.com>
23         PR rtl-opt/10692
24         * reload1.c (do_input_reload): Restrict the optimization deleteing
25         a previous output reload to RELOAD_FOR_INPUT.
27 2005-01-05  Steven Bosscher  <stevenb@suse.de>
29         * combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
30         comment that we fall through after case.
31         (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
32         (distribute_links): Likewise.
33         * cse.c (cse_insn): Likewise.
34         * cselib.c (cselib_invalidate_mem): Likewise.
35         * df.c: Update comments at the top of the file.
36         (read_modify_subreg_p): Update comments here too.
37         (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
38         * flow.c (mark_set_1): Likewise.
39         (mark_used_regs): Likewise.
40         * gcse.c (mems_conflict_for_gcse_p): Likewise.
41         (canon_list_insert): Likewise.
42         (mark_set): Likewise.
43         (try_replace_reg): Likewise.
44         (store_killed_in_insn): Likewise.
45         * loop.c (count_one_set): Likewise.
46         (basic_induction_var): Likewise.
47         * postreload-gcse.c (find_mem_conflicts): Likewise.
48         * postreload.c (reload_combine_note_store): Likewise.
49         (move2add_note_store): Likewise.
50         * reload.c (find_equiv_reg): Likewise.
51         (mark_referenced_resources): Likewise.
52         * rtlanal.c (set_noop_p): Likewise.
53         (note_stores): Likewise.
54         (note_uses): Likewise.
55         * sched-deps.c (sched_analyze_1): Likewise.
56         * sched-rgn.c (check_live_1): Likewise.
57         (update_live_1): Likewise.
58         * config/i860/i860.c: Likewise.
60         * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
61         an lvalue.
62         (ZERO_EXTRACT): Mention that this one can be an lvalue.
64         * doc/rtl.texi: Update documentation for bit-fields and SET.
66 2005-01-05  Roger Sayle  <roger@eyesopen.com>
68         * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
70 2005-01-05  Jan Hubicka  <jh@suse.cz>
71             Richard Henderson  <rth@redhat.com>
73         PR target/18910
74         * config/i386/i386.c (ix86_expand_move): Handle tls symbols 
75         with an offset.
77 2005-01-05  Richard Henderson  <rth@redhat.com>
79         PR target/12902
80         * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
81         (sse_shufps): Change operand 3 to const_int_operand.
82         (sse2_storelps): Fix typo in template.
83         (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
84         * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
85         (ix86_expand_builtin): Likewise.
87 2005-01-05  Julian Brown  <julian@codesourcery.com>
89         * config/arm/arm.c (arm_return_in_memory): Treat complex types
90         as aggregates for AAPCS ABIs.
92 2005-01-05  Stan Shebs  <shebs@apple.com>
94         * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
95         Mach-O getters if ppc64.
96         * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
97         size argument.
98         * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
99         signed four-byte field for global code case.
100         (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
102 2005-01-05  Roger Sayle  <roger@eyesopen.com>
104         PR middle-end/19100
105         * c-common.c: Include real.h.
106         (c_common_truthvalue_conversion): Avoid destructively modifying expr.
107         Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
108         Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
109         * Makefile.in (c-common.o): Update dependencies.
111 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
113         * c-parse.in (asm_string): Add trailing semicolon.
115 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
117         * c-parse.in (asm_string): New.  Don't allow wide strings in
118         'asm'.
119         (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
120         asm_string instead of STRING.
122 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
124         * c-typeck.c (constructor_no_implicit): Remove.
125         (set_designator, process_init_element): Don't check
126         constructor_no_implicit.
128 2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
129             Kaz Kojima  <kkojima@gcc.gnu.org>
131         PR target/16482
132         * lcm.c (create_pre_exit): New.
133         (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
134         ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
136 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
138         * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
139         -msoft-float in target_float_switch.
140         * arm.c (arm_override_options): Fix processing of target_float_switch.
142 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
144         * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
145         preferencing.
147 2004-01-05  Uros Bizjak  <uros@kss-loka.si>
149         * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
150         Replace i387 with 'i386 compiler' in -mfpmath=sse option.
152 2005-01-04  Roger Sayle  <roger@eyesopen.com>
154         * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
155         if deleting the then-block allows the test-block to fallthru to the
156         else-block.
158 2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
160         PR c/19152
161         * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
162         after the full declaration if the are in two different TUs.
164 2005-01-04  Richard Henderson  <rth@redhat.com>
166         PR tree-opt/19158
167         * tree-sra.c (generate_one_element_init): Just
168         call gimplify_and_add.
169         (generate_element_init): Record the
170         new referenced variables and mark them for renaming
171         and split out to ...
172         (generate_element_init_1): This.
173         (scalarize_init): Don't call push_gimplify_context/
174         pop_gimplify_context.
176 2005-01-04  Geoffrey Keating  <geoffk@apple.com>
178         * toplev.c (get_src_pwd): Handle failure of getpwd().
180 2005-01-04  Roger Sayle  <roger@eyesopen.com>
182         * fold-const.c (fold_single_bit_test): Delete unreachable handling
183         of TRUTH_NOT_EXPR.
184         (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
185         all the cases handled by it are inverted by invert_truthvalue.
187 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
189         * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
190         (save_register_windowsi): Likewise.
192 2005-01-04  Richard Henderson  <rth@redhat.com>
194         * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
196 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
198         PR middle-end/17767
199         * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
200         any simplifications of vector mode comparison operators.
201         * simplify-rtx.c (simplify_relational_operation): Fix variable name.
203 2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
204             Devang Patel  <dpatel@apple.com>
206         PR tree-optimization/18308
207         * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
208         the operands before creating a new expression.
209         * dojump.c (do_jump): Make drop_through_label available
210         for all cases.  Add expansion of COND_EXPR.
212 2005-01-04  Ira Rosen  <irar@il.ibm.com>
214         * tree-vectorizer.c (vect_analyze_offset_expr): Test for
215         INTEGER_CST instead of TREE_CONSTANT.
216         (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
217         instead of TREE_CONSTANT.
218         (vect_analyze_pointer_ref_access): Test for INTEGER_CST
219         instead of TREE_CONSTANT.
221 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
223         * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
225 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
227         PR target/19240
228         * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
229         (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
231 2005-01-03  Richard Henderson  <rth@redhat.com>
233         * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
234         (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
235         fold_convert_const_real_from_real): Split out from ...
236         (fold_convert_const): ... here.
238 2005-01-03  Richard Henderson  <rth@redhat.com>
240         PR target/19235
241         * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
242         (mov<MMXMODEI>_internal): Likewise.
243         (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
244         Add V2SF case; use it for SSE1; don't use TI.
245         (movdf_integer): Likewise.
246         (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
248 2005-01-03  Ira Rosen  <irar@il.ibm.com>
250         * tree-vectorizer.c (vect_strip_conversions): New function.
251         (vect_analyze_offset_expr): Call vect_strip_conversions. Add
252         check for binary class. 
254 2005-01-03  Daniel Berlin  <dberlin@dberlin.org>
256         Fix PR debug/17924
257         Fix PR debug/19191
258         * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
259         is a decl.
260         * gimple-low.c (mark_blocks_with_used_vars): New function.
261         (mark_blocks_with_used_subblocks): Ditto.
262         (mark_used_blocks): Ditto.
263         (pass_mark_used_blocks): New pass.
264         * tree-inline.c: Include debug.h.
265         (expand_call_inline): Call outlining_inline_function here.
266         * tree-optimize.c (init_tree_optimization_passes): Add
267         pass_mark_used_blocks. 
268         * tree-pass.h (pass_mark_used_blocks): New.
269         * Makefile.in (tree-inline.o): Add debug.h dependency.
271 2005-01-03  Geoffrey Keating  <geoffk@apple.com>
273         * config/darwin.c (darwin_handle_weak_import_attribute): Permit
274         VAR_DECLs to have weak_import attribute.
276         * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
277         'struct ucontext'.
279 2004-01-03  Steven Bosscher  <stevenb@suse.de>
281         * passes.c (rest_of_compilation): Don't run regmove if only
282         flag_expensive_optimizations, require flag_regmove instead.
284 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
286         * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
287         register "sparc".
288         * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
289         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
290         * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
291         * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
293 2005-01-03  Richard Henderson  <rth@redhat.com>
295         * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
296         (ia64_const_ok_for_letter_p): New.
297         (ia64_const_double_ok_for_letter_p): New.
298         (ia64_extra_constraint): New.
299         (ia64_expand_vecint_compare): New.
300         (ia64_expand_vcondu_v2si): New.
301         (ia64_expand_vecint_cmov): New.
302         (ia64_expand_vecint_minmax): New.
303         (ia64_print_operand): Add 'v'.
304         (ia64_preferred_reload_class): New.
305         (ia64_vector_mode_supported_p): New.
306         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
307         (PREFERRED_RELOAD_CLASS): Move to function.
308         (CONST_OK_FOR_LETTER_P): Move to function.
309         (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
310         (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
311         (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
312         (EXTRA_CONSTRAINT): Move to function.
313         * config/ia64/ia64.md: Include vect.md.
314         (itanium_class): Add mmalua.
315         (type): Handle it.
316         * config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
317         (1b_mmalua): New.
318         * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
319         * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
320         CONST0_RTX.
321         (const_int_2bit_operand): New.
322         (fr_reg_or_0_operand): New.
323         * config/ia64/ia64-modes.def: Add vector modes.
324         * config/ia64/ia64-protos.h: Update.
325         * config/ia64/vect.md: New file.
327 2005-01-03  Richard Henderson  <rth@redhat.com>
329         * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
331 2005-01-03  Uros Bizjak  <uros@kss-loka.si>
333         PR target/19236
334         * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
335         to SFmode.
336         (log1pdf2): Change mode of operands[0,1] to DFmode.
338 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
340         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
341         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
342         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
343         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
344         SPARC_RELAXED_ORDERING.
346 2005-01-03  Richard Henderson  <rth@redhat.com>
347             Uros Bizjak  <uros@kss-loka.si>
349         PR target/14631
350         * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
351         IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
352         * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
353         handling.
354         (*mmx_pinsrw, *sse2_pinsrw): New patterns.
355         * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
356         const_pow2_1_to_128_operand): New predicates.
358 2005-01-02  Greg McGary  <greg@mcgary.org>
360         * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
361         anonymous decls.
362         (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
363         object.  [ptr_type]: Remove unused variable.
364         Remember nearest addressable array-element or record-component
365         when checking bitfield components.  Tolerate empty BIND_EXPR.
367 2005-01-01  Richard Henderson  <rth@redhat.com>
369         * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
370         that don't narrow the value.  Fail for other conversions.
372 2005-01-01  Richard Henderson  <rth@redhat.com>
374         PR c/19031
375         * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
376         * c-lang.c (finish_file): Don't do it here.
377         * objc/objc-act.c (objc_finish_file): Likewise.
379         * cgraph.c (decl_assembler_name_equal): New.
380         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
381         (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
382         * cgraph.h (struct cgraph_varpool_node): Add next.
383         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
384         * varasm.c (assemble_alias): Mark the target as needed.
386 2005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>
388         PR middle-end/19221
389         * function.c (get_arg_pointer_save_area): Use entry_of_function
390         instead of get_insns.
392 2005-01-01  Roger Sayle  <roger@eyesopen.com>
393             Andrew Pinski  <pinskia@physics.uc.edu>
394             James E. Wilson  <wilson@specifixinc.com>
396         PR rtl-optimization/12092
397         * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
398         is zero.
400 2005-01-01  Roger Sayle  <roger@eyesopen.com>
401             Olivier Hainque  <hainque@act-europe.fr>
403         * tree.c (int_fits_type_p): A narrower type always fits in a
404         wider one, except for negative values into unsigned types.
406 2005-01-01  Roger Sayle  <roger@eyesopen.com>
408         * tree.c (int_fits_type_p): Compare the result of force_fit_type
409         with the original constant rather than require TREE_OVERFLOW.
411 2005-01-01  Steven Bosscher  <stevenb@suse.de>
413         PR middle-end/17544
414         * c-decl.c (finish_function): If compiling C99, annotate the
415         compiler generated return with the current file name and line 0.
416         * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
417         the source line is greater than 0.
418         (remove_bb): Likewise.
420 See ChangeLog.12 for earlier changes.