OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [gcc/] [ChangeLog-2005] - Blame information for rev 20

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 12 jlechner
2005-06-30  Diego Novillo  
2
 
3
        PR 21584
4
        PR 22219
5
        * tree-ssa-alias.c (create_name_tags): Also process
6
        non-dereferenced pointers.
7
        Remove argument 'ai'.  Update all callers.
8
 
9
2005-06-30  Andrew Pinski  
10
 
11
        * config/rs6000/darwin.h (STARTING_FRAME_OFFSET):
12
        Set to 0 for FRAME_GROWS_DOWNWARD.
13
        (REGISTER_NAMES): Add sfp.
14
 
15
2005-07-01  Kelley Cook  
16
 
17
        * config/arm/libunwind.S, config/arm/pr-support.c,
18
        config/arm/unwind-arm.c, config/arm/unwind-arm.h,
19
        config/c4x/predicates.md, tree-object-size.c: Update FSF address.
20
 
21
2005-06-30  Eric Botcazou  
22
 
23
        PR target/22260
24
        * config/sparc/sparc.c (emit_and_preserve): Add 2nd register.
25
        Preserve the 2nd register too, if present.
26
        (sparc_output_mi_thunk) : Preserve the PIC register too.
27
        Adjust call to emit_and_preserve.
28
 
29
2005-06-30  Zack Weinberg  
30
            Jakub Jelinek  
31
 
32
        * pretty-print.h (PP_NL_ARGMAX): New.
33
        (text_info): Add locus.
34
        (struct chunk_info): New.
35
        (output_buffer): Add formatted_obstack, chunk_obstack, and
36
        cur_chunk_array. Change obstack to a pointer.
37
        (pp_wrapping_mode_t, pp_wrapping_mode, pp_set_verbatim_wrapping): New.
38
        (struct pretty_print_info): Replace ideal_maximum_length and
39
        prefixing_rule with wrapping.
40
        (pp_line_cutoff, pp_prefixing_rule): Update to match.
41
        Update prototypes and wrapper macros throughout.
42
        * pretty-print.c (pp_formatted_text_data, pp_append_r)
43
        (pp_base_clear_output_area, pp_construct, pp_base_formatted_text)
44
        (pp_base_last_position_in_text, pp_base_newline, pp_base_character):
45
        Update for changes to pp structure.
46
        (pp_base_prepare_to_format, pp_base_format_text): Delete.
47
        (pp_base_format, pp_base_output_formatted_text): New functions.
48
        (pp_base_format_verbatim): Use pp_set_verbatim_wrapping.
49
        (pp_verbatim): Clear text.locus.
50
        (pp_printf): Likewise.  Use pp_format and pp_output_formatted_text.
51
        * c-objc-common.c (c_tree_printer): Update function signature.
52
        * diagnostic.c (diagnostic_initialize): Update for changes to
53
        pp structure.
54
        (diagnostic_report_diagnostic): Call pp_format and then
55
        pp_output_formatted_text.
56
        (verbatim): Clear text.locus.
57
        * diagnostic.h (diagnostic_prefixing_rule, diagnostic_line_cutoff):
58
        Update for changes to pp structure.
59
 
60
        * c-lang.c: No need to include c-pretty-print.h.
61
        * Makefile.in: Remove bogus line containing only a tab.
62
        (c-lang.o): Update dependencies.
63
        * toplev.c (announce_function): Don't use verbatim.
64
        (default_tree_printer): Update signature.
65
 
66
        * objc/objc-lang.c: No need to include c-pretty-print.h.
67
        * objc/Make-lang.in: Update dependencies.
68
 
69
2005-06-29  Daniel Berlin  
70
 
71
        * tree-complex.c (complex_variable_components): Now a hashtable.
72
        (cvc_lookup): Ditto.
73
        (cvc_insert): Ditto.
74
        (create_components): Use referenced var iterator.
75
        Initialize hashtable.   Use cvc_insert/lookup.
76
        (extract_components): Use cvc_insert/lookup.
77
        (update_complex_components): Ditto.
78
        (update_complex_components_on_edge): Ditto.
79
        * tree-dfa.c (referenced_vars): Now a hashtable.
80
        (dump_referenced_vars): Use iterator.
81
        (referenced_var_lookup): New function.
82
        (referenced_var_insert): Ditto.
83
        (add_referenced_var): Use referenced_var_insert.
84
        (mark_new_vars_to_rename): Use DECL_UID.
85
        * tree-flow-inline.h (first_htab_element): New function.
86
        (end_htab_p): Ditto.
87
        (next_htab_element): Ditto.
88
        (first_referenced_var): Ditto.
89
        (end_referenced_vars_p): Ditto.
90
        (next_referenced_var): Ditto.
91
        (is_call_clobbered): Use DECL_UID.
92
        (mark_call_clobbered): Ditto.
93
        (clear_call_clobbered): Ditto.
94
        (mark_non_addressable): Ditto.
95
        * tree-flow.h (htab_iterator): New struct.
96
        (FOR_EACH_HTAB_ELEMENT): New macro.
97
        (struct int_tree_map): New struct.
98
        (int_tree_map_hash): Prototype.
99
        (int_tree_map_eq): Ditto.
100
        (referenced_var_iterator): Ditto.
101
        (FOR_EACH_REFERENCED_VAR): New macro.
102
        (referenced_vars): Now a hashtable.
103
        * tree-into-ssa.c (symbol_marked_for_renaming): Use DECL_UID.
104
        (add_new_name_mapping): Ditto.
105
        (mark_def_sites): Ditto.
106
        (insert_phi_nodes): Use referenced_var iterator.
107
        (mark_def_site_blocks): Ditto.
108
        (mark_sym_for_renaming): Use DECL_UID.
109
        * tree-sra.c (is_sra_candidate_decl): Use DECL_UID.
110
        (lookup_element): Ditto.
111
        (find_candidates_for_sra): Use referenced_vars iterator.
112
        Use DECL_UID.
113
        * tree-ssa-alias.c (NUM_REFERENCES): New macro.
114
        (NUM_REFERENCES_CLEAR): Ditto.
115
        (NUM_REFERENCES_INC): Ditto.
116
        (NUM_REFERENCES_SET): Ditto.
117
        (alias_obstack): New bitmap obstack.
118
        (struct alias_map_d): Use bitmap, not sbitmap.
119
        (struct alias_info): Remove num_references.
120
        (init_alias_info): Use referenced_var iterator.
121
        Initialize bitmap obstack.
122
        (delete_alias_info): Use referenced_var iterator.
123
        Free bitmap obstack.
124
        (compute_points_to_and_addr_escape): Use DECL_UID.
125
        Use new NUM_REFERENCES macros.
126
        (compute_flow_sensitive_aliasing): may_aliases is now a bitmap.
127
        Use new NUM_REFERENCES macros.
128
        (group_aliases_into): Update prototype to use bitmap.
129
        (setup_pointers_and_addressables): Use referenced_vars iterator.
130
        Use DECL_UID. Use new NUM_REFERENCES macros.
131
        (add_pointed_to_var): Use DECL_UID.
132
        (dump_alias_info): Use referenced_var iterator.
133
        (add_type_alias): Ditto.
134
        (used_portions): Now a hashtable.
135
        (used_part_map_eq): New function.
136
        (used_part_map_hash): Ditto.
137
        (free_used_part_map): Ditto.
138
        (up_lookup): Ditto.
139
        (up_insert): Ditto.
140
        (get_or_create_used_part_for): Use up_lookup.
141
        (create_overlap_variables_for): Ditto.
142
        (find_used_portions): Use up_insert.
143
        Use DECL_UID.
144
        (create_structure_vars): Init used_portions hashtable, use
145
        referenced_vars iterator.
146
        * tree-ssa-live.c (create_ssa_var_map): sbitmaps became bitmaps.
147
        Use DECL_UID.
148
        * tree-ssa-loop-im.c (gather_mem_refs_stmt): Use DECL_UID.
149
        * tree-ssa-operands.c (get_asm_expr_operands): Ditto.
150
        (note_addressable): Ditto.
151
        * tree-ssa-structalias.c (set_uids_in_ptset): Ditto.
152
        * tree-ssa.c (verify_flow_insensitive_alias_info): Use
153
        referenced_var iterator.
154
        Use DECL_UID.
155
        (delete_tree_ssa): Ditto.
156
        (int_tree_map_eq): New function.
157
        (int_tree_map_hash): Ditto.
158
        * tree-stdarg.c (find_va_list_reference): Use DECL_UID.
159
        (va_list_ptr_read): Ditto.
160
        (va_list_counter_struct_op): Ditto.
161
        (va_list_ptr_write): Ditto.
162
        (check_va_list_escapes): Ditto.
163
        (check_all_va_list_escapes): Ditto.
164
        (execute_optimize_stdarg): Ditto.
165
        * tree-tailcall.c (suitable_for_tail_opt_p): Used referenced_var
166
        iterator.
167
 
168
2005-06-30  Andrew Pinski  
169
 
170
        * config/rs6000/darwin.h (FRAME_POINTER_REGNUM): Rename to ...
171
        (HARD_FRAME_POINTER_REGNUM): this.
172
 
173
2005-06-30  Jan Hubicka  
174
 
175
        * ipa-inline.c (cgraph_clone_inlined_nodes): Revert previous patch.
176
 
177
2005-06-30  Francois-Xavier Coudert  
178
 
179
        PR middle-end/22247
180
        * tree-ssa-structalias.c (build_constraint_graph, scc_visit,
181
        process_unification_queue, init_topo_info, topo_visit,
182
        init_scc_info, free_scc_info, perform_var_substitution,
183
        solve_graph): Use unsigned instead of uint.
184
 
185
2005-06-30  Jakub Jelinek  
186
 
187
        * function.c (gen_stack_protect_test): Add third argument.
188
 
189
2005-06-30  J. D. Johnston  
190
 
191
        * gthr-tpf.h (CE2THRCPTR): Change field offset to 16.
192
 
193
2005-06-30  Kazu Hirata  
194
 
195
        * config/c4x/c4x-protos.h: Remove the prototypes for those
196
        functions removed from c4x.c.  Add prototypes for those
197
        functions exported in c4x.c.
198
        * config/c4x/c4x.c (any_operand, fp_zero_operand,
199
        const_operand, stik_const_operand, not_const_operand,
200
        reg_operand, r0r1_reg_operand, r2r3_reg_operand,
201
        ext_low_reg_operand, ext_reg_operand, std_reg_operand,
202
        std_or_reg_operand, addr_reg_operand, index_reg_operand,
203
        dp_reg_operand, sp_reg_operand, st_reg_operand,
204
        rc_reg_operand, call_address_operand,
205
        symbolic_address_operand, dst_operand, src_operand,
206
        src_hi_operand, lsrc_operand, tsrc_operand,
207
        nonimmediate_src_operand, nonimmediate_lsrc_operand,
208
        reg_or_const_operand, par_ind_operand, parallel_operand):
209
        Remove.
210
        (c4x_immed_float_p, c4x_a_register, c4x_x_register,
211
        c4x_K_constant, c4x_N_constant, c4x_O_constant,
212
        c4x_S_indirect): Export.
213
        * config/c4x/c4x.h (PREDICATE_CODES): Remove.
214
        * config/c4x/c4x.md: Include predicates.md.
215
        * config/c4x/predicates.md: New.
216
 
217
2005-06-30  Jakub Jelinek  
218
 
219
        * function.c (stack_protect_epilogue): Pass label to
220
        stack_protect_test, assume it emitted also the conditional
221
        branch.
222
        * doc/md.texi (stack_protect_test): Adjust documentation.
223
        * config/i386/i386.md (stack_protect_test): Add third argument,
224
        emit beq with operands[2].
225
        * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Define to
226
        flag_stack_protect != 0.
227
        * config/rs6000/rs6000.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New
228
        constants.
229
        (stack_protect_set, stack_protect_test): New expanders.
230
        (stack_protect_setsi, stack_protect_setdi, stack_protect_testsi,
231
        stack_protect_testdi): New insns.
232
        * config/rs6000/rs6000.c (rs6000_stack_protect_fail): New function.
233
        (TARGET_STACK_PROTECT_FAIL): Define.
234
        (rs6000_generate_compare): Handle UNSPEC_SP_TEST.
235
 
236
        * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Increment.
237
        (DWARF_FRAME_REGISTERS, DWARF_REG_TO_UNWIND_COLUMN): Adjust, so
238
        that addition of sfp doesn't change these.
239
        (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
240
        REG_ALLOC_ORDER): Add sfp.
241
        (INT_REGNO_P): Include FRAME_POINTER_REGNUM.
242
        (FRAME_POINTER_REGNUM): Define to 113.
243
        (HARD_FRAME_POINTER_REGNUM): Define to 31.
244
        (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add sfp.
245
        (STARTING_FRAME_OFFSET): Set to 0 for FRAME_GROWS_DOWNWARD.
246
        (ELIMINABLE_REGS): Never eliminate to
247
        FRAME_POINTER_REGNUM, but HARD_FRAME_POINTER_REGNUM
248
        instead.  Add eliminations from FRAME_POINTER_REGNUM.
249
        (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P):
250
        Include FRAME_POINTER_REGNUM.
251
        (REGISTER_NAMES): Add sfp.
252
        * config/rs6000/rs6000.c (rs6000_reg_names): Add sfp.
253
        (alt_reg_names): Likewise.
254
        (rs6000_stack_info): Handle FRAME_GROWS_DOWNWARD.
255
        (rs6000_emit_prologue): Use HARD_FRAME_POINTER_REGNUM
256
        instead of FRAME_POINTER_REGNUM.
257
        (rs6000_initial_elimination_offset): Never eliminate to
258
        FRAME_POINTER_REGNUM, but HARD_FRAME_POINTER_REGNUM
259
        instead.  Add elimination offsets from FRAME_POINTER_REGNUM.
260
 
261
        * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Only return non-zero
262
        if DEFAULT_ABI == ABI_V4.
263
 
264
2005-06-30  Steven Bosscher  
265
 
266
        * coretypes.h (tls_model): Add TLS_MODEL_NONE as 0.
267
        * tree.h (struct tree_decl): New field `tls_model'.
268
        (DECL_TLS_MODEL): New.
269
        (DECL_THREAD_LOCAL_P): Rename from DECL_THREAD_LOCAL, make it
270
        a predicate.
271
        * rtl.h (decl_default_tls_model): Add prototype for it.
272
        * varasm.c (decl_tls_model): Rewritten and renamed to ...
273
        (decl_default_tls_model): ... this.
274
        (default_encode_section_info): Use DECL_TLS_MODEL instead of
275
        decl_tls_model.
276
        (assemble_variable): Replace DECL_THREAD_LOCAL with
277
        DECL_THREAD_LOCAL_P.
278
        (default_section_type_flags_1): Likewise.
279
        (categorize_decl_for_section): Likewise.
280
        * tree.c (staticp): Likewise.
281
        (recompute_tree_invarant_for_addr_expr): Likewise.
282
        * drawf2out (loc_descriptor_from_tree_1): Likewise.
283
        * c-decl.c (diagnose_mismatched_decls): Likewise.
284
        with DECL_THREAD_LOCAL_P.
285
        (start_decl): Likewise.
286
        * print-tree.c (print_node): Likewise.  Print the TLS model.
287
        (grokdeclarator): Set the default DECL_TLS_MODEL here.
288
        * c-common.c (handle_tls_model_attribute): Rewrite to set the
289
        TLS model up based on the attribute.  Never add the attribute
290
        to the decl's attributes list.
291
        * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Replace
292
        DECL_THREAD_LOCAL with DECL_THREAD_LOCAL_P.
293
 
294
2005-06-30  Zdenek Dvorak  
295
 
296
        PR testsuite/21967
297
        * tree-ssa-live.c (mark_all_vars_used_1): Ignore variables in
298
        TMR_ORIGINAL.
299
 
300
2005-06-30  Bernd Schmidt  
301
 
302
        * config/bfin/bfin.md (addv2hi3, subv2hi3, sminv2hi3, smaxv2hi3,
303
        mulv2hi3, negv2hi2, absv2hi2): Pattern names fixed by appending the
304
        necessary digit.
305
 
306
2005-06-29  David Edelsohn  
307
 
308
        * config/rs6000/rs6000.c (rs6000_file_start): Use PPC405_ERRATUM77.
309
 
310
2005-06-29  Diego Novillo  
311
 
312
        PR 22234
313
        * tree-ssa-copy.c (fini_copy_prop): Do not overwrite copy_of
314
        when following copy-of chains.
315
 
316
2005-06-30  Jan Hubicka  
317
 
318
        * function.h (struct function): Add saved blocks/unexpanded var list.
319
        * gimple-low.c (record_vars): Insert only VAR_DECLs.
320
        * tree-inline.c (add_lexical_block): Declare; do not clear sublocks.
321
        (remap_decl): Do not declare vars.
322
        (remap_block): Do not care inserting blocks.
323
        (remap_blocks): New function.
324
        (copy_body_r): Update debug info.
325
        (expand_call_inline): Duplicate callee block tree into caller;
326
        copy all the unexpanded_var_list.
327
        (save_body): Save unexpanded_var_list and blocks.
328
        * tree-optimize.c (tree_rest_of_optimization): Restore
329
        blocks/unexpanded_var_list.
330
 
331
2005-06-29  Richard Henderson  
332
 
333
        * config/ia64/ia64.c (ia64_expand_vecint_minmax): Use us_minus and
334
        plus for V4HImode UMAX.
335
 
336
2005-06-29  Joseph S. Myers  
337
 
338
        * c-tree.h (default_function_array_conversion): Take and return
339
        struct c_expr.
340
        * c-typeck.c (default_function_array_conversion): Split into
341
        array_to_pointer_conversion and function_to_pointer_conversion.
342
        Take and return struct c_expr.
343
        (array_to_pointer_conversion): Do not handle type qualifiers or
344
        COMPOUND_EXPRs specially.
345
        (build_function_call): Call function_to_pointer_conversion for
346
        function designators.
347
        (build_unary_op): Call array_to_pointer_conversion, not
348
        default_function_array_conversion.
349
        (digest_init, output_init_element): Likewise.
350
        * c-parser.c: All callers of default_function_array_conversion
351
        changed.
352
 
353
2005-06-29  Ziemowit Laski  
354
 
355
        * config/darwin.c (machopic_select_section): constant ObjC string
356
        objects now always have type "__builtin_ObjCString".
357
 
358
2005-06-29  Richard Henderson  
359
 
360
        * config/alpha/alpha.md (vec_shl_, vec_shr_): New.
361
 
362
2005-06-29  Richard Henderson  
363
 
364
        * tree-vect-transform.c (vect_min_worthwhile_factor): Declare.
365
        (vect_create_epilog_for_reduction): Don't use vec_shr if the
366
        operation is emulated.
367
        (vectorizable_reduction): Duplicate vect_min_worthwhile_factor
368
        tests from vectorizable_operation.
369
 
370
2005-06-29  Caroline Tice  
371
 
372
        Fix PR 21956
373
        * varasm.c (assemble_start_function):  Add "L" to beginning of
374
        local labels, so assembler & linker treat them as local.
375
 
376
2005-06-29  Richard Henderson  
377
 
378
        * config/i386/i386.c (ix86_expand_int_vcond): Remove unsignedp
379
        argument.  Simplify canonicalization of condition.  Use unsigned
380
        saturating subtraction for QI and HImode unsigned compares.  Use
381
        bit arithmetic tricks for SImode unsigned compares.
382
        * config/i386/i386-protos.h (ix86_expand_int_vcond): Update decl.
383
        * config/i386/sse.md (SSEMODE14): New.
384
        (umaxv8hi3): Use us_minus+plus to avoid vcond.
385
        (umaxv4si3): New.
386
        (smax3): Rename from smaxv16qi3 and macroize.
387
        (smin3): Similarly with sminv16qi3.
388
        (umin3): Similarly with uminv8hi3.
389
 
390
2005-06-29  Ian Lance Taylor  
391
 
392
        * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Change
393
        GEN_INT to gen_int_for_mode when storing register size to memory.
394
 
395
2005-06-29  Stuart Hastings  
396
 
397
        * gcc/config/i386/mmintrin.h: Mark vector intrinsics always_inline.
398
        * gcc/config/i386/emmintrin.h: Likewise.
399
        * gcc/config/i386/pmmintrin.h: Likewise.
400
        * gcc/config/i386/xmmintrin.h: Likewise.
401
 
402
2005-06-29  Steve Ellcey  
403
 
404
        PR middle-end/21969
405
        * tree.h (TYPE_VECTOR_SUBPARTS): Change to shift expression.
406
        (SET_TYPE_VECTOR_SUBPARTS): New.
407
        * tree.c (make_vector_type): Replace TYPE_VECTOR_SUBPARTS with
408
        SET_TYPE_VECTOR_SUBPARTS.
409
        * tree-vect-transform.c (vect_transform_loop): Add cast.
410
 
411
2005-06-29  Andreas Krebbel  
412
 
413
        * config/s390/s390.c (s390_decompose_address): Accept invalid
414
        displacements for addresses containing frame_pointer_rtx or
415
        virtual_stack_vars_rtx.
416
        (s390_frame_info): Replaced use of STARTING_FRAME_OFFSET.
417
        (s390_initial_elimination_offset): New offset when eliminating the
418
        soft frame pointer.
419
        * config/s390/s390.h (FRAME_GROWS_DOWNWARD): Defined as 1.
420
        (STARTING_FRAME_OFFSET, STACK_DYNAMIC_OFFSET): Definitions changed.
421
 
422
2005-06-28  Ziemowit Laski  
423
 
424
        * c-common.c (flag_next_runtime): Move...
425
        * toplev.c (flag_next_runtime): ... here.
426
        * c-common.h (flag_next_runtime): Move...
427
        * flags.h (flag_next_runtime): ... here.
428
        * config/darwin-c.c: Include flags.h.
429
        * config/t-darwin (darwin-c.o): Depend on flags.h.
430
 
431
2005-06-29  Kaz Kojima  
432
 
433
        * config/sh/linux-unwind.h (shmedia_fallback_frame_state):
434
        Disable aliasing warning with void * cast.
435
        (sh_fallback_frame_state): Likewise.
436
 
437
2005-06-29  Kaz Kojima  
438
 
439
        * target.h (gcc_target): New field allocate_initial_value.
440
        * target-def.h (TARGET_ALLOCATE_INITIAL_VALUE): New macro.
441
        (TARGET_INITIALIZER): Include it.
442
        * integrate.c (allocate_initial_values): Use
443
        targetm.allocate_initial_value.
444
        * system.h: Poison ALLOCATE_INITIAL_VALUE.
445
        * config/sh/sh-protos.h (sh_pr_n_sets): Delete.
446
        * config/sh/sh.c (sh_pr_n_sets): Make it static.
447
        (sh_allocate_initila_value): New function.
448
        (TARGET_ALLOCATE_INITIAL_VALUE): Override default.
449
        * config/sh/sh.h (ALLOCATE_INITIAL_VALUE): Delete.
450
        * doc/tm.texi (TARGET_ALLOCATE_INITIAL_VALUE): Rename and
451
        update from ALLOCATE_INITIAL_VALUE.
452
 
453
2005-06-28  Richard Henderson  
454
 
455
        * tree-vectorizer.c (vect_is_simple_reduction): Compare types
456
        using TYPE_MAIN_VARIANT.
457
 
458
2005-06-28  Richard Henderson  
459
 
460
        * config/ia64/ia64.c (ia64_expand_vecint_compare): Decompose to EQ
461
        when using psubN.uuu.
462
 
463
2005-06-29  Kelley Cook 
464
 
465
        * doc/gcc.texi: Update FSF address.
466
 
467
2005-06-28  Eric Christopher  
468
 
469
        PR c/22052
470
        PR c/21975
471
        * c-decl.c (diagnose_mismatched_decls): Define DECL_EXTERN_INLINE.
472
        Use. Fix detection of invalid extern inline redefinition.
473
 
474
2005-06-28  Diego Novillo  
475
 
476
        * tree-optimize.c (init_tree_optimization_passes): Fix typo.
477
 
478
2005-06-28  Andrew Pinski  
479
 
480
        * config/rs6000/rs6000.md (setmemsi): s/operand/operands/.
481
 
482
2005-06-28  Richard Henderson  
483
 
484
        * config/ia64/ia64.c (ia64_expand_vecint_compare): Use unsigned
485
        saturating subtraction for QI and HImode unsigned compares.  Use
486
        bit arithmetic tricks for SImode unsigned compares.
487
        (ia64_expand_vcondu_v2si): Remove.
488
        (ia64_expand_vecint_cmov): Don't call it.
489
 
490
2005-06-28  Richard Henderson  
491
 
492
        * rtlanal.c (nonzero_bits1): Use the mode of the value for
493
        determining integral-ness for comparisons.
494
 
495
2005-06-28  Andrew Pinski  
496
 
497
        * config/rs6000/rs6000.md (setmemsi): Fix operand 2.
498
 
499
2005-06-28  Joseph S. Myers  
500
 
501
        * target.h (invalid_conversion, invalid_unary_op,
502
        invalid_binary_op): New hooks.
503
        * target-def.h (TARGET_INVALID_CONVERSION,
504
        TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
505
        TARGET_INITIALIZER): Likewise.
506
        * hooks.h (hook_constcharptr_tree_tree_null,
507
        hook_constcharptr_int_tree_null,
508
        hook_constcharptr_int_tree_tree_null): New.
509
        * hooks.c (hook_constcharptr_tree_tree_null,
510
        hook_constcharptr_int_tree_null,
511
        hook_constcharptr_int_tree_tree_null): Likewise.
512
        * gcc/doc/tm.texi (TARGET_INVALID_CONVERSION,
513
        TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Document.
514
        * c-convert.c (convert): Use invalid_conversion hook.
515
        * c-typeck.c (build_unary_op): Use invalid_unary_op hook.
516
        (build_binary_op): Use invalid_binary_op hook.
517
        * config/ia64/ia64-modes.def: Define RFmode.
518
        * config/ia64/ia64-protos.h (spill_xfmode_operand): Remove.
519
        (ia64_expand_movxf_movrf): New.
520
        * config/ia64/ia64.md (movxf): Move code to
521
        ia64_expand_movxf_movrf.
522
        (movrf, movrf_internal): New.
523
        * ia64.c (ia64_invalid_conversion, ia64_invalid_unary_op,
524
        ia64_invalid_binary_op, TARGET_INVALID_CONVERSION,
525
        TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): New.
526
        (spill_xfmode_operand): Rename to spill_xfmode_rfmode_operand.
527
        Add mode parameter.  Make static.
528
        (ia64_expand_movxf_movrf): New, moved from ia64.md.  Handle RFmode
529
        as well as XFmode.
530
        (ia64_function_arg, ia64_function_value, ia64_register_move_cost,
531
        ia64_scalar_mode_supported_p): Handle RFmode as well as XFmode.
532
        (ia64_init_builtins): Set up __fpreg as RFmode.
533
        (ia64_mangle_fundamental_type): Mangle __fpreg as u7__fpreg.
534
 
535
2005-06-28  Adrian Straetling  
536
 
537
        * builtins.c: (expand_builtin_memset): Rewrite to support
538
        'set_storage_via_setmem'.
539
        * expr.c: (enum insn_code setmem_optab): Define.
540
        (enum insn_code clrmem_optab): Remove.
541
        (set_storage_via_setmem): New function.
542
        (clear_storage_via_setmem): Remove.
543
        (clear_storage): Replace call to "clear_storage_via_clrmem" with
544
        "set_storage_via_setmem".
545
        * expr.h: (set_storage_via_setmem): Declare.
546
        (CLEAR_RATIO): Redefine using HAVE_setmemM.
547
        * optabs.h: (enum insn_code setmem_optab): Declare.
548
        (enum insn_code clrmem_optab): Remove.
549
        * optabs.c: (init_optabs): Initialize setmem_optab.
550
        (enum insn_code clrmem_optab): Remove.
551
        * genopinit.c: (otabs): Likewise.
552
        * doc/md.texi: Document new standard pattern 'setmem'. Remove
553
          'clrmem'.
554
        * config/alpha/alpha.c: (alpha_expand_block_clear): Adjust
555
        'operands' ordering.
556
        * config/frv/frv.c: (frv_expand_block_clear): Likewise.
557
        * config/rs6000/rs6000.c: (expand_block_clear): Likewise.
558
        * config/alpha/alpha.md: ("clrmemqi", "clrmemdi"): Rename to "setmemM".
559
        FAIL on operands[2]!=const0_rtx. Adjust 'operands' ordering.
560
        * config/avr/avr.md: ("clrmemhi"): Likewise.
561
        * config/frv/frv.md: ("clrmemsi"): Likewise.
562
        * config/i386/i386.md: ("clrmemsi", "clrmemdi"): Likewise.
563
        * config/pa/pa.md: ("clrmemsi", "clrmemdi"): Likewise.
564
        * config/rs6000/rs6000.md: ("clrmemsi"): Likewise.
565
        * config/s390/s390.md: ("clrmem"): Likewise.
566
 
567
2005-06-28  Paul Brook  
568
 
569
        * Makefile.in: Set and use UNWIND_H.  Install as unwind.h.
570
        * c-decl.c (finish_decl): Call default_init_unwind_resume_libfunc.
571
        * except.c (add_ehspec_entry): Generate arm eabi filter lists.
572
        (assign_filter_values): Ditto.
573
        (output_ttype): New function.
574
        (output_function_exception_table): Use output_ttype.  Generate arm
575
        eabi filter lists.
576
        (default_init_unwind_resume_libfunc): New function.
577
        * except.h (default_init_unwind_resume_libfunc): Add prototype.
578
        * optabs.c (init_optabs): Don't set unwind_resume_libfunc.
579
        * opts.c (decode_options): Use targetm.unwind_tables_default.
580
        * target-def.h (TARGET_ASM_TTYPE): Provide and use definition.
581
        (TARGET_ARM_EABI_UNWINDER, TARGET_UNWIND_TABLES_DEFAULT): Ditto.
582
        * target.h (struct gcc_target): Add asm.ttype, unwind_tables_default
583
        and arm_eabi_unwinder.
584
        * unwind-c.c: Support Arm EABI unwinder.
585
        * unwind.h: Rename ...
586
        * unwind-generic.h: ... To this.
587
        * doc/tm.texi (TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER): Document.
588
        (TARGET_UNWID_TABLES_DEFAULT): Document.
589
 
590
        * config/arm/arm-protos.h (arm_output_fn_unwind): Add prototype.
591
        * config/arm/arm.c (arm_unwind_emit, arm_output_ttype): New functions.
592
        (TARGET_UNWIND_EMIT, TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER):
593
        Define.
594
        (thumb_pushpop, thumb_output_function_prologue): Output unwinding
595
        directives.
596
        (arm_unwind_emit_stm, arm_unwind_emit_set): New functions.
597
        * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS): Only define when
598
        !TARGET_UNWIND_INFO.
599
        (ARM_OUTPUT_FN_UNWIND, ARM_EABI_UNWIND_TABLES): Define.
600
        * config/arm/bpabi.h (TARGET_UNWIND_INFO): Define.
601
        * config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME,
602
        ASM_DECLARE_FUNCTION_SIZE): Use ARM_OUTPUT_FN_UNWIND.
603
        * config/arm/lib1funcs.asm: Include libunwind.S.
604
        * config/arm/libgcc-bpabi.ver: Add unwinding routines.
605
        * config/arm/libunwind.S: New file.
606
        * config/arm/pr-support.c: New file.
607
        * config/arm/t-bpabi (LIB1ASMFUNCS): Add _unwind.
608
        (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
609
        * config/arm/t-symbian (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
610
        * config/arm/unwind-arm.c: New file.
611
        * config/arm/unwind-arm.h: New file.
612
        * config/i386/t-netware (USER_H): Remove unwind.h.
613
        * config/ia64/ia64.h (TARGET_UNWIND_TABLES_DEFAULT): Define.
614
 
615
2005-06-28  DJ Delorie  
616
 
617
        * c-decl.c (pop_scope): Move warning control into warning call.
618
        (diagnose_mismatched_decls): Likewise.
619
        (pushdecl): Likewise.
620
        (start_decl): Likewise.
621
        (grokparms): Likewise.
622
        (start_function): Likewise.
623
        (store_parm_decls_newstyle): Likewise.
624
        (store_parm_decls_oldstyle): Likewise.
625
        (finish_function): Likewise.
626
        (declspecs_add_scspec): Likewise.
627
        * c-format.c (decode_format_attr): Likewise.
628
        (maybe_read_dollar_number): Likewise.
629
        (avoid_dollar_number): Likewise.
630
        (finish_dollar_format_checking): Likewise.
631
        (check_format_info): Likewise.
632
        (check_format_info_main): Likewise.
633
        (check_format_types): Likewise.
634
        (format_type_warning): Likewise.
635
        * c-typeck.c (function_types_compatible_p): Likewise.
636
        (build_array_ref): Likewise.
637
        (convert_arguments): Likewise.
638
        (build_c_cast): Likewise.
639
        (store_init_value): Likewise.
640
        (process_init_element): Likewise.
641
        (c_start_case): Likewise.
642
        * stor-layout.c (finalize_record_size): Likewise.
643
        * tree-cfg.c (execute_warn_function_noreturn): Likewise.
644
        * tree-inline.c (expand_call_inline): Likewise.
645
 
646
2005-06-28  Uros Bizjak  
647
 
648
        PR target/22134
649
        * config/i386/i386.md (fist2_with_temp splitter):
650
        Clobber memory operand, not scratch register.
651
 
652
2005-06-28  Andreas Krebbel  
653
 
654
        * config/s390/s390.c (machine_function): New field has_landing_pad_p.
655
        (s390_set_has_landing_pad_p, s390_reg_clobbered_rtx,
656
         s390_regs_ever_clobbered): New functions.
657
        (s390_return_addr_rtx): Use get_hard_reg_initial_value.
658
        (s390_register_info, s390_init_frame_layout, s390_update_frame_layout):
659
        Use s390_regs_ever_clobbered.
660
        (s390_emit_prologue): Don't use r14 as temp reg if its content is used
661
        for builtin_return_address.
662
        * config/s390/s390.md ("exception_receiver"): New expander.
663
        * config/s390/s390-protos.h (s390_set_has_landing_pad_p): Prototype
664
        added.
665
 
666
2005-06-28  Andreas Krebbel  
667
 
668
        * except.c (current_function_has_exception_handlers): Function
669
        description added and if statements merged.
670
 
671
2005-06-28  Richard Henderson  
672
 
673
        * config/i386/sse.md (smaxv16qi3): Fix buffer overflow.
674
        (sminv16qi3, umaxv8hi3, uminv8hi3): Likewise.
675
 
676
2005-06-27  Richard Henderson  
677
 
678
        * config/ia64/ia64.c (ia64_expand_vcondu_v2si): Generate proper
679
        comparison operations.
680
        (ia64_expand_vecint_minmax): Fix size of xops.
681
        * config/ia64/vect.md (umax3): Fix fallback pattern typo.
682
        (vec_shl_, vec_shr_): New.
683
 
684
2005-06-27  Richard Henderson  
685
 
686
        * tree-vect-transform.c (get_initial_def_for_reduction): Use correct
687
        type for DEF and INIT_VAL.  Pretend MIN/MAX need epilogue adjustment.
688
 
689
2005-06-27  Richard Henderson  
690
 
691
        * config/i386/sse.md (vec_shl_, vec_shr_): New.
692
        (smaxv16qi3, umaxv8hi3, sminv16qi3, uminv8hi3): New.
693
 
694
2005-06-27  Richard Henderson  
695
 
696
        * tree-vect-transform.c (vect_create_epilog_for_reduction): Remove
697
        duplicate little-endian adjustment.
698
 
699
2005-06-28  Kelley Cook  
700
 
701
        * doc/include/texinfo.tex: Import from upstream CVS.
702
 
703
2005-06-28  Jan Hubicka  
704
 
705
        * cgraph.c (cgraph_remove_node): Do not release function bodies until
706
        full cgraph is built.
707
        * cgraph.h (cgraph_decide_inlining_incrementally): Add early argument.
708
        * cgraphunit.c (cgraph_finalize_function): Update call of
709
        cgraph_decide_inlining_incrementally.
710
        (initialize_inline_failed): Break out of ...
711
        (cgraph_analyze_function): ... here.
712
        (rebuild_cgraph_edges): New function.
713
        (pass_rebuild_cgraph_edges): New pass.
714
        * common.opt (fearly-inlining): New flag.
715
        * ipa-inline.c: Include ggc.h
716
        (cgraph_clone_inlined_nodes): Avoid re-using of original copy
717
        when cgraph is not fully built.
718
        (cgraph_decide_inlining_incrementally): Add early mode.
719
        (cgraph_early_inlining): New function.
720
        (cgraph_gate_early_inlining): Likewise.
721
        (pass_early_ipa_inline): New pass.
722
        * ipa.c (cgraph_postorder): NULLify aux pointer.
723
        * tree-inline.c (expand_call_inline): Avoid warning early.
724
        * tree-optimize.c (pass_early_local_passes): New.
725
        (execute_cleanup_cfg_pre_ipa): New.
726
        (pass_cleanup_cfg): New.
727
        (register_dump_files): Fix handling subpasses of IPA pass.
728
        (init_tree_optimization_passes): Add early passes.
729
        (execute_ipa_pass_list): Fix handling of subpasses of IPA pass.
730
        * passes.h (pass_early_tree_profile, pass_rebuild_cgraph_edges,
731
        pass_early_ipa_inline): New passes.
732
        * tree-profile.c (do_early_tree_profiling, pass_early_tree_profile): New.
733
 
734
        * invoke.texi: Document early-inlining.
735
 
736
2005-06-28  Kelley Cook  
737
 
738
        * doc/include/fdl.texi: Merge in changes from upstream.
739
        * doc/include/gpl.texi: Likewise.
740
 
741
2005-06-27  Diego Novillo  
742
 
743
        PR 21959
744
        * tree-ssa-loop-niter.c (scev_probably_wraps_p): Handle type
745
        casts between unsigned and signed types with different size
746
        or precision.
747
 
748
2005-06-28  Jan Hubicka  
749
 
750
        * tree-optimize.c (exercute_free_datastructures):
751
        Do not disband implicit edges; do not attempt to build insn list;
752
        do not free cfg annotations.
753
        (execute_free_cfg_annotations); Disband implicit edges here;
754
        free cfg annotations here too.
755
        (pass_free_cfg_annotations); New pass.
756
        (init_tree_optimization_passes); Add pass_free_cfg_annotations.
757
        * tree-ssa-operands.c (free_ssa_operands); Recover; export.
758
        * tree-ssa-operands.h (free_ssa_operands); declare.
759
        * tree-ssa.c (delete_tree_ssa); Free SSA operand; mark stmt modified;
760
        kill PHI nodes.
761
        * tree-ssanames.c (release_defs): Kill addresses_taken.
762
 
763
        * basic-block.h (basic_block_def): Kill rbi.
764
        (reorder_block_def): Kill; Remove next field (replaced by aux);
765
        move other fields to ...
766
        (rtl_bb_info): ... here.
767
        * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
768
        copy_bb, connect_traces, add_labels_and_missing_jumps
769
        fix_up_fall_thru_edges, fix_crossing_conditional_branches,
770
        duplicate_computed_gotos, partition_hot_cold_basic-blocks):
771
        Update to new fields.
772
        * cfg.c (initialize_bb_rbi): Kill.
773
        * cfglayout.c (record_effective_endpoints, fixup_reorder_chain,
774
        fixup_fallthru_exit_predecessor, cfg_layout_duplicate_bb): Update.
775
        * cfgrtl.c (cfg_layout_create_basic_block): Do not initialize rbi.
776
        (try_redirect_by_replacing_jump): Update rbi references.
777
        (cfg_layout_split_block): Likewise.
778
        (cfg_layout_delete_block): Likewise.
779
        (cfg_layout_merge_blocks): Likewise.
780
        * function.c (thread_prologue_and_epilogue_insns): Likewise.
781
        * passes.c (rest_of_handle_sms): Likewise.
782
        * tracer.c (seen, tail_duplicate, layout_superblocks): Likewise.
783
 
784
2005-06-27  David Edelsohn  
785
 
786
        * config/rs6000/rs6000.c (rs6000_file_start): Note PPC405 erratum
787
        in verbose_asm output.
788
        * config/rs6000/rs6000.h (PPC405_ERRATUM77): Bracket with
789
        CONFIG_PPC405CR.
790
        * config.gcc (powerpc with_which): Define CONFIG_PPC405CR for
791
        405cr.
792
 
793
2005-06-27  Jakub Jelinek  
794
 
795
        * builtin-attrs.def (DEF_ATTR_FOR_INT): Add for 5 and 6.
796
        (DEF_LIST_INT_INT): Add for 4,0, 4,5, 5,0, 5,6.
797
        (ATTR_NOTHROW_NONNULL_4, ATTR_NOTHROW_NONNULL_5): Define.
798
        (ATTR_FORMAT_PRINTF_4_0, ATTR_FORMAT_PRINTF_4_5,
799
        ATTR_FORMAT_PRINTF_5_0, ATTR_FORMAT_PRINTF_5_6): Define.
800
        * builtins.c: Include tree-flow.h.
801
        (expand_builtin_mempcpy, expand_builtin_memmove): Comment fixes.
802
        (expand_builtin_object_size, expand_builtin_memory_chk,
803
        maybe_emit_chk_warning, maybe_emit_sprintf_chk_warning,
804
        compute_object_offset, compute_builtin_object_size,
805
        fold_builtin_object_size): New functions.
806
        (expand_builtin): Handle BUILT_IN_OBJECT_SIZE and BUILT_IN_*_CHK.
807
        (fold_builtin_1): Likewise.  Handle BUILT_IN_{,V}{,F}PRINTF
808
        and BUILT_IN_{,F}PRINTF_UNLOCKED.
809
        (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
810
        fold_builtin_strncpy_chk, fold_builtin_strcat_chk,
811
        fold_builtin_strncat_chk, fold_builtin_sprintf_chk,
812
        fold_builtin_snprintf_chk, fold_builtin_printf, fold_builtin_fprintf):
813
        New functions.
814
        * builtins.def (BUILT_IN_OBJECT_SIZE, BUILT_IN_MEMCPY_CHK,
815
        BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK, BUILT_IN_MEMSET_CHK,
816
        BUILT_IN_STPCPY_CHK, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK,
817
        BUILT_IN_STRNCAT_CHK, BUILT_IN_STRNCPY_CHK, BUILT_IN_SNPRINTF_CHK,
818
        BUILT_IN_SPRINTF_CHK, BUILT_IN_VSNPRINTF_CHK, BUILT_IN_VSPRINTF_CHK,
819
        BUILT_IN_FPRINTF_CHK, BUILT_IN_PRINTF_CHK, BUILT_IN_VFPRINTF_CHK,
820
        BUILT_IN_VPRINTF_CHK): New builtins.
821
        * builtin-types.def (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_VAR_4):
822
        Document.
823
        (BT_FN_SIZE_CONST_PTR_INT, BT_FN_INT_INT_CONST_STRING_VALIST_ARG,
824
        BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, BT_FN_PTR_PTR_INT_SIZE_SIZE,
825
        BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE,
826
        BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG,
827
        BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
828
        BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG,
829
        BT_FN_INT_INT_CONST_STRING_VAR, BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR,
830
        BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR,
831
        BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR): New types.
832
        * c-common.c (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_6,
833
        DEF_FUNCTION_TYPE_VAR_4, DEF_FUNCTION_TYPE_VAR_5): Define.
834
        * Makefile.in (OBJS-common): Add tree-object-size.o.
835
        (tree-object-size.o): Add dependencies.
836
        * tree-pass.h (pass_object_sizes): Add.
837
        * tree-optimize.c (init_tree_optimization_passes): Add
838
        pass_object_sizes.
839
        * tree-object-size.c: New file.
840
        * tree.h (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
841
        fold_builtin_strncpy_chk, fold_builtin_snprintf_chk,
842
        compute_builtin_object_size, init_object_sizes, fini_object_sizes):
843
        New prototypes.
844
        * tree-ssa-ccp.c (get_strlen): Rename to ...
845
        (get_maxval_strlen): ...this function.  Handle also computing of maximum
846
        string length and maximum integral value.
847
        (ccp_fold_builtin): Handle BUILT_IN_*_CHK.  Use get_maxval_strlen
848
        instead of get_strlen.  Pass CALLEE and ARGLIST variables to the
849
        folding functions instead of computing them again.
850
        (execute_fold_all_builtins): Retry ccp_fold_builtin if a builtin changed
851
        into some other builtin.
852
        * doc/extend.texi (Object Size Checking): Document.
853
 
854
        * regrename.c (copy_value): Fix comment.
855
 
856
        * toplev.c (process_options): Use if (FRAME_GROWS_DOWNWARD)
857
        instead of preprocessor conditionals.
858
 
859
        * targhooks.c (default_hidden_stack_protect_fail): Fall back to
860
        default_external_stack_protect_fail if visibility is not supported
861
        or not flag_pic.
862
        * config/i386/i386.c (ix86_stack_protect_fail): New function.
863
        (TARGET_STACK_PROTECT_FAIL): Define.
864
        * config/i386/i386.md (stack_protect_si): Change CLOBBER into
865
        SET to zero.
866
        (stack_protect_di): Likewise.  Use %k2 instead of %2 to avoid
867
        invalid instruction xorl %rax, %rax.
868
 
869
2005-06-27  Richard Henderson  
870
 
871
        * c-cppbuiltin.c (c_cpp_builtins): Add __SSP_ALL__ and __SSP__.
872
        * cfgexpand.c: Include params.h.
873
        (has_protected_decls, has_short_buffer): New.
874
        (expand_stack_vars): Take a predicate to determine what to expand.
875
        (defer_stack_allocation): True when flag_stack_protect on.
876
        (SPCT_HAS_LARGE_CHAR_ARRAY, SPCT_HAS_SMALL_CHAR_ARRAY): New.
877
        (SPCT_HAS_ARRAY, SPCT_HAS_AGGREGATE): New.
878
        (stack_protect_classify_type, stack_protect_decl_phase): New.
879
        (stack_protect_decl_phase_1, stack_protect_decl_phase_2): New.
880
        (add_stack_protection_conflicts, create_stack_guard): New.
881
        (expand_used_vars): Add stack protection logic.
882
        (tree_expand_cfg): Likewise.
883
        * common.opt (Wstack-protector): New.
884
        (fstack-protector, fstack-protector-all): New.
885
        * function.c: Include predict.h.
886
        (assign_parm_adjust_stack_rtl): Zap stack_parm when stack protect
887
        wants to copy the parameter into the stack frame.
888
        (stack_protect_prologue, stack_protect_epilogue): New.
889
        (expand_function_end): Call stack_protect_epilogue.  Do
890
        sjlj_emit_function_exit_after after naked_return_label.
891
        * function.h (struct function): Add stack_protect_guard.
892
        * params.def (PARAM_SSP_BUFFER_SIZE): New.
893
        * toplev.c (process_options): Disable flag_stack_protect and/or
894
        warn_stack_protect based on FRAME_GROWS_DOWNWARD.
895
        * tree.h (stack_protect_prologue): Declare.
896
 
897
        * target-def.h (TARGET_STACK_PROTECT_GUARD): New.
898
        (TARGET_STACK_PROTECT_FAIL): New.
899
        (TARGET_INITIALIZER): Add them.
900
        * target.h (struct gcc_target): Add stack_protect_guard and
901
        stack_protect_fail.
902
        * targhooks.c: Include ggc.h, gty header.
903
        (stack_chk_guard_decl, default_stack_protect_guard): New.
904
        (stack_chk_fail_decl, default_external_stack_protect_fail): New.
905
        (default_hidden_stack_protect_fail): New.
906
        * targhooks.h (default_stack_protect_guard): Declare.
907
        (default_external_stack_protect_fail): Declare.
908
        (default_hidden_stack_protect_fail): Declare.
909
        * config/i386/i386.c (TARGET_STACK_PROTECT_FAIL): New.
910
        * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New.
911
        (trap): Use ud2.
912
        (conditional_trap, conditional_trap_1): Remove.
913
        (stack_protect_set, stack_protect_set_si, stack_protect_set_di): New.
914
        (stack_protect_test, stack_protect_test_si, stack_protect_test_di): New.
915
        * doc/md.texi (stack_protect_set, stack_protect_test): New.
916
        * doc/tm.texi (TARGET_STACK_PROTECT_GUARD): New.
917
        (TARGET_STACK_PROTECT_FAIL): New.
918
 
919
        * libgcc-std.ver (GCC_4.1.0): New.
920
        * libgcc.h (__stack_chk_guard): Declare.
921
        (__stack_chk_fail, __stack_chk_fail_local): Declare.
922
        * libgcc2.c (L_stack_chk, L_stack_chk_local): New.
923
        * mklibgcc.in (lib2funcs): Add them.
924
 
925
2005-06-26  Kaveh R. Ghazi  
926
 
927
        PR c/21911
928
        * c-common.c (check_function_sentinel): Pass in named argument
929
        list, skip over named arguments before looking for a sentinel.
930
        (check_function_arguments): Pass in named argument list.
931
        * c-common.h (check_function_arguments): Likewise.
932
        * c-typeck.c (build_function_call): Likewise.
933
 
934
2005-06-26  Kaveh R. Ghazi  
935
 
936
        * genautomata.c (decl_mode_check_failed,
937
        regexp_mode_check_failed): Add noreturn attribute.
938
 
939
2005-06-26  Kazu Hirata  
940
 
941
        * cfg.c, tree-vect-transform.c, tree.def: Fix comment typos.
942
        * doc/invoke.texi: Fix typos.
943
 
944
        * builtins.c, c-common.c, c-convert.c, c-decl.c, c-typeck.c,
945
        convert.c, lambda-code.c, predict.c, tree-cfg.c,
946
        tree-complex.c, tree-data-ref.c, tree-if-conv.c,
947
        tree-mudflap.c, tree-scalar-evolution.c, tree-ssa-ccp.c,
948
        tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c,
949
        tree-ssa-loop-manip.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
950
        tree-vect-analyze.c, tree-vect-transform.c, tree-vectorizer.c,
951
        tree.c: Use fold_buildN instead of fold (buildN (...)).
952
 
953
2005-06-26  Gerald Pfeifer  
954
 
955
        * doc/install.texi (Specific): Do not specify the concrete
956
        versions of GCC provided by Cygwin.  Simplify the part on
957
        building on Cygwin.
958
 
959
2005-06-26  Kazu Hirata  
960
 
961
        * config/arc/arc-protos.c: Remove the prototype for
962
        arc_finalize_pic.
963
        * config/arc/arc.c (arc_finalize_pic): Remove.
964
        * config/arc/arc.h (FINALIZE_PIC): Likewise.
965
        * config/bfin/bfin.h (FINALIZE_PIC): Likewise.
966
        * config/rs6000/rs6000.h (FINALIZE_PIC): Likewise.
967
 
968
2005-06-26  Jakub Jelinek  
969
 
970
        PR middle-end/17965
971
        * calls.c (expand_call, emit_library_call_value_1): Use xmalloc/free
972
        instead of alloca for really big argument sizes.
973
 
974
        PR middle-end/22028
975
        * gimplify.c (gimplify_type_sizes): Check for type == error_mark_node
976
        earlier in the function.
977
 
978
        * regrename.c (copy_value): Don't replace fixed or global
979
        regs with older regs.
980
 
981
        * defaults.h (FRAME_GROWS_DOWNWARD): Define to 0 if not defined.
982
        * function.c (get_func_frame_size): Use if (FRAME_GROWS_DOWNWARD)
983
        instead of preprocessor conditionals.
984
        (assign_stack_local_1, assign_stack_temp_for_type): Likewise.
985
        * cfgexpand.c (FRAME_GROWS_DOWNWARD): Don't redefine to 1 or 0
986
        depending on if it was or was not defined previously.
987
        * doc/rtl.texi (VIRTUAL_STACK_VARS_REGNUM): Mention that only non-zero
988
        definition of FRAME_GROWS_DOWNWARD means frame grows downward.
989
        * doc/tm.texi (FRAME_GROWS_DOWNWARD): Likewise.
990
        * config/m68hc11/m68hc11.h (FRAME_GROWS_DOWNWARD): Define to 0.  Update
991
        comment.
992
        * config/pa/pa.h (FRAME_GROWS_DOWNWARD): Likewise.
993
        * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Likewise.
994
        * config/stormy16/stormy16.h (FRAME_GROWS_DOWNWARD): Define to 0.
995
        * config/c4x/c4x.h (FRAME_GROWS_DOWNWARD): Likewise.
996
        * config/sh/sh.h (FRAME_GROWS_DOWNWARD): Likewise.
997
        * config/ia64/ia64.h (FRAME_GROWS_DOWNWARD): Likewise.
998
        * config/iq2000/iq2000.h (FRAME_GROWS_DOWNWARD): Likewise.
999
        * config/pdp11/pdp11.h (FRAME_GROWS_DOWNWARD): Define to 1.  Update
1000
        comment.
1001
        * config/i860/i860.h (FRAME_GROWS_DOWNWARD): Likewise.
1002
        * config/h8300/h8300.h (FRAME_GROWS_DOWNWARD): Likewise.
1003
        * config/arc/arc.h (FRAME_GROWS_DOWNWARD): Likewise.
1004
        * config/vax/vax.h (FRAME_GROWS_DOWNWARD): Likewise.
1005
        * config/sparc/sparc.h (FRAME_GROWS_DOWNWARD): Likewise.
1006
        * config/i386/i386.h (FRAME_GROWS_DOWNWARD): Likewise.
1007
        * config/fr30/fr30.h (FRAME_GROWS_DOWNWARD): Likewise.
1008
        * config/frv/frv.h (FRAME_GROWS_DOWNWARD): Likewise.
1009
        * config/mn10300/mn10300.h (FRAME_GROWS_DOWNWARD): Likewise.
1010
        * config/bfin/bfin.h (FRAME_GROWS_DOWNWARD): Likewise.
1011
        * config/ns32k/ns32k.h (FRAME_GROWS_DOWNWARD): Likewise.
1012
        * config/v850/v850.h (FRAME_GROWS_DOWNWARD): Likewise.
1013
        * config/alpha/alpha.h (FRAME_GROWS_DOWNWARD): Update comment.
1014
        * config/s390/s390.h (FRAME_GROWS_DOWNWARD): Likewise.
1015
        * config/arm/arm.h (FRAME_GROWS_DOWNWARD): Likewise.
1016
        * config/alpha/unicosmk.h (FRAME_GROWS_DOWNWARD): Define to 1.
1017
        * config/cris/cris.h (FRAME_GROWS_DOWNWARD): Likewise.
1018
        * config/m68k/m68k.h (FRAME_GROWS_DOWNWARD): Likewise.
1019
        * config/mmix/mmix.h (FRAME_GROWS_DOWNWARD): Likewise.
1020
 
1021
2005-06-26  Kazu Hirata  
1022
 
1023
        PR tree-optimization/22026
1024
        * tree-vrp.c (extract_range_from_binary_expr): Drop to
1025
        VR_VARYING if a binary expression involving VR_ANTI_RANGE is
1026
        PLUS_EXPR, MINUS_EXPR, or unsigned MULT_EXPR.
1027
 
1028
2005-06-26  Kazu Hirata  
1029
 
1030
        * Makefile.in (OBJS-common): Remove duplicate object file
1031
        names.
1032
 
1033
2005-06-25  Jan Hubicka  
1034
 
1035
        * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update profile.
1036
        * cfg.c (update_bb_profile_for_threading): Fix rescaling.
1037
 
1038
        * passes.c (rest_of_handle_branch_prob): Do not rebuild profiling info
1039
        when not neecesary
1040
        (rest_of_compilation): Fix conditional on branch prob pass.
1041
        * predict.c (tree_estimate_probability): Enable strip_builtin_expect
1042
        when not loop optimizing.
1043
 
1044
2005-06-25  Bernd Schmidt  
1045
 
1046
        * config/bfin/bfin.md (ror_one, rol_one, ashrdi3, ashldi3, lshrdi3):
1047
        New patterns.
1048
        (movbi): Add alternative to set CC to zero.
1049
        (compare_eq, compare_ne, compare_le, compare_lt, compare_leu,
1050
        compare_ltu): Now named patterns.
1051
 
1052
2005-06-25  Kelley Cook  
1053
 
1054
        * all files: Update FSF address in copyright headers.
1055
 
1056
2005-06-25  Kelley Cook  
1057
 
1058
        * gengtype.c: Update FSF address in copyright header.
1059
        (create_file): Update FSF in outputed copyright header.
1060
 
1061
2005-06-24  Kazu Hirata  
1062
 
1063
        * cfglayout.c (block_locators_locs, line_locators_locs,
1064
        line_locators_lines, file_locators_locs): Change the type to
1065
        VEC(int,heap)*.
1066
        (insn_locators_initialize, change_scope, insn_scope,
1067
        locator_line, insn_line, locator_file): Use VEC instead of
1068
        VARRAY.
1069
 
1070
2005-06-24  Jason Merrill  
1071
 
1072
        * tree-nrv.c (tree_nrv): Fix to check assignments to the
1073
        RESULT_DECL rather than just RETURN_EXPRs.
1074
        (finalize_nrv_r): Adjust.
1075
 
1076
2005-06-24  Jan Hubicka  
1077
 
1078
        * tree-optimize.c (init_tree_optimization_passes): Fix flags of
1079
        all_passes and all_ipa_passes.
1080
 
1081
        * c-common.c: Include cgraph.h
1082
        (handle_externally_visible_attribute): New function.
1083
        (c_common_att): Add "externally_visible" attribute.
1084
        * cgraph.c (decide_is_variable_needed): Obey externally
1085
        visible flag.
1086
        (cgraph_varpool_finalize_decl): Avoid redundant checking.
1087
        * cgraph.h (struct cgraph_node): New flag externally_visible.
1088
        (decide_is_function_needed): Obey externally visible flag.
1089
        (cgraph_finalize_function): Avoid redundant checks.
1090
        (cgraph_function_and_variable_visibility): Bring symbols local
1091
        when asked for.
1092
        * common.opt (fwhole-program): New flag.
1093
 
1094
        * doc/invoke.texi (-fwhole-program): Document.
1095
 
1096
2005-06-24  Mark Mitchell  
1097
 
1098
        PR 22171
1099
        * tree-ssa-operands.c (get_expr_operands): Check s_ann for NULL
1100
        before use.
1101
 
1102
2005-06-23  Mark Mitchell  
1103
 
1104
        PR 22000
1105
        * tree-ssa-operands.c (get_expr_operands): Check the volatility of
1106
        the FIELD_DECL and set s_ann->has_volatile_ops accordingly.
1107
 
1108
2005-06-24  Jan Hubicka  
1109
 
1110
        * opts.c (decode_options): Enable unit-at-a-time by default at -O1.
1111
 
1112
2005-06-23  Jeff Law  
1113
 
1114
        * tree-optimize.c (init_tree_optimization_passes): Move
1115
        copy prop pass to run just before VRP.
1116
        * tree-vrp.c (remove_range_assertions): Remove copies created
1117
        by ASSERT_EXPR removal.
1118
 
1119
2005-06-23  Kazu Hirata  
1120
 
1121
        PR tree-optimization/22117
1122
        * tree-vrp.c (extract_range_from_binary_expr): Compute a
1123
        correct range when adding two pointers.
1124
 
1125
2005-06-23  Jason Merrill  
1126
 
1127
        PR c++/19317
1128
        Leave the return slot target in the MODIFY_EXPR rather than making
1129
        it an argument, but only use it if the CALL_EXPR has a flag set.
1130
        * tree.h (CALL_EXPR_HAS_RETURN_SLOT_ADDR): Rename to
1131
        CALL_EXPR_RETURN_SLOT_OPT.
1132
        * calls.c (expand_call): Adjust.
1133
        * tree-inline.c (expand_call_inline): Adjust.
1134
        * tree-pretty-print.c (dump_generic_node): Adjust.
1135
 
1136
        And set the flag as appropriate.
1137
        * gimplify.c (gimplify_modify_expr_rhs): Set
1138
        CALL_EXPR_HAS_RETURN_SLOT_ADDR where the LHS is obviously safe.
1139
        * tree-nrv.c (execute_return_slot_opt): Set
1140
        CALL_EXPR_HAS_RETURN_SLOT_ADDR based on escape analysis.
1141
        * tree-pass.h: Declare pass_return_slot.
1142
        * tree-optimize.c (init_tree_optimization_passes): Add it.
1143
 
1144
2005-06-23  David Edelsohn  
1145
 
1146
        PR target/21760
1147
        * config/rs6000/rs6000.h (PPC405_ERRATUM77): New.
1148
        * config/rs6000/rs6000.md: Move atomic instructions to ...
1149
        * config/rs6000/sync.md: Here.
1150
        Change sync_compare_and_swap to define_expand.  All stwcx
1151
        patterns test PPC405_ERRATUM77.
1152
 
1153
2005-06-23  Jan Hubicka  
1154
 
1155
        * tree-inline.c (copy_body_r): Remap labels correctly.
1156
 
1157
2005-06-22  Alan Modra  
1158
 
1159
        * config/rs6000/sysv4.h (TARGET_ASM_EXCEPTION_SECTION): Delete.
1160
 
1161
2005-06-22  Richard Kenner  
1162
 
1163
        PR middle-end/20593
1164
        * varasm.c (compute_reloc_for_constant): Treat VIEW_CONVER_EXPR
1165
        the same as the other cast operands.
1166
        (output_addressed_constants): Likewise.
1167
 
1168
2005-06-21  Jeff Law  
1169
 
1170
        * tree-vrp.c (extract_range_from_unary_expr): Handle type
1171
        conversions better.
1172
 
1173
2005-06-21  Dorit Nuzman  
1174
 
1175
        * genopinit.c (vec_shl_optab, vec_shr_optab): Initialize new optabs.
1176
        (reduc_plus_optab): Removed.  Replcaed with...
1177
        (reduc_splus_optab, reduc_uplus_optab): Initialize new optabs.
1178
        * optabs.c (optab_for_tree_code): Return reduc_splus_optab or
1179
        reduc_uplus_optab instead of reduc_plus_optab.
1180
        (expand_vec_shift_expr): New function.
1181
        (init_optabs): Initialize new optabs. Remove initialization of
1182
        reduc_plus_optab.
1183
        (optab_for_tree_code): Return vec_shl_optab/vec_shr_optab
1184
        for VEC_LSHIFT_EXPR/VEC_RSHIFT_EXPR.
1185
        * optabs.h (OTI_reduc_plus): Removed. Replaced with...
1186
        (OTI_reduc_splus, OTI_reduc_uplus): New.
1187
        (reduc_plus_optab): Removed.  Replcaed with...
1188
        (reduc_splus_optab, reduc_uplus_optab): New optabs.
1189
        (vec_shl_optab, vec_shr_optab): New optabs.
1190
        (expand_vec_shift_expr): New function declaration.
1191
 
1192
        * tree.def (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR): New tree-codes.
1193
        * tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
1194
        * expr.c (expand_expr_real_1): Handle new tree-codes.
1195
        * tree-pretty-print.c (dump_generic_node, op_symbol, op_prio): Likewise.
1196
        * tree-vect-generic.c (expand_vector_operations_1): Add assert.
1197
 
1198
        * tree-vect-transform.c (vect_create_epilog_for_reduction): Add two
1199
        alternatives for generating reduction epilog code.
1200
        (vectorizable_reduction): Don't fail of direct reduction support is
1201
        not available.
1202
        (vectorizable_target_reduction_pattern): Likewise.
1203
 
1204
        * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
1205
        reduc_umax_v4si, reduc_smin_v4si, reduc_smin_v4sf, reduc_umin_v4si,
1206
        reduc_plus_v4si, reduc_plus_v4sf): Removed.
1207
        (vec_shl_, vec_shr_, altivec_vsumsws_nomode,
1208
        reduc_splus_, reduc_uplus_v16qi): New.
1209
 
1210
2005-06-20  Daniel Berlin  
1211
 
1212
        * c-typeck.c (build_function_call): Set fundecl = function again.
1213
        * tree-ssa-alias.c (find_used_portions): Address taking causes the
1214
        entire variable to be used.
1215
        * tree-ssa-structalias.c (do_structure_copy): Fix handling of
1216
        unknown size variables, and structure copies from addressof
1217
        operations.  Simplify how we do *a = *b type structure copies.
1218
        (init_base_vars): Add ANYTHING = &ANYTHING constraint the right
1219
        way.  READONLY's address is not taken by default.
1220
        INTEGER dereference should point to anything.
1221
        (create_variable_info_for): It's okay for the first field to not start
1222
        at 0.
1223
 
1224
2005-06-20  Kaz Kojima  
1225
 
1226
        config/sh/linux.h (FUNCTION_PROFILER): Constify a char*.
1227
 
1228
2005-06-20  Roger Sayle  
1229
            Fariborz Jahanian 
1230
 
1231
        * combine.c (simplify_set): Simplify setting of CC register
1232
        by removing redundant compare with 0 on RHS.
1233
 
1234
2005-06-20  Jan Beulich  
1235
 
1236
        * config/i386/netware-libgcc.def: Update copyright.
1237
        * config/i386/netware-libgcc.exp (__divdc3, __divsc3, __divxc3,
1238
        __muldc3, __mulsc3, __mulxc3, __powidf2, __powisf2, __powixf2): Add.
1239
        * config/i386/netware.c (gen_stdcall_decoration,
1240
        gen_fastd_decoration): Merge into ...
1241
        (gen_stdcall_or_fastcall_decoration): ... this. Adjust to match
1242
        WinNT's changes.
1243
        (gen_regparm_prefix): Adjust to match i386_nlm_encode_section_info.
1244
        (i386_nlm_encode_section_info): Adjust to match WinNT's changes.
1245
        * config/i386/t-nwld (SHLIB_LINK): Also create libgcc.imp alias of
1246
        libgcc_s.imp. Use 'expr' rather than $(()) shell expressions.
1247
        * gthr-nks.h (__gthread_objc_mutex_allocate): Kill another dubious
1248
        use of NX_MUTEX_RECURSIVE.
1249
 
1250
2005-06-19  Roger Sayle  
1251
 
1252
        * fold-const.c (swap_tree_comparison): Add support for unordered
1253
        floating point comparisons.
1254
        * tree-vrp.c (opposite_comparison): Delete.
1255
        (extract_range_from_assert): Replace calls to opposite_comparison
1256
        with calls to swap_tree_comparison.
1257
        (register_edge_assert_for): Likewise.
1258
        (vrp_evaluate_conditional): Likewise.
1259
 
1260
2005-06-20  Kaz Kojima  
1261
 
1262
        * integrate.c (allocate_initial_values): Update the references
1263
        to global_live_at_start and global_live_at_end.
1264
 
1265
2005-06-20  Jan Hubicka  
1266
 
1267
        * cfgloop.h (DLTHE_RECORD_COPY_NUMBER): New flag.
1268
        * cfgloopmanip.c (duplicate_loop_to_header_edge): Set aux flags only
1269
        when asked for.
1270
        * loop-unroll.c (peel_loop_completely, unroll_loop_constant_iterations,
1271
        unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
1272
        Update call of duplicate_loop_to_header_edge.
1273
        (apply_opt_in_copies): Clear out aux pointers.
1274
 
1275
2005-06-19  Joseph S. Myers  
1276
 
1277
        * config/i386/i386.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
1278
        (ix86_mangle_fundamental_type): New.
1279
        * config/ia64/ia64.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
1280
        (ia64_mangle_fundamental_type): New.
1281
 
1282
2005-06-19  Roger Sayle  
1283
 
1284
        * c-decl.c (grokdeclarator): Only check TREE_OVERFLOW on
1285
        INTEGER_CST nodes.
1286
        * c-typeck.c (build_c_cast): Only preserve TREE_OVERFLOW on
1287
        CONSTANT_CLASS_P nodes.
1288
 
1289
2005-06-19  Richard Henderson  
1290
 
1291
        * config/ia64/vect.md (vec_extractv2sf_1): Fix cut-and-paste error;
1292
        the shift is always required.
1293
 
1294
2005-06-19  Richard Henderson  
1295
 
1296
        * config/ia64/ia64-modes.def (V4SF): Add.
1297
        * config/ia64/ia64.c (ia64_legitimate_constant_p): Handle CONST_VECTOR.
1298
        * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Allow vector to
1299
        integer mode changes in fp regs.
1300
        * config/ia64/ia64.md (UNSPEC_VECT_EXTR): New.
1301
        * config/ia64/vect.md (smaxv2sf3, sminv2sf3): Fix typos in names.
1302
        (reduc_plus_v2sf, reduc_smax_v2sf, reduc_smin_v2sf): New.
1303
        (vcondv2sf): Use gen_fpack
1304
        (fpack): Remove * from name.
1305
        (fswap, fmix_l, fmix_r, fmix_lr): New.
1306
        (vec_setv2sf, vec_extractv2sf_0_le, vec_extractv2sf_0_be): New.
1307
        (vec_extractv2sf_1, vec_extractv2sf): New.
1308
 
1309
2005-06-19  Andreas Krebbel  
1310
 
1311
        * combine.c (make_compound_operation): Use simplify_subreg.  Delete
1312
        a optimization already done by simplify_subreg.
1313
 
1314
2005-06-19  Ulrich Weigand  
1315
 
1316
        * loop.c (scan_loop): Do not consider insns setting the frame
1317
        pointer to be candidates for hoisting.
1318
 
1319
2005-06-19  Uros Bizjak  
1320
 
1321
        * config/i386/i386.md (*cmpfp_0_sf, *cmpfp_0_df, cmpfp_0_xf):
1322
        Remove instruction patterns.
1323
        (*cmpfp_0): New instruction pattern. Set "unit" attribute to "i387".
1324
        (*cmpfp_sf, *cmpfp_df, *cmpfp_xf, *cmpfp_u, *_cmpfp_):
1325
        Set "unit" attribute to "i387".
1326
        (*pushsf, *pushsf_rex64, *pushdf_nointeger, *pushdf_integer)
1327
        (*pushxf_nointeger, *pushxf_integer): Set "unit" attribute to "i387"
1328
        for alternative 0.
1329
        (*truncdfsf_mixed, *truncdfsf_i387, *truncxfsf2_mixed)
1330
        (*truncxfsf2_i387, *truncxfdf2_mixed, *truncxfdf2_i387): Set "unit"
1331
        attribute to "i387" when "type" attribute equals "multi".
1332
        (*floathisf2_i387, *floatsisf2_mixed, *floatsisf2_i387)
1333
        (*floatdisf2_mixed, *floatdisf2_i387, *floathidf2_i387)
1334
        (*floatsidf2_mixed, *floatsidf2_i387, *floatdidf2_mixed)
1335
        (*floatdidf2_i387, floathixf2, floatsixf2, floatdixf2): Set "unit"
1336
        attribute to "i387" when "type" attribute equals "multi".
1337
        * config/i386/mmx.md (*mov_internal_rex64)
1338
        (*mov_internal, *movv2sf_internal_rex64, *movv2sf_internal):
1339
        Set "unit" attribute to "mmx" when "type" attribute equals "ssecvt".
1340
        (mmx_pmovmskb): Correct wrong "type" and "mode" attributes.
1341
        * config/i386/sse.md (sse_cvtps2pi, sse_cvttps2pi, sse_cvtpd2di)
1342
        (sse_cvttpd2pi): Set "unit" attribute to "mmx".
1343
        (sse2_cvtpi2pd): Split register constraints. Set "unit" attribute
1344
        to "mmx" for "y" operand 1.
1345
 
1346
2005-06-19  Uros Bizjak  
1347
 
1348
        * config/i386/i386.c (ix86_function_arg_regno_p): Add MMX_REGNO_P
1349
        for TARGET_MMX.  Use MMX_REGPARM_MAX and SSE_REGPARM_MAX for MMX
1350
        and SSE registers to determine if regno is valid.
1351
        (ix86_function_value_regno_p): Depend FIRST_FLOAT_REG on
1352
        TARGET_FLOAT_RETURNS_IN_80387 also for TARGET_64BIT. Clean up.
1353
 
1354
2005-06-18  Richard Henderson  
1355
 
1356
        * tree-complex.c (init_dont_simulate_again): Clear DONT_SIMULATE_AGAIN
1357
        for control-altering statements; set it again for returns.
1358
        (complex_visit_stmt): Return SSA_PROP_VARYING for stmts that are
1359
        not MODIFY_EXPR.
1360
 
1361
2005-06-18  Richard Henderson  
1362
 
1363
        PR tree-opt/22116
1364
        * tree-ssa-pre.c (create_expression_by_pieces): Set
1365
        DECL_COMPLEX_GIMPLE_REG_P.
1366
        (insert_into_preds_of_block): Likewise.
1367
 
1368
2005-06-18  Steven Bosscher  
1369
 
1370
        * Makefile.in: Fix tree-cfgcleanup.c dependencies.
1371
 
1372
2005-06-18  Richard Henderson  
1373
 
1374
        * expr.c (store_constructor): Use store of 0 to indicate value
1375
        death instead of a clobber.
1376
 
1377
        * config/i386/i386.c (ix86_expand_reduc_v4sf): New.
1378
        * config/i386/i386-protos.h (ix86_expand_reduc_v4sf): Declare.
1379
        * config/i386/sse.md (reduc_plus_v4sf): New.
1380
        (reduc_smax_v4sf, reduc_smin_v4sf): New.
1381
 
1382
2005-06-18  James A. Morrison  
1383
 
1384
        * fold_const (fold_binary): Fold X % (2**N) to X & (2**N - 1) for
1385
        nonnegative values of X.
1386
 
1387
2005-06-18  Uros Bizjak  
1388
 
1389
        * doc/md.texi (Standard Names): Change insn pattern name
1390
        from truncM2 to btruncM2 for 'trunc' built-in description.
1391
        Add rintM2 insn pattern description.
1392
 
1393
2005-06-18  Kaveh R. Ghazi  
1394
 
1395
        * c-decl.c (locate_old_decl): Add format attribute.
1396
        (implicit_decl_warning): Likewise.
1397
 
1398
        * diagnostic.h (verbatim): Move ...
1399
        * toplev.h (verbatim): ... here.  Add ATTRIBUTE_GCC_DIAG.
1400
        * pretty-print.h (pp_verbatim): Add ATTRIBUTE_GCC_PPDIAG.
1401
 
1402
2005-06-18  Roger Sayle  
1403
 
1404
        PR target/22083
1405
        * config/rs6000/aix51.h (TARGET_C99_FUNCTIONS): Remove definition.
1406
 
1407
2005-06-18  Dorit Nuzman  
1408
 
1409
        * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): New
1410
        tree-codes.
1411
        * optabs.h (OTI_reduc_smax, OTI_reduc_umax, OTI_reduc_smin,
1412
        OTI_reduc_umin, OTI_reduc_plus): New optabs for reduction.
1413
        (reduc_smax_optab, reduc_umax_optab, reduc_smin_optab, reduc_umin_optab,
1414
        reduc_plus_optab): New optabs for reduction.
1415
        * expr.c (expand_expr_real_1): Handle new tree-codes.
1416
        * tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
1417
        * tree-pretty-print.c (dump_generic_node, op_prio, op_symbol): Handle
1418
        new tree-codes.
1419
        * optabs.c (optab_for_tree_code): Handle new tree-codes.
1420
        (init_optabs): Initialize new optabs.
1421
        * genopinit.c (optabs): Define handlers for new optabs.
1422
 
1423
        * tree-vect-analyze.c (vect_analyze_operations): Fail vectorization in
1424
        case of a phi that is marked as relevant. Call vectorizable_reduction.
1425
        (vect_mark_relevant): Phis may be marked as relevant.
1426
        (vect_mark_stmts_to_be_vectorized): The use corresponding to the
1427
        reduction variable in a reduction stmt does not mark its defining phi
1428
        as relevant. Update documentation accordingly.
1429
        (vect_can_advance_ivs_p): Skip reduction phis.
1430
        * tree-vect-transform.c (vect_get_vec_def_for_operand): Takes
1431
        additional argument. Handle reduction.
1432
        (vect_create_destination_var): Update call to vect_get_new_vect_var.
1433
        Handle non-vector argument.
1434
        (get_initial_def_for_reduction): New function.
1435
        (vect_create_epilog_for_reduction): New function.
1436
        (vectorizable_reduction): New function.
1437
        (vect_get_new_vect_var): Handle new vect_var_kind.
1438
        (vectorizable_assignment, vectorizable_operation, vectorizable_store,
1439
        vectorizable_condition): Update call to vect_get_new_vect_var.
1440
        (vect_transform_stmt): Call vectorizable_reduction.
1441
        (vect_update_ivs_after_vectorizer): Skip reduction phis.
1442
        (vect_transform_loop): Skip if stmt is both not relevant and not live.
1443
        * tree-vectorizer.c (reduction_code_for_scalar_code): New function.
1444
        (vect_is_simple_reduction): Was empty - added implementation.
1445
        * tree-vectorizer.h (vect_scalar_var): New enum vect_var_kind value.
1446
        (reduc_vec_info_type): New enum vect_def_type value.
1447
        * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
1448
        reduc_umax_v4si, reduc_smin_v4si, reduc_umin_v4sf, reduc_smin_v4sf,
1449
        reduc_plus_v4si, reduc_plus_v4sf): New define_expands.
1450
 
1451
        * tree-vect-analyze.c (vect_determine_vectorization_factor): Remove
1452
        ENABLE_CHECKING around gcc_assert.
1453
        * tree-vect-transform.c (vect_do_peeling_for_loop_bound,
1454
        (vect_do_peeling_for_alignment, vect_transform_loop,
1455
        vect_get_vec_def_for_operand): Likewise.
1456
 
1457
2005-06-18  Joseph S. Myers  
1458
 
1459
        * config/ia64/ia64.c (ia64_function_arg): Set up a PARALLEL for a
1460
        big-endian unnamed __float80 value.
1461
 
1462
2005-06-18  Richard Henderson  
1463
 
1464
        PR tree-opt/22103
1465
        * tree-sra.c (generate_copy_inout): Handle SSA_NAME complex
1466
        destinations.
1467
 
1468
2005-06-17  Richard Henderson  
1469
 
1470
        * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Use
1471
        initialize_original_copy_tables and free_original_copy_tables.
1472
        (vect_do_peeling_for_alignment): Likewise.
1473
 
1474
2005-06-17  Pat Haugen  
1475
 
1476
        * bb-reorder.c (find_traces_1_round): Use succ block frequency
1477
        instead of edge frequency for calls to better_edge_p.
1478
 
1479
2005-06-17  Andrew Pinski  
1480
 
1481
        PR tree-opt/22105
1482
        * tree-ssa-loop-im.c (for_each_index): Handle COMPLEX_CST.
1483
 
1484
2005-06-17  Steve Ellcey  
1485
 
1486
        PR target/19889
1487
        * config/ia64/hpux.h (FUNCTION_PROFILER): New (dummy).
1488
        (PROFILE_HOOK): New.
1489
        (PROFILE_BEFORE_PROLOGUE): Undef.
1490
        (NO_PROFILE_COUNTERS): New.
1491
        * config/ia64/ia64-protos.h (ia64_profile_hook): New.
1492
        * config/ia64/ia64.c (ia64_compute_frame_size): Add ifdef.
1493
        (gen_mcount_func_rtx): New.
1494
        (ia64_profile_hook): New.
1495
        * config/ia64/ia64.md (ip_value): New.
1496
 
1497
2005-06-17  Devang Patel  
1498
 
1499
        * config/rs6000/predicates.md (s5bit_cint_operand,
1500
        u5bit_cint_operand): New.
1501
        * config/rs6000/altivec.md (altivec_vspltb, altivec_vsplth,
1502
        altivec_vspltisw_v4sf): Use new 5 bit constant operand predicates.
1503
        * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Fix signed
1504
        5 bit constant check.
1505
 
1506
2005-06-17  Richard Henderson  
1507
 
1508
        * local-alloc.c (update_equiv_regs): Update reg_equiv_init
1509
        properly when moving an initialization insn.
1510
 
1511
2005-06-17  Paolo Bonzini  
1512
 
1513
        * aclocal.m4 (gcc_AC_CHECK_TOOL): Do not overwrite the
1514
        passed variable.
1515
        * configure.ac: Regenerate.
1516
 
1517
2005-06-17  Jan Hubicka  
1518
 
1519
        * tree-optimize.c (execute_ipa_pass_list): New.
1520
        (ipa_passes): Use it.
1521
 
1522
2005-06-16  Richard Henderson  
1523
 
1524
        PR tree-opt/22022
1525
        * tree-complex.c (update_phi_components): Avoid no-op moves.
1526
 
1527
2005-06-16  Joseph S. Myers  
1528
 
1529
        * Makefile.in (cc1-checksum.c): Use
1530
        build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
1531
 
1532
2005-06-16  Geoffrey Keating  
1533
 
1534
        * gengtype.c (adjust_field_rtx_def): Don't add a skip to
1535
        basic_block types.
1536
 
1537
        * config/t-slibgcc-darwin (SHLIB_SOVERSION): Rename from
1538
        SHLIB_MINOR.
1539
        (SHLIB_REVISION): Delete.
1540
        (SHLIB_VERSTRING): Update to compensate.
1541
        (SHLIB_SONAME): Just use one '.' in the name.
1542
 
1543
2005-06-16  Eric Botcazou  
1544
 
1545
        PR tree-optimization/22018
1546
        * tree-vrp.c (vrp_int_const_binop): Overhaul handling of overflow.
1547
 
1548
2005-06-16  Richard Henderson  
1549
 
1550
        PR tree-opt/22035
1551
        * builtins.c (fold_builtin_complex_mul): Remove.
1552
        (fold_builtin_complex_div): Remove.
1553
        (fold_builtin_1): Don't call them.
1554
        * fold-const.c (fold_complex_add, fold_complex_mult_parts,
1555
        fold_complex_mult, fold_complex_div_parts, fold_complex_div): Remove.
1556
        (fold_binary): Don't call them.  Don't expand complex comparisons to
1557
        elementary comparisons.
1558
        * tree-complex.c (init_dont_simulate_again): Enhance search for
1559
        stmts that require decomposition.
1560
        (complex_visit_stmt): Handle RETURN_EXPR properly.
1561
        (create_components): Handle no referenced variables properly.
1562
        * tree.h (fold_complex_mult_parts): Remove.
1563
        (fold_complex_div_parts): Remove.
1564
 
1565
2005-06-16  Richard Guenther  
1566
 
1567
        * doc/extend.texi: Document sseregparm target attribute.
1568
        Clarify fastcall and regparm documentation.
1569
        * config/i386/i386.h: Adjust float_in_sse documentation.
1570
        * config/i386/i386.c: Add new target attribute sseregparm.
1571
        (ix86_handle_cdecl_attribute, ix86_handle_regparm_attribute):
1572
        Merge into ...
1573
        (ix86_handle_cconv_attribute): ... here.  Also handle
1574
        sseregparm attribute.
1575
        (ix86_comp_type_attributes): Compare sseregparm attributes.
1576
        (ix86_function_sseregparm): New function, split out from ...
1577
        (init_cumulative_args): ... here.  Use to decide use
1578
        of SSE registers and error in case of missing support.
1579
        (ix86_value_regno): Likewise.
1580
        (function_arg_advance): Do not bail out for DFmode if we need
1581
        to pass doubles in registers.
1582
        (function_arg): Likewise.
1583
 
1584
2005-06-16  Paolo Bonzini  
1585
            Daniel Jacobowitz  
1586
            Alan Modra 
1587
 
1588
        * configure.ac (gcc_version): Set near the beginning.
1589
        (as, ld, nm): Do not link in-tree tools.  Set gcc_cv_* if tools are
1590
        found in the tree.  Use gcc_AC_PROG to find the tools in the system.
1591
        (objdump): Do not look for it.
1592
        * Makefile.in (NM_FOR_TARGET): Point to ./nm
1593
        (ORIGINAL_AS_FOR_TARGET, ORIGINAL_LD_FOR_TARGET,
1594
        ORIGINAL_NM_FOR_TARGET): Substitute from autoconf.
1595
        (as, ld, nm): New rules.
1596
        (libgcc.mk): Depend on them.
1597
        * aclocal.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL,
1598
        gcc_AC_BUILD_EXEEXT): New.
1599
        (gcc_AC_CHECK_PROG_VER): Use gcc_AC_BUILD_EXEEXT.
1600
        * configure: Regenerate.
1601
 
1602
2005-06-16  Jan Hubicka  
1603
 
1604
        * basic-block.h (rtl_bb_info): Break out head_, end_,
1605
        global_live_at_start, global_live_at_end from ...
1606
        (basic_block_def): ... here; update all references
1607
        (BB_RTL): New flag.
1608
        (init_rtl_bb_info): Declare.
1609
        * cfgexpand.c (expand_gimple_basic_block): Init bb info, set BB_RTL
1610
        flag.
1611
        * cfgrtl.c: Include ggc.h
1612
        (create_basic_block_structure): Init bb info.
1613
        (rtl_verify_flow_info_1): Check BB_RTL flag and rtl_bb_info pointer.
1614
        (init_rtl_bb_info): New function.
1615
        (rtl_merge_block, cfglayout_merge_block): Copy global_live_at_end here.
1616
        * cfghooks.c (merge_block): Do not copy global_live_at_end here.
1617
        * cfg.c (clear_bb_flags): Skip BB_RTL flag.
1618
        (dump_flow_info): Gueard global_live_* dumping.
1619
 
1620
        * Makefile.in (cfg.o): Add new dependencies.
1621
        * basic-block.h (reorder_block_def): Kill
1622
        original/copy/duplicated/copy_number fields.
1623
        (BB_DUPLICATED): New flag.
1624
        (initialize_original_copy_tables, free_original_copy_tables,
1625
        set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New.
1626
        * cfg.c: Include hashtab.h and alloc-pool.h
1627
        (bb_original, bb_copy, original_copy_bb_pool): New static vars.
1628
        (htab_bb_copy_original_entry): New struct.
1629
        (bb_copy_original_hash, bb_copy_original_eq): New static functions.
1630
        (initialize_original_copy_tables, free_original_copy_tables,
1631
        set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New
1632
        global functions.
1633
        * cfghooks.c (duplicate_block): Update original/copy handling.
1634
        * cfglayout.c (fixup_reorder_chain): Likewise.
1635
        (cfg_layout_initialize): Initialize orignal_copy tables.
1636
        (cfg_layout_finalize): FInalize original_copy tables.
1637
        (can_copy_bbs_p): Use BB_DUPLICATED flag.
1638
        (copy_bbs): Likewise.
1639
        * cfgloopmanip.c (update-single_exits_after_duplication): Likewise.
1640
        (duplicate_loop_to_header_edge): Likewise; update handling of
1641
        copy_number.
1642
        (loop_version): Likewise.
1643
        * dominance.c (get_dominated_by_region): Use BB_DUPLICATED_FLAG.
1644
        * except.c (expand_resx_expr): Check that reg->resume is not set.
1645
        * loop-unroll.c (unroll_loop_constant_iterations,
1646
        unroll_loop_runtime_iterations, apply_opt_in_copies): Update
1647
        copy/original handling.
1648
        * loop-unwitch.c (unswitch_loop): Likewise.
1649
        * tree-cfg.c (create_bb): Do not initialize RBI.
1650
        (disband_implicit_edges): Do not kill RBI.
1651
        (add_phi_args_after_copy_bb): Use new original/copy mapping.
1652
        (add_phi_args_after_copy): Use BB_DUPLICATED flag.
1653
        (tree_duplicate_sese_region): Update original/copy handling.
1654
        * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
1655
        * tree-ssa-loop-manip.c (copy_phi_node_args): Likewise.
1656
        * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Likewise.
1657
 
1658
2005-06-15  Andrew Pinski  
1659
 
1660
        PR tree-opt/21923
1661
        * tree-ssa.c (tree_ssa_useless_type_conversion_1): Conversions between
1662
        integer types whos ranges are different are not useless.
1663
 
1664
2005-06-15  Andrew Pinski  
1665
 
1666
        PR tree-opt/22024
1667
        * tree-ssa-reassoc.c (init_reassoc): Also give chain decl a distint
1668
        rank.
1669
 
1670
2005-06-15  Diego Novillo  
1671
 
1672
        * tree-ssa-structalias.c (dump_solution_for_var): Reformat
1673
        output.
1674
        (dump_sa_points_to_info): Make extern.
1675
        (debug_sa_points_to_info): New.
1676
        * tree-ssa-structalias.h (TREE_SSA_STRUCTALIAS_H): Rename from
1677
        TREE_ALIAS_COMMON.
1678
        (dump_sa_points_to_info): Declare.
1679
        (debug_sa_points_to_info): Declare.
1680
 
1681
2005-06-15  Joseph S. Myers  
1682
 
1683
        * c-tree.h (default_function_array_conversion): Declare.
1684
        * c-typeck.c (default_function_array_conversion): Export.  Correct
1685
        comment.
1686
        (default_conversion): Do not call
1687
        default_function_array_conversion.  Do not allow FUNCTION_TYPE.
1688
        (build_function_call): Call default_function_array_conversion on
1689
        the function.
1690
        (convert_arguments): Do not call it on the function arguments.
1691
        (build_unary_op): Do not allow ARRAY_TYPE or FUNCTION_TYPE for
1692
        TRUTH_NOT_EXPR.  Call default_function_array_conversion for taking
1693
        address of ARRAY_REF.
1694
        (build_compound_expr): Do not call
1695
        default_function_array_conversion.
1696
        (build_c_cast): Do not call default_function_array_conversion.
1697
        (convert_for_assignment): Do not call default_conversion.
1698
        (digest_init): Call default_function_array_conversion to convert
1699
        string constants and compound literals to pointers, but not
1700
        otherwise.
1701
        (output_init_element): Likewise.
1702
        (build_asm_expr): Do not call default_function_array_conversion.
1703
        (c_process_expr_stmt): Likewise.
1704
        (c_objc_common_truthvalue_conversion): Likewise.  Do not allow
1705
        FUNCTION_TYPE.
1706
        * c-parser.c (c_parser_expression_conv): New.
1707
        (c_parser_asm_operands, c_parser_expr_list): Add convert_p
1708
        argument.  All callers changed.  Call
1709
        default_function_array_conversion if convert_p.
1710
        (c_parser_initializer, c_parser_initval): Call
1711
        default_function_array_conversion except for string constants and
1712
        compound literals.
1713
        (c_parser_initelt): Call default_function_array_conversion for
1714
        ObjC expression received.
1715
        (c_parser_statement_after_labels): Call c_parser_expression_conv
1716
        for return and expression statements.
1717
        (c_parser_paren_condition, c_parser_for_statement,
1718
        c_parser_conditional_expression): Call c_parser_expression_conv.
1719
        (c_parser_expr_no_commas, c_parser_conditional_expression,
1720
        c_parser_binary_expression, c_parser_cast_expression,
1721
        c_parser_unary_expression): Call
1722
        default_function_array_conversion.
1723
 
1724
2005-06-15  Diego Novillo  
1725
 
1726
        * tree-vrp.c (vrp_int_const_binop): Do not handle MAX_EXPR
1727
        when the result overflows.
1728
 
1729
2005-06-15  David Ung  
1730
 
1731
        * config/mips/mips.c (mips_rtx_cost_data): Add cost for 4kc, 4kp,
1732
        24k and 24kx.
1733
 
1734
2005-06-15  Richard Sandiford  
1735
 
1736
        * doc/invoke.texi (-mips16): Fix typo.
1737
 
1738
2005-06-15  David Ung  
1739
 
1740
        * config/mips/mips.h (GENERATE_MIPS16E): New definition.
1741
        * config/mips/mips.md (zero_extend2):
1742
        Changed expand condition to exclude generating of "and" if
1743
        GENERATE_MIPS16E is true.
1744
        (*zero_extend2_mips16e): New pattern for
1745
        matching mips16e zeb/zeh.
1746
        (*extend2_mips16e): New pattern for matching
1747
        mips16e seb/seh.
1748
        (*extend2): Disable this pattern for
1749
        GENERATE_MIPS16E.
1750
        * doc/invoke.texi (MIPS Options): Add comment to -mips16
1751
        indicating MIPS16e ASE is used if targetting for MIPS32 or MIPS64.
1752
 
1753
2005-06-15  Diego Novillo  
1754
 
1755
        PR 22018
1756
        * tree-vrp.c (vrp_int_const_binop): New.
1757
        (extract_range_from_binary_expr): Call it.
1758
        Unify handling division and multiplication.
1759
 
1760
2005-06-15  Aldy Hernandez  
1761
 
1762
        * c-common.h (same_scalar_type_ignoring_signedness): Protoize.
1763
 
1764
        * c-common.c (same_scalar_type_ignoring_signedness): New.
1765
 
1766
        * c-typeck.c (build_binary_op): Check compatability of vector
1767
        types.  Move error report after switch.
1768
        Do not clobber code[01] on *_DIV_EXPR case.
1769
 
1770
        * testsuite/gcc.dg/simd-1.c: Update error messages.
1771
        * testsuite/gcc.dg/simd-1b.c: Re-enable tests.  Update error
1772
        messages.
1773
        * testsuite/gcc.dg/simd-2.c: Update error messages.
1774
        * testsuite/gcc.dg/simd-4.c: New.
1775
 
1776
2005-06-15  Bernd Schmidt  
1777
 
1778
        * Makefile.in (local-alloc.o): Depend on $(GGC_H) and reload.h.
1779
        * local-alloc.c: Include "ggc.h" and "reload.h".
1780
        (struct equivalence): New member is_arg_equivalence.
1781
        (local_alloc): Always call update_equiv_regs.
1782
        (update_equiv_regs): Allocate reg_equiv_init; set reg_equiv_init_size.
1783
        Detect equivalences made by stores to memory in a second pass.
1784
        Return early if not optimizing.
1785
        Initialize reg_equiv_init for all equivalences; treat equivalences for
1786
        REG_EQUIV notes existing before this pass specially.
1787
        (no_equiv): Don't clear reg_equiv_init or remove notes if the
1788
        is_arg_equivalence field is set.
1789
        * reload.h (reg_equiv_init, reg_equiv_init_size): Declare.
1790
        * reload1.c (reg_equiv_init): No longer static.
1791
        (reg_equiv_init_size): New variable.
1792
        (reload): Don't allocate reg_equiv_init; don't free it when done but
1793
        clear it.
1794
        Restructure equivalence set up code not to set reg_equiv_init, but to
1795
        clear it when we can't use an equivalence.
1796
        Undo change disabling equivalences for MEM_READONLY_P memrefs.
1797
        Dump equivalencing insns to dump_file.
1798
 
1799
2005-06-14  Richard Sandiford  
1800
 
1801
        * config/mips/mips.c (machine_function): Add varargs_size field.
1802
        (mips_setup_incoming_varargs): Store the amount of extra stack space
1803
        there rather than in *pretend_size.  When saving registers, always
1804
        expect virtual_incoming_args_rtx to point to the start of the
1805
        pretend arguments.
1806
        (mips_va_start): Remove alignment hack.  Handle all
1807
        !EABI_FLOAT_VARARGS_P cases in the same way.
1808
        (compute_frame_size): Handle varargs_size.  Remove the redundant
1809
        !TARGET_OLDABI condition in the handling of pretend_args_size.
1810
        (mips_initial_elimination_offset): Remove the now-redundant check
1811
        of TARGET_NEWABI.
1812
 
1813
2005-06-14  Jeff Law  
1814
 
1815
        * tree-vrp.c (local_fold): Remove.
1816
        (simplify_using_ranges): Use fold_convert, not local_fold.  Tweak
1817
        DIV/MOD case slightly for readability.
1818
 
1819
2005-06-14  Frank Ch. Eigler  
1820
 
1821
        PR mudflap/21023
1822
        * tree-mudflap.c (mudflap_finish_file): Exclude non-public
1823
        rather than static objects (!) from libmudflap registration.
1824
 
1825
2005-06-14  Richard Sandiford  
1826
 
1827
        * opt-functions.awk (global_state_p, needs_state_p, static_var): New.
1828
        (var_ref): Take the option's flags as a second parameter.  Check
1829
        static_var.
1830
        * optc-gen.awk: Declare local state variables.  Pass flags to var_ref.
1831
 
1832
2005-06-14  Eric Botcazou  
1833
 
1834
        PR target/20301
1835
        * config/sparc/sol2.h (ASM_GENERATE_INTERNAL_LABEL): Emit
1836
        unsigned index numbers.
1837
 
1838
2005-06-13  Geoffrey Keating  
1839
 
1840
        * Makefile.in (install-man): Doesn't really depend on installdirs.
1841
        (various rules for installing manpages): Do depend on installdirs.
1842
 
1843
2005-06-14  Nathan Sidwell  
1844
 
1845
        * unwind-dw2-fde-darwin.c (examine_objects): Fix aliasing in
1846
        read_encoded_value_with_base call.
1847
        * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Likewise.
1848
        * unwind-dw2-fde.c (_Unwind_Find_FDE): Likewise.
1849
        * unwind-dw2.c (extract_cie_info): Fix aliasing in
1850
        read_encoded_value call.
1851
        (execute_cfa_program, uw_frame_state_for): Likewise.
1852
 
1853
2005-06-13  Roger Sayle  
1854
 
1855
        PR rtl-optimization/22053
1856
        * reg-stack.c (compensate_edge): Correct mistake in the assertion
1857
        checking of EDGE_ABNORMAL_CALL edges; complex return values can
1858
        result in the top two stack slots, st(0) and st(1), being live.
1859
 
1860
2005-06-13  Jeff Law  
1861
 
1862
        * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): No longer
1863
        simplify DIV, MOD or ABS expressions using VRP information.
1864
        Remove WALK_DATA parameter.  Prototype and all callers updated.
1865
        (eliminate_redundant_computations): Remove WALK_DATA parameter.
1866
        Prototype and all callers updated.
1867
        (optimize_stmt): WALK_DATA parameter is now unused.
1868
 
1869
        * tree-vrp.c (local_fold): New function.  Like fold, but
1870
        strips useless type conversions in the result.
1871
        (simplify_using_ranges): New function, largely cribbed from
1872
        tree-ssa-dom.c::simplify_rhs_and_lookup_avail_expr.
1873
        (vrp_finalize): Call simplify_using_ranges.
1874
 
1875
2005-06-13  Mark Mitchell  
1876
 
1877
        * config/i386/x86-64.h (ASM_SPEC): Explicitly pass --64 to the
1878
        assembler in 64-bit mode.
1879
 
1880
2005-06-13  David Edelsohn  
1881
 
1882
        Revert scc_operand patch.
1883
        * config/rs6000/predicates.md (scc_operand): Delete.
1884
        * config/rs6000/rs6000.md (scc_operand): Change to scc_eq_operand.
1885
 
1886
2005-06-13  Zdenek Dvorak  
1887
 
1888
        PR middle-end/21985
1889
        * fold-const.c (split_address_to_core_and_offset): Always return
1890
        the address of the base object.
1891
 
1892
2005-06-13  Bernd Schmidt  
1893
 
1894
        * doc/invoke.texi (Blackfin Options): Document -mlong-calls.
1895
 
1896
2005-06-12  Richard Henderson  
1897
 
1898
        PR tree-opt/21994
1899
        * tree-complex.c (update_complex_components_on_edge): New.
1900
        (update_parameter_components): Use it.
1901
        (update_phi_components): Likewise.
1902
        (expand_complex_move): Likewise for is_ctrl_altering_stmt.
1903
 
1904
2005-06-12  James A. Morrison  
1905
 
1906
        PR tree-optimization/14796
1907
        * fold-const (fold_binary): Transform (X << C) >> C into X & (-1>>C)
1908
        for unsigned types.
1909
 
1910
2005-06-12  Kazu Hirata  
1911
 
1912
        * cgraphunit.c, tree-ssa-loop-ivopts.c,
1913
        tree-ssa-structalias.c, tree-vectorizer.c, tree-vectorizer.h,
1914
        config/sparc/sparc.c: Fix comment typos.
1915
 
1916
2005-06-12  Richard Earnshaw  
1917
 
1918
        * arm/ieee754-df.s (aeabi_dcmpeq, aeabi_dcmplt, aeabi_dcmple)
1919
        (aeabi_dcmpge, aeabi_dcmpgt): Maintain 8-byte stack alignment.
1920
        * arm/ieee754-sf.s (aeabi_l2f, aeabi_fcmpeq, aeabi_fcmplt)
1921
        (aeabi_fcmple, aeabi_fcmpge, aeabi_fcmpgt): Likewise.
1922
 
1923
2005-06-12  James A. Morrison  
1924
 
1925
        PR tree-optimization/14796
1926
        * fold-const.c (fold_binary): Transform (A >> C) << C into
1927
        one BIT_AND_EXPR.
1928
        : Transform (A OP c1) OP c2 into A OP (c1 + c2).
1929
 
1930
2005-06-11  Geoffrey Keating  
1931
 
1932
        * config/rs6000/predicates.md (reg_or_arith_cint_operand): Delete.
1933
        (reg_or_add_cint_operand): Rename from reg_or_add_cint64_operand.
1934
        Handle SImode.
1935
        (reg_or_sub_cint_operand): Likewise.
1936
        (mask_operand): Handle DImode.
1937
        (mask64_operand): Delete.
1938
        (and64_operand): Delete.
1939
        * config/rs6000/rs6000.c (num_insns_constant): Use mask_operand
1940
        instead of mask64_operand.
1941
        (print_operand): Likewise.
1942
        (rs6000_rtx_costs): Use mask_operand and reg_or_add_cint_operand and
1943
        reg_or_sub_cint_operand instead of *64_* variants.
1944
        * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Use mask_operand
1945
        instead of mask64_operand.
1946
        * config/rs6000/rs6000.md: Use mask_operand and and_operand instead
1947
        of *64_* variants.
1948
        (FP): New.
1949
        (add_op2): Delete.
1950
        (add3): Use reg_or_add_cint_operand.
1951
        (sub_op2): Delete.
1952
        (sub3): Use reg_or_sub_cint_operand.
1953
        (udiv3, div3, div3_no_mq, mod3,
1954
        mov_internal2, mov, cmp, cmp,
1955
        cmp_internal1, indirect_jump, ctr,
1956
        ctr_internal1, ctr_internal2, ctr_internal5,
1957
        ctr_internal6, save_fpregs_, return_internal_,
1958
        return_and_restore_fpregs_, eh_set_lr_,
1959
        various unnamed patterns): New.
1960
        (udivsi3, divsi3, divsi3_no_mq, modsi3, movsi_internal2, movsi,
1961
        cmpsi, cmpsi_internal1, indirect_jumpsi, ctrsi, ctrsi_internal1,
1962
        ctrsi_internal2, ctrsi_internal5, ctrsi_internal6, save_fpregs_si,
1963
        return_internal_si, return_and_restore_fpregs_si, eh_set_lr_si,
1964
        udivdi3, divdi3, divdi3_no_mq, moddi3, movdi_internal2, movdi,
1965
        cmpdi, cmpdi_internal1, indirect_jumpdi, ctrdi, ctrdi_internal1,
1966
        ctrdi_internal2, ctrdi_internal5, ctrdi_internal6, save_fpregs_di,
1967
        return_internal_di, return_and_restore_fpregs_di, eh_set_lr_di,
1968
        movhi, movqi, cmpsf, cmpdf, cmptf, various unnamed patterns):
1969
        Delete.
1970
 
1971
2005-06-11  Gabriel Dos Reis  
1972
 
1973
        * rtl.h (to_rtx_code): Remove.
1974
        * machmode.h (to_machine_mode): Likewise.
1975
        * read-rtl.c (apply_mode_macro): Replace to_machine_mode with
1976
        explicit cast.
1977
        (apply_mode_maps): Likewise.
1978
        (read_rtx_1): Likewise.
1979
        (apply_code_macro): Replace to to_rtx_code with explicit cast.
1980
        (check_code_macro): Likewise.
1981
        (read_rtx_1): Likewise.
1982
 
1983
2005-06-11  Gabriel Dos Reis  
1984
 
1985
        * c-typeck.c (convert_for_assignment): Avoid checking
1986
        OPT_Wc___compat, as it is always true.
1987
 
1988
2005-06-11  David Edelsohn  
1989
 
1990
        * config/rs6000/rs6000.md (eq_compare): Restrict to Pmode.
1991
 
1992
2005-06-11  Daniel Berlin  
1993
 
1994
        Fix PR tree-optimization/22005
1995
        Fix PR tree-optimization/22025
1996
 
1997
        * tree-ssa-structalias.c (struct variable_info): Add has_union
1998
        member.
1999
        (create_variable_info_for):  Mark variables containing unions.
2000
        Don't sort the field stack if notokay is true.
2001
        (find_what_p_points_to): Convert variables containing unions back
2002
        to their SFT's if necessary.
2003
 
2004
2005-06-11  Daniel Berlin  
2005
 
2006
        * lambda-code.c (replace_uses_equiv_to_x_with_y): Verify the step
2007
        is an INTEGER_CST before calling int_cst_value.
2008
 
2009
2005-06-10  Uros Bizjak  
2010
 
2011
        PR target/21981
2012
        * config/i386/i386.c (ix86_function_value_regno_p): Return true
2013
        for FIRST_MMX_REG if TARGET_MMX.
2014
        (ix86_return_in_memory): Return 1 for MMX/3dNow vectors. Delete
2015
        wrong comment.
2016
        (ix86_struct_value_rtx): Emit warning for MMX ABI violations.
2017
        (ix86_value_regno): Return FIRST_MMX_REG for MMX vector modes.
2018
 
2019
2005-06-10  Daniel Berlin  
2020
 
2021
        * lambda-code.c (replace_uses_equiv_to_x_with_y): Check step
2022
        and access function against chrec_dont_know.
2023
 
2024
2005-06-10  Daniel Berlin  
2025
 
2026
        * lambda-code.c (replace_uses_of_x_with_y): Renamed and rewritten
2027
        slightly.
2028
        (exit_phi_for_loop_p): New function.
2029
        (can_put_in_inner_loop): Ditto.
2030
        (can_convert_to_perfect_nest): Ditto.
2031
        (perfect_nestify): Create iv with right type.
2032
        Rewrite statements in correct order.
2033
 
2034
2005-06-10  Keith Besaw  
2035
 
2036
        * tree-ssa-alias.c (new_type_alias): Use existing type
2037
        tag if VAR has just one in its may_aliases list.
2038
 
2039
2005-06-10  Fariborz Jahanian 
2040
 
2041
        * rs6000/predicates.md (scc_operand): New.
2042
        * rs6000/rs6000.md : Use scc_operand for eq:SI compares.
2043
 
2044
2005-06-10  Dorit Nuzman  
2045
 
2046
        * tree-vect-analyze.c (vect_analyze_data_ref_dependence): DRs whose
2047
        dependence-distance modulo VF is 0 are recorded in the
2048
        SAME_ALIGN_REFs VEC in each DR.
2049
        (vect_enhance_data_refs_alignment): Avoid 80 column overflow. The
2050
        alignment information of DRs that are in the SAME_ALIGN_REFs VEC of the
2051
        DR we want to peel for, is set to 0.
2052
        * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Fix printout.
2053
        * tree-vectorizer.c (destroy_loop_vec_info): Free the SAME_ALIGN_REFs
2054
        VEC.
2055
        * tree-vectorizer.h (dr_p): New type. Defined to use the VEC API.
2056
        (_stmt_vec_info): Added new field same_align_refs.
2057
        (STMT_VINFO_SAME_ALIGN_REFS): New macro.
2058
 
2059
2005-06-10  Nathan Sidwell  
2060
 
2061
        * vec.h (VEC_safe_grow): Append MEM_STAT_INFO.
2062
 
2063
2005-06-10  Alan Modra  
2064
 
2065
        * config/rs6000/linux.h (NO_PROFILE_COUNTERS): Define.
2066
        * config/rs6000/linux64.h (NO_PROFILE_COUNTERS): Define as 1.
2067
        * config/rs6000/rs6000.c (output_function_profiler): Obey
2068
        NO_PROFILE_COUNTERS.  Handle TARGET_SECURE_PLT.  Use "bcl 20,31"
2069
        for -fPIC.  Delete save_lr and substitute its value into strings.
2070
 
2071
2005-06-09  Dale Johannesen  
2072
 
2073
        * config/i386/i386.c (optimization_options):  Make -fno-math-errno
2074
        the default on Darwin.
2075
        * config/rs6000/rs6000.c (optimization_options):  Ditto.
2076
        * doc/invoke.texi (-fno-math-errno): Document.
2077
 
2078
2005-06-09  Dale Johannesen  
2079
 
2080
        * config/rs6000/rs6000.c (TARGET_INSN_VALID_WITHIN_DOLOOP):
2081
        Change to TARGET_INVALID_WITHIN_DOLOOP.
2082
 
2083
2005-06-09  David Edelsohn  
2084
 
2085
        * config/rs6000/rs6000.md (eq): Convert to define_insn_and_split.
2086
        * config/rs6000/predicates.md (scc_eq_operand): New.
2087
 
2088
2005-06-09  Kaz Kojima  
2089
 
2090
        * config/sh/sh.md (mextr_rl): Set buffer size properly.
2091
        (*mextr_lr): Likewise.
2092
 
2093
2005-06-09  Gabriel Dos Reis  
2094
 
2095
        PR c/21759
2096
        * c.opt (Wc++-compat): New.
2097
        * doc/invoke.texi (-Wc++-compat): Document.
2098
        * c-typeck.c (convert_for_assignment): Check for implicit
2099
        conversion void* -> T*.
2100
 
2101
2005-06-09  Gabriel Dos Reis  
2102
 
2103
        * machmode.h (to_machine_mode): New.
2104
        * rtl.h (to_rtx_code): Likewise.
2105
        * read-rtl.c (apply_mode_macro): Convert mode to machine_mode.
2106
        (print_c_condition): Convert return value of htab_find().
2107
        (apply_code_macro): Add explicit cast when convertin to enums.
2108
        (apply_mode_maps): Likewise.
2109
        (check_code_macro): Likewise.
2110
        (read_rtx_1): Likewise.
2111
 
2112
2005-06-09  Richard Henderson  
2113
 
2114
        * config/ia64/ia64.c (update_set_flags): Just return for IF_THEN_ELSE.
2115
        Use SCALAR_FLOAT_MODE_P.
2116
        * config/ia64/vect.md (vcondv2sf): Remove code check on comparison.
2117
        (fselect): Rename from fpcmp; use %F.
2118
        (fpcmp): New.
2119
 
2120
2005-06-09  Jan Hubicka  
2121
 
2122
        * cgraphunit.c (cgraph_create_edges): Do not walk BLOCK; finalize
2123
        local statics when doing unit-at-a-time.
2124
        (cgraph_varpool_assemble_pending_decls): Output debug info.
2125
        * dwarf2out.c (decls_for_scope): Skip local statics.
2126
        (dwarf2out_decl): Handle local statics.
2127
        * passes.c (rest_of_decl_compilation): Do not differentiate
2128
        local and global statics in unit-at-a-time.
2129
        * tree-inline.c (remap_decls): Put local static into
2130
        unexpanded_vars_list rather than introducing duplicated VAR_DECL
2131
        node.
2132
 
2133
2005-06-09  Daniel Berlin  
2134
 
2135
        * config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Fix
2136
        prototype.
2137
 
2138
2005-06-08  Daniel Berlin  
2139
 
2140
        * Makefile.in (OBJS-common): Add tree-ssa-structalias.o.
2141
        * tree-flow.h (find_what_p_points_to): Add prototype.
2142
        (push_fields_onto_fieldstack): Ditto.
2143
        (sort_fieldstack): Ditto.
2144
        * tree-optimize.c (init_tree_optimization_passes): Add
2145
        pass_build_pta and pass_del_pta.
2146
        * tree-pass.h (pass_build_pta): New structure.
2147
        (pass_del_pta): Ditto.
2148
        * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Disambiguate
2149
        using new alias analyzer.
2150
        (push_fields_onto_fieldstack): Removed from here.
2151
        (bitpos_of_field): Ditto.
2152
        (fieldoff_compare): Ditto.
2153
        * tree-ssa-structalias.c: New file.
2154
        * tree-ssa-structalias.h: Ditto.
2155
 
2156
2005-06-09  Nathan Sidwell  
2157
 
2158
        * c-typeck.c (build_c_cast): Check type punning on COMPONENT_REF
2159
        too.
2160
 
2161
2005-06-09  Bernd Schmidt  
2162
 
2163
        * config/bfin/bfin.c (enum bfin_builtins): Moved here from...
2164
        * config/bfin/bfin.h (enum bfin_builtins): ... here.
2165
 
2166
2005-06-09  Adrian Straetling  
2167
 
2168
        * target.h (insn_valid_within_doloop): Rename into
2169
        "invalid_within_doloop".  Change return type to "const char *".
2170
        Update Comment.
2171
        * targhooks.h (default_insn_valid_within_doloop): Rename into
2172
        "default_invalid_within_doloop".
2173
        * targhooks.c (default_insn_valid_within_doloop): Likewise.
2174
        Update Comment.
2175
        * target-def.h (TARGET_INSN_VALID_WITHIN_DOLOOP): Rename target hook
2176
        into "TARGET_INVALID_WITHIN_DOLOOP". Default it to
2177
        "default_invalid_within_doloop".
2178
        * hooks.c (hook_constcharptr_rtx_null): New function.
2179
        (hook_bool_rtx_true): Remove.
2180
        * hooks.h (hook_constcharptr_rtx_null): Declare.
2181
        (hook_bool_rtx_true): Remove.
2182
        * loop-doloop.c (doloop_valid_p): Temporarily store return value of
2183
        "invalid_within_doloop" and print error message if non-null.
2184
        Update Comment.
2185
        * doc/tm.texi: Update documentation.
2186
        * config/s390/s390.c: Adjust to new hook name and new default hook.
2187
        * config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Rename
2188
        into "rs6000_invalid_within_doloop".
2189
        (rs6000_invalid_within_doloop): Change return type to "static const
2190
        char *" and replace return values.  Update Comment.
2191
 
2192
2005-06-09  Bernd Schmidt  
2193
 
2194
        * config/bfin/bfin.opt (mlong-calls): New.
2195
        * config/bfin/predicates.md (call_insn_operand): Disallow SYMBOL_REF
2196
        if TARGET_LONG_CALLS.
2197
 
2198
2005-06-09  Richard Henderson  
2199
 
2200
        PR tree-opt/20610
2201
        * tree.h (DECL_COMPLEX_GIMPLE_REG_P): New.
2202
        (struct tree_decl): Add gimple_reg_flag.
2203
        * integrate.c (copy_decl_for_inlining): Copy it.
2204
        * gimplify.c (internal_get_tmp_var): Set it.
2205
        (gimplify_bind_expr): Likewise.
2206
        (gimplify_function_tree): Likewise.
2207
        (gimplify_modify_expr_complex_part): New.
2208
        (gimplify_modify_expr): Use it.
2209
        * tree-gimple.c (is_gimple_reg_type): Allow complex.
2210
        (is_gimple_reg): Allow complex with DECL_COMPLEX_GIMPLE_REG_P set.
2211
 
2212
        * tree-complex.c (complex_lattice_t): New.
2213
        (complex_lattice_values, complex_variable_components): New.
2214
        (some_nonzerop, find_lattice_value, is_complex_reg,
2215
        init_parameter_lattice_values, init_dont_simulate_again,
2216
        complex_visit_stmt, complex_visit_phi, create_components,
2217
        update_complex_components, update_parameter_components,
2218
        update_phi_components, update_all_vops, expand_complex_move): New.
2219
        (extract_component): Handle INDIRECT_REF, COMPONENT_REF, ARRAY_REF,
2220
        SSA_NAME.
2221
        (update_complex_assignment): Use update_complex_components;
2222
        handle updates of return_expr properly.
2223
        (expand_complex_addition): Use complex lattice values.
2224
        (expand_complex_multiplication): Likewise.
2225
        (expand_complex_division): Likewise.
2226
        (expand_complex_libcall): Use update_complex_components.
2227
        (expand_complex_comparison): Use update_stmt.
2228
        (expand_complex_operations_1): Use expand_complex_move, retrieve
2229
        lattice values.
2230
        (tree_lower_complex): Compute lattice values.
2231
        (tree_lower_complex_O0): Duplicate from tree_lower_complex.
2232
        (pass_lower_complex_O0): Rename from pass_lower_complex.
2233
        (pass_lower_complex, gate_no_optimization): New.
2234
        * tree-optimize.c (init_tree_optimization_passes): Update for
2235
        complex pass changes.
2236
        * tree-pass.h (pass_lower_complex_O0): Declare.
2237
 
2238
2005-06-08  Dale Johannesen  
2239
 
2240
        * config/darwin.c (darwin_binds_local_p):  New.
2241
        * config/darwin-protos.h (darwin_binds_local_p):  Declare it.
2242
        * config/i386/i386.c (TARGET_BINDS_LOCAL_P):  Use it for TARGET_MACHO.
2243
        * config/rs6000/rs6000.c (rs6000_binds_local_p):  Remove.
2244
        (TARGET_BINDS_LOCAL_P):  Change it to darwin_binds_local_p.
2245
 
2246
2005-06-08  Aldy Hernandez  
2247
 
2248
        * config/rs6000/rs6000.h: Remove rs6000_long_double_size_string,
2249
        rs6000_isel, rs6000_spe, rs6000_alignment_string,
2250
        rs6000_sched_restricted_insns_priority_str,
2251
        rs6000_sched_restricted_insns_priority, rs6000_abi_string.
2252
 
2253
2005-06-08  Zdenek Dvorak  
2254
 
2255
        * tree-ssa-address.c (addr_for_mem_ref): Use LAST_VIRTUAL_REGISTER
2256
        instead of FIRST_PSEUDO_REGISTER for creating pseudoregisters.
2257
        * tree-ssa-loop-ivopts.c (add_cost, multiply_by_cost,
2258
        multiplier_allowed_in_address_p, get_address_cost): Ditto.
2259
 
2260
2005-06-08  Richard Henderson  
2261
 
2262
        * config/ia64/ia64.h (NO_PROFILE_COUNTERS): New.
2263
        * config/ia64/ia64.c (ia64_output_function_profiler): Honor it.
2264
        Emit out3 load right after alloc.
2265
 
2266
2005-06-08  Aldy Hernandez  
2267
 
2268
        * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2269
        rs6000_explicit_options.
2270
 
2271
2005-06-08  Richard Henderson  
2272
 
2273
        * config/ia64/ia64.h (FUNCTION_PROFILER): Move implementation ...
2274
        * config/ia64/ia64.c (ia64_output_function_profiler): ... here; add
2275
        unwind markup.
2276
        * config/ia64/ia64-protos.h (ia64_output_function_profiler): Declare.
2277
 
2278
2005-06-08  Joseph S. Myers  
2279
 
2280
        * config/sol2-c.c (cmn_err_char_table): Allow width for %b
2281
        formats.
2282
 
2283
2005-06-08  James A. Morrison  
2284
 
2285
        PR target/20666
2286
        * config/sparc/sparc.c (sparc_fold_builtin): New function
2287
        (sparc_vis_mul8x16): New function.
2288
        (sparc_handle_vis_mul8x16): New function.
2289
        (TARGET_FOLD_BUILTIN): Define to sparc_fold_builtin.
2290
 
2291
2005-06-08  David Edelsohn  
2292
 
2293
        * config/rs6000/rs6000.md (call_indirect_nonlocal_aix32): Prefer
2294
        CTR to LR.
2295
        (call_indirect_nonlocal_aix64): Same.
2296
        (call_value_indirect_nonlocal_aix32): Same.
2297
        (call_value_indirect_nonlocal_aix64): Same.
2298
 
2299
        PR target/10588
2300
        (eq): Use CLZ splitter for compare with zero.
2301
 
2302
2005-06-08  Bernd Schmidt  
2303
 
2304
        * config/bfin/bfin.c (bfin_return_in_memory): Simplify; return
2305
        everything larger than 8 bytes in memory.
2306
 
2307
        * config/bfin/bfin.h (enum bfin_builtins): New.
2308
        * config/bfin/bfin.md (UNSPEC_VOLATILE_CSYNC, UNSPEC_VOLATILE_SSYNC):
2309
        New constants.
2310
        (csync, ssync): New insn patterns.
2311
        * config/bfin/bfin.c (bfin_init_builtins, bfin_expand_builtin):
2312
        New functions.
2313
        (def_builtin): New macro.
2314
        (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
2315
 
2316
        From Jie Zhang  
2317
        * config/bfin/bfin.h (ASM_OUTPUT_ALIGN): Gas now emulates the
2318
        behavior of the native assembler in VDSP. So change accordingly.
2319
 
2320
2005-06-08  Sebastian Pop  
2321
 
2322
        * tree-data-ref.c (compute_estimated_nb_iterations,
2323
        analyze_array_indexes, compute_overlap_steps_for_affine_1_2,
2324
        analyze_subscript_affine_affine, find_data_references_in_loop):
2325
        Fixed to use chrec_contains_undetermined to test the values of
2326
        loop->estimated_nb_iterations.
2327
        * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
2328
        Compute the estimation only when loop->estimated_nb_iterations
2329
        has not yet been initialized.
2330
        (convert_step_widening, scev_probably_wraps_p): Add a call to
2331
        estimate_numbers_of_iterations_loop.
2332
        * tree-vrp.c (execute_vrp): Don't call estimate_numbers_of_iterations.
2333
 
2334
2005-06-08  Eric Botcazou  
2335
 
2336
        PR debug/21946
2337
        * dwarf2out.c (add_loc_descr_op_piece): Move to the
2338
        DWARF2_DEBUGGING_INFO section.
2339
 
2340
2005-06-08  Richard Henderson  
2341
 
2342
        PR target/21721
2343
        * config/ia64/ia64.c (emit_predicate_relation_info): Skip p0.
2344
 
2345
2005-06-08  Eric Botcazou  
2346
 
2347
        PR target/21889
2348
        * target.h (gcc_target) : New field output_dwarf_dtprel.
2349
        * target-def.h (TARGET_ASM_OUTPUT_DWARF_DTPREL): New macro.
2350
        (TARGET_ASM_OUT): Add it.
2351
        * doc/tm.texi (Debugging Info): Document it.
2352
        * dwarf2out.c (output_loc_operands) :
2353
        Test it instead of ASM_OUTPUT_DWARF_DTPREL.
2354
        (loc_descriptor_from_tree_1) : Likewise.
2355
        * system.h: Poison ASM_OUTPUT_DWARF_DTPREL.
2356
        * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Delete.
2357
        * config/frv/frv.c (frv_output_dwarf_dtprel): Make static and unused.
2358
        (gen_inlined_tls_plt): Remove unused variable MEM.
2359
        (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to frv_output_dwarf_dtprel.
2360
        * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2361
        * config/i386/i386-protos.h (i386_output_dwarf_dtprel): Delete.
2362
        * config/i386/i386.c (i386_output_dwarf_dtprel): Make static and
2363
        unused.
2364
        (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to i386_output_dwarf_dtprel.
2365
        * config/i386/i386.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2366
        * config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): Delete.
2367
        * config/ia64/ia64.c (ia64_output_dwarf_dtprel): Make static and
2368
        unused.
2369
        (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to ia64_output_dwarf_dtprel.
2370
        * config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2371
        * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Delete.
2372
        * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Make static and
2373
        unused.
2374
        (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to rs6000_output_dwarf_dtprel
2375
        * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2376
        * config/s390/s390-protos.h (s390_output_dwarf_dtprel): Delete.
2377
        * config/s390/s390.c (s390_output_dwarf_dtprel): Make static and
2378
        unused.
2379
        (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to s390_output_dwarf_dtprel.
2380
        * config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2381
        * config/sparc/sol2-gas.h (TARGET_SUN_TLS): Define to 0.
2382
        (TARGET_GNU_TLS): Define to 1.
2383
        * config/sparc/sparc-protos.h (sparc_output_dwarf_dtprel): Delete.
2384
        * config/sparc/sparc.c (sparc_output_dwarf_dtprel): Make static and
2385
        unused.
2386
        (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to sparc_output_dwarf_dtprel
2387
        if TARGET_GNU_TLS only.
2388
        * config/sparc/sparc.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2389
 
2390
        * config.gcc (sparc64-*-solaris2*): Include tm-dwarf2.h last.
2391
        (sparc-*-solaris2*): Likewise on Solaris 7 and up.
2392
 
2393
2005-06-07  Dale Johannesen  
2394
 
2395
        * config/i386/i386.md (movqi_1):  Fix case where source
2396
        is memory and destination EDI.
2397
 
2398
2005-06-08  Kazu Hirata  
2399
 
2400
        * config/c4x/c4x.h (PREDICATE_CODES): Remove mem_operand.
2401
 
2402
2005-06-07  Eric Christopher  
2403
 
2404
        * system.h: Poison EXTRA_CC_MODES.
2405
        * config/frv/frv.h (SELECT_CC_MODE): Rewrite comment.
2406
        * config/ia64/ia64.h (SELECT_CC_MODE): Ditto.
2407
        * doc/md.texi (Jump Patterns): Replace reference to
2408
        EXTRA_CC_MODES with machine-modes.def.
2409
        * doc/rtl.texi (Machine Modes): Ditto.
2410
 
2411
2005-06-07  Richard Henderson  
2412
 
2413
        * varasm.c (initialize_cold_section_name): Fix alloca buffer overflow.
2414
        (assemble_start_function): Fix strcmp confusion.
2415
 
2416
2005-06-07  Uros Bizjak  
2417
 
2418
        * config/i386/i386.h (enum ix86_entity): New.
2419
        (enum ix86_stack_slot): New.
2420
        (OPTIMIZE_MODE_SWITCHING): Redefine to use
2421
        ix86_optimize_mode_switching[] array.
2422
        (NUM_MODES_FOR_MODE_SWITCHING): Redefine for 4 entities.
2423
        (MODE_NEEDED): Use ix86_mode_needed() function.
2424
        (EMIT_MODE_SET): Redefine for changed emit_i387_cw_initialization ()
2425
        function.
2426
        (struct machine_function): Use optimize_mode_switching[] array.
2427
 
2428
        * config/i386/i386.c (MAX_386_STACK_LOCALS): Remove.
2429
        (ix86_mode_needed): New function.
2430
        (emit_i387_cw_initialization): Cleanup. Use mode to calculate
2431
        correct stack positions for stored control words.
2432
        (assign_386_stack_local): Use enum ix86_stack_slot. Change assert.
2433
        (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR]: Change constant to
2434
        SLOT_TEMP.
2435
        [IX86_BUILTIN_STMXCSR]: Same.
2436
 
2437
        * config/i386/i386-protos.h (assign_stack_local): Change prototype.
2438
        (emit_i387_cw_initialization): Change prototype.
2439
        (ix86_mode_needed): New prototype.
2440
 
2441
        * config/i386/i386.md (i387_cw attribute): Change order of elements.
2442
        (truncdfsf2, truncxfsf2, truncxfdf2, fix_trunc_fisttp_i387_1)
2443
        (*fix_trunc_i387_1, lrint2, *fist2_floor_1)
2444
        (*fist2_ceil_1): Change constant in call to
2445
        assign_386_stack_local to SLOT_TEMP.
2446
        (*fix_trunc_i387_1): Change constant in call to
2447
        assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
2448
        Use new ix86_optimize_mode_switching[] array.
2449
        (frndintxf2_floor, *fist2_floor_1): Change constants in call to
2450
        assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_FLOOR.
2451
        Use new ix86_optimize_mode_switching[] array.
2452
        (frndintxf2_ceil, *fist2_ceil_1):  Change constants in call to
2453
        assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_CEIL.
2454
        Use new ix86_optimize_mode_switching[] array.
2455
        (frndintxf2_trunc): Change constants in call to
2456
        assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
2457
        Use new ix86_optimize_mode_switching[] array.
2458
        (frndintxf2_mask_pm): Change constants in call to
2459
        assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_MASK_PM.
2460
        Use new ix86_optimize_mode_switching[] array.
2461
 
2462
        (define_peephole2): Change constant from 17 to FLAGS_REG;
2463
 
2464
2005-06-07  Richard Henderson  
2465
 
2466
        PR rtl-opt/21528
2467
        * rtlanal.c (reg_overlap_mentioned_p) : Handle 'E' formats.
2468
 
2469
2005-06-07  Dale Johannesen  
2470
 
2471
        * tree-nested.c (finalize_nesting_tree_1):  Disable
2472
        warn_padded around layout_type call.
2473
 
2474
2005-06-08  Zdenek Dvorak  
2475
 
2476
        * tree-ssa-loop-ivopts.c (rewrite_use_outer): Unshare the expression
2477
        before emiting it.
2478
 
2479
2005-06-07  Eric Christopher  
2480
 
2481
        * config/mips/predicates.md: Revert previous patch.
2482
 
2483
2005-06-07  Jakub Jelinek  
2484
 
2485
        PR middle-end/21850
2486
        * tree.c (get_unwidened): Stop at NOP_EXPR/CONVERT_EXPR that convert
2487
        from vector types.
2488
 
2489
2005-06-07  Diego Novillo  
2490
 
2491
        * tree-ssa-threadupdate.c (struct thread_stats_d): Declare.
2492
        (thread_stats): New local variable.
2493
        (redirect_edges): Increment count of threaded edges.
2494
        (thread_through_all_blocks): Initialize thread_stats.
2495
        Display number of threaded jumps if TDF_STATS is enabled.
2496
 
2497
2005-06-07  Kazu Hirata  
2498
 
2499
        * sbitmap.h (sbitmap_iter_init): Consistently treat bit_num as
2500
        the current bit index with no modulo.
2501
 
2502
2005-06-07  Sebastian Pop  
2503
 
2504
        PR 18403 and meta PR 21861.
2505
        * Makefile.in (tree-chrec.o): Depend on CFGLOOP_H and TREE_FLOW_H.
2506
        * tree-chrec.c: Include cfgloop.h and tree-flow.h.
2507
        (evolution_function_is_invariant_rec_p,
2508
        evolution_function_is_invariant_p): New.
2509
        (chrec_convert): Use an extra parameter AT_STMT for refining the
2510
        information that is passed down to convert_step.  Integrate the
2511
        code that was in count_ev_in_wider_type.
2512
        * tree-chrec.h (count_ev_in_wider_type): Removed.
2513
        (chrec_convert): Modify its declaration.
2514
        (evolution_function_is_invariant_p): Declared.
2515
        (evolution_function_is_affine_p): Use evolution_function_is_invariant_p.
2516
        * tree-flow.h (can_count_iv_in_wider_type): Renamed convert_step.
2517
        (scev_probably_wraps_p): Declared.
2518
        * tree-scalar-evolution.c (count_ev_in_wider_type): Removed.
2519
        (follow_ssa_edge_in_rhs, interpret_rhs_modify_expr):
2520
        Use an extra parameter AT_STMT for refining the information that is
2521
        passed down to convert_step.
2522
        (follow_ssa_edge_inner_loop_phi, follow_ssa_edge,
2523
        analyze_scalar_evolution_1): Initialize AT_STMT with the current
2524
        analyzed statement.
2525
        (instantiate_parameters_1): Don't know yet how to initialize AT_STMT.
2526
        * tree-ssa-loop-ivopts.c (idx_find_step): Update the use of
2527
        can_count_iv_in_wider_type to use convert_step.
2528
        * tree-ssa-loop-niter.c (can_count_iv_in_wider_type_bound): Move
2529
        code that is independent of the loop over the known iteration
2530
        bounds to convert_step_widening, the rest is moved to
2531
        proved_non_wrapping_p.
2532
        (scev_probably_wraps_p): New.
2533
        (can_count_iv_in_wider_type): Renamed convert_step.
2534
        * tree-vrp.c (adjust_range_with_scev): Take an extra AT_STMT parameter.
2535
        Use scev_probably_wraps_p for computing init_is_max.
2536
        (vrp_visit_assignment): Pass the current analyzed statement to
2537
        adjust_range_with_scev.
2538
        (execute_vrp): Call estimate_numbers_of_iterations for refining the
2539
        information provided by scev analyzer.
2540
 
2541
2005-06-07  Eric Christopher  
2542
 
2543
        * config/mips/predicates.md (sleu_operand): Use
2544
        IN_RANGE to specify range of operand.
2545
 
2546
2005-06-07  Steven Bosscher  
2547
 
2548
        PR tree-optimization/21847
2549
        * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): With
2550
        -fnon-call-exceptions, also mark statements inherently
2551
        necessary if they may throw.
2552
 
2553
2005-06-07  Adrian Straetling  
2554
 
2555
        * config/s390/s390.md: ("UNSPECV_MB", "UNSPECV_CAS"): New constants.
2556
        ("type"): Add "sem" to 'type' attribute.
2557
        ("memory_barrier", "*memory_barrier", "sync_compare_and_swapdi",
2558
        "sync_compare_and_swapsi", "sync_compare_and_swap_ccdi",
2559
        "sync_compare_and_swap_ccsi", "*sync_compare_and_swap_ccdi",
2560
        "*sync_compare_and_swap_ccsi"): New patterns.
2561
        * config/s390/2064.md: ("z_sem"): New insn_reservation.
2562
        * config/s390/2084.md: ("x_sem"): New insn_reservation.
2563
        * config/s390/s390.c: (s390_compare_emitted): New global variable.
2564
        (s390_emit_compare): Do not emit comparison again after cas.
2565
        * config/s390/s390.h (s390_compare_emitted): Declare.
2566
 
2567
2005-06-07  Kazu Hirata  
2568
 
2569
        * sbitmap.h (sbitmap_iterator, sbitmap_iter_init,
2570
        sbitmap_iter_cond, sbitmap_iter_next): New.
2571
        * bt-load.c, cfganal.c, combine.c, ddg.c, flow.c,
2572
        modulo-sched.c, sbitmap.c, sched-rgn.c, tree-into-ssa.c,
2573
        tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Update
2574
        uses of EXECUTE_IF_SET_IN_SBITMAP to the new style.
2575
 
2576
2005-06-07  Zdenek Dvorak  
2577
 
2578
        * tree-ssa-address.c: New file.
2579
        * Makefile.in (tree-ssa-address.o): Add.
2580
        * expr.c (expand_expr_real_1): Do not handle REF_ORIGINAL on
2581
        INDIRECT_REFs.  Handle TARGET_MEM_REFs.
2582
        * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REFs.
2583
        * tree-flow.h (struct mem_address): New.
2584
        (struct affine_tree_combination): Moved from tree-ssa-loop-ivopts.c.
2585
        (create_mem_ref, addr_for_mem_ref, get_address_description,
2586
        maybe_fold_tmr, multiplier_allowed_in_address_p,
2587
        multiply_by_cost):  Declare.
2588
        * tree-mudflap.c (mf_xform_derefs_1): Handle TARGET_MEM_REFs.
2589
        * tree-pretty-print.c (dump_generic_node): Ditto.
2590
        * tree-ssa-loop-im.c (for_each_index): Ditto.
2591
        * tree-ssa-loop-ivopts.c (may_be_unaligned_p,
2592
        find_interesting_uses_address): Ditto.
2593
        (rewrite_address_base, build_addr_strip_iref): Removed.
2594
        (struct affine_tree_combination): Moved to tree-flow.h.
2595
        (get_ref_tag, copy_ref_info): New functions.
2596
        (rewrite_use_address): Produce TARGET_MEM_REFs.
2597
        (tree_ssa_iv_optimize): Do not call update_ssa
2598
        and rewrite_into_loop_closed_ssa.
2599
        (tree_to_aff_combination): Use build_fold_addr_expr instead of
2600
        build_addr_strip_iref.
2601
        (unshare_aff_combination): New function.
2602
        (fold_affine_sum): Removed.
2603
        (get_computation_at): Use get_computation_aff.  Unshare the result.
2604
        (get_computation_aff, multiplier_allowed_in_address_p): New function.
2605
        (multiply_by_cost): Exported.
2606
        (get_address_cost): Use multiplier_allowed_in_address_p.
2607
        * tree-ssa-operands.c (get_tmr_operands): New function.
2608
        (get_expr_operands): Handle TARGET_MEM_REFs.
2609
        * tree.c (copy_node_stat): Copy annotations for TARGET_MEM_REFs.
2610
        (build): Handle 7 arguments.
2611
        (build7_stat): New function.
2612
        * tree.def (TARGET_MEM_DEF): New.
2613
        * tree.h (REF_ORIGINAL): Removed.
2614
        (TMR_SYMBOL, TMR_BASE, TMR_INDEX, TMR_STEP, TMR_OFFSET, TMR_ORIGINAL,
2615
        TMR_TAG, build7): New macros.
2616
        (build7_stat, tree_mem_ref_addr, copy_mem_ref_info): Declare.
2617
        * tree-ssa-ccp.c (fold_stmt_r): Call maybe_fold_tmr.
2618
        * doc/c-tree.texi: Document TARGET_MEM_REF.
2619
        * doc/tree-ssa.texi: Add TARGET_MEM_REF to gimple grammar.
2620
 
2621
2005-06-07  Jakub Jelinek  
2622
 
2623
        PR debug/21946
2624
        * dwarf2out.c (add_loc_descr_op_piece): New function.
2625
        (multiple_reg_loc_descriptor, concat_loc_descriptor,
2626
        loc_descriptor): Use it.
2627
        * var-tracking.c: Include regs.h and expr.h.
2628
        (emit_note_insn_var_location): Skip over pieces where offset
2629
        is smaller than previous offset plus previous piece mode size.
2630
        Optimize adjacent hard registers or memory locations.
2631
        * Makefile.in (var-tracking.o): Depend on $(REGS_H) and $(EXPR_H).
2632
 
2633
2005-06-07  Richard Guenther  
2634
 
2635
        * c-typeck.c (c_finish_if_stmt): Use void_type_node as type
2636
        for COND_EXPR.
2637
        * gimplify.c (gimplify_cond_expr): No need to fix up the
2638
        type of COND_EXPRs.
2639
 
2640
2005-06-07  Richard Guenther  
2641
 
2642
        * tree-ssa.c (tree_ssa_useless_type_conversion_1): Fix
2643
        comments.
2644
 
2645
2005-06-07  Geoffrey Keating  
2646
 
2647
        * config/rs6000/host-darwin.c (segv_handler): Widen the possible
2648
        'stwux' instructions that are considered to be stack decrements.
2649
 
2650
        * rtlanal.c (subreg_offset_representable_p): Handle objects
2651
        with holes.
2652
 
2653
2005-06-06  Uros Bizjak  
2654
 
2655
        * mode-switching.c (optimize_mode_switching): Fix n_exprs parameter
2656
        in call to pre_edge_lcm.
2657
 
2658
2005-06-06  Kaz Kojima  
2659
 
2660
        * config/sh/linux-unwind.h (SH_DWARF_FRAME_XD0): Remove for SH5.
2661
        (SH_DWARF_FRAME_PR, SH_DWARF_FRAME_GBR, SH_DWARF_FRAME_MACL)
2662
        (SH_DWARF_FRAME_MACH, SH_DWARF_FRAME_PC, SH_DWARF_FRAME_FPUL):
2663
        Likewise.
2664
        (SH_DWARF_FRAME_FP0, SH_DWARF_FRAME_FPSCR): Define to the correct
2665
        dwarf register number for SHmedia.
2666
        (shmedia_fallback_frame_state): New.
2667
        (MD_FALLBACK_FRAME_STATE_FOR): Define to it for SH5.
2668
 
2669
        * config/sh/linux.h (FUNCTION_PROFILER): Provide SHMEDIA version.
2670
 
2671
2005-06-06  Gabriel Dos Reis  
2672
 
2673
        * c-lex.c (lex_string): Use XOBFINISH.
2674
        * collect2.c (extract_string, dump_file): Likewise.
2675
        * dbxout.c (dbxout_finish_complex_stabs): Likewise.
2676
        * gcc.c (init_spec, build_search_list, convert_filename,
2677
        set_collect_gcc_options, do_spec_2, do_spec_1, main): Likewise.
2678
        * genpreds.c (write_predicate_subfunction): Likewise.
2679
        * genflags.c (main): Likewise.
2680
        * read-rtl.c (mode_attr_index, apply_macro_to_string,
2681
        join_c_conditions, read_quoted_string, read_braced_string,
2682
        read_rtx_1): Likewise.
2683
        * stringpool.c (ggc_alloc_string): Likewise.
2684
        * tlink.c (obstack_fgets, recompile_files): Likewise.
2685
 
2686
2005-06-06  Jakub Jelinek  
2687
 
2688
        * intl.h (G_): New macro.
2689
        * rtl-error.c (error_for_asm, warning_for_asm): Use gmsgid
2690
        instead of msgid for argument name.
2691
        * tree-ssa.c (warn_uninit): Likewise.
2692
        * c-parser.c (c_parser_error): Likewise.
2693
        * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
2694
        * config/darwin-c.c (BAD): Likewise.
2695
        * config/c4x/c4x-c.c (BAD): Likewise.
2696
        * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
2697
        * c-errors.c (pedwarn_c99, pedwarn_c90): Likewise.
2698
        * c-common.c (c_parse_error): Likewise.
2699
        * diagnostic.c (diagnostic_set_info, verbatim, inform, warning,
2700
        warning0, pedwarn, error, sorry, fatal_error, internal_error):
2701
        Likewise.
2702
        (fnotice): Use cmsgid instead of msgid for argument name.
2703
        * gcov.c (fnotice): Likewise.
2704
        * protoize.c (notice): Likewise.
2705
        * final.c (output_operand_lossage): Likewise.
2706
        * gcc.c (fatal, notice): Likewise.
2707
        (error): Use gmsgid instead of msgid for argument name.
2708
        * collect2.c (notice, fatal_perror, fatal): Use cmsgid instead
2709
        of msgid for argument name.
2710
        (error): Use gmsgid instead of msgid for argument name.
2711
        * c-decl.c (locate_old_decl, implicit_decl_warning): Use G_()
2712
        instead of N_().
2713
        * c-typeck.c (readonly_error, convert_for_assignment): Likewise.
2714
        * tree-inline.c (inline_forbidden_p_1): Likewise.
2715
        * ABOUT-GCC-NLS: Require gettext 0.14.5 or later.  Mention the new
2716
        conventions for marking translations.
2717
        * doc/install.texi: Mention gettext 0.14.5 or later requirement.
2718
 
2719
        * tree-chrec.c (reset_evolution_in_loop): Use build3 instead of
2720
        build2.
2721
 
2722
        * fold-const.c (operand_equal_p): Don't return 1, if element
2723
        chains for 2 VECTOR_CSTs are not the same length.
2724
 
2725
        PR regression/21897
2726
        * fold-const.c (fold_ternary) : Don't crash if
2727
        not all VECTOR_CST elements are given.
2728
 
2729
        * combine.c (try_combine): Use hard_regno_nregs array instead of
2730
        HARD_REGNO_NREGS macro.
2731
        * config/rs6000/rs6000.c (rs6000_split_multireg_move,
2732
        rs6000_register_move_cost, rs6000_memory_move_cost): Likewise.
2733
        * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
2734
 
2735
2005-06-06  Daniel Berlin  
2736
 
2737
        * tree-ssa-reassoc.o: New.
2738
        (OBJS-common): Add tree-ssa-reassoc.o
2739
        * timevar.def: Add TV_TREE_REASSOC
2740
        * tree-optimize.c (pass_reassoc): Add call.
2741
        * tree-pass.h (pass_reassoc): Add.
2742
        * tree-ssa-reassoc.c: New file.
2743
 
2744
2005-06-06  Eric Christopher  
2745
 
2746
        target/21927
2747
        * expr.c (do_store_flag): Remove check for non-negative BRANCH_COST.
2748
 
2749
2005-06-06  Rainer Orth  
2750
 
2751
        * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard with
2752
        HAVE_GAS_MAX_SKIP_P2ALIGN.
2753
        (HAVE_AS_DWARF2_DEBUG_LINE): Remove.
2754
 
2755
2005-06-06  Rainer Orth  
2756
 
2757
        * Makefile.in (mips-tfile.o): Add $(srcdir)/../include prefix to
2758
        getopt.h dependency.
2759
        (mips-tdump.o): Likewise.
2760
 
2761
2005-06-06  Jan Hubicka  
2762
 
2763
        * predict.c (tree_predict_edge): Don't drop useless predictions;
2764
        check that it is not called too late in the game.
2765
        (gate_estimate_probability): New gate.
2766
        (pass_profile): Gate.
2767
        * tree-mudflap.c (mf_build_check_statement_for): Do not drop
2768
        predictions; update CFG instead.
2769
        * cfgrtl.c (rtl_verify_flow_info): Check that predcitions are consumed.
2770
 
2771
2005-06-06  Jie Zhang  
2772
 
2773
        * config.gcc (bfin*-uclinux*): New.
2774
        * config/bfin/uclinux.h: New file.
2775
 
2776
2005-06-06  Ben Elliston  
2777
 
2778
        * doc/md.texi (Insn Splitting): Fix some wording.
2779
 
2780
2005-06-05  David Edelsohn  
2781
 
2782
        * config/rs6000/rs6000.c (rs6000_emit_swdivsf): New function.
2783
        (rs6000_emit_swdivdf): New function.
2784
        * config/rs6000/rs6000.md (fres): New pattern.
2785
        (divsf3): Add approximation through rs6000_emit_swdivsf.
2786
        (fred): New pattern.
2787
        (divdf3): Add approximation through rs6000_emit_swdivdf.
2788
        * config/rs6000/rs6000-protos.h (rs6000_emit_swdivsf): Declare.
2789
        (rs6000_emit_swdivdf): Declare.
2790
        * config/rs6000/rs6000.opt (mswdiv): New option.
2791
        * doc/invoke.texi (RS/6000 and PowerPC Options): Document mswdiv.
2792
 
2793
2005-06-05  Zdenek Dvorak  
2794
 
2795
        PR tree-optimization/21846
2796
        * tree-cfg.c (replace_uses_by): Update information stored at loops.
2797
        * tree-flow.h (substitute_in_loop_info): Declare.
2798
        * tree-scalar-evolution.c (initialize_scalar_evolutions_analyzer):
2799
        Ensure that chrec_dont_know and chrec_known have a type.
2800
        * tree-ssa-loop-niter.c (substitute_in_loop_info): New function.
2801
 
2802
2005-06-05  Steven Bosscher  
2803
 
2804
        * config/i386/i386.c (x86_use_loop): Remove.
2805
        * config/i386/i386.h (x86_use_loop): Remove extern decl.
2806
        (TARGET_USE_LOOP): Remove.
2807
        * config/i386/i386.md (doloop_end, doloop_end_internal): Remove.
2808
        Also remove related define_splits.
2809
 
2810
2005-06-05  Dorit Nuzman  
2811
 
2812
        * tree-flow.h (stmt_ann_d): Move aux to ...
2813
        (tree_ann_common_d): ... here.
2814
        * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
2815
        move_computations_stmt, schedule_sm): Update references to
2816
        aux.
2817
        * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
2818
        * tree-vect-transform.c (vect_create_index_for_vector_ref): Update
2819
        call to set_stmt_info.
2820
        (vect_transform_loop): Likewise.
2821
        * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info):
2822
        Likewise.
2823
 
2824
        * tree-vect-analyze.c (vect_analyze_scalar_cycles): Made void instead of
2825
        bool.
2826
        (vect_mark_relevant): Takes two additional arguments - live_p and
2827
        relevant_p. Set RELEVANT_P and LIVE_P according to these arguments.
2828
        (vect_stmt_relevant_p): Differentiate between a live stmt and a
2829
        relevant stmt. Return two values = live_p and relevant_p.
2830
        (vect_mark_stmts_to_be_vectorized): Call vect_mark_relevant and
2831
        vect_stmt_relevant_p with additional arguments. Phis are no longer
2832
        put into the worklist (analyzed seperately in analyze_scalar_cycles).
2833
        (vect_determine_vectorization_factor): Also check for LIVE_P, because a
2834
        stmt that is marked as irrelevant and live, cause it's only used out
2835
        side the loop, may need to be vectorized (e.g. reduction).
2836
        (vect_analyze_operations): Examine phis. Call
2837
        vectorizable_live_operation for for LIVE_P stmts. Check if
2838
        need_to_vectorize.
2839
        (vect_analyze_scalar_cycles): Update documentation. Don't fail
2840
        vectorization - just classify the scalar cycles created by the loop
2841
        phis. Call vect_is_simple_reduction.
2842
        (vect_analyze_loop): Call to analyze_scalar_cycles moved earlier.
2843
        * tree-vect-transform.c (vect_create_index_for_vector_ref): Update
2844
        call to set_stmt_info.
2845
        (vect_get_vec_def_for_operand): Code reorganized - the code that
2846
        classifies the type of use was factored out to vect_is_simple_use.
2847
        (vectorizable_store, vect_is_simple_cond): Call vect_is_simple_use with
2848
        additional arguments.
2849
        (vectorizable_assignment): Likewise. Also make sure the stmt is relevant
2850
        and computes a loop_vec_def.
2851
        (vectorizable_operation, vectorizable_load, vectorizable_condition):
2852
        Likewise.
2853
        (vectorizable_live_operation): New.
2854
        (vect_transform_stmt): Handle LIVE_P stmts.
2855
        * tree-vectorizer.c (new_stmt_vec_info): Initialize the new fields
2856
        STMT_VINFO_LIVE_P and STMT_VINFO_DEF_TYPE.
2857
        (new_loop_vec_info, destroy_loop_vec_info): Also handle phis.
2858
        (vect_is_simple_use): Determine the type of the def and return it
2859
        in a new function argument. Consider vect_reduction_def and
2860
        vect_induction_def, but for now these are not supported.
2861
        (vect_is_simple_reduction): New. Empty for now.
2862
        * tree-vectorizer.h (vect_def_type): New enum type.
2863
        (_stmt_vec_info): Added new fields - live and _stmt_vec_info.
2864
        (STMT_VINFO_LIVE_P, STMT_VINFO_DEF_TYPE): New accessor macros.
2865
        (vect_is_simple_use): New arguments added to function declaration.
2866
        (vect_is_simple_reduction): New function declaration.
2867
        (vectorizable_live_operation): New function declaration.
2868
 
2869
        * tree-vect-analyze.c (vect_can_advance_ivs_p): Add debug printout.
2870
        (vect_can_advance_ivs_p): Likewise.
2871
        * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Likewise.
2872
 
2873
2005-06-05  Eric Christopher  
2874
 
2875
        * config/mips/mips.c (mips_rtx_costs): Remove unused variable.
2876
 
2877
2005-06-05  Hans-Peter Nilsson  
2878
 
2879
        PR target/21914
2880
        * config/mmix/mmix.md ("*movdicc_real_foldable")
2881
        ("*movdfcc_real_foldable", "*bCC_foldable")
2882
        ("*bCC_inverted_foldable"): Specify DImode for register being
2883
        compared.
2884
 
2885
2005-06-04  Roger Sayle  
2886
 
2887
        * reg-stack.c (struct block_info_def): Correct grammar typo.
2888
        (compensate_edge): Clean-up.  Perform as little work as possible
2889
        when src and dest stacks match.  Avoid modifying block_info.
2890
        Reorder and simplify assertion checks.  Avoid unnecessary copying
2891
        of regstack structure.
2892
        (convert_regs_1): Set the done flag here...
2893
        (convert_regs_2): ... instead of here.
2894
 
2895
2005-06-04  Dale Johannesen  
2896
 
2897
        * config/rs6000/rs6000.c (no_global_regs_above): New.
2898
        (rs6000_emit_prologue):  Use it; cosmetic formatting fixes.
2899
        (rs6000_emit_epilogue):  Use it; cosmetic formatting fixes.
2900
        (rs6000_conditional_register_usage): Don't put Darwin PIC
2901
        register in global_regs.
2902
        (rs6000_stack_info):  Don't set lr_save_p just because Darwin
2903
        PIC reg used.
2904
        (rs6000_emit_prologue):  Save LR in R0 around Darwin PIC setup,
2905
        if not done by lr_save_p.
2906
        * config/rs6000/rs6000.md (insnv1_internal1):  Back out 05-18 patch.
2907
        Use rotate instead of ashift.
2908
        (call_indirect_nonlocal_sysv):  Prefer CTR to LR.
2909
        (call_value_indirect_nonlocal_sysv):  Ditto.
2910
 
2911
2005-06-04  Jan Hubicka  
2912
 
2913
        * cgraphunit.c (cgraph_reset_node): Break out from ...
2914
        (cgraph_finalize_function): ... here.
2915
        (cgraph_finalize_compilation_unit): Reset nodes where backend
2916
        removed the body.
2917
 
2918
2005-06-04  Richard Henderson  
2919
 
2920
        PR target/21888
2921
        * config/alpha/alpha.c (alpha_align_insns): Don't insert nops
2922
        until we've passed initial ldgp.
2923
 
2924
2005-06-04  Daniel Berlin  
2925
 
2926
        * cfgexpand.c (expand_one_var): Use DECL_HAS_VALUE_EXPR_P.
2927
        * dwarf2out.c (loc_descriptor_from_tree_1): Ditto.
2928
        * expr.c (expand_var): Ditto.
2929
        * function.c (gimplify_parameters): Use SET_DECL_VALUE_EXPR too.
2930
        * gimplify.c (gimplify_decl_expr): Ditto.
2931
        (gimplify_expr): Ditto.
2932
        * tree-mudflap.c (mf_decl_eligible_p): Use DECL_HAS_VALUE_EXPR_P.
2933
        * tree.c (value_expr_for_decl): New.
2934
        (print_value_expr_statistics): New.
2935
        (init_ttree): Init value_expr_for_decl.
2936
        (decl_value_expr_lookup): New.
2937
        (decl_value_expr_insert): Ditto.
2938
        (copy_node_stat): Copy DECL_VALUE_EXPR status.
2939
        * tree.h (DECL_VALUE_EXPR): Use hashtable.
2940
        (SET_DECL_VALUE_EXPR): New.
2941
        (DECL_HAS_VALUE_EXPR_P): New.
2942
 
2943
2005-06-04  Steven Bosscher  
2944
 
2945
        * lcm.c: Move all mode-switching related functions from here...
2946
        * mode-switching.c: ...to this new file.
2947
        * doc/passes.texi: Update accordingly.
2948
 
2949
        * basic-block.h (label_value_list): Remove extern decl.
2950
        * cfgrtl.c (label_value_list): Remove.
2951
        (can_delete_label_p): Don't look at it.
2952
        * cfgcleanup.c (cleanup_cfg): Don't free it.
2953
 
2954
        * common.opt: Don't refer to non-existing flag_alias_check.
2955
 
2956
2005-06-04  David Edelsohn  
2957
 
2958
        * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power5.
2959
 
2960
2005-06-04  Kazu Hirata  
2961
 
2962
        * function.c (prologue, epilogue, sibcall_epilogue): Change
2963
        their types to VEC(int,heap)*.
2964
        (free_after_compilation): Free the three vectors above.
2965
        (init_function_for_compilation, record_insns, contains,
2966
        prologue_epilogue_contains, sibcall_epilogue_contains,
2967
        reposition_prologue_and_epilogue_notes): Use VEC instead of
2968
        VARRAY.  (init_function_once): Remove.
2969
        * function.h: Remove the prototype for init_function_once.
2970
        * toplev.c (backend_init): Don't call init_function_once.
2971
 
2972
2005-06-04  Jan Hubicka  
2973
 
2974
        * predict.c (tree_predict_edge): Do not predict entry edge and
2975
        single succestor edge.
2976
 
2977
2005-06-04  Joseph S. Myers  
2978
 
2979
        PR c/21873
2980
        * c-typeck.c (push_init_level): Don't pop levels without braces if
2981
        implicit == 1.
2982
 
2983
2005-06-03  Sebastian Pop  
2984
 
2985
        * tree-data-ref.c (compute_self_dependence): New function.
2986
        (compute_all_dependences): Use it.
2987
 
2988
2005-06-03  Geoffrey Keating  
2989
 
2990
        * c-parser.c (c_parser_parms_declarator): Don't use chainon().
2991
        (c_parser_expr_list): Don't use chainon().
2992
 
2993
        * config/darwin.h (LINK_SPEC): Pass -syslibroot to linker
2994
        when -isysroot passed.
2995
 
2996
2005-06-03  Joseph S. Myers  
2997
 
2998
        PR c/21879
2999
        * c-decl.c (start_function): Restore label_context_stack_se and
3000
        label_context_stack_vm  if returning with an error.
3001
 
3002
2005-06-03  Gabriel Dos Reis  
3003
 
3004
        * configure.ac: Check declaration for asprintf, needed by
3005
        libiberty.h.
3006
        * configure: Regenerate.
3007
        * config.in: Likewise.
3008
 
3009
2005-06-03  Diego Novillo  
3010
 
3011
        * tree-ssa-dom.c (record_edge_info): Use last_basic_block to
3012
        allocate info array.
3013
        * tree-vrp.c (extract_range_from_unary_expr): Set resulting
3014
        range to varying in cast expressions that change
3015
        TYPE_PRECISION.
3016
 
3017
2005-06-03  Eric Christopher  
3018
 
3019
        * config/mips/mips.opt: Add RejectNegative to divide-breaks and
3020
        divide-traps.
3021
 
3022
2005-06-03  Jan Hubicka  
3023
 
3024
        * basic-block.h (remove_predictions_associated_with_edge): Declare.
3025
        * cfg.c (remove_edge): Use it.
3026
        * predict.c (remove_predictions_associated_with_edge): New function.
3027
 
3028
2005-06-03  Pat Haugen  
3029
 
3030
        * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
3031
        Clear call_realy_used_regs[r2] when ABI_AIX.
3032
 
3033
2005-06-03  Richard Guenther  
3034
 
3035
        PR middle-end/21858
3036
        * fold-const.c (fold_binary): Fix type mismatches in folding
3037
        of comparisons.
3038
 
3039
2005-06-03  Kazu Hirata  
3040
 
3041
        * cgraph.c, cgraphunit.c, config/mips/mips.c: Fix comment
3042
        typos.
3043
 
3044
2005-06-03  Joseph S. Myers  
3045
 
3046
        * collect2.c (maybe_unlink): Use unlink_if_ordinary.
3047
 
3048
2005-06-02  Bernd Schmidt  
3049
 
3050
        * reload1.c (reload): Revert my previous patch.
3051
 
3052
2005-06-03  Nick Clifton  
3053
 
3054
        * config/arm/semi.h (ASM_SPEC): Fix typo passing -mfloat-abi to
3055
        assembler.
3056
 
3057
2005-06-03  Kazu Hirata  
3058
 
3059
        PR tree-optimization/21849
3060
        * tree-ssa-copy.c (dump_copy_of): Call sbitmap_zero.
3061
 
3062
2005-06-02  Richard Henderson  
3063
 
3064
        * Makefile.in (tree-vect-generic.o): New.
3065
        (OBJS-common, GTFILES, s-gtype): Add it.
3066
        * tree-complex.c (build_replicated_const, vector_inner_type,
3067
        vector_last_type, vector_last_nunits, build_word_mode_vector_type,
3068
        elem_op_func, tree_vec_extract, do_unop, do_binop, do_plus_minus,
3069
        do_negate, expand_vector_piecewise, expand_vector_parallel,
3070
        expand_vector_addition, expand_vector_operation,
3071
        type_for_widest_vector_mode, expand_vector_operations_1,
3072
        gate_expand_vector_operations, expand_vector_operations,
3073
        pass_lower_vector_ssa): Move to tree-vect-generic.c.
3074
        (tree_lower_complex): Rename from tree_lower_operations.
3075
        (pass_lower_complex): Rename from pass_pre_expand.
3076
        * tree-vect-generic.c: New file.
3077
        * tree-pass.h (pass_lower_complex): Rename from pass_pre_expand.
3078
        (pass_lower_vector): New.
3079
        * tree-optimize.c (init_tree_optimization_passes): Update to match.
3080
 
3081
2005-06-02  Richard Henderson  
3082
 
3083
        * modulo-sched.c (doloop_register_get): Protect against
3084
        doloop_end not defined.
3085
 
3086
2005-06-02  Kazu Hirata  
3087
 
3088
        * config/sh/sh.c (general_movsrc_operand,
3089
        general_movdst_operand, arith_reg_operand, arith_reg_dest,
3090
        logical_reg_operand, int_gpr_dest, fp_arith_reg_operand,
3091
        fp_arith_reg_dest, arith_operand, arith_reg_or_0_operand,
3092
        xor_operand, cmp_operand, logical_operand, and_operand,
3093
        fpscr_operand, fpul_operand, symbol_ref_operand,
3094
        commutative_float_operator, noncommutative_float_operator,
3095
        unary_float_operator, binary_float_operator,
3096
        binary_logical_operator, equality_comparison_operator,
3097
        greater_comparison_operator, less_comparison_operator,
3098
        shift_operator, logical_operator, target_reg_operand,
3099
        target_operand, mextr_bit_offset, extend_reg_operand,
3100
        trunc_hi_operand, extend_reg_or_0_operand, minuend_operand,
3101
        general_extend_operand, ua_address_operand,
3102
        cache_address_operand, inqhi_operand, sh_rep_vec, sh_1el_vec,
3103
        sh_const_vec, ua_offset, sh_register_operand, cmpsi_operand,
3104
        shift_count_reg_operand, shift_count_operand,
3105
        unaligned_load_operand): Move to ...
3106
        * config/sh/predicates.md: ... here.
3107
        * config/sh/sh.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
3108
        Remove.
3109
 
3110
2005-06-02  Andrew Pinski  
3111
 
3112
        * tree.c (build_common_builtin_nodes): Fix the return type on
3113
        __builtin_memcmp.
3114
 
3115
2005-06-02  Richard Guenther  
3116
 
3117
        * tree-ssa-loop-ivopts.c (build_addr_strip_iref): Remove.
3118
        (find_interesting_uses_address): Use build_fold_addr_expr instead.
3119
        (strip_offset_1): Likewise.
3120
        (tree_to_aff_combination): Likewise.
3121
 
3122
2005-06-02  DJ Delorie  
3123
 
3124
        * convert.c (convert_to_pointer): Avoid recursion if no conversion
3125
        is needed.
3126
 
3127
2005-06-02  Richard Guenther  
3128
 
3129
        * tree-chrec.c (chrec_fold_plus_1): Ensure we build
3130
        binary operations with the correct types.
3131
        * tree-ssa-loo-ivopts.c (idx_find_step): Use sizetype
3132
        for all computation.
3133
 
3134
2005-06-02  Kazu Hirata  
3135
 
3136
        * tree-vrp.c, config/arm/arm.md, config/arm/arm1020e.md,
3137
        config/rs6000/rs6000.md: Fix comment typos.  Follow splling
3138
        conventions.
3139
        * doc/install.texi: Fix a typo.
3140
 
3141
2005-06-02  Jan Hubicka  
3142
 
3143
        * cgraphunit.c (cgraph_function_and_variable_visibility): Extern
3144
        inline functions are not local.
3145
 
3146
2005-06-02  Kazu Hirata  
3147
 
3148
        * gimplify.c (gimplify_ctx): Change the type of case_labels to
3149
        VEC from VARRAY.
3150
        (gimplify_switch_expr, gimplify_case_label_expr): Adjust uses
3151
        of case_labels.
3152
 
3153
2005-06-02  Richard Guenther  
3154
 
3155
        * c-typeck.c (build_indirect_ref): Build INDIRECT_REF
3156
        with correct type.
3157
 
3158
2005-06-02  Ulrich Weigand  
3159
 
3160
        * config/s390/s390.c (s390_add_execute): Do not handle out-of-pool
3161
        execute templates.
3162
        (s390_dump_pool): Likewise.
3163
        (s390_mainpool_start, s390_mainpool_finish): Likewise.
3164
        (s390_chunkify_start): Likewise.
3165
        (s390_dump_execute): Remove.
3166
        (s390_reorg): Handle out-of-pool execute templates.
3167
 
3168
2005-06-02  Adrian Straetling  
3169
 
3170
        * optabs.c: (expand_bool_compare_and_swap): Emit barrier after
3171
          unconditional jump.
3172
 
3173
2005-06-02  Jan Hubicka  
3174
 
3175
        * cgraph.c (cgraph_node): Maintain master clones.
3176
        (cgraph_remove_node): Likewise.
3177
        (availability_names): New static variable.
3178
        (dump_cgraph_node): Dump availability.
3179
        (dump_cgraph_varpool_node): Likewise.
3180
        (cgraph_is_master_clone, cgraph_master_clone,
3181
        cgraph_function_body_availability,
3182
        cgraph_variable_initializer_availability): New functions.
3183
        * cgraph.h (availability): New enum.
3184
        (struct cgraph_node): Add master_clone.
3185
        (cgraph_is_master_clone, cgraph_master_clone,
3186
        cgraph_function_body_availability,
3187
        cgraph_variable_initializer_availability): Declare.
3188
        * cgraphunit.c (cgraph_expand_function): Setcgraph_function_flags_ready.
3189
        (cgraph_remove_unreachable_nodes): Remove unreachable nodes.
3190
        * ipa-inline.c (cgraph_decide_inlining): Do not call
3191
        cgraph_remove_unreachable_nodes.
3192
 
3193
        * cgraphunit.c (cgraph_function_and_variable_visibility): Fix typo in
3194
        previous patch.
3195
 
3196
2005-06-02  Diego Novillo  
3197
 
3198
        PR 21582
3199
        * tree-vrp.c (nonnull_arg_p): New.
3200
        (get_value_range): Call it.
3201
 
3202
2005-06-02  Eric Christopher  
3203
 
3204
        * config/mips/mips.h (processor_type): Remove PROCESSOR_DEFAULT,
3205
        add PROCESSOR_MAX.
3206
        (mips_rtx_cost_data): New datatype.
3207
        (MEMORY_MOVE_COST): Use data from structure.
3208
        (BRANCH_COST): Ditto.
3209
        (LOGICAL_OP_NON_SHORT_CIRCUIT): Define to zero.
3210
        * config/mips/mips.md (cpu): Rework for processor_type changes.
3211
        * config/mips/mips.c (mips_cost): New variable.
3212
        (DEFAULT_COSTS): Define.
3213
        (mips_rtx_cost_data): New.
3214
        (mips_rtx_costs): Use. Minor formatting changes. Use COSTS_N_INSNS
3215
        for NEG cost. Add support for FLOAT, UNSIGNED_FLOAT, FIX,
3216
        FLOAT_EXTEND, FLOAT_TRUNCATE, and SQRT.
3217
        (override_options): Set cost data.
3218
        (mips_register_move_cost): Formatting changes.
3219
        (bdesc_arrays): Use PROCESSOR_MAX.
3220
        (mips_init_builtins): Ditto.
3221
 
3222
2005-06-02  Diego Novillo  
3223
 
3224
        PR 21765
3225
        * doc/invoke.texi: Document -ftree-vrp.
3226
 
3227
2005-06-02  Dorit Nuzman  
3228
 
3229
        PR tree-optimization/21734
3230
        * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop): Use the
3231
        phi_result when current_def is not available.
3232
        (slpeel_update_phi_nodes_for_guard1): Don't fail if current_def is not
3233
        available.
3234
 
3235
2005-06-02  David Edelsohn  
3236
 
3237
        * config/rs6000/rs6000.c (rs6000_insn_valid_within_doloop): New.
3238
        (TARGET_INSN_VALID_WITHIN_DOLOOP): Define.
3239
 
3240
2005-06-02  Diego Novillo  
3241
 
3242
        * tree-vrp.c (has_assert_expr, maybe_add_assert_expr): Remove.
3243
 
3244
2005-06-02  Jan Hubicka  
3245
 
3246
        * cgraph.c (dump_cgraph_node): Print new flags.
3247
        (dump_cgraph_varpool_node): Likewise.
3248
        (decide_variable_is_needed): Initialize externally_visible flag.
3249
        * cgraph.h (cgraph_local_info): Add externally_visible flag.
3250
        (cgraph_varpool_node): Likewise.
3251
        (cgraph_function_flags_ready): Declare.
3252
        * cgraph.c (cgraph_mark_local_functions): Rename to ...
3253
        (cgraph_function_and_variable_visibility) ... this one; handle
3254
        externally_visible flags.
3255
        (decide_is_function_needed): Set externally_visible flag.
3256
        (cgraph_finalize_function): Deal properly with early cleanups.
3257
        (cgraph_optimize): Update call of
3258
        cgraph_function_and_variable_visibility.
3259
 
3260
2005-06-02 Steven Bosscher  
3261
           Mostafa Hagog 
3262
 
3263
        * cfgloop.h (doloop_condition_get): Make external.
3264
        * loop-doloop.c (doloop_condition_get): Generalize to make it
3265
        usable in modulo-sched.c.
3266
        * modulo-sched.c (doloop_register_get): Use
3267
        doloop_condition_get instead of duplicating it.
3268
 
3269
2005-06-02  Bernd Schmidt  
3270
 
3271
        * reload1.c (reload): Undo 2005-04-20 change.  Make sure we detect
3272
        the correct set of init_insns that need deletion.
3273
        * local-alloc.c (update_equiv_regs): When substituting sole definition
3274
        into sole use of a reg, delete it from liveness information.
3275
 
3276
2005-06-02  Kaz Kojima  
3277
 
3278
        * config/sh/sh.h (TARGET_FPU_DOUBLE): Use MASK_SH4.
3279
 
3280
2005-06-01  Diego Novillo  
3281
 
3282
        PR 14341, PR 21332, PR 20701, PR 21029, PR 21086, PR 21090
3283
        PR 21289, PR 21348, PR 21367, PR 21368, PR 21458.
3284
        * fold-const.c (invert_tree_comparison): Make extern.
3285
        * tree-flow.h (enum value_range_type): Move to tree-ssa-propagate.
3286
        (struct value_range_def): Limewise.
3287
        (get_value_range): Remove.
3288
        (dump_value_range): Remove.
3289
        (dump_all_value_ranges): Remove.
3290
        (debug_all_value_ranges): Remove.
3291
        (vrp_evaluate_conditional): Declare.
3292
        * tree-ssa-propagate.c (struct prop_stats_d): Add field
3293
        num_pred_folded.
3294
        (substitute_and_fold): Add argument use_ranges_p.
3295
        Update all callers.
3296
        If use_ranges_p is true, call fold_predicate_in to fold
3297
        predicates using range information.
3298
        Ignore ASSERT_EXPRs.
3299
        Change debugging output to only show statements that have been
3300
        folded.
3301
        (replace_phi_args_in): Move debugging output code from
3302
        substitute and fold.
3303
        (fold_predicate_in): New local function.
3304
        * tree-ssa-propagate.h (enum value_range_type): Move from
3305
        tree-flow.h.
3306
        (struct value_range_d): Likewise.
3307
        Add field 'equiv'.
3308
        (value_range_t): Rename from value_range.
3309
        * tree-vrp.c (found_in_subgraph): Rename from found.
3310
        (get_opposite_operand): Remove.
3311
        (struct assert_locus_d): Declare.
3312
        (assert_locus_t): Declare.
3313
        (need_assert_for): Declare.
3314
        (asserts_for): Declare.
3315
        (blocks_visited): Declare.
3316
        (vr_value): Declare.
3317
        (set_value_range): Add argument 'equiv'.
3318
        Don't drop to VARYING ranges that cover all values in the
3319
        type.
3320
        Make deep copy of equivalence set 'equiv'.
3321
        (copy_value_range): New local function.
3322
        (set_value_range_to_undefined): New local function.
3323
        (compare_values): Return -2 if either value has overflowed.
3324
        (range_includes_zero_p): New local function.
3325
        (extract_range_from_assert): Flip the predicate code if the
3326
        name being asserted is on the RHS of the predicate.
3327
        Avoid creating unnecessary symbolic ranges if the comparison
3328
        includes another name with a known numeric range.
3329
        Update the equivalnce set of the new range when asserting
3330
        EQ_EXPR predicates.
3331
        (extract_range_from_ssa_name): Update the equivalence set of
3332
        the new range with VAR.
3333
        (extract_range_from_binary_expr): Also handle TRUTH_*_EXPR.
3334
        If -fwrapv is used, set the resulting range to VARYING if the
3335
        operation overflows.  Otherwise, use TYPE_MIN_VALUE and
3336
        TYPE_MAX_VALUE to represent -INF and +INF.
3337
        Fix handling of *_DIV_EXPR.
3338
        (extract_range_from_unary_expr): Handle MINUS_EXPR and
3339
        ABS_EXPR properly by switching the range around if necessary.
3340
        (extract_range_from_comparison): New local function.
3341
        (extract_range_from_expr): Call it.
3342
        (adjust_range_with_scev): Do not adjust the range if using
3343
        wrapping arithmetic (-fwrapv).
3344
        (dump_value_range): Also show equivalence set.
3345
        Show -INF and +INF for TYPE_MIN_VALUE and TYPE_MAX_VALUE.
3346
        (build_assert_expr_for): Also build ASSERT_EXPR for EQ_EXPR.
3347
        (infer_value_range): Change return value to bool.
3348
        Add arguments 'comp_code_p' and 'val_p'.
3349
        Do not attempt to infer ranges from statements that may throw.
3350
        Store the comparison code in comp_code_p.
3351
        Store the other operand to be used in the predicate in val_p.
3352
        (dump_asserts_for): New.
3353
        (debug_asserts_for): New.
3354
        (dump_all_asserts): New.
3355
        (debug_all_asserts): New.
3356
        (register_new_assert_for): New.
3357
        (register_edge_assert_for): New.
3358
        (find_conditional_asserts): New.
3359
        (find_assert_locations): New.
3360
        (process_assert_insertions_for): New.
3361
        (process_assert_insertions): New.
3362
        (insert_range_assertions): Initialize found_in_subgraph,
3363
        blocks_visited, need_assert_for and asserts_for.
3364
        Call find_assert_locations and process_assert_insertions.
3365
        (remove_range_assertions): Add more documentation.
3366
        (vrp_initialize): Change return type to void.
3367
        Do not try to guess if running VRP is worth it.
3368
        (compare_name_with_value): New.
3369
        (compare_names): New.
3370
        (vrp_evaluate_conditional): Add argument 'use_equiv_p'.  If
3371
        use_equiv_p is true, call compare_names and
3372
        compare_name_with_value to compare all the ranges for every
3373
        name in the equivalence set of the predicate operands.
3374
        Update all callers.
3375
        (vrp_meet): Try harder not to derive a VARYING range.
3376
        If two values meet, the resulting equivalence set is the
3377
        intersection of the two equivalence sets.
3378
        (vrp_visit_phi_node): Call copy_value_range to get the current
3379
        range information of the LHS.
3380
        (vrp_finalize): Create a value vector representing all the
3381
        names that ended up with exactly one value in their range.
3382
        Call substitute_and_fold.
3383
        (execute_vrp): Document equivalence sets in ranges.
3384
        * tree.h (SSA_NAME_VALUE_RANGE): Remove.
3385
        (struct tree_ssa_name): Remove field value_range.
3386
        (invert_tree_comparison): Declare.
3387
 
3388
2005-06-01  Daniel Berlin  
3389
 
3390
        Fix PR tree-optimization/21839
3391
 
3392
        * gimplify.c (zero_sized_field_decl): New function.
3393
        (gimplify_init_ctor_eval): Use it.
3394
 
3395
2005-06-01  Josh Conner 
3396
 
3397
        PR 21478
3398
        * gimplify.c (gimplify_init_constructor): Don't spill initializer
3399
        to read-only memory if it's sparse.
3400
 
3401
2005-06-01  Ramana Radhakrishnan  
3402
 
3403
        * doc/rtl.texi: Remove references to NOTE_INSN_SETJMP.
3404
        Add documentation for REG_SETJMP
3405
 
3406
2005-06-01  Richard Guenther  
3407
 
3408
        * stmt.c (expand_case): Use build_int_cst.
3409
        (node_has_low_bound): Likewise, and correct type mismatch.
3410
        (node_has_high_bound): Likewise.
3411
        * fold-const.c (fold_binary): Ensure we build trees
3412
        with the correct types - undo what STRIP_NOPS possibly did.
3413
 
3414
2005-06-01  Richard Guenther  
3415
 
3416
        * tree.h (fold_indirect_ref_1): Export from fold-const.c.
3417
        * fold-const.c (fold_indirect_ref_1): No longer static.
3418
        * tree-inline.c (copy_body_r): Use fold_indirect_ref_1 for
3419
        folding, if possible.
3420
 
3421
2005-06-01  Joseph S. Myers  
3422
 
3423
        * common.opt (fjump-tables): New.
3424
        * doc/invoke.texi (-fno-jump-tables): Document.
3425
        * stmt.c (expand_end_case_type): Do not emit jump tables unless
3426
        flag_jump_tables.
3427
 
3428
2005-06-01  Richard Earnshaw  
3429
 
3430
        * arm.md (bunordered, bordered, bungt, bunlt, bunge, bunle, buneq)
3431
        (bltgt, arm_buneq, arm_bltgt, sunordered, sordered, sungt, sunge)
3432
        (sunlt, sunle): Enable patterns on VFP.
3433
 
3434
        * arm.md (attribute 'type'): Add new types - f_loads floadd, f_stores,
3435
        f_stored, f_flag, f_cvt.
3436
        (generic_sched): No-longer used for the arm1020e and arm1022e cores.
3437
        Include arm1020e.md.
3438
        * vfp.md (fmstat): New cpu unit.  Add an exclusion set between it and
3439
        the ds and fmac pipelines.  Re-work all load and store patterns and
3440
        all conversion patterns to use new attributes.  Adjust reservation
3441
        descriptions accordingly.
3442
        * arm1020e.md: New file.
3443
        * t-arm: Add dependency.
3444
 
3445
2005-06-01  Jan Hubicka  
3446
 
3447
        * except.c (struct eh_region): Kill unused fields.
3448
        * basic-block.h (struct basic_block_def): Likewise.
3449
 
3450
2005-06-01  J"orn Rennecke 
3451
 
3452
        PR rtl-optimization/21767
3453
        * rtl.h (function_invariant_p): Re-add declaration.
3454
        * reload1.c (function_invariant_p): No longer static.
3455
        * ifcvt.c (dead_or_predicable): Remove REG_EQUAL notes that
3456
        might have become invalid.
3457
 
3458
2005-06-01  Jakub Jelinek  
3459
 
3460
        PR c/21536
3461
        PR c/20760
3462
        * gimplify.c (gimplify_decl_expr): Call gimplify_type_sizes
3463
        on variable sizes types if a decl is a pointer to a VLA.
3464
        (gimplify_type_sizes): Handle POINTER_TYPE and REFERENCE_TYPE.
3465
        Call gimplify_type_sizes on aggregate fields.  Prevent infinite
3466
        recursion.
3467
 
3468
        * fold-const.c (fold_ternary): Optimize BIT_FIELD_REF of VECTOR_CST.
3469
 
3470
        * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss, _mm_set1_ps,
3471
        _mm_set_ps, _mm_setr_ps): Add __extension__.
3472
        * config/i386/emmintrin.h (_mm_set_sd, _mm_set1_pd, _mm_set_pd,
3473
        _mm_setr_pd, _mm_setzero_pd, _mm_set_epi64x, _mm_set_epi64x,
3474
        _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128):
3475
        Likewise.
3476
        (_mm_clflush): Don't use return in void function.
3477
 
3478
        * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128,
3479
        _mm_castps_pd, _mm_castps_si128, _mm_castsi128_ps, _mm_castsi128_pd):
3480
        Use __inline instead of inline.
3481
 
3482
2005-06-01  Richard Guenther  
3483
 
3484
        * fold-const.c (fold_binary): Fix types in strlen vs.
3485
        zero comparison folding.
3486
 
3487
2005-06-01  Richard Henderson  
3488
 
3489
        * configure.ac (HAVE_AS_JSRDIRECT_RELOCS): New.
3490
        * config.in, configure: Rebuild.
3491
        * config/alpha/alpha.c (print_operand): Add 'j'.
3492
        * alpha.md (divmodsi_internal_er_1): Use it.
3493
        (divmoddi_internal_er_1): Likewise.
3494
 
3495
2005-06-01  Richard Sandiford  
3496
 
3497
        * system.h (TARGET_OPTIONS, TARGET_SWITCHES): Poison.
3498
        * opts.h (print_filtered_help): Delete.
3499
        * opts.c (handle_option, decode_options): Remove calls to
3500
        set_target_switch.
3501
        (print_target_help): New function.
3502
        (common_option, print_help): Call print_target_help instead of
3503
        display_target_options.
3504
        (print_filtered_help): Make static.
3505
        * toplev.h (display_target_options, set_target_switch): Delete.
3506
        * toplev.c (target_switches, target_options, display_target_options)
3507
        (set_target_switch): Delete.
3508
        (print_switch_values): Remove handling of TARGET_SWITCHES and
3509
        TARGET_OPTIONS.
3510
        (default_get_pch_validity): Likewise.  Only treat target_flags
3511
        specially if targetm.check_pch_target_flags is nonnull.
3512
        (pch_option_mismatch): New function.
3513
        (default_pch_valid_p): Use it.  Remove handling of TARGET_SWITCHES
3514
        and TARGET_OPTIONS.  Only treat target_flags specially if
3515
        targetm.check_pch_target_flags is nonnull.
3516
        * config/ia64/ia64.c (ia64_override_options): Don't mention
3517
        TARGET_OPTIONS in comment.
3518
        * config/m68k/m68k-none.h (CC1_SPEC): Likewise.
3519
        * doc/invoke.texi: Remove a reference to TARGET_SWITCHES.
3520
        * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS): Don't mention the
3521
        interaction with TARGET_SWITCHES.
3522
        (TARGET_@var{featurename}, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
3523
 
3524
2005-06-01  Richard Sandiford  
3525
 
3526
        * config/sh/sh.c (multcosts): Check sh_multcost rather than
3527
        sh_multcost_str.
3528
        (sh_register_move_cost): Likewise sh_gettrcost and sh_gettrcost_str.
3529
        (sh_multcost_str, sh_gettrcost_str, sh_div_str, sh_divsi3_libfunc)
3530
        (cut2_workaround_str): Delete.
3531
        * config/sh/sh.h (SUBTARGET_OPTIONS, TARGET_OPTIONS)
3532
        (TARGET_SH5_CUT2_WORKAROUND, sh_multcost_str, sh_gettrcost_str)
3533
        (sh_div_str, sh_divsi3_libfunc, cut2_workaround_str): Delete.
3534
        * config/sh/sh.opt (mcut2-workaround, mdiv=, mdivsi3_libfunc=)
3535
        (mgettrcost=, multcost=): New options.
3536
 
3537
2005-06-01  Richard Sandiford  
3538
 
3539
        * opts.h (cl_option_state): New structure.
3540
        (get_option_state): Declare.
3541
        * opts.c (get_option_state): New function.
3542
        * toplev.c (option_affects_pch_p): New function.
3543
        (default_get_pch_validity): Store the state of all options for which
3544
        option_affects_pch_p returns true.
3545
        (default_pch_valid_p): Check the state of those options here.
3546
        Only check target_flags separately if targetm.check_pch_target_Flags
3547
        is nonnull or if TARGET_SWITCHES is defined.
3548
 
3549
2005-06-01  Richard Sandiford  
3550
 
3551
        * config/mips/mips-protos.h (mips_use_ins_ext_p): Remove parameter
3552
        names.
3553
 
3554
2005-06-01 Mostafa Hagog 
3555
 
3556
        * modulo-sched.c (undo_generate_reg_moves ): Fix PR 21138.
3557
 
3558
2005-06-01 Mostafa Hagog 
3559
 
3560
        * gcse.c (compute_transp, load_killed_in_block): Use
3561
        MEM_READONLY_P.
3562
 
3563
2005-06-01  David.Billinghurst  
3564
 
3565
        PR target/21854
3566
        * config/mips/mips-protos.h: Declare mips_use_ins_ext_p
3567
 
3568
2005-05-31  Kaveh R. Ghazi  
3569
 
3570
        * errors.h (warning, error, fatal, internal_error): Add printf
3571
        attribute.
3572
        * genmodes.c (make_vector_mode): Fix format arguments.
3573
 
3574
2005-05-31  Kaveh R. Ghazi  
3575
 
3576
        * basic-block.h, bb-reorder.c, c-gimplify.c, config/darwin.c,
3577
        config/rs6000/rs6000-c.c, dominance.c, gimple-low.c, gimplify.c,
3578
        lambda-code.c, lambda-trans.c, tree-browser.c, tree-cfg.c,
3579
        tree-chrec.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
3580
        tree-if-conv.c, tree-into-ssa.c, tree-loop-linear.c,
3581
        tree-mudflap.c, tree-nomudflap.c, tree-outof-ssa.c,
3582
        tree-pretty-print.c, tree-scalar-evolution.c, tree-sra.c,
3583
        tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
3584
        tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-live.c,
3585
        tree-ssa-operands.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
3586
        tree-ssa-propagate.c, tree-ssa-sink.c, tree-ssa-threadupdate.c,
3587
        tree-ssa-uncprop.c, tree-ssa.c, tree-vect-analyze.c,
3588
        tree-vect-transform.c, tree-vectorizer.c, vec.c: Don't include
3589
        errors.h and include toplev.h if necessary.
3590
 
3591
        * rtl.c, varray.c: If we're compiling as a GENERATOR_FILE, include
3592
        errors.h otherwise include toplev.h.
3593
 
3594
        * Makefile.in: Update dependencies.
3595
 
3596
2005-06-01  Danny Smith  
3597
 
3598
        * config/i386/cygming.h (NO_PROFILE_COUNTERS): Define.
3599
 
3600
2005-05-31  Geoffrey Keating  
3601
 
3602
        * config/rs6000/rs6000.md (sync_boolcshort_internal): New.
3603
        * config/rs6000/rs6000.c (rs6000_emit_sync): Shift count must
3604
        be complemented for big-endian.  Mask for AND must be rotated,
3605
        not shifted.  Handle short operands with NOT on the memory
3606
        operation.
3607
 
3608
2005-05-30  Daniel Berlin  
3609
 
3610
        * c-objc-common.c (c_tree_printer): Check flag before hashtable.
3611
        Use DECL_DEBUG_EXPR and SET_DECL_DEBUG_EXPR.
3612
        * dwarf2out.c (dwarf2out_var_location): Ditto.
3613
        * toplev.c (default_tree_printer): Ditto.
3614
        * tree-outof-ssa.c (create_temp): Ditto.
3615
        * tree-sra.c (instantiate_element): Ditto.
3616
        * var-tracking.c (track_expr_p): Ditto.
3617
        * tree.c (struct tree_map): New structure.
3618
        (debug_expr_for_decl): New.
3619
        (tree_map_eq): New function.
3620
        (tree_map_hash): Ditto.
3621
        (tree_map_marked_p): Ditto.
3622
        (print_debug_expr_statistics): Ditto.
3623
        (decl_debug_expr_lookup): Ditto.
3624
        (decl_debug_expr_insert): Ditto.
3625
        (dump_tree_statistics): Dump debug_expr hashtable stats.
3626
        * tree.h (DECL_DEBUG_EXPR): Change
3627
        (SET_DECL_DEBUG_EXPR): Add.
3628
 
3629
2005-06-01  Alan Modra  
3630
 
3631
        * configure.ac: Add --enable-secureplt.
3632
        (HAVE_AS_REL16): Test for R_PPC_REL16 relocs.
3633
        * config.in: Regenerate.
3634
        * configure: Regenerate.
3635
        * config.gcc (powerpc64-*-linux*, powerpc-*-linux*): Add
3636
        rs6000/secureplt.h to tm_file when enable_secureplt.
3637
        * doc/invoke.texi (msecure-plt, mbss-plt): Document.
3638
        * doc/install.texi: Document --enable-targets and --enable-secureplt.
3639
        Correct xrefs to "Using the GNU Compiler Collection (GCC)".
3640
        * config/rs6000/secureplt.h: New file.
3641
        * config/rs6000/sysv4.h (TARGET_SECURE_PLT): Define.
3642
        (SUBTARGET_OVERRIDE_OPTIONS): Error if -msecure-plt given without
3643
        assembler support.
3644
        (CC1_SECURE_PLT_DEFAULT_SPEC): Define.
3645
        (CC1_SPEC): Delete duplicate mno-sdata.  Invoke cc1_secure_plt_default.
3646
        (SUBTARGET_EXTRA_SPECS): Add cc1_secure_plt_default.
3647
        * config/rs6000/sysv4.opt (msecure-plt, bss-plt): Add options.
3648
        * config/rs6000/rs6000.h (TARGET_SECURE_PLT): Define.
3649
        * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Handle
3650
        TARGET_SECURE_PLT got register load sequence.
3651
        (rs6000_emit_prologue): Call rs6000_emit_load_toc_table when
3652
        TARGET_SECURE_PLT.
3653
        (rs6000_elf_declare_function_name): Don't emit toc address offset
3654
        word when TARGET_SECURE_PLT.
3655
        * config/rs6000/rs6000.md (elf_high, elf_low): Move past load_toc_*.
3656
        (load_toc_v4_PIC_1) Enable for TARGET_SECURE_PLT.
3657
        (load_toc_v4_PIC_3b, load_toc_v4_PIC_3c): New insns.
3658
        (call, call_value): Mark pic_offset_table_rtx used for sysv pic and
3659
        TARGET_SECURE_PLT.
3660
        (call_nonlocal_sysv, call_value_nonlocal_sysv, sibcall_nonlocal_sysv,
3661
        sibcall_value_nonlocal_sysv): Add 32768 offset when TARGET_SECURE_PLT
3662
        and -fPIC.
3663
        * config/rs6000/tramp.asm (trampoline_initial): Use "bcl 20,31".
3664
        (__trampoline_setup): Likewise.  Init r30 before plt call.
3665
 
3666
2005-05-31  DJ Delorie  
3667
 
3668
        * expr.c (convert_move): When a partial_int requires multiple
3669
        conversion steps, make sure successive steps convert the
3670
        intermediate value, not the original value.
3671
 
3672
        * expmed.c (expand_mult): Convert partial_int multiplies to
3673
        shift/add combinations too.
3674
 
3675
        * genmodes.c (mode_data): Add wider_2x.
3676
        (calc_wider_mode): Calculate twice-wider mode too.
3677
        (emit_mode_wider): Emit twice-wider mode too.
3678
        * machmode.h (mode_2xwider, GET_MODE_2XWIDER_MODE): New.
3679
        * expr.c (expand_expr_real_1): Use it for expanding
3680
        multiplies.
3681
 
3682
2005-05-31  Zdenek Dvorak  
3683
 
3684
        PR tree-optimization/21817
3685
        * tree-ssa-loop-im.c (for_each_index): Handle VECTOR_CST.
3686
 
3687
2005-05-31  Pat Haugen  
3688
 
3689
        * loop.c (loop_invariant_p, valid_initial_value_p): Revert last
3690
        change.
3691
 
3692
2005-05-31  Andrew Pinski  
3693
 
3694
        PR middle-end/20931
3695
        PR middle-end/20946
3696
        * fold-const.c (fold_checksum_tree): Copy types also if
3697
        TYPE_CONTAINS_PLACEHOLDER_INTERNAL is set.
3698
        Don't call fold_checksum_tree for TREE_LIST's TREE_CHAIN
3699
        first.
3700
        Tail recurse TREE_LIST's TREE_CHAIN.
3701
 
3702
2005-05-31  Andrew Pinski  
3703
 
3704
        PR tree-opt/21732
3705
        * tree-ssa-copy.c (dump_copy_of): Create a bitmap and don't visit a
3706
        SSA_NAME twice and cause the loop to become finite.  Remove the test
3707
        for val.
3708
 
3709
2005-05-31  Andrew Pinski  
3710
 
3711
        * tree-cfg.c (verify_expr): Add checking for COND_EXPR's conditional
3712
        expression.
3713
 
3714
2005-05-31  Richard Sandiford  
3715
 
3716
        * doc/tm.texi (TARGET_GET_PCH_VALIDITY, TARGET_PCH_VALID_P): Tweak
3717
        the documentation to make it more future-proof.
3718
        (TARGET_CHECK_PCH_TARGET_FLAGS): Document this new hook.
3719
        * target.h (gcc_target): Add check_pch_target_flags.
3720
        * target-def.h (TARGET_CHECK_PCH_TARGET_FLAGS): New macro.
3721
        (TARGET_INITIALIZER): Include it.
3722
        * toplev.c (default_pch_valid_p): Use targetm.check_pch_target_flags.
3723
        * config/sh/sh-protos.h (sh_pch_valid_p): Delete.
3724
        * config/sh/sh.c (TARGET_PCH_VALID_P, sh_pch_valid_p): Delete.
3725
        (sh_check_pch_target_flags): New function.
3726
        (TARGET_CHECK_PCH_TARGET_FLAGS): Override default.
3727
 
3728
2005-05-31  Richard Guenther  
3729
 
3730
        * fold-const.c (extract_array_ref): Handle more cases,
3731
        do some useful canonicalization of the base.
3732
        (fold_binary): Explicitly deal with arrays of zero-sized
3733
        structures during folding of &a[i] == &a[j].
3734
 
3735
2005-05-31  Eric Botcazou  
3736
 
3737
        * doc/install.texi (sparc-sun-solaris2*): Update note
3738
        about Sun bug 4910101.
3739
        (sparc-sun-solaris2.7): Document bootstrap
3740
        failure with Sun WorkShop 6 99/08/18 as.
3741
 
3742
2005-05-30  Pat Haugen  
3743
 
3744
        * loop.c (loop_invariant_p, valid_initial_value_p): Use
3745
        regs_invalidated_by_call instead of call_used_regs.
3746
 
3747
2005-05-30  Paolo Carlini  
3748
 
3749
        PR middle-end/21743
3750
        * builtins.def (BUILT_IN_CLOG, BUILT_IN_CLOGF, BUILT_IN_CLOGL):
3751
        Enable.
3752
        * doc/extend.texi: Add clog, clogf, clogl.
3753
 
3754
2005-05-30  H.J. Lu  
3755
 
3756
        PR middle-end/20303
3757
        * c-pragma.c: Include "vec.h".
3758
        (handle_pragma_visibility): Use VEC.
3759
 
3760
        * doc/invoke.texi: Remove the nested visibility push limit.
3761
 
3762
2005-05-30  Roger Sayle  
3763
 
3764
        PR rtl-optimization/15422
3765
        * reg-stack.c (starting_stack_p): New static global.
3766
        (straighten_stack): Delete prototype. Change to update the stack
3767
        before the current insn.
3768
        (subst_stack_regs): Update call to straighten stack.
3769
        (emit_swap_insn): Delete prototype.  For the first insn in a
3770
        basic block, update stack_in instead of emitting a real swap.
3771
        (change_stack): When changing the stack before the first insn
3772
        in a basic block, update stack_in instead of emitting real code.
3773
        (compensate_edges): Clear starting_stack_p during compensation.
3774
        (convert_regs_1): Keep track of starting_stack_p whilst processing
3775
        a basic block.
3776
 
3777
2005-05-30  Kazu Hirata  
3778
 
3779
        * tree-ssa-ccp.c (const_val): Make it static.
3780
 
3781
2005-05-29  Geoffrey Keating  
3782
 
3783
        PR target/21761
3784
        * config/rs6000/rs6000.md: Remove stray TARGET_32BIT from
3785
        pattern involving `:P'.
3786
 
3787
        * Makefile.in (install-cpp): Depend on installdirs.
3788
 
3789
2005-05-30  Kazu Hirata  
3790
 
3791
        * tree-outof-ssa.c (_elim_graph): Change the type of edge_list
3792
        to VEC(int,heap)*.
3793
        (new_elim_graph, clear_elim_graph, delete_elim_graph,
3794
        elim_graph_add_edge, elim_graph_remove_succ_edge,
3795
        FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED): Use VEC
3796
        instead of VARRAY.
3797
 
3798
2005-05-29  Kazu Hirata  
3799
 
3800
        * cgraphunit.c, ipa-inline.c, loop-iv.c, modulo-sched.c,
3801
        opts.c, postreload-gcse.c, tree-browser.def, tree-eh.c,
3802
        tree-ssa-copyrename.c, tree-vect-analyze.c: Fix typos and
3803
        follow spelling conventions in error/dump messages.
3804
 
3805
2005-05-29  Roger Sayle  
3806
            Richard Henderson  
3807
 
3808
        * ifcvt.c (noce_emit_move_insn): Construct a SET pattern directly
3809
        if the RHS isn't suitable for calling emit_move_insn.
3810
 
3811
2005-05-29  Kazu Hirata  
3812
 
3813
        * tree-ssa-ccp.c (ccp_fold): Return immediately after calling
3814
        fold_unary and fold_binary.
3815
 
3816
2005-05-29  Roger Sayle  
3817
 
3818
        * reg-stack.c (propagate_stack): Always copy the source stack to
3819
        the destination.  This routine is now only called when this is safe.
3820
        (better_edge): New function split out from convert_regs_1 to
3821
        determine which of two edges is better to propagate across.
3822
        (convert_regs_1):  We need only search for a best edge if the
3823
        stack layout hasn't been defined yet.  Use better_edge to help
3824
        find beste.  No longer traverse unnecessary edges.
3825
 
3826
2005-05-29  Keith Besaw  
3827
 
3828
        * tree-ssa-alias.c (new_type_alias): New procedure to
3829
        create a type memory tag for a pointer with a may-alias
3830
        set determined from a variable declaration.
3831
        * tree-flow.h: export declaration of new_type_alias
3832
        * tree-optimize.c (init_tree_optimization_passes): document
3833
        that pass_may_alias cannot be called after pass_vectorize.
3834
        * tree-vect-transform (vect_create_data_ref_ptr): Call
3835
        new_type_alias when an type memory tag isn't available
3836
        for a reference.
3837
        (vectorizable_store): Use copy_virtual_operands to update
3838
        virtual defs in place (so that loop_version can be called).
3839
        Call mark_for_renaming for the virtual defs in case peeling
3840
        is done and virtual uses outside the loop need to be updated.
3841
 
3842
2005-05-29  Dorit Naishlos  
3843
 
3844
        PR tree-optimization/21639
3845
        * tree-complex.c (pass_lower_vector_s): Remove TODO_ggc_collect.
3846
 
3847
2005-05-29  Jan Hubicka  
3848
 
3849
        PR tree-optimization/21562
3850
        * cfgexpand.c (construct_init_block): Deal properly with the case
3851
        of entry edge not pointing to very first basic block.
3852
 
3853
2005-05-28  Kazu Hirata  
3854
 
3855
        * tree-ssa-ccp.c (ccp_fold): Remove code that produces
3856
        non-gimple min invariant.
3857
 
3858
        * Makefile.in (OBJS-common): Add tree-cfgcleanup.o.
3859
        * tree-flow.h: Add prototypes for start_recording_case_labels
3860
        and end_recording_case_labels.
3861
        * tree-cfg.c (start_recording_case_labels,
3862
        end_recording_case_labels): Export.
3863
        (cleanup_tree_cfg_loop, modified_noreturn_calls,
3864
        cleanup_control_flow, cleanup_control_expr_graph,
3865
        remove_fallthru_edge, phi_alternatives_equal,
3866
        tree_forwarder_block_p, has_abnormal_incoming_edge_p,
3867
        remove_forwarder_block, cleanup_forwarder_blocks,
3868
        remove_forwarder_block_with_phi, merge_phi_nodes,
3869
        gate_merge_phi, pass_merge_phi): Move to ...
3870
        * tree-cfgcleanup.c: ... here.
3871
 
3872
        * basic-block.h: Remove forward declaration of bb_ann_d.
3873
 
3874
2005-05-28  Jan Hubicka  
3875
 
3876
        * tree-ssa-threadupdate.c: (create_edge_and_update_destination_phis):
3877
        Update profile.
3878
        * value-prof.c (tree_divmod_fixed_value_transform): Be more verbose in
3879
        debug output.
3880
        (tree_mod_subtract): Fix profile updating code.
3881
        (tree_divmod_values_to_profile): Do not produce useless value profilers
3882
        for divisions.
3883
 
3884
2005-05-28  Kazu Hirata  
3885
 
3886
        * tree-ssa-dom.c (vrp_element_p): Define.
3887
        (vrp_hash_elt): Change the type of records to
3888
        VEC(vrp_element_p,heap).
3889
        (vrp_free): New.
3890
        (tree_ssa_dominator_optimize): Pass vrp_free to htab_create.
3891
        Update uses of VRP records.
3892
        (simplify_cond_and_lookup_avail_expr, record_range): Update
3893
        uses of VRP records.
3894
 
3895
        * tree-inline.c (cfun_stack): Change the type to
3896
        VEC(function_p,heap).
3897
        (push_cfun, pop_cfun): Use VEC instead of VARRAY.
3898
 
3899
2005-05-27  Ian Lance Taylor  
3900
 
3901
        * c-decl.c (add_stmt): Add C frontend specific version.
3902
        (stmts_are_full_exprs_p): Remove.
3903
        * c-common.h (STMT_IS_FULL_EXPR_P): Remove.
3904
        (stmts_are_full_exprs_p): Don't declare.
3905
        * c-semantics.c (add_stmt): Remove.
3906
 
3907
2005-05-27  Kaveh R. Ghazi  
3908
 
3909
        * config/mips/mips-protos.h (mips_declare_object): Add printf
3910
        attribute.
3911
        * config/mips/mips.c (mips_declare_object_name): Fix format
3912
        argument.
3913
 
3914
2005-05-27  Roger Sayle  
3915
 
3916
        * reg-stack.c (compensate_edge): Remove original prototype.
3917
        (propagate_stack): New function to copy the stack layout
3918
        at the start of a basic block from the layout at the end of
3919
        one of its predecessors.
3920
        (compensate_edge): Assume that both source and destination
3921
        blocks have already had their stack layouts defined.
3922
        (compensate_edges): Traverse all non-entry edges in the CFG
3923
        and call compensate_edge on each in turn.
3924
        (convert_regs_1): Change return type to void.  Call
3925
        propagate_stack instead of compensate_edge.
3926
        (convert_regs_2): Change return type to void.  Update call
3927
        to convert_regs_1 to ignore the (now void) return value.
3928
        (convert_regs): Update calls to convert_regs_2 to ignore
3929
        the (now void) return value.  After all the basic blocks have
3930
        been processed, call compensate_edges to actually emit new
3931
        insns.
3932
        (reg_to_stack): Initialize the aux info for each basic block
3933
        with FOR_EACH_BB instead of which FOR_EACH_BB_REVERSE.
3934
 
3935
2005-05-28  Jan Hubicka  
3936
 
3937
        * except.c (can_throw_internal_1, can_throw_external_1): Add
3938
        "is_resx" argument.
3939
        (can_throw_external, can_throw_internal): Bring into sync wrt
3940
        dealing resx.
3941
        * except.h (can_throw_internal_1, can_throw_external_1): Update
3942
        prototype.
3943
        * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
3944
        Deal properly with resx.
3945
 
3946
2005-05-27  Kazu Hirata  
3947
 
3948
        * basic-block.h (basic_block_def): Add phi_nodes and
3949
        predictions.  Remove tree_annotations.
3950
        * predict.c (tree_predicted_by_p, tree_predict_edge,
3951
        combine_predictions_for_bb): Adjust references to predictions.
3952
        * tree-cfg.c (init_empty_tree_cfg, create_bb): Don't call
3953
        create_block_annotation.
3954
        (create_block_annotation, free_blocks_annotatios,
3955
        clear_blocks_annotations): Remove.
3956
        (dump_cfg_stats): Don't print out the memory spent on
3957
        bb_ann_d.
3958
        (delete_tree_cfg_annotations): Don't call free_blocks_annotations.
3959
        * tree-flow-inline.h (bb_ann): Remove.
3960
        (phi_nodes, set_phi_nodes): Update references to phi_nodes.
3961
        * tree-flow.h (bb_ann_d): Remove.
3962
        * tree-if-conv.c (process_phi_nodes): Update a reference to
3963
        phi_nodes.
3964
        * tree-phinodes.c (reserve_phi_args_for_new_edge,
3965
        create_phi_node, remove_phi_node): Likewise.
3966
        * tree-pretty-print.c (dump_generic_bb_buff): Don't call bb_ann.
3967
        * tree-ssa-dom.c (threaded_blocks): New.
3968
        (tree_ssa_dominator_optimize): Initialize, clear, and free
3969
        threaded_blocks. Update a call to thread_through_all_blocks.
3970
        (thread_across_edge): Use threaded_blocks instead of setting
3971
        incoming_edge_threaded.
3972
        * tree-ssa-threadupdate.c (threaded_through_all_blocks): Take
3973
        a bitmap of blocks that are threaded through.
3974
        * tree.h: Move the prototype of threaded_through_blocks to
3975
        tree-flow.h.
3976
 
3977
        * domwalk.c (walk_dominator_tree, init_walk_dominator_tree,
3978
        fini_walk_dominator_tree): Use VEC instead of VARRAY.
3979
        * domwalk.h (dom_walk_data): Change the type of
3980
        block_data_stack and free_block_data to VEC(void_p,heap)*.
3981
        * tree-ssa-dse.c (dse_initialize_block_local_data,
3982
        dse_optimize_stmt, dse_record_phis, dse_finalize_block): Use
3983
        VEC instead of VARRAY.
3984
 
3985
2005-05-27  Jan Hubicka  
3986
 
3987
        * cgraph.c: Include tree-gimple.h
3988
        (cgraph_edge): Rename expr to stmt.
3989
        (cgraph_create_edge): Likewise.
3990
        (cgraph_clone_node): Likewise.
3991
        * cgraph.h (cgraph_node): Use call_stmt instead of call_expr.
3992
        * cgraphunit.c (record_call_1): Rename to ...
3993
        (record_reference): ... this one; do not build edges.
3994
        (cgraph_varpool_analyze_pending_decls): Call record_reference directly.
3995
        (current_basic_block): Kill.
3996
        (cgraph_create_edges): Rewrite to work on gimple statements nicely.
3997
        (verify_cgraph_node): Likewise.
3998
        * tree-inline.c (copy_body_r): Do not mess up with cgraph edges.
3999
        (copy_bb): Mess up with cgraph edges here; simplify EH handling.
4000
        (copy_edges_for_bb): Simplify EH handling.
4001
        (expand_call_inline): Pass statement to cgraph_edge and
4002
        cgraph_create_edge.
4003
 
4004
2005-05-27  Richard Guenther  
4005
 
4006
        * tree-inline.c (copy_body_r): Manually fold *& to deal
4007
        with ADDR_EXPRs with mismatched types for now.
4008
 
4009
        * gimplify.c (fold_indirect_ref_rhs): New function.
4010
        (gimplify_modify_expr_rhs): Use it instead of pessimistic
4011
        fold_indirect_ref.
4012
 
4013
        * fold-const.c (fold_indirect_ref_1): Add type argument;
4014
        make sure the resulting expression is of this type.
4015
        (build_fold_indirect_ref, fold_indirect_ref): Adjust callers.
4016
 
4017
2005-05-27  Kazu Hirata  
4018
 
4019
        PR tree-optimization/21658
4020
        * tree-ssa-ccp.c (ccp_fold): Call fold_binary instead of
4021
        fold_binary_to_constant.  Likewise, call fold_unary instead of
4022
        fold_unary_to_constant.
4023
 
4024
2005-05-27  Nathan Sidwell  
4025
 
4026
        * vec.h: Implement integral type vector specialization.
4027
        (VEC_T): Define a non-GTY structure.
4028
        (VEC_T_GTY): Define a GTY structure.
4029
        (VEC_TA): Rename to ...
4030
        (VEC_TA_GTY): ... here.
4031
        (DEF_VEC_I, DEF_VEC_ALLOC_I): New.
4032
        (DEF_VEC_P, DEF_VEC_ALLOC_P): Adjust.
4033
        (DEF_VEC_FUNC_P, DEF_VEC_ALLOC_FUNC_P): New, broken out of
4034
        DEF_VEC_P and DEF_VEC_ALLOC_P.
4035
        (DEF_VEC_O, DEF_VEC_ALLOC_O): Adjust.
4036
        (DEF_VEC_FUNC_O, DEF_VEC_ALLOC_FUNC_O): New, broken out of
4037
        DEF_VEC_O and DEF_VEC_ALLOC_O.
4038
        * global.c: Use DEF_VEC_I, DEF_VEC_ALLOC_I.
4039
        * lambda-code.c: Likewise.
4040
        * tree-into-ssa.c: Likewise.
4041
        * tree-ssa-live.c: Likewise.
4042
 
4043
2005-05-27  Kazu Hirata  
4044
 
4045
        * tree-into-ssa.c (update_ssa): Ensure that the operand cache
4046
        is up-to-date.
4047
        * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
4048
        update_stmt_if_modified before calling update_ssa.
4049
 
4050
2005-05-27  Ralf Corsepius  
4051
 
4052
        * config/rs6000/t-rtems: Remove roe multilib variant.
4053
 
4054
2005-05-26  Roger Sayle  
4055
 
4056
        PR tree-optimization/9814
4057
        * ifcvt.c (noce_emit_move_insn): If we fail to recognize the move
4058
        instruction, add the necessary clobbers by re-expanding the RTL
4059
        for arithmetic operations via optab.c's expand_unop/expand_binop.
4060
        (noce_try_bitop): New function to optimize bit manipulation idioms
4061
        of the form "if (x & C) x = x op C" and "if (!(x & C) x = x op C".
4062
        (noce_process_if_block): Call noce_try_bitop.
4063
 
4064
2005-05-26  Roger Sayle  
4065
 
4066
        * reg-stack.c (convert_regs_entry, convert_regs_exit,
4067
        convert_regs_1, convert_regs_2, convert_regs): Delete prototypes.
4068
        (reg_to_stack): Move to end of the file.  Initialize the per
4069
        basic block information here, instead of...
4070
        (convert_regs_entry): Here.
4071
        (convert_regs): Change unused return type to void.
4072
 
4073
2005-05-27  Kazu Hirata  
4074
 
4075
        * c-pch.c, timevar.c, timevar.h, unwind-compat.c,
4076
        unwind-dw2-fde-compat.c, unwind-dw2-fde.c, config/mmix/mmix.h,
4077
        config/rs6000/eabispe.h, config/rs6000/lynx.h,
4078
        config/sh/elf.h, config/sh/symbian-pre.h,
4079
        config/sparc/sparc-protos.h: Update copyright.
4080
 
4081
2005-05-26  Mike Stump  
4082
 
4083
        * darwin.h (ASM_OUTPUT_LABELREF): Handle quoted non-lazy pointers
4084
        for Objective-C++.
4085
 
4086
2005-05-26  Richard Guenther  
4087
 
4088
        * tree-ssa-forwprop.c (forward_propagate_addr_expr):
4089
        See through ADDR_EXPR in finding place to propagate into.
4090
 
4091
2005-05-26  Kazu Hirata  
4092
 
4093
        * c-common.c, c-parser.c, cfgbuild.c, cfghooks.c, cfghooks.h,
4094
        cfgrtl.c, cgraphunit.c, ddg.c, expr.h, gcse.c, ggc-page.c,
4095
        ggc-zone.c, gimplify.c, ipa-inline.c, longlong.h, targhooks.c,
4096
        tree-flow-inline.h, tree-pass.h, tree-ssa-dse.c,
4097
        tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
4098
        tree-ssa-operands.c, tree-vect-analyze.c,
4099
        tree-vect-transform.c, tree-vectorizer.c, tree.c,
4100
        config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
4101
        config/frv/frv.md, config/i386/i386.c, config/i386/sse.md,
4102
        config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
4103
        config/mcore/mcore.c, config/mips/mips.c, config/mips/mips.md,
4104
        config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
4105
        config/rs6000/rs6000.h, config/sh/sh.c, config/sh/sh.md,
4106
        config/sh/ushmedia.h, config/sparc/sparc.c,
4107
        config/sparc/sparc.md, config/stormy16/stormy-abi: Fix comment
4108
        typos.  Follow spelling conventions.
4109
        * doc/invoke.texi, doc/tm.texi, doc/tree-ssa.texi: Fix typos.
4110
        Follow spelling conventions.
4111
 
4112
2005-05-26  David Ung  
4113
 
4114
        * config/mips/mips.c (mips_use_ins_ext_p): New helper function
4115
        that determines whether the MIPS32/64 R2 ext/ins should be used.
4116
        * config/mips/mips.h (ISA_HAS_EXT_INS): New macro.
4117
        * config/mips/mips.md (extzv): Changed predicate for operand to
4118
        nonimmediate_operand. Add code to generate insn patterns for
4119
        extzvsi and extzvdi.
4120
        (extzv): New pattern to match mips32/64 r2 ext insn.
4121
        (insv): Similarly for insertion.
4122
        (insv): Similarly.
4123
 
4124
2005-05-26  Paolo Bonzini  
4125
 
4126
        * simplify-rtx.c (avoid_constant_pool_reference): Support
4127
        offsetted addresses in the constant pool.
4128
 
4129
2005-05-26  Paolo Bonzini  
4130
 
4131
        * df.h (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
4132
        * df.c (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
4133
 
4134
2005-05-26  Jakub Jelinek  
4135
 
4136
        PR target/21716
4137
        * reg-stack.c (swap_rtx_condition): Don't crash if %ax user was not
4138
        found in the basic block and last insn in the basic block is not
4139
        INSN_P.  Remove explicit unspec numbers that are no longer valid
4140
        from comments.
4141
 
4142
2005-05-26  Paolo Bonzini  
4143
 
4144
        * tree-vect-transform.c (vectorizable_operation): Try word_mode
4145
        vectorization if UNITS_PER_WORD == UNITS_PER_SIMD_WORD, even
4146
        if a vector mode is available.
4147
 
4148
2005-05-25  Roger Sayle  
4149
 
4150
        PR middle-end/21709
4151
        * fold-const.c (const_binop): Check for division by zero during
4152
        complex division.
4153
 
4154
2005-05-26  Ian Lance Taylor  
4155
 
4156
        * reload1.c (verify_initial_elim_offsets): Add braces to avoid
4157
        having a declaration after a statement.
4158
 
4159
2005-05-26  Richard Sandiford  
4160
 
4161
        * opt-functions.awk (var_type): New function.
4162
        (var_set): Use CLVC_STRING if var_type returns "const char *".
4163
        * opth-gen.awk: Use var_type to find out the types of variables.
4164
        Don't print comments above each "extern" definition.
4165
        * optc-gen.awk: Use var_type in the same way.
4166
        * opts.h (cl_var_cond): Rename to...
4167
        (cl_var_type): ...this.  Add CLVC_STRING.
4168
        (cl_option): Make "flag_var" a "void *" pointer.  Replace "var_cond"
4169
        with "var_type".
4170
        * opts.c (handle_option, option_enabled): Update after above name
4171
        change.  Cast flag_var before using it.  Handle CLVC_STRING.
4172
 
4173
        * config/alpha/alpha.h (alpha_tls_size): Delete.
4174
        * config/alpha/alpha.c (alpha_tls_size, alpha_cpu_string)
4175
        (alpha_tune_string, alpha_tp_string, alpha_fprm_string)
4176
        (alpha_fptm_string, alpha_mlat_string): Delete.
4177
        (alpha_handle_option): Don't set the above variables here.  Use the
4178
        integer argument to check the validity of -mtls-size=.
4179
        * config/alpha/alpha.opt (mcpu=, mtune=, mfp-rounding-mode=)
4180
        (mfp-trap-mode=, mtrap-precision=, mmemory-latency=): Add Var()s.
4181
        (mtls-size=): Likewise.  Convert to a UInteger and initialize the
4182
        variable to 32.
4183
 
4184
        * config/arc/arc.c (arc_cpu_string, arc_text_string)
4185
        (arc_data_string, arc_rodata_string): Delete.
4186
        (arc_handle_option): Don't set the above variables here.
4187
        * config/arc/arc.opt (mcpu=, mtext=, mdata=, mrodata=): Add Var()s
4188
        and initialize them.
4189
 
4190
        * config/arm/arm.c (target_fpu_name, target_fpe_name)
4191
        (target_float_abi_name, target_abi_name, structure_size_string)
4192
        (arm_pic_register_string): Delete.
4193
        (arm_handle_option): Don't set the above variables here, except
4194
        in the handling of -mhard-float and -msoft-float.
4195
        * config/arm/arm.opt (mabi=, mfloat-abi=, mfp=, mfpe=, mfpu=)
4196
        (mpic-register=, mstructure-size-boundary=): Add Var()s.
4197
 
4198
        * config/avr/avr.c (avr_init_stack, avr_mcu_name, TARGET_HANDLE_OPTION)
4199
        (avr_handle_option): Delete.
4200
        * config/avr/avr.opt (mmcu=, minit-stack=): Add Var()s and initialize
4201
        them.
4202
 
4203
        * config/bfin/bfin.c (bfin_library_id): Delete.
4204
        (bfin_handle_option): Don't set it.
4205
        * config/bfin/bfin.opt (mshared-library-id=): Add Var().
4206
 
4207
        * config/c4x/c4x.h (c4x_rpts_cycles): Delete.
4208
        * config/c4x/c4x.c (c4x_rpts_cycles): Delete.
4209
        (c4x_handle_option): Don't set c4x_rpts_cycles here.
4210
        * config/c4x/c4x.opt (mrpts=): Add Var().
4211
 
4212
        * config/cris/aout.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't set
4213
        cris_elinux_stacksize_str here.
4214
        * config/cris/aout.opt (melinux-stacksize=): Add Var().
4215
        * config/cris/cris.h (cris_max_stackframe_str, cris_cpu_str)
4216
        (cris_tune_str, cris_elinux_stacksize_str): Delete.
4217
        * config/cris/cris.c (cris_max_stackframe_str, cris_cpu_str)
4218
        (cris_tune_str, cris_elinux_stacksize_str): Delete.
4219
        (cris_handle_option): Don't set the above variables here.
4220
        * config/cris/cris.opt (mcpu=, march=, mtune=, mmax-stackframe=)
4221
        (max-stackframe=): Add Var()s.
4222
 
4223
        * config/i386/i386.h (ix86_tune_string, ix86_arch_string): Delete.
4224
        * config/i386/i386.c (ix86_cmodel_string, ix86_asm_string)
4225
        (ix86_tls_dialect_string, ix86_tune_string, ix86_arch_string)
4226
        (ix86_fpmath_string, ix86_regparm_string, ix86_align_loops_string)
4227
        (ix86_align_jumps_string, ix86_preferred_stack_boundary_string)
4228
        (ix86_branch_cost_string, ix86_align_funcs_string): Delete.
4229
        (ix86_handle_option): Don't set the above variables here.
4230
        * config/i386/i386.opt (malign-functions=, malign-jumps=)
4231
        (malign-loops=, march=, masm=, mbranch-cost=, mcmodel=, mfpmath=)
4232
        (mpreferred-stack-boundary=, mregparm=, mtls-dialect=, mtune=): Add
4233
        Var()s.
4234
 
4235
        * config/ia64/ia64.h (ia64_tls_size): Delete.
4236
        * config/ia64/ia64.c (ia64_tls_size): Delete.
4237
        (ia64_handle_option): Treat -mtls-size= as a UInteger option,
4238
        reading the integer argument from the "value" parameter.  Don't
4239
        set ia64_tls_size here.
4240
        * config/ia64/ia64.opt (mtls-size=): Turn into a UInteger option.
4241
        Add Var() and Init().
4242
 
4243
        * config/m32r/m32r.h (m32r_cache_flush_func): Delete.
4244
        (m32r_cache_flush_trap): Delete.
4245
        * config/m32r/m32r.c (m32r_cache_flush_func): Delete.
4246
        (m32r_cache_flush_trap): Delete.
4247
        (m32r_handle_option): Don't set the above variables when handling
4248
        -mflush-func= and -mflush-trap=.
4249
        * config/m32r/m32r.opt (-mflush-func=, -mflush-trap=): Add Var()s
4250
        and Init()s.
4251
 
4252
        * config/mips/mips.h (mips_cache_flush_func): Delete.
4253
        * config/mips/mips.c (mips_arch_string, mips_tune_string)
4254
        (mips_cache_flush_func): Delete.
4255
        (mips_handle_option): Don't set the above variables when handling
4256
        -march=, -mtune= and -mflush-func=.
4257
        * config/mips/mips.opt (march=, mflush-func=, mtune=): Add Var()s.
4258
 
4259
        * config/s390/s390.c (s390_arch_string): Delete.
4260
        (s390_handle_option): Don't set it here.
4261
        * config/s390/s390.opt (march=): Add Var().
4262
 
4263
        * config/sparc/sparc.h (sparc_cmodel_string): Delete.
4264
        * config/sparc/sparc.c (sparc_cmodel_string): Delete.
4265
        (sparc_handle_option): Don't set it here.
4266
        * config/sparc/sparc.opt (mcmodel=): Add Var().
4267
 
4268
2005-05-25  Roger Sayle  
4269
 
4270
        * convert.c (convert_to_integer) : Avoid recursive
4271
        call to convert_to_integer by building the NOP_EXPR directly.
4272
 
4273
2005-05-25  Richard Sandiford  
4274
 
4275
        * config/rs6000/rs6000.opt (mprioritize-restricted-insns=): Fix typo.
4276
 
4277
2005-05-25  Daniel Berlin  
4278
            Jeff Law  
4279
 
4280
        * tree-cfg.c (verify_expr, case ADDR_EXPR): Verify invariant,
4281
        constant and side_effects of the ADDR_EXPR are consistent.
4282
 
4283
        * tree-nested.c (convert_local_reference): Set CURRENT_FUNCTION_DECL
4284
        appropriately around calls to recompute_tree_invarant_for_addr_expr.
4285
 
4286
2005-05-25  Ulrich Weigand  
4287
 
4288
        * config/s390/s390.c (GP_ARG_NUM_REG, FP_ARG_NUM_REG): New defines.
4289
        (s390_function_arg, s390_gimplify_va_arg): Use them.
4290
        (s390_register_info): Save only required subset of argument
4291
        registers into save area for va_list.
4292
        (s390_va_start): Initialize only required elements of va_list struct.
4293
        (s390_build_builtin_va_list): Set va_list_[gf]pr_counter_field.
4294
 
4295
2005-05-25  Ulrich Weigand  
4296
 
4297
        * reload1.c (verify_initial_elim_offsets): Return boolean status
4298
        instead of aborting.
4299
        (reload): Adapt verify_initial_elim_offsets call site.  Restart
4300
        main loop if some initial elimination offsets changed.
4301
 
4302
2005-05-25  Adam Nemet  
4303
 
4304
        * config/rs6000/lynx.h (CC1_SPEC): Use -maix-struct-return instead
4305
        of -mno-svr4-struct-return.
4306
 
4307
2005-05-25  Daniel Berlin  
4308
 
4309
        Fix PR tree-optimization/21705
4310
 
4311
        * tree-ssa-pre.c (in_fre): New static variable.
4312
        (create_value_expr_from): Recursively value number reference ops
4313
        in argument lists.
4314
        (can_value_number_call): Temporary restrict only exists for
4315
        PRE, not FRE.
4316
 
4317
2005-05-25  Kazu Hirata  
4318
 
4319
        * tree-into-ssa.c (rewrite_into_ssa, update_ssa): Replace
4320
        sizeof (bitmap *) with sizeof (bitmap).
4321
 
4322
2005-05-25  Daniel Berlin 
4323
 
4324
        * lambda-code.c (perfect_nestify): Call update_stmt on the exit
4325
        condition.
4326
 
4327
2005-05-25  Adrian Straetling  
4328
 
4329
        * config/s390/s390.c (TARGET_INSN_VALID_WITHIN_DOLOOP): Set to
4330
        hook_bool_rtx_true.
4331
 
4332
2005-05-25  Jan Hubicka  
4333
 
4334
        * Makefile.in (ipa-inline.o): Add COEVERAGE_H dependency.
4335
        * cgraph.c (cgraph_create_node): Reset estimated_growth.
4336
        * cgraph.h (cgraph_global_info): Add estimated_growth.
4337
        * ipa-inline.c: Include coverage.h
4338
        (max_insns, max_count): New static variables.
4339
        (cgraph_estimate_size_after_inlining): Cache the result.
4340
        (cgraph_estimate_growth):
4341
        * passes.c (rest_of_clean_state): Kill coverage_end_function.
4342
        * timevar.def (TV_INLINE_HEURISTICS): New timevar.
4343
        * tree-optimize.c (init_tree_optimization_passes): Move profiling before
4344
        inlining.
4345
        (ipa_passes): Initialize bitmaps.
4346
 
4347
2005-05-25  Adrian Straetling  
4348
 
4349
        * loop-doloop.c: Include "target.h".
4350
          (doloop_valid_p): Move tests to function in targhooks.c.
4351
        * target.h (struct gcc_target): New target hook
4352
          "insn_valid_within_doloop".
4353
        * target-def.h: Define default value for "insn_valid_within_doloop".
4354
          (TARGET_INITIALIZER): Insert new target hook into initializer.
4355
        * targhooks.c (default_insn_valid_within_doloop): New function.
4356
        * targhooks.h (default_insn_valid_within_doloop): Declare.
4357
        * hooks.c (hook_bool_rtx_true): New function.
4358
        * hooks.h (hook_bool_rtx_true): Declare.
4359
        * doc/tm.texi: Add documentation for new target hook.
4360
 
4361
2005-05-25  Eric Botcazou  
4362
 
4363
        PR target/21412
4364
        * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): New macro
4365
        * config/sparc/sparc-protos.h (tls_symbolic_operand): Delete.
4366
        (sparc_tls_referenced_p): New prototype.
4367
        * config/sparc/sparc.c (tls_symbolic_operand): Delete.
4368
        (sparc_expand_move): Look for TLS addresses with constant offsets.
4369
        (legitimate_constant_p): Use SPARC_SYMBOL_REF_TLS_P instead of
4370
        tls_symbolic_operand.
4371
        (legitimate_pic_operand_p): Likewise.
4372
        (legitimate_address_p): Likewise.
4373
        (legitimize_address): Likewise.
4374
        (sparc_tls_symbol_ref_1): New function.
4375
        (sparc_tls_referenced_p): New function.
4376
        * config/sparc/predicates.md (tgd_symbolic_operand): Use
4377
        SYMBOL_REF_TLS_MODEL instead of tls_symbolic_operand.
4378
        (tld_symbolic_operand): Likewise.
4379
        (tie_symbolic_operand): Likewise.
4380
        (tle_symbolic_operand): Likewise.
4381
 
4382
2005-05-24  DJ Delorie  
4383
 
4384
        * common.opt (-Wattributes): New.  Default true.
4385
        * doc/invoke.texi (-Wno-attributes): Document.
4386
 
4387
        * attribs.c (decl_attributes): Move warning control from if() to
4388
        warning(OPT_*).
4389
        * c-common.c (handle_packed_attribute): Likewise.
4390
        (handle_nocommon_attribute): Likewise.
4391
        (handle_common_attribute): Likewise.
4392
        (handle_noreturn_attribute): Likewise.
4393
        (handle_noinline_attribute): Likewise.
4394
        (handle_always_inline_attribute): Likewise.
4395
        (handle_used_attribute): Likewise.
4396
        (handle_unused_attribute): Likewise.
4397
        (handle_const_attribute): Likewise.
4398
        (handle_transparent_union_attribute): Likewise.
4399
        (handle_constructor_attribute): Likewise.
4400
        (handle_destructor_attribute): Likewise.
4401
        (handle_mode_attribute): Likewise.
4402
        (handle_alias_attribute): Likewise.
4403
        (handle_visibility_attribute): Likewise.
4404
        (handle_tls_model_attribute): Likewise.
4405
        (handle_malloc_attribute): Likewise.
4406
        (handle_returns_twice_attribute): Likewise.
4407
        (handle_pure_attribute): Likewise.
4408
        (handle_deprecated_attribute): Likewise.
4409
        (handle_vector_size_attribute): Likewise.
4410
        (handle_nothrow_attribute): Likewise.
4411
        (handle_cleanup_attribute): Likewise.
4412
        (handle_warn_unused_result_attribute): Likewise.
4413
        (handle_sentinel_attribute): Likewise.
4414
        * c-decl.c (diagnose_mismatched_decls): Likewise.
4415
        (start_decl): Likewise.
4416
        (grokdeclarator): Likewise.
4417
        (start_function): Likewise.
4418
        * c-format.c (check_function_format): Likewise.
4419
        * stor-layout.c (place_field): Likewise.
4420
        (finalize_record_size): Likewise.
4421
        * tree.c (handle_dll_attribute)): Likewise.
4422
        * varasm.c (default_assemble_visibility): Likewise.
4423
        * config/darwin.c (darwin_handle_weak_import_attribute): Likewise.
4424
        (darwin_assemble_visibility): Likewise.
4425
        * config/arc/arc.c (arc_handle_interrupt_attribute): Likewise.
4426
        * config/arm/arm.c (arm_handle_fndecl_attribute): Likewise.
4427
        (arm_handle_isr_attribute): Likewise.
4428
        * config/avr/avr.c (avr_handle_progmem_attribute): Likewise.
4429
        (avr_handle_fndecl_attribute): Likewise.
4430
        * config/bfin/bfin.c (handle_int_attribute): Likewise.
4431
        * config/c4x/c4x.c (c4x_handle_fntype_attribute): Likewise.
4432
        * config/h8300/h8300.c (h8300_handle_fndecl_attribute): Likewise.
4433
        (h8300_handle_eightbit_data_attribute): Likewise.
4434
        (h8300_handle_tiny_data_attribute): Likewise.
4435
        * config/i386/i386.c (ix86_handle_cdecl_attribute): Likewise.
4436
        (ix86_handle_regparm_attribute): Likewise.
4437
        (ix86_handle_struct_attribute): Likewise.
4438
        * config/i386/winnt.c (ix86_handle_shared_attribute): Likewise.
4439
        (i386_pe_encode_section_info): Likewise.
4440
        * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
4441
        * config/ip2k/ip2k.c (ip2k_handle_progmem_attribute): Likewise.
4442
        (ip2k_handle_fndecl_attribute): Likewise.
4443
        * config/m32r/m32r.c (m32r_handle_model_attribute): Likewise.
4444
        * config/m68hc11/m68hc11 (m68hc11_handle_page0_attribute): Likewise.
4445
        (m68hc11_handle_fntype_attribute): Likewise.
4446
        (m68hc11_encode_section_info): Likewise.
4447
        * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
4448
        * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
4449
        * config/ns32k/ns32k.c (ns32k_handle_fntype_attribute): Likewise.
4450
        * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute): Likewise.
4451
        * config/sh/sh.c (sh_handle_interrupt_handler_attribute): Likewise.
4452
        (sh_handle_sp_switch_attribute): Likewise.
4453
        (sh_handle_trap_exit_attribute): Likewise.
4454
        * config/sh/symbian.c (sh_symbian_dllimport_p): Likewise.
4455
        (sh_symbian_handle_dll_attribute): Likewise.
4456
        * config/stormy16/stormy16.c (xstormy16_handle_interrupt_attribute): Likewise.
4457
        (xstormy16_handle_below100_attribute): Likewise.
4458
        * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
4459
 
4460
        * c-common.c (unsigned_conversion_warning): Move warning control
4461
        from if() to warning(OPT_*).
4462
        (c_common_truthvalue_conversion): Likewise.
4463
        (c_do_switch_warnings): Likewise.
4464
        * c-decl.c (diagnose_mismatched_decls): Likewise.
4465
        (diagnose_mismatched_decls): Likewise.
4466
        (define_label): Likewise.
4467
        (grokdeclarator): Likewise.
4468
        * c-format.c (check_format_info): Likewise.
4469
        * c-lex.c (interpret_integer): Likwise.
4470
        (lex_string): Likewise.
4471
        * c-opts.c (c_common_post_options): Likewise.
4472
        * c-parser.c (c_parser_unary_expression): Likewise.
4473
        * c-pragma.c (handle_pragma_redefine_extname): Likewise.
4474
        (handle_pragma_extern_prefix): Likewise.
4475
        * c-typeck.c (build_binary_op): Likewise.
4476
        * gcse.c (is_too_expensive): Likewise.
4477
        * opts.c (decode_options): Likewise.
4478
        * stor-layout.c (place_field): Likewise.
4479
        * tree-cfg.c (remove_bb): Likewise.
4480
 
4481
        * c.opt (-Wreturn-type): Add Var(warn_return_type).
4482
        * flags.h (warn_return_type): Remove.
4483
        * toplev.c (warn_return_type): Likewise.
4484
 
4485
2005-05-24  Kelley Cook  
4486
 
4487
        * configure.ac: Don't use gcc_AC_C_LONG_LONG.  Check for
4488
        existence of long long and __int64 before determining their size.
4489
        * aclocal.m4: Delete gcc_AC_C_LONG_LONG.
4490
        * configure, config.h.in:  Regenerate.
4491
 
4492
2005-05-24  Kelley Cook  
4493
 
4494
        * configure: Regenerate.
4495
 
4496
2005-05-24  Ziemowit Laski  
4497
 
4498
        * c-common.h (objc_comptypes): Remove prototype.
4499
        (objc_compare_types): New prototype.
4500
        (objc_volatilized_decl): Likewise.
4501
        (objc_type_quals_match): Likewise.
4502
        * c-decl.c (objc_mark_locals_volatile): Streamline by calling
4503
        objc_volatilize_decl().
4504
        * c-typeck.c (comp_target_types): Remove third parameter; do
4505
        not call objc_comptypes().
4506
        (comptypes): Remove calls to objc_comptypes().
4507
        (build_function_call): Extend compatible prototype check to ObjC.
4508
        (build_conditional_expr): Adjust call to comp_target_types().
4509
        (convert_for_assignment): Call objc_compare_types() instead of
4510
        objc_comptypes(); adjust calls to comp_target_types(); call
4511
        objc_type_quals_match() before issuing qualifier mismatch
4512
        warnings.
4513
        (build_binary_op): Call objc_compare_types() before issuing
4514
        pointer mismatch warnings; adjust calls to
4515
        comp_target_types().
4516
        * stub-objc.c (objc_comptypes): Remove stub.
4517
        (objc_compare_types): New stub.
4518
        (objc_volatilized_decl): Likewise.
4519
        (objc_type_quals_match): Likewise.
4520
 
4521
2005-05-24  Paolo Carlini  
4522
 
4523
        * config/ia64/ia64intrin.h: Define nothing for C++:
4524
        overloaded builtins have been ported to C++.
4525
 
4526
2005-05-24  Jeff Law  
4527
 
4528
        * tree-nested.c (build_addr): New "context" argument.  Temporarily
4529
        set current_function_decl around the call to build the ADDR_EXPR.
4530
        (get_static_chain): Pass proper context to build_addr.
4531
        (convert_nl_goto_reference): Likewise.
4532
        (convert_tramp_reference): Likewise.
4533
        (final_nesting_tree_1): Likewise.
4534
        * tree-profile.c (tree_gen_interval_profiler): Likewise.
4535
        (tree_gen_pow2_profiler): Likewise.
4536
        (tree_gen_one_value_profiler): Likewise.
4537
        * tree-ssa-loop-ivopts.c (build_addr_strip_iref): Likewise.
4538
        * tree.h (build_addr): Update prototype.
4539
 
4540
2005-05-24  Kazu Hirata  
4541
 
4542
        * tree-flow.h (bb_ann_d): Remove has_escape_site.
4543
        * tree-ssa-alias.c (compute_points_to_addr_escape): Don't
4544
        write to has_escape_site.
4545
 
4546
2005-05-24  Jeff Law  
4547
 
4548
        * Makefile.in (tree-cfg.o): Depend on tree-ssa-propagate.h.
4549
        * tree-cfg.c: Include tree-ssa-propagate.h.
4550
        (replace_uses_by): Call recompute_tree_invarant_for_addr_expr as
4551
        needed.
4552
 
4553
2005-05-24  Nick Clifton  
4554
 
4555
        * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
4556
        __NO_FPRS__ when 'f' class registers will not be available.
4557
 
4558
2005-05-24  Kazuhiro Inaoka 
4559
 
4560
        * config/m32r/m32r.c (m32r_expand_block_move):  Return 0 if
4561
        nothing was done.
4562
        * config/m32r/m32r.md (movmemsi):  If m32r_expand_block_move did
4563
        nothing then FAIL.
4564
        * config/m32r/m32r/m32r-protos.h  (m32r_expand_block_move): Update
4565
        prototype.
4566
 
4567
2005-05-23  Jeff Law  
4568
 
4569
        * tree-ssa-dom.c (cprop_into_stmt): Do not call
4570
        recompute_tree_invariant_for_addr_expr here.
4571
        (optimize_stmt): Call it here instead and do so if anything
4572
        at all has changed in the statement and the RHS is an ADDR_EXPR.
4573
        * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): If
4574
        needed, call recompute_tree_invariant_for_addr_expr.
4575
        * tree-ssa-propagate.c (substitute_and_fold): Call
4576
        recompute_tree_invariant_for_addr_expr as needed.
4577
 
4578
2005-05-23  Andreas Krebbel  
4579
 
4580
        * config/s390/s390.c (s390_optimize_prologue): Don't replace an insn
4581
        saving less registers than the replacement.
4582
 
4583
2005-05-23  Jan Hubicka  
4584
 
4585
        * tree-flow.h (stmt_ann_d): Kill GTY ((skip)) mark on BB.
4586
 
4587
2005-05-23  Eric Botcazou  
4588
 
4589
        * config/sparc/sparc-protos.h (sparc_expand_move): New prototype.
4590
        * config/sparc/sparc.c (sparc_expand_move): New function.
4591
        (sparc_emit_set_const64): Rewrite assert condition on entry.
4592
        (legitimate_constant_p) : New case.
4593
        (legitimize_pic_address): Use TARGET_ARCH64 to select the mode.
4594
        * config/sparc/sparc.md (movqi, movhi, movsi, movdi, movV32,
4595
        movV64, movtf): Use nonimmediate_operand for the first operand.
4596
        Rewrite.  Only invoke sparc_expand_move.
4597
        * config/sparc/predicates.md (input_operand): Reorder tests.
4598
 
4599
2005-05-23  Jan Beulich  
4600
 
4601
        * gthr-posix.h (__gthread_recursive_mutex_init_function): Add
4602
        missing return statement.
4603
 
4604
2005-05-22  Eric Botcazou  
4605
 
4606
        * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Use
4607
        emit_move_insn for moves to TFmode stack slots.
4608
 
4609
2005-05-21  Richard Guenther  
4610
 
4611
        * tree-stdarg.c (execute_optimize_stdarg): Handle references
4612
        to va_list of the form &va[0].
4613
 
4614
2005-05-20  Jan Hubicka  
4615
 
4616
        * Makefile.in (insn-emit.o): Add basic-block.h dependency.
4617
        * genemit.c (main): Make insn-emit to include basic-block.h too.
4618
 
4619
2005-05-20  Jan Hubicka  
4620
 
4621
        * cgraphunit.c (cgraph_expand_function): Force function being lowered.
4622
 
4623
2005-05-19  Richard Henderson  
4624
 
4625
        * config/alpha/alpha.c (emit_unlikely_jump, emit_load_locked,
4626
        emit_store_conditional): Split out from ...
4627
        (alpha_split_atomic_op): ... here.
4628
        (alpha_split_compare_and_swap): New; extract from .md file.
4629
        (alpha_split_lock_test_and_set): Likewise.
4630
        * config/alpha/alpha-protos.h: Update.
4631
        * config/alpha/sync.md (sync_compare_and_swap): Move
4632
        split code into alpha.c.
4633
        (sync_lock_test_and_set): Likewise.
4634
 
4635
2005-05-19  Richard Henderson  
4636
 
4637
        * unwind.h, unwind-pe.h: Revert gcc_unreachable change of 05-17.
4638
 
4639
2005-05-19  Richard Henderson  
4640
 
4641
        * config/i386/sse.md (mulv4si3): Use all register inputs.
4642
        (mulv2di3): Likewise.
4643
 
4644
2005-05-19  Richard Guenther  
4645
 
4646
        * tree-ssa-loop-ivopts.c (determine_base_object): Use
4647
        build_fold_addr_expr to generate trees of correct type.
4648
        Use fold_buildN if possible.
4649
 
4650
2005-05-19  Jan Hubicka  
4651
 
4652
        * basic-block.h (REG_BR_PROB_BASE): Define.
4653
        * cgraph.c (cgraph_create_edge): Initialize loop_nest and count.
4654
        (dump_cgraph_node): Dump count.
4655
        (cgraph_clone_edge): Rescale counts.
4656
        (cgraph_clone_node): Likewise.
4657
        * cgraph.h: Include basic-block.h
4658
        (cgraph_node): Add count.
4659
        (cgraph_edge): Add count and loop_nest.
4660
        (cgraph_node, cgraph_edge, cgraph_clone_edge, cgraph_clone_node):
4661
        Update prototypes.
4662
        * cgraphunit.c: Kill now redundant inlining comment.
4663
        (cgraph_create_edges): Make static, maintain current basic block;
4664
        fix pasto.
4665
        (record_call_1): Fill in new fields.
4666
        * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
4667
        cgraph_clone_node.
4668
        (cgraph_decide_recursive_inlining): Likewise.
4669
        * rtl.h (REG_BR_PROB_BASE): Kill.
4670
        * tree-inline.c (copy_body_r): Update call of cgraph_clone_edge.
4671
        (expand_call_inline): Update call of cgraph_create_edge.
4672
        * tree-optimize.c (tree_rest_of_compilation): Likewise.
4673
 
4674
2005-05-19  Nick Clifton  
4675
 
4676
        * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use the
4677
        new rs6000_explicit_options structure.
4678
 
4679
2005-05-19  Richard Henderson  
4680
 
4681
        PR target/21390
4682
        * config/alpha/alpha.c (alpha_emit_conditional_branch): Move
4683
        TFmode code swapping ...
4684
        (alpha_emit_xfloating_compare): ... here.
4685
        (alpha_emit_setcc): Update to match.
4686
        (alpha_lookup_xfloating_lib_func): Assert TARGET_HAS_XFLOATING_LIBS.
4687
 
4688
2005-05-19  Richard Henderson  
4689
 
4690
        PR target/21657
4691
        * config/ia64/ia64.c (ia64_expand_tls_address): Remove extra
4692
        memory indirection in local-dynamic case.
4693
 
4694
2005-05-18  Jie Zhang  
4695
            Bernd Schmidt  
4696
 
4697
        * config/bfin/bfin.c (branch_dest): Add comment why it's
4698
        necessary.
4699
        * config/bfin/bfin.md (attr "length" default): Change the offset of
4700
        forward conditional branch of length 4 from 4096 to 4092.
4701
 
4702
2005-05-19  Jan Beulich  
4703
 
4704
        * unwind-compat.c: Include tconfig.h and tsystem.h.
4705
        * unwind-dw2-fde-compat.c: Likewise.
4706
 
4707
2005-05-18  Richard Henderson  
4708
 
4709
        PR 21541
4710
        * ifcvt.c (noce_process_if_block): Avoid conversion when the
4711
        memory destination is readonly.
4712
 
4713
2005-05-18  Richard Henderson  
4714
 
4715
        PR 21541
4716
        * tree-ssa-operands.c (opf_non_specific): New.
4717
        (get_asm_expr_operands): Set it.
4718
        (add_call_clobber_ops, add_call_read_ops): Likewise.
4719
        (add_stmt_operand): Test it instead of opf_kill_def when
4720
        considering unmodifiable variables.
4721
 
4722
        * tree-ssa-operands.c (get_expr_operands): Fix exact test.
4723
 
4724
2005-05-19  Kazu Hirata  
4725
 
4726
        * cfgexpand.c, tree-cfg.c, tree-inline.c, tree-optimize.c,
4727
        tree-ssa-forwprop.c: Fix comment typos.
4728
        * doc/invoke.texi: Fix a typo.
4729
 
4730
2005-05-18  Richard Henderson  
4731
 
4732
        * config.gcc (powerpc-*-linux*): Include linux64.opt when
4733
        including linux64.h.
4734
 
4735
2005-05-18  Richard Henderson  
4736
 
4737
        * tree-cfg.c (pass_remove_useless): Revert last change.
4738
        * tree-optimize.c (init_tree_optimization_passes): Initialize
4739
        all_lowering_passes with PROP_gimple_any.
4740
 
4741
2005-05-18  Devang Patel  
4742
 
4743
        * config/rs6000/rs6000.md (insvsi_internal1): Subtract shift from
4744
        the mask end.
4745
 
4746
2005-05-18  Richard Henderson  
4747
 
4748
        * tree-ssa-forwprop.c (cfg_changed): New.
4749
        (tidy_after_forward_propagate_addr): New.
4750
        (forward_propagate_addr_expr): Use it, and fold_stmt_inplace.
4751
        (forward_propagate_addr_into_variable_array_index): Likewise.
4752
        (tree_ssa_forward_propagate_single_use_vars): Cleanup cfg if
4753
        edges were removed.
4754
 
4755
2005-05-18  Geoffrey Keating  
4756
 
4757
        * dummy-checksum.c: New.
4758
        * genchecksum.c: New.
4759
        * c.opt (print_pch_checksum): New flag.
4760
        * c-pch.c (struct c_pch_validity): Make much shorter.
4761
        (no_checksum): New.
4762
        (host_machine): Remove.
4763
        (target_machine): Remove.
4764
        (get_ident): Change PCH version number.
4765
        (pch_init): When -fverbose-asm, print out the compiler fingerprint.
4766
        Don't put triplets or version string in PCH validity data.
4767
        Do put the compiler checksum in the validity data.
4768
        (c_common_valid_pch): Don't check triplets or version string.  Do
4769
        check checksum.
4770
        (c_common_print_pch_checksum): New.
4771
        * c-opts.c (c_common_handle_option): Add OPT_print_pch_checksum.
4772
        Print fingerprint with -v.
4773
        * c-common.h (c_common_print_pch_checksum): New.
4774
        (executable_checksum): New.
4775
        * Makefile.in (STAGEMOVESTUFF): Add cc1*-dummy, *-checksum.c.
4776
        (cc1-dummy): New rule.
4777
        (cc1-checksum.c): New rule.
4778
        (cc1-checksum.o): New rule.
4779
        (cc1): Add checksum support.
4780
        (build/genchecksum): New.
4781
        (build/genchecksum.o): New.
4782
        (dummy-checksum.o): New.
4783
        (genobjnames): Add genchecksum.o.
4784
        (mostlyclean): Remove *-checksum.c.
4785
        (gnucompare): Add libgcc to list of directories checked.
4786
        Make comparison problems in libgcc/ and with checksum files only
4787
        be warnings.
4788
        * doc/invoke.texi (Precompiled Headers): Remove caution.
4789
        Document that it must be the exact same binary.  Add a few
4790
        known-safe flags to the list.
4791
 
4792
        * rs6000/predicates.md (fix_trunc_dest_operand): New.
4793
        * rs6000/rs6000.md (fix_truncdfsi2): Use fix_trunc_dest_operand.
4794
        Check that a memory operand is valid before trying to use it.
4795
 
4796
        * tree-cfg.c (pass_remove_useless): This pass works on trees.
4797
 
4798
2005-05-18  Richard Guenther  
4799
 
4800
        * tree.c (build1_stat): Don't try to handle two-operand
4801
        tree codes.
4802
 
4803
2005-05-18  Richard Sandiford  
4804
 
4805
        * config.gcc (sh*-*-*): Define SUPPORT_* macros to 1.
4806
        * config/sh/sh.h: Update mask names throughout.
4807
        (target_flags, ISIZE_BIT, DALIGN_BIT, SH1_BIT, SH2_BIT, SH3_BIT)
4808
        (SH_E_BIT, HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, SH4A_BIT, FMOVD_BIT)
4809
        (SH5_BIT, SPACE_BIT, BIGTABLE_BIT, RELAX_BIT, USERMODE_BIT)
4810
        (HITACHI_BIT, NOMACSAVE_BIT, PREFERGOT_BIT, PADSTRUCT_BIT)
4811
        (LITTLE_ENDIAN_BIT, IEEE_BIT, SAVE_ALL_TR_BIT, HARD_SH2A_BIT)
4812
        (HARD_SH2A_DOUBLE_BIT, INDEXED_ADDRESS_BIT, PT_FIXED_BIT)
4813
        (INVALID_SYMBOLS_BIT, ADJUST_UNROLL_BIT, TARGET_DUMPISIZE)
4814
        (TARGET_ALIGN_DOUBLE, TARGET_SH1, TARGET_SH2, TARGET_SH3)
4815
        (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH5, TARGET_FMOVD)
4816
        (TARGET_IEEE, TARGET_SMALLCODE, TARGET_BIGTABLE, TARGET_RELAX)
4817
        (TARGET_HITACHI, TARGET_NOMACSAVE, TARGET_PADSTRUCT)
4818
        (TARGET_LITTLE_ENDIAN, TARGET_USERMODE, TARGET_PREFERGOT)
4819
        (TARGET_SAVE_ALL_TARGET_REGS, TARGET_ALLOW_INDEXED_ADDRESS)
4820
        (TARGET_PT_FIXED, TARGET_INVALID_SYMBOLS, TARGET_ADJUST_UNROLL)
4821
        (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E)
4822
        (TARGET_SWITCH_SH2A, TARGET_SWITCH_SH2A_SINGLE_ONLY)
4823
        (TARGET_SWITCH_SH2A_SINGLE, TARGET_SWITCH_SH2A_NOFPU)
4824
        (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E, TARGET_SWITCH_SH4_SINGLE_ONLY)
4825
        (TARGET_SWITCH_SH4_SINGLE, TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4)
4826
        (TARGET_SWITCH_SH4A, TARGET_SWITCH_SH4A_SINGLE_ONLY)
4827
        (TARGET_SWITCH_SH4A_SINGLE, TARGET_SWITCH_SH4A_NOFPU)
4828
        (TARGET_SWITCH_SH4AL, TARGET_SWITCH_SH5_64MEDIA)
4829
        (TARGET_SWITCH_SH5_64MEDIA_NOFPU, TARGET_SWITCHES_SH5_32MEDIA)
4830
        (TARGET_SWITCHES_SH5_32MEDIA_NOFPU, TARGET_SWITCH_SH5_32_ANY_EXTRA)
4831
        (TARGET_SWITCH_SH5_MEDIA_ANY_EXTRA, TARGET_SWITCHES)
4832
        (SUBTARGET_SWITCHES): Delete.
4833
        (TARGET_SH2E, TARGET_SH2A, TARGET_SH2A_SINGLE, TARGET_SH2A_DOUBLE)
4834
        (TARGET_SH3E, TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARVARD)
4835
        (TARGET_FPU_DOUBLE, TARGET_SH4A_ARCH, TARGET_SHMEDIA32)
4836
        (TARGET_SHMEDIA64): Redefine using other TARGET_* macros.
4837
        (TARGET_SH4): Undefine options.h definition and check MASK_SH1 as well.
4838
        (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4, SUPPORT_SH4_SINGLE)
4839
        (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Make numeric.
4840
        (SUPPORT_SH2): Define to 1 if SUPPORT_SH1.
4841
        (SUPPORT_SH3): Likewise SUPPORT_SH2.
4842
        (SUPPORT_SH4_NOFPU): Likewise SUPPORT_SH3.
4843
        (SUPPORT_SH4A_NOFPU, SUPPORT_SH4AL, SUPPORT_SH2A_NOFPU): Likewise
4844
        SUPPORT_SH4_NOFPU.
4845
        (SUPPORT_SH3E): Likewise SUPPORT_SH2E.
4846
        (SUPPORT_SH4_SINGLE_ONLY, SUPPORT_SH4A_SINGLE_ONLY)
4847
        (SUPPORT_SH2A_SINGLE_ONLY): Likewise SUPPORT_SH3E.
4848
        (SUPPORT_SH4A): Likewise SUPPORT_SH4.
4849
        (SUPPORT_SH4A_SINGLE): Likewise SUPPORT_SH4_SINGLE.
4850
        (SUPPORT_SH5_32MEDIA): Likewise SUPPORT_SH5_COMPACT.
4851
        (SUPPORT_SH5_32MEDIA_NOFPU): Likewise SUPPORT_SH5_COMPACT_NOFPU.
4852
        (SUPPORT_ANY_SH5_32MEDIA, SUPPORT_ANY_SH5_64MEDIA)
4853
        (SUPPORT_ANY_SH5): New macros.
4854
        (TARGET_NONE): Replace with...
4855
        (MASK_ARCH): ...this new macro.
4856
        * config/sh/elf.h: Update mask names
4857
        * config/sh/linux.h: Likewise.
4858
        * config/sh/little.h: Likewise.
4859
        * config/sh/netbsd-elf.h: Likewise.
4860
        * config/sh/symbian-pre.h: Likewise.
4861
        * config/sh/sh.c (sh_handle_option): New function.
4862
        (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
4863
        (calc_live_regs): Use MASK_FPU_SINGLE instead of FPU_SINGLE_BIT.
4864
        (sh_target_switches, target_switches): Delete.
4865
        (sh_pch_valid_p): Check for specific differences in the target_flags
4866
        settings.
4867
        (sh_init_cumulative_args): Use MASK_HITACHI instead of HITACHI_BIT.
4868
        * config/sh/sh.opt: New file.
4869
 
4870
2005-05-18  Richard Henderson  
4871
 
4872
        PR target/21632
4873
        * config/ia64/ia64.c (ia64_extra_constraint) <'T'>: Use
4874
        small_addr_symbolic_operand.
4875
 
4876
2005-05-18  Jeff Law  
4877
 
4878
        * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
4879
        propagate an ADDR_EXPR if the definition and use sites are
4880
        in different EH regions.
4881
 
4882
2005-05-18  Ian Lance Taylor  
4883
 
4884
        * read-rtl.c (mode_attr_index): Use obstack_grow0, not
4885
        obstack_grow.
4886
 
4887
2005-05-18  Daniel Berlin  
4888
 
4889
        * cfgrtl.c (purge_dead_edges): Don't remove fake edges.
4890
 
4891
2005-05-18  Daniel Berlin  
4892
 
4893
        Fix PR tree-optimization/21407
4894
 
4895
        * tree-ssa-operands.c (note_addressable): Change
4896
        COMPONENT_REF handling in response to aliasing
4897
        discussion.
4898
 
4899
2005-05-18  Eric Botcazou  
4900
 
4901
        * config/sparc/sol2.h (TARGET_DEFAULT): Add back MASK_APP_REGS.
4902
        * config/sparc/sol2-64.h (TARGET_DEFAULT): Likewise.
4903
        * config/sparc/sp-elf.h (TARGET_DEFAULT): Delete.
4904
        * doc/invoke.texi (SPARC options): Document that -mapp-regs is
4905
        the default on Solaris too.
4906
 
4907
2005-05-17  Daniel Berlin  
4908
 
4909
        * tree-ssa-pre.c (find_or_generate_expression): CALL_EXPR
4910
        is okay too.
4911
 
4912
2005-05-17  Zdenek Dvorak  
4913
 
4914
        * timevar.def (TV_SCEV_CONST): New timevar.
4915
        * tree-optimize.c (init_tree_optimization_passes): Add
4916
        pass_scev_cprop.
4917
        * tree-pass.h (pass_scev_cprop): Declare.
4918
        * tree-scalar-evolution.c (scev_const_prop): New function.
4919
        * tree-scalar-evolution.h (scev_const_prop): Declare.
4920
        * tree-ssa-loop.c (gate_scev_const_prop, pass_scev_cprop):
4921
        New.
4922
        * tree-cfg.c (replace_uses_by): Export.
4923
        * tree-flow.h (replace_uses_by): Declare.
4924
 
4925
2005-05-17  Ziemowit Laski  
4926
            Mike Stump  
4927
 
4928
        Yet more Objective-C++...
4929
 
4930
        * c-common.h (objc_finish_try_stmt): Add.
4931
        (objc_build_synchronized): Add.
4932
        (objc_generate_write_barrier): Add.
4933
        * stub-objc.c (objc_build_synchronized): Add return value.
4934
        (objc_finish_try_stmt): Likewise.
4935
        (objc_generate_write_barrier): Add.
4936
 
4937
        * c-common.h (objc_rewrite_function_call): Add.
4938
        * c-typeck.c (build_function_call): Allow objc to rewrite
4939
        FUNCTION_DECLs.
4940
        (build_modify_expr): Allow objc to generate write barriers.
4941
        * c.opt (Wassign-intercept): Add.
4942
        (Wstrict-selector-match): Add.
4943
        (fobjc-call-cxx-cdtors): Add.
4944
        (fobjc-direct-dispatch): Add.
4945
        (fobjc-gc): Add.
4946
        * dbxout.c (get_lang_number): Add Objective-C++ support.
4947
        * doc/invoke.texi (-fobjc-call-cxx-cdtors): Likewise.
4948
        (-Wstrict-selector-match): Likewise.
4949
        (-fobjc-direct-dispatch): Likewise.
4950
        (-Wassign-intercept): Likewise.
4951
        (Overall Options): Likewise.
4952
        * gengtype.c (get_output_file_with_visibility): Likewise.
4953
        * stub-objc.c (objc_rewrite_function_call): Add.
4954
        * config/darwin.h (ASM_OUTPUT_LABELREF): Improved quoting support.
4955
 
4956
        * c-common.c (flag_objc_exceptions): Remove.
4957
        (flag_objc_sjlj_exceptions): Remove.
4958
        * c-decl.c (objc_mark_locals_volatile): Don't change decls
4959
        that are already ok.
4960
        * c-opts.c (c_common_handle_option, case
4961
        OPT_fobjc_exceptions): Remove.
4962
        (case OPT_fobjc_sjlj_exceptions): Remove
4963
        * c.opt (fobjc-call-cxx-cdtors): Have opt create the flag.
4964
        (fobjc-exceptions): Likewise.
4965
        (fobjc-sjlj-exceptions): Likewise.
4966
        * config/rs6000/darwin.h (OFFS_MSGSEND_FAST): Add.
4967
        (OFFS_ASSIGNIVAR_FAST): Add.
4968
 
4969
2005-05-17  Eric Botcazou  
4970
 
4971
        * config/sparc/sparc.md (movhi): Do not test constness
4972
        of operand #1 twice.
4973
        (movsi): Likewise.
4974
        (movdi): Unconditionally accept zero as second operand
4975
        when the first is memory.
4976
        (movdi_insn_sp32): Handle above case.
4977
        (DImode splitter): Use predicates.
4978
        (DImode splitter): Use const_zero_operand predicate.
4979
        (movsf_insn): Swap 2 alternatives.
4980
 
4981
2005-05-17  Zdenek Dvorak  
4982
 
4983
        * tree-ssa-loop-ivopts.c (find_bivs, find_givs_in_stmt_scev): Apply
4984
        expand_simple_operations to bases of the ivs.
4985
        (tree_int_cst_sign_bit): Export.
4986
        * tree-flow.h (expand_simple_operations): Declare.
4987
        * tree-ssa-loop-niter.c (number_of_iterations_cond): Use
4988
        tree_int_cst_sign_bit.
4989
        (expand_simple_operations): Export.
4990
        * tree.h (tree_int_cst_sign_bit): Declare.
4991
 
4992
2005-05-17  Zdenek Dvorak  
4993
 
4994
        * tree-cfg.c (tree_can_merge_blocks_p): Allow phi nodes in the
4995
        merged block.
4996
        (replace_uses_by): New function.
4997
        (tree_merge_blocks): Eliminate the phi nodes in the merged block.
4998
        * tree-flow.h (fold_stmt_inplace): Declare.
4999
        * tree-ssa-ccp.c (fold_stmt_inplace): New function.
5000
        * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update dominance
5001
        info after cfg cleanup.
5002
 
5003
2005-05-17  Zdenek Dvorak  
5004
 
5005
        * cfgloop.h (just_once_each_iteration_p): Declaration changed.
5006
        * cfgloopanal.c (just_once_each_iteration_p): Make the loop argument
5007
        const.
5008
 
5009
2005-05-17  Zdenek Dvorak  
5010
 
5011
        * ggc-page.c (ggc_alloc_stat): Record amount of memory allocated.
5012
        * ggc-zone.c (ggc_alloc_zone_1): Ditto.
5013
        * timevar.c (timevar_ggc_mem_total): New variable.
5014
        (GGC_MEM_BOUND): New constant.
5015
        (get_time): Record ggc memory status.
5016
        (timevar_accumulate): Accumulate amount of ggc memory.
5017
        (timevar_print): Print consumption of ggc memory.
5018
        * timevar.def (TV_FIND_REFERENCED_VARS, TV_TREE_REDPHI,
5019
        TV_TREE_LOOP_BOUNDS, TV_TREE_LOOP_IVCANON, TV_TREE_VECTORIZATION,
5020
        TV_TREE_LINEAR_TRANSFORM): Shorten strings to fit in 22 characters.
5021
        * timevar.h (struct timevar_time_def): Add ggc_mem field.
5022
        (timevar_ggc_mem_total): Declare.
5023
 
5024
2005-05-17  Kazu Hirata  
5025
 
5026
        * tree-into-ssa.c (update_ssa): Clean up by shortening the
5027
        live range of DFS.
5028
 
5029
2005-05-17  Hans-Peter Nilsson  
5030
 
5031
        * config/cris/cris.md (ncond, ocode, rcond): Remove separate
5032
        define_code_attr.
5033
        ("b", "b", "b")
5034
        ("*b_reversed", "*b_reversed")
5035
        ("*b_reversed", "s", "s")
5036
        ("s"): Rename from respectively "b",
5037
        "b", "b", ("*b_reversed",
5038
        "*b_reversed", "*b_reversed", "s",
5039
        "s" and "s".
5040
        ("b", "*b_reversed")
5041
        ("*b_reversed"): Remove extraneous backslashes in
5042
        output statement section.
5043
 
5044
2005-05-17  Roger Sayle  
5045
 
5046
        * c-typeck.c (common_type): Also handle BOOLEAN_TYPEs.
5047
 
5048
2005-05-17  Steven Bosscher  
5049
            Stuart Hastings 
5050
            Jan Hubicka  
5051
            Dale Johannesen  
5052
 
5053
        * cgraph.h (cgraph_node): Add 'lowered' state.
5054
        (cgraph_lower_function): Declare.
5055
        * cgraphunit.c (cgraph_finalize_function): Initialize lowered flag.
5056
        (cgraph_lower_function): New function.
5057
        (cgraph_create_edges): Deal with lowered function bodies.
5058
        (verify_cgraph_node): Likewise.
5059
        (cgraph_analyze_function): Do lowering job.
5060
        (cgraph_build_static_cdtor): Likewise.
5061
        * function.h (struct function): Add saved_eh and saved_cfg.
5062
        * integrate.c (copy_decl_for_inlining): Kill LABEL_DECL_UID field.
5063
        * tree-cfg.c (fold_cond_expr_cond): Export.
5064
        * tree-flow.h (fold_cond_expr_cond): Declare.
5065
        * tree-inline.c: Include basic-block, ggc, tree-flow, except.h and
5066
        pointer-set.
5067
        (struct_inline_data): Kill fnd, first_inlined_fn, ret_label,
5068
        in_target_cleanup_p, tree_pruner, tsi; add callee, caller and
5069
        callee_cfun, block, eh_region, eh_region_offset.
5070
        (inlining_p): New predicate.
5071
        (remap_decl): Update for new inline_data; declare newly created inline
5072
        vars in low gimple way.
5073
        (copy_body_r): Update for new datastructure, simplify some of handling
5074
        when we are in gimple; remap LABEL_DECLs for EH; copy TREE_BLOCK;
5075
        deal with RESX_EXPRs.
5076
        (copy_bb): New.
5077
        (copy_edges_for_bb): Likewise.
5078
        (remap_decl_1): New.
5079
        (copy_cfg_body): New.
5080
        (copy_generic_body): Rewrite to work on low gimple.
5081
        (copy_body): Turn into simple wrapper around copy_cfg_body.
5082
        (setup_one_parameter): Insert new statements into given basic block.
5083
        (initialize_initialized_parameters): Likewise, reorganize way things are
5084
        gimplified.
5085
        (declare_return_variable): Update for new inline data datastructure.
5086
        (inline_forbidden_p): Work on low gimple.
5087
        (estimate_num_insns): Likewise.
5088
        (expand_call_inline): Work on CFG.
5089
        (push_cfun, pop_cfun): New functions.
5090
        (cfun_stack): New stack.
5091
        (add_lexical_block): New function.
5092
        (gimple_expand_calls_inline): Work on basic block.
5093
        (optimize_inline_calls): Likewise.
5094
        (clone_body, save_body, unsave_ewpr_now): Update for new
5095
        datastructures.
5096
        (declare_inline_vars): Work on block instead of bind_expr.
5097
        (inlining_p): New predicate.
5098
        * tree-inline.h (push_cfun, pop_cfun): Declare.
5099
        * tree-optimize.c: Include except.h
5100
        (all_lowering_passes): New variable.
5101
        (execute_fixup_cfg, pass_fixup_cfg): New pass.
5102
        (init_tree_optimization_passes): Move some to all_lowering_passes.
5103
        (tree_lowering_passes): New function.
5104
        (tree_rest_of_compilation): Register cfg hooks; save/unsave eh.
5105
        * tree-pass.h (tree_lowering_passes): Declare
5106
 
5107
2005-05-17  Nathan Sidwell  
5108
 
5109
        * unwind-dw2-fde-darwin.c: Include tsystem.h.
5110
 
5111
2005-05-17  Jeff Law  
5112
 
5113
        * Makefile.in (tree-ssa-forwprop.o): Depend on langhooks.h.
5114
        * tree-ssa-forwprop.c: Include langhooks.h.
5115
        (forward_propagate_addr_expr_into_variable_array_index): New.
5116
        (forward_propagate_addr_expr): New.
5117
        (tree_ssa_forward_propagate_single_use_vars): Loop over all
5118
        the statements in the block instead of just the last statement.
5119
        Call forward_propagate_addr_expr as needed.
5120
        (pass_forwprop): Update the SSA graph after forward propagation is
5121
        complete.
5122
 
5123
2005-05-17  Nathan Sidwell  
5124
 
5125
        * unwind-dw2-fde-glibc.c (base_from_cb_data,
5126
        _Unwind_IteratePhdrCallback): Use gcc_assert and gcc_unreachable as
5127
        appropriate.
5128
        * unwind-dw2-fde.c (__deregister_frame_info_bases,
5129
        base_from_object, fde_split, end_fde_sort): Likewise.
5130
        * unwind-dw2.c (_Unwind_GetGR, _Unwind_SetGR, execute_stack_op,
5131
        execute_cfa_program, _Unwind_SetSpColumn, uw_update_context_1,
5132
        uw_init_context_1): Likewise.
5133
        * unwind.inc (_Unwind_RaiseException_Phase2, _Unwind_Resume,
5134
        _Unwind_Resume_or_Rethrow): Likewise.
5135
        * unwind-pe.h (__gxx_abort): Do not define.
5136
        (size_of_encoded_value, base_of_encoded_value,
5137
        read_encoded_value_with_base): Use gcc_unreachable.
5138
        * unwind.h (_Unwind_GetTextRelBase): Likewise.
5139
 
5140
2005-05-17  Daniel Jacobowitz  
5141
 
5142
        * config/arm/lib1funcs.asm (cfi_pop, cfi_push, cfi_start)
5143
        (cfi_end): New macros.
5144
        (RETLDM): Use cfi_pop.  Expect an eight byte stack frame.
5145
        (ARM_LDIV0, THUMB_LDIV0, DIV_FUNC_END): Use CFI macros.  Create
5146
        an eight byte stack frame.
5147
        (__NR_tkill): Define.
5148
        (__div0): Use gettid tkill on GNU/Linux.
5149
        (_arm_return): Add CFI.
5150
        (Lchange_\register, .Lchange_lr): Create an eight byte stack frame.
5151
 
5152
2005-05-17  Daniel Jacobowitz  
5153
 
5154
        * configure.ac: Remove spaces around assignment to
5155
        gcc_cv_ld_sysroot.
5156
        * configure: Regenerated.
5157
 
5158
2005-05-17  David Edelsohn  
5159
 
5160
        * config/rs6000/aix.h (TARGET_ALTIVEC_VRSAVE): Delete.
5161
        * config/rs6000/rs6000.c (rs6000_explicit_options): Add
5162
        aix_struct_ret.
5163
        (rs6000_override_options): Do not protect TARGET_ALTIVEC_VRSAVE.
5164
        Modify aix_struct_return variable, not target_flags.
5165
        (rs6000_handle_option): Do not protect TARGET_ALTIVEC_VRSAVE.
5166
        (rs6000_return_in_memory): Test aix_struct_return.
5167
        * config/rs6000/rs6000.opt (maix-struct-return): Convert to
5168
        independent variable.  Report mxl-compat.
5169
 
5170
2005-05-17  Bernd Schmidt  
5171
 
5172
        * config/bfin/bfin.md (eh_return): Add missing DONE.
5173
 
5174
2005-05-17  Ian Lance Taylor  
5175
 
5176
        * read-rtl.c (struct macro_traverse_data): Add unknown_mode_attr
5177
        field.
5178
        (mode_attr_index): Remove check for defined attribute.  Remove
5179
        infile parameter.  Change all callers.
5180
        (apply_mode_maps): Add unknown parameter.  Change caller.  Always
5181
        return after finding attribute.
5182
        (apply_macro_to_rtx): Add unknown_mode_attr parameter.  Change
5183
        callers.
5184
        (apply_macro_traverse): Set mtd->unknown_mode_attr.
5185
        (read_rtx): Use mtd.unknown_mode_attr to check for an undefined
5186
        attribute used for a mode.
5187
 
5188
2005-05-17  Paolo Bonzini  
5189
 
5190
        * tree-ssa-math-opts.c: New file.
5191
 
5192
2005-05-17  Paolo Bonzini  
5193
 
5194
        * Makefile.in: Add tree-ssa-math-opts.c.
5195
        * expr.c (expand_expr_real_1) : Never emit as a*(1/b).
5196
        * fold-const.c (distribute_real_division): New.
5197
        (fold_binary) : Use it.
5198
        * tree-pass.h (pass_cse_reciprocals): New.
5199
        * tree-optimize.c (init_tree_optimization_passes): Run it.
5200
        * doc/passes.texi: Document the new pass.
5201
 
5202
2005-05-17  Richard Guenther  
5203
 
5204
        PR middle-end/21595
5205
        * builtins.c (fold_builtin_constant_p): Handle
5206
        &"string cst"[0] as constant.
5207
 
5208
2005-05-17  Richard Henderson  
5209
 
5210
        * config/i386/sse.md (mulv16qi3, mulv2di3): New.
5211
 
5212
2005-05-17  Jakub Jelinek  
5213
 
5214
        PR middle-end/21492
5215
        * cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for
5216
        src2 if src2 has been split.
5217
 
5218
        PR tree-optimization/21610
5219
        * c-typeck.c (decl_constant_value_for_broken_optimization): If not
5220
        returning DECL, call unshare_expr.
5221
 
5222
2005-05-17  Hans-Peter Nilsson  
5223
 
5224
        * config/cris/cris.md: Unquote preparation and output statements.
5225
        (BWD, WD, BW): New, mode-macros.
5226
        (S, s, m, mm, nbitsm1): New, mode-attrs.
5227
        (szext, shift, shiftrt, ncond, ocond, rcond): New, code-macros.
5228
        (u, su, shlr, slr, ncond, ocond, rcond, rCC, oCC, roCC): New,
5229
        code-attrs.
5230
        ("tst"): Replace "tstqi", "tsthi" and "tstsi".
5231
        ("*cmp_ext"): Replace "*cmp_extsi" and "*cmp_exthi".
5232
        ("*cmp_swapext"): Replace "*cmp_swapextqi" and
5233
        "*cmp_swapexthi".
5234
        ("cmp"): Replace "cmphi" and "cmpqi".
5235
        ("movdi"): Move misplaced head comment regarding necessity of
5236
        movdi from movsi to here.
5237
        ("*mov_side_biap"): Replace "*mov_sideqi_biap" and
5238
        "*mov_sidehi_biap".
5239
        ("*mov_side"): Replace "*mov_sideqi" and "*mov_sidehi".
5240
        ("*mov_side_biap_mem", "*mov_sidehi_biap_mem"): Replace
5241
        "*mov_sideqi_biap_mem".
5242
        ("*mov_side_mem"): Replace "*mov_sideqi_mem" and
5243
        "*mov_sidehi_mem".
5244
        ("*clear_side_biap"): Replace "*clear_sidesi_biap",
5245
        "*clear_sidehi_biap" and "*clear_sideqi_biap".
5246
        ("*clear_side"): Replace "*clear_sidesi", "*clear_sidehi"
5247
        and "*clear_sideqi".
5248
        ("*ext_sidesi_biap"): Replace "*ext_sideqisi_biap" and
5249
        "*ext_sidehisi_biap".
5250
        ("*ext_sidesi"): Replace "*ext_sideqisi" and
5251
        "*ext_sidehisi".
5252
        ("reload_in"): Replace "reload_inhi" and "reload_inqi".
5253
        ("reload_out"): Replace "reload_outhi" and "reload_outqi".
5254
        ("extenddi2"): Replace "extendhidi2" and "extendqidi2".
5255
        ("extendsi2"): Replace "extendhisi2" and "extendqisi2".
5256
        ("zero_extendsi2"): Replace "zero_extendhisi2" and
5257
        "zero_extendqisi2".
5258
        ("*op_side_biap"): Replace "*op_sideqi_biap",
5259
        "*op_sidehi_biap" and "*op_sidesi_biap".
5260
        ("*op_side"): Replace "*op_sideqi", "*op_sidehi" and
5261
        "*op_sidesi".
5262
        ("*op_swap_side_biap"): Replace "*op_swap_sideqi_biap",
5263
        "*op_swap_sidehi_biap" and "*op_swap_sidesi_biap".
5264
        ("*op_swap_side"): Replace "*op_swap_sideqi",
5265
        "*op_swap_sidehi" and "*op_swap_sidesi".
5266
        ("sub3"): Replace "subhi3" and "subqi3", correcting a typo
5267
        in the N alternative of "subqi3".
5268
        ("*extopsi_side_biap"): Replace "*extopqisi_side_biap" and
5269
        "*extophisi_side_biap".
5270
        ("*extopsi_side"): Replace "*extopqisi_side" and
5271
        "*extophisi_side".
5272
        ("*extopsi_swap_side_biap"): Replace
5273
        "*extopqisi_swap_side_biap" and "*extophisi_swap_side_biap".
5274
        ("*extopsi_swap_side"): Replace "*extopqisi_swap_side" and
5275
        "*extophisi_swap_side".
5276
        ("*extopsi"): Replace "*extopqisi" and "*extophisi".
5277
        ("*extopsi_swap"): Replace "*extopqisi_swap" and
5278
        "*extophisi_swap".
5279
        ("mul3"): Replace "umulhisi3", "umulqihi3",
5280
        "mulqihi3", "mulhisi3" and "mulhisi3".
5281
        ("mulsidi3"): Replace "mulsidi3" and "umulsidi3".
5282
        ("mulsi3_highpart"): Replace "smulsi3_highpart" and
5283
        "umulsi3_highpart".
5284
        ("xor3"): Replace "xorhi3" and "xorqi3".
5285
        ("neg2"): Replace "negsi2", "neghi2" and "negqi2".
5286
        ("one_cmpl2"): Replace "one_cmplhi2" and "one_cmplqi2".
5287
        ("si3"): Replace "ashrsi3", "lshrsi3" and "ashlsi3".
5288
        ("ashr3"): Replace "ashrhi3" and "ashrqi3".
5289
        ("*expanded_"): Replace "*expanded_ashrhi",
5290
        "*expanded_ashrqi", "*expanded_lshrhi" and "*expanded_lshrqi".
5291
        ("*_lowpart"): Replace "*ashrhi_lowpart",
5292
        "*ashrqi_lowpart", "*lshrhi_lowpart" and "*lshrqi_lowpart".
5293
        ("lshr3"): Replace "lshrhi3" and "lshrqi3".
5294
        ("ashl3"): Replace "ashlhi3" and "ashlqi3".
5295
        ("*ashl_lowpart"): Replace "*ashlqi_lowpart" and
5296
        "*ashlhi_lowpart".
5297
        ("abs2"): Replace "abshi2" and "absqi2".
5298
        ("b"): Replace "beq", "bne", "bgtu", "bltu", "bgeu" and
5299
        "bleu".
5300
        ("b"): Replace "bgt" and "ble".
5301
        ("b"): Replace "blt" and "bge".
5302
        ("*b_reversed"): Replace "*beq_reversed", "*bne_reversed",
5303
        "*bgtu_reversed", "*bltu_reversed", "*bgeu_reversed" and
5304
        "*bleu_reversed".
5305
        ("*b_reversed"): Replace "*bgt_reversed" and
5306
        "*ble_reversed".
5307
        ("*b_reversed"): Replace "*blt_reversed" and
5308
        "*blt_reversed".
5309
        ("s"): Replace "sgeu", "sltu", "seq", "sgtu", "sleu" and
5310
        "sne".
5311
        ("s"): Replace "sge" and "slt".
5312
        ("s"): Replace "sgt" and "sle".
5313
        ("clear.[bwd] [rx=rx+rz.S2]"): Replace split clear.d
5314
        [rx=rx+rz.S2], clear.w [rx=rx+rz.S2] and clear.b [rx=rx+rz.S2].
5315
        ("clear.[bwd] [rx=rx+i]"): Replace splits clear.d [rx=rx+i],
5316
        clear.w [rx=rx+i] and clear.b [rx=rx+i].
5317
 
5318
2005-05-17  Jakub Jelinek  
5319
 
5320
        * varasm.c (struct constant_descriptor_tree): Add hash field.
5321
        (const_desc_hash): Just return hash field.
5322
        (const_desc_eq): If hash values are different, return 0 immediately.
5323
        (output_constant_def): Compute hash field of temporary key, use
5324
        htab_find_slot_with_hash instead of htab_find_slot.  Set hash in
5325
        newly built constant descriptor.
5326
        (lookup_constant_def): Compute hash field of temporary key, use
5327
        htab_find_with_hash instead of htab_find.
5328
 
5329
2005-05-16  Richard Henderson  
5330
 
5331
        * config/i386/sse.md (mulv4si3): New.
5332
 
5333
2005-05-17  Hans-Peter Nilsson  
5334
 
5335
        * config/cris/cris.h (EXTRA_CONSTRAINT_T): Remove FIXME and
5336
        tests for noncanonical versions of reg+constant and
5337
        reg+reg*{1,2,4}.
5338
 
5339
2005-05-16  Richard Henderson  
5340
            Steven Bosscher 
5341
 
5342
        PR tree-opt/21399
5343
        * tree-eh.c (maybe_clean_or_replace_eh_stmt): Rename from
5344
        maybe_clean_eh_stmt; take old stmt parameter.  Update EH
5345
        region data structure to match replacement.
5346
        * tree-flow.h: Update to match.
5347
        * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
5348
        * tree-ssa-dom.c (optimize_stmt): Likewise.
5349
        * tree-ssa-pre.c (eliminate): Likewise.
5350
        * tree-ssa-propagate.c (substitute_and_fold): Likewise.
5351
 
5352
2005-05-16  Caroline Tice  
5353
 
5354
        * bb-reorder.c (verify_hot_cold_block_grouping):  Replace
5355
        internal_error with gcc_assert.
5356
        * dwarf2out.c (dwarf2out_switch_text_section):  Likewise.
5357
        * function.h (struct function): Remove space between "*" and
5358
        struct field names.
5359
        * varasm.c (initialize_cold_section_name):   Add gcc_assert;
5360
        modify to use alloca.
5361
        (unlikely_text_section): Add check for flag_function_sections.
5362
        (assemble_start_function):  Move call to resolve_section, so it
5363
        comes before first call to unlikely_text_section.
5364
        (assemble_end_function):  Add test and call to function_section
5365
        if appropriate.
5366
 
5367
2005-05-16  Roger Sayle  
5368
 
5369
        * c-common.c (c_common_truthvalue_conversion): Use fold_build2
5370
        instead of build_binary_op when performing code transformations
5371
        to avoid error messages about constructs not it the user's code.
5372
 
5373
2005-05-16  Kazu Hirata  
5374
 
5375
        * tree-ssa-pre.c: Fix a comment typo.
5376
 
5377
2005-05-16  Richard Henderson  
5378
 
5379
        PR target/21556
5380
        * config/ia64/ia64.md (load_dtpmod, load_ltoff_dtpmod, load_dtprel,
5381
        load_dtprel64, load_dtprel22, load_dtprel_gd, load_ltoff_dtprel,
5382
        add_dtprel, add_dtprel14, add_dtprel22, load_tprel, load_tprel64,
5383
        load_tprel22, load_tprel_ie, load_ltoff_tprel, add_tprel, add_tprel14,
5384
        add_tprel22): Remove mode from symbolic operand.
5385
 
5386
2005-05-16  Richard Sandiford  
5387
 
5388
        * optc-gen.awk: Include intl.h after the externally-provided files.
5389
 
5390
2005-05-16  Kazu Hirata  
5391
 
5392
        * tree-ssa-copy.c (copy_prop_visit_assignment): Clean up by
5393
        folding a COND_EXPR_COND in a nondestructive manner.
5394
 
5395
2005-05-16  Fariborz Jahanian 
5396
 
5397
        * config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh,
5398
        altivec_vmrghw, altivec_vmrglb, altivec_vmrglh, altivec_vmrglw):
5399
        New values for vec_select definitions and bitmask for element
5400
        selection.
5401
 
5402
2005-05-16  Kazu Hirata  
5403
 
5404
        * dwarf2out.c (used_rtx_varray): Rename to used_rtx_array.
5405
        Change the type to VEC(rtx,gc)*.
5406
        (mem_loc_descriptor, add_const_value_attributes,
5407
        dwarf2out_init): Adjust uses of used_rtx_varray.
5408
 
5409
        * tree-data-ref.c (compute_all_dependences): Change the type
5410
        of dependence_relations to VEC(ddr_p,heap)**.
5411
        (compute_data_dependences_for_loop): Change the type of
5412
        allrelations to VEC(ddr_p,heap)*.
5413
 
5414
2005-05-16  Richard Sandiford  
5415
 
5416
        * Makefile.in (options.c): Tell optc-gen.awk to include config.h,
5417
        system.h, coretypes.h and tm.h.
5418
        (options.o): Update dependencies accordingly.
5419
        * optc-gen.awk: Allow header_name to be a list of filenames.
5420
        Handle the "Condition" flag.
5421
        * opts.h (CL_DISABLED): New flag.
5422
        * opts.c (handle_option): Print an error for CL_DISABLED options.
5423
        * doc/options.texi: Document the "Condition" option flag.
5424
 
5425
2005-05-16  Paolo Bonzini  
5426
 
5427
        * tree-inline.c (estimate_num_insns_1): Handle VEC_COND_EXPR.
5428
 
5429
2005-05-15  Roger Sayle  
5430
 
5431
        * tree-scalar-evolution.c (set_nb_iterations_in_loop): Only
5432
        check for TREE_OVERFLOW on INTEGER_CST trees.
5433
        * tree-chrec.c (chrec_convert): Only clear TREE_OVERFLOW on
5434
        CONSTANT_CLASS_P tree nodes.
5435
 
5436
2005-05-15  H.J. Lu  
5437
 
5438
        PR target/21551
5439
        * config/ia64/ia64.c (ia64_expand_move): Don't add addend twice.
5440
 
5441
2005-05-15  Daniel Berlin  
5442
 
5443
        Fix PR tree-optimization/21576
5444
 
5445
        * tree-ssa-pre.c (expression_node_pool): New pool.
5446
        (comparison_node_pool): Ditto.
5447
        (list_node_pool): Ditto.
5448
        (pool_copy_list): New function.
5449
        (phi_translate): Handle CALL_EXPR.
5450
        (valid_in_set): Ditto.
5451
        (create_expression_by_pieces): Ditto.
5452
        (insert_into_preds_of_block): Ditto.
5453
        (insert_aux): Ditto.
5454
        (compute_avail): Ditto.
5455
        (create_value_expr_from): Handle TREE_LIST and CALL_EXPR.
5456
        (can_value_number_call): New function.
5457
        (find_leader): Update comment.
5458
        (init_pre): Create new pools.
5459
        (fini_pre): Free new pools.
5460
        (pass_pre): Add TODO_update_ssa for the future when we are going
5461
        to need vops.
5462
        * tree-vn.c (expressions_equal_p): Handle TREE_LIST.
5463
        (set_value_handle): Ditto.
5464
        (get_value_handle): Ditto.
5465
 
5466
2005-05-15  Richard Earnshaw  
5467
 
5468
        * arm.c (thumb_unexpanded_epilogue): Delete unused variable 'mode'.
5469
 
5470
2005-05-15  Andreas Jaeger  
5471
 
5472
        * gcc.c (pfatal_pexecute): Remove unused local function.
5473
 
5474
2005-05-15  Richard Sandiford  
5475
 
5476
        * optc-gen.awk: Remove excess indentation.
5477
        * opth-gen.awk: Likewise.
5478
 
5479
2005-05-14  Kaz Kojima  
5480
 
5481
        * config/sh/sh.c (sh_output_mi_thunk): Check cfun->cfg instead
5482
        of basic_block_info.  Call init_flow and find_basic_blocks
5483
        before dbr_schedule if needed.
5484
 
5485
2005-05-14  Kazu Hirata  
5486
 
5487
        * tree-optimize.c (init_tree_optimization_passes): Move
5488
        pass_cd_dce in place of the last pass_dce.
5489
 
5490
        PR tree-optimization/21563
5491
        * tree-vrp.c (compare_value): Return boolean_false_node when
5492
        SSA_NAME in "if (SSA_NAME == CST)" is strictly smaller than or
5493
        strictly larger than CST.
5494
 
5495
2005-05-14  Nathan Sidwell  
5496
            Jan-Benedict Glaw  
5497
 
5498
        * config/vax/vax.c: (print_operand_address) Use gcc_unreachable() and
5499
        gcc_assert().
5500
        (rev_cond_name) Likewise.
5501
        (vax_float_literal) Likewise.
5502
        * config/vax/vax.md: Likewise.
5503
 
5504
2005-05-14  Jan-Benedict Glaw  
5505
 
5506
        * config/vax/vax.md: define_constant VAXens AP, FP, SP and PC
5507
        registers and use them (specifically the stack pointer).
5508
        * config/vax/vax.h: Use above defines right here.
5509
 
5510
        * config/vax/vax.c: (override_options) Remove 'register' keyword.
5511
        (split_quadword_operands) Likewise. (rev_cond_name) Likewise.
5512
        (vax_float_literal) Likewise. (vax_rtx_costs) Remove trailing
5513
        whitespace.
5514
        * config/vax/vax.h: Remove 'register' keyword. Misc. whitespace fixes,
5515
        mostly removal of trailing spaces...
5516
        * config/vax/vax-modes.def: Remove trailing whitespace.
5517
 
5518
        * config/vax/elf.h: Update whitespace.
5519
 
5520
2005-05-14  Richard Guenther  
5521
 
5522
        Revert
5523
        2005-05-11  Richard Guenther  
5524
        * fold-const.c (fold_indirect_ref_1): Avoid removing
5525
        NOP_EXPRs with type qualifiers like const.
5526
 
5527
2005-05-14  Jan Hubicka  
5528
 
5529
        Patch by Richard Henderson:
5530
        * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
5531
        Handle RESX expressions properly.
5532
 
5533
        * tree-eh.c (record_stmt_eh_region): Use add_stmt_to_eh_region.
5534
        (add_stmt_to_eh_region_fn): Nest into CALL_EXPR.
5535
        (remove_stmt_from_eh_region_fn): Likewise.
5536
 
5537
        * tree-cfg.c (execute_warn_function_return): Break out noreturn
5538
        warning too..
5539
        (execute_warn_function_noreturn): ... here.
5540
        (pass_warn_function_noreturn): New pass.
5541
        * tree-pass.h (pass_warn_function_noreturn): Declare
5542
        * tree-optimize.c (init_tree_optimization_passes): Move return
5543
        warnings early and add noreturn warnings at place of previous
5544
        return warnings.
5545
 
5546
2005-05-14  Kazu Hirata  
5547
 
5548
        * tree-ssa-live.c (tpa_init, tpa_delete, tpa_compact,
5549
        root_var_init, type_var_init): Use VEC instead of VARRAY.
5550
        * tree-ssa-live.h (tree_partition_associator_d): Change the
5551
        type of trees to VEC(tree,heap)*.
5552
        (tpa_tree): Use VEC instead of VARRAY.
5553
 
5554
2005-05-14  Richard Guenther  
5555
 
5556
        * fold-const.c (div_if_zero_remainder): New function.
5557
        (try_move_mult_to_index): Use it.
5558
 
5559
2005-05-14  Kazu Hirata  
5560
 
5561
        * tree-eh.c (leh_tf_state): Change the type of dest_array to
5562
        VEC(tree,heap)*.
5563
        (maybe_record_in_goto_queue, lower_try_finally_onedest,
5564
        lower_try_finally_copy, lower_try_finally_switch,
5565
        lower_try_finally): Use VEC instead of VARRAY.
5566
 
5567
2005-05-14  Hans-Peter Nilsson  
5568
 
5569
        * config/cris/cris.h (Node: Register Classes): Remove obsoleted
5570
        comment regarding defined register classes.
5571
        (LEGITIMIZE_RELOAD_ADDRESS): Do not define.
5572
 
5573
2005-05-14  Kazu Hirata  
5574
 
5575
        * tree-optimize.c (init_tree_optimization_passes): Move
5576
        pass_merge_phi before the first pass_dominator.
5577
 
5578
2005-05-13  Richard Earnshaw  
5579
 
5580
        * arm.h (INITIALIZE_TRAMPOLINE): Make the call to __clear_cache
5581
        unconditional.
5582
 
5583
2005-05-13  Josh Conner  
5584
 
5585
        * config/arm/arm.c (arm_size_return_regs): New.
5586
        (thumb_unexpanded_epilogue): replace in-line calculation
5587
        of return registers with call to arm_size_return_regs.
5588
        (use_return_insn): Include test of which registers are
5589
        being used to hold return values, to accommodate
5590
        vector return values.
5591
 
5592
2005-05-11  Aldy Hernandez  
5593
 
5594
        * config/rs6000/sysv4.opt (mlittle): Handle.
5595
 
5596
        * config/rs6000/rs6000.c (rs6000_handle_option): Set
5597
        target_flags_explicit when appropriate.
5598
 
5599
2005-05-13  J"orn Rennecke 
5600
 
5601
        PR middle-end/20714:
5602
        * optabs.c (no_conflict_data): New struct.
5603
        (no_conflict_move_test): New function.
5604
        (emit_no_conflict_block): Use it.
5605
 
5606
2005-05-13  Adam Nemet  
5607
 
5608
        * doc/invoke.texi (Debugging Options): Option
5609
        -fdump-translation-unit only works with C++ now.
5610
 
5611
2005-05-13  Hans-Peter Nilsson  
5612
 
5613
        Replace calls to abort in CRIS port.
5614
        * config/cris/cris.h (CRIS_ASSERT): New macro.
5615
        * config/cris/cris.md ("*movsi_internal"): Use CRIS_ASSERT and
5616
        internal_error instead of abort.
5617
        ("movsi"): Ditto.  Unquote preparation statement section.
5618
        ("call", "call_value"): Ditto, but use gcc_assert where
5619
        appropriate.  Tweak comments.
5620
        * config/cris/cris.c (ASSERT_PLT_UNSPEC): Define in terms of
5621
        CRIS_ASSERT.
5622
        (cris_op_str): Call internal_error, not abort.
5623
        (cris_print_operand): Tweak "abort" reference to "die" in comment.
5624
        (cris_initial_elimination_offset): Call gcc_unreachable, not abort.
5625
        (cris_notice_update_cc): Call internal_error, not abort.
5626
        (cris_expand_return, cris_expand_prologue, cris_gen_movem_load)
5627
        (cris_emit_movem_store, cris_asm_output_symbol_ref)
5628
        (cris_output_addr_const_extra): Use CRIS_ASSERT, don't call abort.
5629
        (cris_symbol, cris_got_symbol): Use CRIS_ASSERT instead of
5630
        ENABLE_CHECKING-guarded abort call.
5631
        (cris_split_movdx): Use CRIS_ASSERT instead of abort with test.
5632
        Use internal_error at end of test-chain.
5633
 
5634
2005-05-13  J"orn Rennecke 
5635
 
5636
        PR rtl-optimization/20769:
5637
        * bt-load.c (compute_defs_uses_and_gen): Check for the blockage
5638
        pattern emitted by expand_nl_goto_receiver.
5639
 
5640
        PR middle-end/20793:
5641
        * integrate.c (allocate_initial_values): Update register liveness
5642
        information.
5643
 
5644
2005-05-13  Josh Conner  
5645
 
5646
        * arm.c (arm_return_in_memory): Add handling for vector return types.
5647
 
5648
2005-05-13  David Ung  
5649
 
5650
        * config/mips/mips.h (processor_type): Add new PROCESSOR_4KP
5651
        name.
5652
        * config/mips/mips.c: Add 4km alias.
5653
        * config/mips/mips.md: Add 4kp to cpu attrib and include 4k.md.
5654
        * config/mips/4k.md: New file, add 4Kc/4Kp DFA pipeline
5655
        description.
5656
 
5657
2005-05-13  Jan Hubicka  
5658
 
5659
        * c-decl.c (finish_function): Suppress "control reaches end of
5660
        non-void function" when "no return statement in function
5661
        returning non-void" is issued.
5662
 
5663
        * tree-inline.c (copy_body_r): Simplify substituted ADDR_EXPRs.
5664
        * tree-optimize.c (pass_gimple): Kill.
5665
        (init_tree_optimization_passes): Kill pass_gimple.
5666
        * tree-cfg.c (build_tree_cfg): Do verify_stmts to check that we are gimple.
5667
        * tree-dump.c (dump_files): Rename .generic to .gimple.*
5668
 
5669
2005-05-13  J"orn Rennecke 
5670
 
5671
        PR rtl-optimization/20756:
5672
        * basic-block.h (PROP_DEAD_INSN): Define.
5673
        * flow.c (propagate_one_insn): Set during mark_set_regs call
5674
        for a dead insn.
5675
        (mark_set_1): Emit a clobber when we are about to delete a dead insn
5676
        that kills a live register.
5677
 
5678
2005-05-13  Adrian Straetling  
5679
 
5680
        * config/s390/s390.md: ("DBL"): New mode attribute.
5681
        ("*movmem_long_64", "*movmem_long_31"): Merge to "*movmem_long".
5682
        ("*clrmem_long_64", "*clrmem_long_31"): Merge to "*clrmem_long".
5683
        ("*cmpmem_long_64", "*cmpmem_long_31"): Merge to "*cmpmem_long".
5684
 
5685
2005-05-13  Richard Guenther  
5686
 
5687
        * c-format.c (check_format_arg): Handle string literals of
5688
        the form &"string"[offset].
5689
 
5690
        * g++.dg/warn/format4.C: New testcase.
5691
 
5692
2005-05-13  Kazu Hirata  
5693
 
5694
        * config/mips/3000.md, config/mips/4000.md,
5695
        config/mips/4100.md, config/mips/4300.md, config/mips/4600.md,
5696
        config/mips/5000.md, config/mips/7000.md, config/mips/9000.md,
5697
        config/mips/generic.md, config/pdp11/pdp11.md,
5698
        config/sh/crt1.asm, config/sh/lib1funcs.asm,
5699
        config/sh/sh-modes.def, config/sh/sh-protos.h,
5700
        config/sh/shmedia.md, config/sh/ushmedia.h: Update copyright.
5701
 
5702
2005-05-13  Richard Henderson  
5703
 
5704
        * function.c (instantiate_virtual_regs_in_insn): Do not simplify
5705
        addition to move unless dest is a register.  Do not skip
5706
        instantiation in dest on addition simplification.
5707
 
5708
2005-05-13  Hans-Peter Nilsson  
5709
 
5710
        * config/cris/cris.c (cris_print_operand) 
5711
        CONST_INT>: Use operand_subword and HOST_WIDE_INT_PRINT_DEC for
5712
        output; don't have special case for HOST_BITS_PER_WIDE_INT == 32.
5713
 
5714
2005-05-13  Jan Hubicka  
5715
 
5716
        * basic-block.h (FOR_ALL_BB_FN): New macro.
5717
        (init_flow): Initialize cfg structure.
5718
        * function.c (allocate_struct_function): Do not initialize cfg structure.
5719
        * tree-cfg.c (init_empty_tree_cfg): Break out from ...
5720
        (build_tree_cfg): ... here.
5721
        * tree-flow.h (init_empty_tree_cfg): Declare.
5722
 
5723
2005-05-12  Steven Bosscher 
5724
 
5725
        Fix PR tree-optimization/21520
5726
        * tree-ssa-pre.c (phi_translate): Use fully_constant_expression
5727
        to attempt to fold constants.
5728
 
5729
2005-05-12  Kaz Kojima  
5730
 
5731
        * config/sh/sh.c: Declare the prototype of sh_adjust_unroll_max
5732
        only when TARGET_ADJUST_UNROLL_MAX is defined.
5733
        (general_movsrc_operand): Use the C style comment.
5734
        (ua_offset): Use prototype.
5735
 
5736
2005-05-12  Zdenek Dvorak  
5737
 
5738
        * tree-ssa-loop-im.c (struct mem_ref): Add field "next".
5739
        (struct hmr_data, hoist_memory_reference, memref_del,
5740
        struct fmrv_data): Removed.
5741
        (hoist_memory_references, free_mem_ref, free_mem_refs): New functions.
5742
        (gather_mem_refs, gather_mem_refs_stmt): Add new references to the
5743
        list.
5744
        (find_more_ref_vops): Traverse the list of memory references.
5745
        (determine_lsm_loop): Work with the list of memory references instead
5746
        of traversing the hashtable.
5747
 
5748
2005-05-12  Steven Bosscher  
5749
            Stuart Hastings 
5750
            Jan Hubicka  
5751
 
5752
        * except.c  (duplicate_eh_region_1, duplicate_eh_region_2,
5753
        duplicate_eh_regions): New functions, based on old
5754
        implementation removed with RTL inliner.
5755
        (reachable_next_level): Modify behaviour pre-inline.
5756
        * except.h (duplicate_eh_regions_map, duplicate_eh_regions):
5757
        Declare.
5758
        * function.h (struct function): Add after_inlining flag.
5759
        * tree-optimize.c (tree_rest_of_compilation): Set it.
5760
        * tree-eh.c (add_stmt_to_eh_region_fn): Initialize hashtable
5761
        when needed.
5762
        * tree-cfg.c (label_to_block_fn): Deal with cases where
5763
        label was never insterted into code.
5764
 
5765
2005-05-12  Zack Weinberg  
5766
 
5767
        * doc/cpp.texi: Document that #sccs is a synonym for #ident.
5768
 
5769
2005-05-12  Daniel Berlin  
5770
 
5771
        Fix PR tree-optimization/21532
5772
        * tree-ssa-pre.c (create_expression_by_pieces): stmt
5773
        needs to go onto the inserted_exprs list.
5774
 
5775
2005-05-12  Ian Lance Taylor  
5776
 
5777
        * c-common.h (statement_code_p): Don't declare.
5778
        (STATEMENT_CODE_P): Don't define.
5779
        (INIT_STATEMENT_CODES): Don't define.
5780
        * c-common.c (statement_code_p): Don't define.
5781
 
5782
2005-05-12  Eric Botcazou  
5783
 
5784
        * config/sparc/sparc.h: Remove dead code.
5785
        * config/sparc/sparc.c (sparc_compute_frame_size): Use
5786
        FIRST_PARM_OFFSET for the size of the register window area.
5787
        (emit_save_regs): Rename into emit_save_or_restore_regs.
5788
        Add 'action' parameter.  Use 4095 as upper bound for the offset.
5789
        Pass 'action' to save_or_restore_regs.
5790
        (emit_restore_regs): Delete.
5791
        (sparc_expand_prologue): Call emit_save_or_restore_regs.
5792
        (sparc_expand_epilogue): Likewise.
5793
        * config/sparc/sparc.md (mode macro P): Move.
5794
        (movdi_insn_sp32_v9, movdi_insn_sp32): Swap.
5795
        (mov expander): Move to the top of the V32 section.
5796
        (movdf_insn_sp32_v9_no_fpu, movdf_insn_sp32_v9): Swap.
5797
        (movtf_insn_sp64_hq, movtf_insn_sp64): Swap.
5798
        (sibcall_epilogue): Move.
5799
 
5800
2005-05-12  Richard Earnshaw  
5801
 
5802
        PR target/21501
5803
        * arm.c (arm_gen_constant): Sign-extend intermediate values when
5804
        synthesizing a constant of the difference of two immediates.
5805
 
5806
2005-05-12  Richard Earnshaw  
5807
 
5808
        * arm/vfp.md (negsf2_vfp): Add alternative using integer registers.
5809
        (negdf2_vfp): Likewise.  Convert to define_insn_and_split and split
5810
        the alternatives using integer registers into the appropriate
5811
        primitives.
5812
 
5813
2005-05-11 Kenneth Zadeck 
5814
 
5815
        * bitmap.c (bitmap_elmt_to_freelist, bitmap_element_allocate,
5816
        bitmap_elt_clear_from, bitmap_clear): Changed freelist structure.
5817
        * bitmap.h: Fixed comments.
5818
 
5819
2005-05-11  Richard Henderson  
5820
 
5821
        PR target/21412
5822
        * config/ia64/ia64.c (TARGET_CANNOT_FORCE_CONST_MEM): New.
5823
        (ia64_cannot_force_const_mem): New.
5824
        (tls_symbolic_operand_type): New.
5825
        (ia64_legitimate_constant_p): New.
5826
        (ia64_expand_load_address): Return true on success.  Improve
5827
        checks for when we should not split.
5828
        (ia64_expand_tls_address): New addend operand.  Distribute it
5829
        as appropriate to the tls_kind.  Delay referencing gp.
5830
        (ia64_expand_move): Split symbolic addend as necessary.  Handle
5831
        tls symbols with addends.
5832
        * config/ia64/ia64-protos.h: Update.
5833
        * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): False for r0,
5834
        p0, f0, f1, and r13.
5835
        (LEGITIMATE_CONSTANT_P): Move to ia64_legitimate_constant_p.
5836
        * config/ia64/ia64.md (UNSPEC_DTPMOD): New.
5837
        (symbolic_operand splitter): Pass everything through
5838
        ia64_expand_load_address and FAIL or DONE as appropriate.
5839
        (load_fptr): Only accept after reload.
5840
        (load_fptr_internal1, gprel64_offset, load_gprel64, load_symptr_high,
5841
        load_symptr_low, load_ltoff_dtpmod,
5842
        (load_dtpmod): New.
5843
        (load_dtprel): Only accept tls symbols.
5844
        (load_dtprel64, load_dtprel22): Likewise.
5845
        (load_tprel, load_tprel64, load_tprel22): Likewise.
5846
        (load_dtprel_gd, load_ltoff_dtprel, load_tprel_ie): New.
5847
        (add_dtprel): Only accept tls symbols.  Canonicalize PLUS.
5848
        (add_dtprel14, add_dtprel22): Likewise.
5849
        (add_tprel, add_tprel14, add_tprel22): Likewise.
5850
        * config/ia64/predicates.md (small_addr_symbolic_operand): New.
5851
        (any_offset_symbol_operand, aligned_offset_symbol_operand): New.
5852
        (got_symbolic_operand): Check CONST offsets.
5853
        (tls_symbolic_operand, ld_tls_symbolic_operand): New.
5854
        (ie_tls_symbolic_operand, le_tls_symbolic_operand): New.
5855
        (move_operand): Don't handle tls here.  Check CONST offsets.
5856
 
5857
2005-05-11  Richard Sandiford  
5858
 
5859
        * config/mips/7000.md (rm7_impy_si_mult): Just match imul and imadd.
5860
        Remove hilo_operand check.
5861
        (rm7_impy_si_mul): Just match imul3.  Remove hilo_operand check.
5862
        * config/mips/predicates.md (hilo_operand): Delete.
5863
 
5864
2005-05-11  Richard Sandiford  
5865
 
5866
        * config/mips/sr71k.md, config/mips/7000.md: Reformat.
5867
 
5868
2005-05-11  Kazu Hirata  
5869
 
5870
        PR tree-optimizer/18472
5871
        * tree-if-conv.c (tree_if_convert_stmt,
5872
        if_convertible_modify_expr_p): Don't handle GOTO_EXPR.
5873
 
5874
2005-05-11  Jan Hubicka  
5875
 
5876
        * Makefile.in (tree-eh.o: Kill gt-tree-eh.h dependency.
5877
        (GTFILES): add except.h.
5878
        * except.c (eh_status): Add throw_stmt_table.
5879
        (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New functions.
5880
        * except.h (add_stmt_to_eh_region_fn, remove_stmt_from_eh_region_fn,
5881
        lookup_stmt_eh_region_fn): Declare.
5882
        (throw_stmt_node): New structure.
5883
        (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New.
5884
        * gengtype.c (open_base_files): Add except.h to inlines.
5885
        * tree-eh.c (throw_stmt_node): Kill.
5886
        (record_stmt_eh_region): Update.
5887
        (add_stmt_to_eh_region_fn): Break out from ...
5888
        (add_stmt_to_eh_region): ... here.
5889
        (remove_stmt_from_eh_region_fn): Break out from ...
5890
        (remove_stmt_from_eh_region): ... here.
5891
        (lookup_stmt_eh_region_fn): Break out from ...
5892
        (lookup_stmt_eh_region): ... here.
5893
        (honor_protect_cleanup_actions): Use build_resx.
5894
        (lower_try_finally_onedest): Likewise.
5895
        (lower_try_finally_copy): Likewise.
5896
        (lower_try_finally_switch): Likewise.
5897
        (lower_eh_constructs): Update eh table construction.
5898
        * tree.c (build_resx): New.
5899
        * tree.h (build_resx): Declare.
5900
 
5901
2005-05-11  H.J. Lu  
5902
 
5903
        * libgcov.c (gcov_exit): Set prefix_length to 0 if no relocation
5904
        is needed.
5905
 
5906
2005-05-11  Kazu Hirata  
5907
 
5908
        * fold-const.c, libgcov.c: Fix comment typos.
5909
 
5910
        * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove
5911
        redundant code.
5912
 
5913
2005-05-11  Daniel Jacobowitz  
5914
 
5915
        * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
5916
        * config/arm/arm.h (SUBTARGET_FRAME_POINTER_REQUIRED): Provide
5917
        default definition.
5918
        (FRAME_POINTER_REQUIRED): Use SUBTARGET_FRAME_POINTER_REQUIRED.
5919
 
5920
2005-05-11  Nathan Sidwell  
5921
 
5922
        PR bootstrap/21481
5923
        * crtstuff.c: Include auto-host.h again, for now.
5924
 
5925
2005-05-11  Richard Sandiford  
5926
 
5927
        * config/mips/24k.md: Remove trailing whitespace.
5928
 
5929
2005-05-11  David Ung  
5930
 
5931
        * config/mips/mips.md (type): Add imul3.
5932
        (length, hazard, may_clobber_hilo): Check for imul3.
5933
        (mulsi3_mult3, muldi3_mult3, *muls, mulsi3_highpart_mulhi_internal)
5934
        (*mulsi3_highpart_neg_mulhi_internal): Set attr to imul3.
5935
        * config/mips/24k.md (r24k_int_mul3): Enable this reservation
5936
        for a 3 operand mul and its bypasses.
5937
        * config/mips/3000.md (r3k_imul): Add imul3 to reservations.
5938
        * config/mips/4000.md (r4k_imul): Likewise.
5939
        * config/mips/4100.md (r4100_imul_si, r4100_imul_di):  Likewise.
5940
        * config/mips/4130.md (vr4130_class, vr4130_mulsi)
5941
        (vr4130_muldi): Likewise.
5942
        * config/mips/4300.md (r4300_imul_si, r4300_imul_di): Likewise.
5943
        * config/mips/4600.md (r4600_imul, r4650_imul): Likewise.
5944
        * config/mips/5000.md (r5k_imul_si, r5k_imul_di): Likewise.
5945
        * config/mips/5400.md (ir_vr54_imul_si, ir_vr54_imul_di)
5946
        (ir_vr54_imadd_si): Likewise.
5947
        * config/mips/5500.md (ir_vr55_imul_si, ir_vr55_imul_di):  Likewise.
5948
        * config/mips/7000.md (rm7_impy_si_mult, rm7_impy_si_mul)
5949
        (rm7_impy_di): Likewise.
5950
        * config/mips/9000.md (rm9k_mulsi, rm9k_muldi):  Likewise.
5951
        * config/mips/generic.md (generic_imul): Likewise.
5952
        * config/mips/sb1.md (ir_sb1_mulsi, ir_sb1_muldi): Likewise.
5953
        * config/mips/sr71k.md (ir_sr70_imul_si, ir_sr70_imul_di):  Likewise.
5954
 
5955
2005-05-11  J"orn Rennecke 
5956
 
5957
        PR middle-end/20371:
5958
        * tree.h (record_layout_info_s): New member prev_packed.
5959
        * stor-layout.c (update_alignment_for_field): Fix comment about
5960
        KNOWN_ALIGN.  For MS bitfields, if we start a new run, make sure
5961
        we start it properly aligned.
5962
        (place_field): At the beginning of a record, pass 0 as KNOWN_ALIGN
5963
        to update_alignment_for_field, and recompute it afterwards using
5964
        the alignment of the record.
5965
        When a packed bitfield precedes an MS bitfield, don't add padding
5966
        at the end of the packed bitfield on behalf of the base type of
5967
        the packed bit field.
5968
        Don't adjust rli->bitpos at the end
5969
        of an MS bitfield run if we already adjusted bitpos/offset for an
5970
        alignment as large or larger than the bitfield type size.
5971
        Take possible record alignment > BIGGEST_ALIGNMENT into account
5972
        when calculating actual_align.
5973
        Only put packed buit fields into rli->prev_field if they end up
5974
        suitably aligned.
5975
        Also set rli->remaining_in_alignment when we re-set rli->prev_field.
5976
        Update rli->remaining_in_alignment when we have already started a
5977
        run of bit fields and we process a packed bit field.
5978
 
5979
2005-05-11  Sebastian Pop  
5980
 
5981
        * tree-data-ref.c (find_data_references_in_loop): Give up when
5982
        the body of the loop contains a CALL_EXPR or an ASM_EXPR: they
5983
        may embed arbitrary side effects.
5984
        Remove the assumption that GIMPLE form contains a single array
5985
        access per statement.
5986
        When the statement contains virtual operands, fail if it is not
5987
        a MODIFY_EXPR or a CALL_EXPR.
5988
        Return after the dont know node is inserted.
5989
 
5990
2005-05-11  Richard Earnshaw  
5991
 
5992
        * arm.md (negsf2, negdf2): Permit these expands when compiling for VFP.
5993
 
5994
2005-05-11  Richard Guenther  
5995
 
5996
        PR middle-end/19807
5997
        PR tree-optimization/19639
5998
        * fold-const.c (try_move_mult_to_index): Handle INTEGER_CST
5999
        and generic summands for char* as s * delta, too, folding &a[i]
6000
        CODE x to &a[i CODE x/s].  Use tree_int_cst_equal
6001
        for comparison of steps.  Convert types for index addition.
6002
        (fold_binary): Adjust the callers to always dispatch to
6003
        try_move_mult_to_index.
6004
        * tree-ssa-propagate.c (set_rhs): Avoid setting rhs to
6005
        expr with non-gimple ARRAY_REF offset.
6006
 
6007
2005-05-11  Richard Guenther  
6008
 
6009
        * fold-const.c (fold_indirect_ref_1): Avoid removing
6010
        NOP_EXPRs with type qualifiers like const.
6011
 
6012
2005-05-11  Richard Henderson  
6013
 
6014
        PR c/21502
6015
        * c-decl.c (finish_decl): Propagate the completed array type of
6016
        a global variable into the binding.
6017
 
6018
2005-05-10  Matt Kraai  
6019
 
6020
        * Makefile.in (gtype-desc.o, build/genautomata.o)
6021
        (build/varray.o): Depend on $(VARRAY_H).
6022
 
6023
2005-05-10  Diego Novillo  
6024
 
6025
        * tree-optimize.c (init_tree_optimization_passes): Re-organize
6026
        optimization passes to do an initial batch of scalar cleanups.
6027
 
6028
2005-05-10  Ian Lance Taylor  
6029
 
6030
        * read-rtl.c (struct macro_traverse_data): Define.
6031
        (map_attr_string): New static function, broken out of
6032
        apply_macro_to_string.
6033
        (mode_attr_index, apply_mode_maps): New static functions.
6034
        (apply_macro_to_string): Call map_attr_string.
6035
        (apply_macro_to_rtx): Add mode_maps and infile parameters.  Change
6036
        all callers.
6037
        (apply_macro_traverse): Expect data to point to a struct
6038
        macro_traverse_data.
6039
        (read_rtx): Add mode_maps local variable.  Use mode_traverse_data
6040
        to pass data through htab_traverse.
6041
        (read_rtx_1): Add mode_maps parameter.  Change all callers.
6042
        Handle mode names which are attribute strings.
6043
        * doc/md.texi (Substitutions): Rename from String Substitutions.
6044
        Change references.  Document using attributes as modes.
6045
 
6046
2005-05-10  Zdenek Dvorak  
6047
 
6048
        * tree-cfg.c (tree_duplicate_sese_region): Update profile.
6049
        * tree-optimize.c (init_tree_optimization_passes) Swap
6050
        pass_ch and pass_profile.
6051
        * tree-ssa-loop-ch.c (copy_loop_headers): Do not update profile
6052
        here.  Remove rewrite_into_loop_closed_ssa call.
6053
 
6054
2005-05-10  Adrian Straetling  
6055
 
6056
        * config/s390/s390.c: (s390_const_double_ok_for_constraint_p): New
6057
        function.
6058
        (legitimate_reload_constant_p): Add check for const double zero.
6059
        * config/s390/s390.md: Add comment for constraint letter 'G'.
6060
        ("*movdf_64", "*movdf_31", "movsf"): Add constraint and proper
6061
        attributes for new case.
6062
        * config/s390/s390.h: (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Define it as
6063
        s390_const_double_ok_for_constraint_p.
6064
        * config/s390/s390-protos.h (s390_const_double_ok_for_constraint_p):
6065
        Add prototype.
6066
 
6067
2005-05-10  Kazu Hirata  
6068
 
6069
        PR tree-optimization/21170
6070
        * tree-ssa-dom.c, tree-ssa-threadupdate.c: Replace
6071
        rewrite_ssa_into_ssa in comments with update_ssa.
6072
 
6073
2005-05-10  Zdenek Dvorak  
6074
 
6075
        * tree-ssa-loop-im.c: Include hashtab.h.
6076
        (struct mem_ref_loc): New.
6077
        (struct mem_ref): Describe the set of references with the same
6078
        shape.
6079
        (max_stmt_uid, get_stmt_uid, record_mem_ref, free_mem_refs,
6080
        maybe_queue_var, fem_single_reachable_address,
6081
        for_each_memref, single_reachable_address,
6082
        is_call_clobbered_ref, determine_lsm_reg): Removed.
6083
        (record_mem_ref_loc, free_mem_ref_locs, determine_lsm_ref,
6084
        hoist_memory_reference, memref_hash, memref_eq, memref_del,
6085
        gather_mem_refs_stmt, gather_mem_refs, find_more_ref_vops):
6086
        New functions.
6087
        (rewrite_mem_refs, schedule_sm): Use mem_ref_loc list.
6088
        (determine_lsm_loop): Rewritten.
6089
        (determine_lsm): Do not set stmt uids.
6090
 
6091
2005-05-10  Adrian Straetling  
6092
 
6093
        * config/s390/s390.md: Add comment lines for 'f' and 't' constraint
6094
        letters.
6095
 
6096
2005-05-10  Adrian Straetling  
6097
 
6098
        * config/s390/s390.md: ("anddi3","andsi3","andhi3","andqi3"): Merge.
6099
        ("iordi3", "iorsi3", "iorhi3", "iorqi3"): Merge.
6100
        ("xordi3", "xorsi3", "xorhi3", "xorqi3"): Merge.
6101
 
6102
2005-05-10  Jeff Law  
6103
 
6104
        * tree-ssa-dom.c (dom_opt_finalize_block): Do not call
6105
        thread_across_edge for any abnormal edges.
6106
 
6107
2005-05-10  Richard Henderson  
6108
 
6109
        * config/ia64/ia64.c (ia64_expand_atomic_op): New.
6110
        * config/ia64/ia64-protos.h: Declare it.
6111
        * config/ia64/sync.md (I124MODE, FETCHOP, fetchop_name): New.
6112
        (sync_add, sync_old_add): Remove.
6113
        (sync_, sync_nand): New.
6114
        (sync_old_, sync_old_nand): New.
6115
        (sync_new_, sync_new_nand): New.
6116
        (cmpxchg_rel_): Split from cmpxchg_acq_.  Zero
6117
        extend result; use release semantics.
6118
        (cmpxchg_rel_di): Rename from cmpxchg_acq_; use release.
6119
        (sync_val_compare_and_swap_): Update to match.
6120
 
6121
2005-05-10  Richard Henderson  
6122
 
6123
        * optabs.c (expand_compare_and_swap_loop): Don't clobber old value
6124
        before comparing it for success.
6125
 
6126
2005-05-10  Richard Henderson  
6127
 
6128
        * config/ia64/sync.md (sync_add): Fix arguments for
6129
        no return value pattern.
6130
 
6131
2005-05-10  Grigory Zagorodnev  
6132
            H.J. Lu  
6133
 
6134
        * libgcov.c (create_file_directory): New function. Create
6135
        directory for the given file name.
6136
        (gcov_max_filename): New static var. Keeps size of the longest
6137
        file name.
6138
        (gcov_exit): Always try to create directory for output
6139
        file. Relocate each filename basing on environment vars.
6140
        (__gcov_init): Remember the longest file name.
6141
        * tsystem.h: include filenames.h to get IS_DIR_SEPARATOR
6142
        * doc/gcov.texi (Cross-profiling): New node documenting
6143
        cross-profiling management.
6144
        * doc/invoke.texi (-fprofile-arcs): Add xref to cross-profiling.
6145
 
6146
2005-05-10  Eric Botcazou  
6147
 
6148
        * config/sparc/sparc.c (mem_min_alignment): Do not rely
6149
        on MEM_ALIGN if TARGET_UNALIGNED_DOUBLES.
6150
 
6151
2005-05-10  Bob Wilson  
6152
 
6153
        * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Rearrange special
6154
        case code to avoid one move instruction.
6155
        (__umodsi3, __modsi3): Merge duplicated code sequences.
6156
 
6157
2005-05-10  Kazu Hirata  
6158
 
6159
        * config/mips/24k.md, config/sh/divtab.c, config/sh/sh.c,
6160
        config/sh/sh.md, config/sh/superh.h: Fix comment typos.
6161
        * doc/invoke.texi: Fix typos.
6162
 
6163
        * tree-data-ref.c (analyze_array_indexes, analyze_array,
6164
        init_data_ref, access_functions_are_affine_or_constant_p,
6165
        free_data_refs): Use VEC instead of VARRAY.
6166
        * tree-data-ref.h (data_reference): Change the type of
6167
        access_fns to VEC(tree,gc)*.
6168
        (DR_ACCESS_FN, DR_NUM_DIMENSIONS): Use VEC instead of VARRAY.
6169
 
6170
2005-05-10  Gabor Loki 
6171
 
6172
        PR c/17913
6173
        * c-typeck.c (build_conditional_expr): Remove reducing cond_expr.
6174
        * fold-const.c (fold): Expand the condition of reducing cond_expr.
6175
        (contains_label_1, contains_label_p): New functions for checking
6176
        labels in a sub-tree.
6177
 
6178
2005-05-10  Joseph S. Myers  
6179
 
6180
        PR c/21342
6181
        * c-decl.c (pushdecl): When there is a declaration in the current
6182
        scope and the declarations are external linkage, check for
6183
        compatibility with the type in the external scope and update the
6184
        type in the external scope with the composite type information.
6185
        Do not form a composite type of the new type and the visible type
6186
        if they are incompatible.
6187
 
6188
2005-05-10  Nathan Sidwell  
6189
 
6190
        * crtstuff.c: Revert part of 2005-05-08 Change.
6191
        (IN_LIBGCC2): Define.
6192
 
6193
2005-05-10  Eric Botcazou  
6194
 
6195
        * config/sparc/sparc.c (fp_sethi_p): Test !SPARC_SIMM13_P and
6196
        remove redundant test.
6197
        (fp_mov_p): Accept 0.
6198
        (fp_high_losum_p): Remove redundant test.
6199
        * config/sparc/predicates.md (const_high_operand): Explicitly test
6200
        (not small_int_operand).
6201
        (fp_const_high_losum_operand): New.
6202
        * config/sparc/sparc.md (movsi_insn): Do not emit 'clr'.  Reorder.
6203
        (movdi_insn_sp32_v9): Use canonical predicates.
6204
        (movdi_insn_sp32): Test !TARGET_V9 instead of !TARGET_ARCH64.
6205
        (movdi_insn_sp64_novis): Delete.
6206
        (movdi_insn_sp64_vis): Rename into movdi_insn_sp64.
6207
        (movsf_insn_novis): Delete.
6208
        (movsf_insn_vis): Rename into movsf_insn.
6209
        (movsf_no_f_insn): Rename into movsf_insn_no_fpu.
6210
        (movsf_lo_sum): Use fp_const_high_losum_operand.
6211
        (movsf_high): Likewise.
6212
        (movsf_high_losum splitter): Likewise.
6213
        (mov expander): Use register_or_zero_operand.
6214
        (mov expander): Likewise.
6215
        (movdf_insn_sp32): Use register_or_zero_operand.
6216
        (movdf_no_e_insn_sp32): Use register_or_zero_operand.
6217
        Rename into movdf_insn_sp32_no_fpu.
6218
        (movdf_no_e_insn_v9_sp32): Use register_or_zero_operand.
6219
        Rename into movdf_insn_sp32_v9_no_fpu.
6220
        (movdf_insn_v9only_novis): Delete.
6221
        (movdf_insn_v9only_vis): Rename into movdf_insn_sp32_v9.
6222
        (movdf_insn_sp64_novis): Delete.
6223
        (movdf_insn_sp64_vis): Rename into movdf_insn_sp64.
6224
        (movdf_no_e_insn_sp64): Use register_or_zero_operand.
6225
        Rename into movdf_insn_sp64_no_fpu.
6226
        (movtf expander): Use register_or_zero_operand.
6227
        (movtf_insn_sp32): Delete.
6228
        (movtf_insn_vis_sp32): Use register_or_zero_operand.
6229
        Rename into movtf_insn_sp32.
6230
        (movtf_no_e_insn_sp32): Use register_or_zero_operand.
6231
        Rename into movtf_insn_sp32_no_fpu.
6232
        (movtf_insn_hq_sp64): Delete.
6233
        (movtf_insn_hq_vis_sp64): Use register_or_zero_operand.
6234
        Rename into movtf_insn_sp64_hq.
6235
        (movtf_insn_sp64): Delete.
6236
        (movtf_insn_vis_sp64): Use register_or_zero_operand.
6237
        Rename into movtf_insn_sp64.
6238
        (movtf_no_e_insn_sp64): Use register_or_zero_operand.
6239
        Rename into movtf_insn_sp64_no_fpu.
6240
 
6241
2005-05-10  Nathan Sidwell  
6242
 
6243
        * config/stormy16/stormy16.c (xstormy16_emit_cbranch): Use
6244
        gcc_assert and gcc_unreachable as appropriate.
6245
        (xstormy16_split_cbranch, xstormy16_output_cbranch_hi,
6246
        xstormy16_output_cbranch_si, xstormy16_split_move,
6247
        xstormy16_initial_elimination_offset,
6248
        xstormy16_encode_section_info, xstormy16_print_operand_address,
6249
        xstormy16_expand_call, xstormy16_expand_arith,
6250
        xstormy16_output_shift, xstormy16_init_builtins): Likewise.
6251
 
6252
2005-05-10  Kazu Hirata  
6253
 
6254
        * tree-outof-ssa.c (_elim_graph): Change the type of nodes and
6255
        const_copies to VEC(tree,heap)*.
6256
        (new_elim_graph, delete_elim_graph, elim_graph_size,
6257
        elim_graph_add_node, eliminate_build, eliminate_phi): Use VEC
6258
        instead of VARRAY.
6259
 
6260
2005-05-10  Joseph S. Myers  
6261
 
6262
        PR other/21052
6263
        * doc/extend.texi (Type Attributes): Correct example syntax.
6264
 
6265
2005-05-09  Joseph S. Myers  
6266
 
6267
        PR c/21160
6268
        * doc/invoke.texi (-Wuninitialized): Update documentation.
6269
 
6270
2005-05-09  Richard Earnshaw  
6271
 
6272
        * arm.c (const_ok_for_arm): Use a faster algorithm.
6273
 
6274
2005-05-09  David Edelsohn  
6275
 
6276
        PR target/21477
6277
        * config/rs6000/rs6000.md (add_op2): New.
6278
        (add3): Use it.
6279
 
6280
2005-05-09  Richard Earnshaw  
6281
 
6282
        * arm.c (arm_gen_constant): Add new heuristic for generating
6283
        constant integers that can be expressed as the difference of two
6284
        valid immediates.
6285
 
6286
2005-05-09  Roger Sayle  
6287
 
6288
        * c-tree.h (parser_build_unary_op): New prototype.
6289
        * c-typeck.c (parser_build_unary_op): New function to construct
6290
        a unary operation in the C parser.
6291
        * c-parser.c (c_parser_unary_expression):  Use the new function
6292
        parser_build_unary_op when appropriate.
6293
 
6294
2005-05-09  Mark Mitchell  
6295
 
6296
        PR 18655
6297
        * dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
6298
        before outputting DWARF_FRAME_RETURN_COLUMN.
6299
 
6300
2005-05-09  Adrian Straetling  
6301
 
6302
        * config/s390/s390.c: (s390_branch_condition_mask,
6303
        s390_branch_condition_mnemonic, s390_extra_constraint_str,
6304
        s390_const_ok_for_constraint_p, s390_expand_plus_operand,
6305
        legitimize_pic_address, s390_emit_tls_call_insn,
6306
        legitimize_tls_address, legitimize_tls_address,
6307
        s390_expand_addcc, print_shift_count_operand, print_operand,
6308
        addr_generation_dependency_p, annotate_constant_pool_refs,
6309
        s390_split_branches, find_constant_pool_ref,
6310
        replace_constant_pool_ref, s390_add_constant, s390_find_constant,
6311
        s390_find_execute, s390_mainpool_start, s390_chunkify_start,
6312
        s390_output_pool_entry, s390_function_value,
6313
        s390_call_saved_register_used, s390_emit_call): Replace
6314
        conditional aborts by gcc_assert and unconditional by gcc_unreachable.
6315
        (s390_select_ccmode, s390_match_ccmode_set, s390_extract_part,
6316
        s390_cannot_force_const_mem, s390_output_dwarf_dtprel,
6317
        get_some_local_dynamic_name, s390_function_arg_size,
6318
        s390_function_arg_advance, s390_function_arg,
6319
        s390_expand_builtin, s390_gen_rtx_const_DI): Replace abort in
6320
        default case by gcc_unreachable.
6321
        * config/s390/s390.md: ("*cjump_31", "*icjump_31", "*jump31"): Replace
6322
        conditional abort by gcc_assert.
6323
        ("doloop_si31"): Replace abort in last else by gcc_unreachable.
6324
        ("main_pool", "pool"): Replace unconditional abort by gcc_unreachable.
6325
 
6326
2005-05-09  Adrian Straetling  
6327
 
6328
        * config/s390/s390.c: (s390_decompose_address,
6329
        tls_symbolic_operand, legitimate_pic_operand_p,
6330
        legitimate_constant_p, legitimate_reload_constant_p,
6331
        s390_expand_plus_operand, legitimate_address_p,
6332
        legitimate_la_operand_p, ): Remove 'register' from signature.
6333
        (symbolic_reference_mentioned_p,
6334
        tls_symbolic_reference_mentioned_p): Remove 'register' from local
6335
        variable declarations.
6336
        (legitimize_address): Remove 'register' from
6337
        signature and local variable declarations.
6338
 
6339
2005-05-09  Adrian Straetling  
6340
 
6341
        * config/s390/s390-protos.h: (s390_match_ccmode,
6342
        s390_match_ccmode_set, reg_used_in_mem_p,
6343
        symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
6344
        legitimate_la_operand_p, preferred_la_operand_p,
6345
        s390_short_displacement, addr_generation_dependency_p,
6346
        legitimate_reload_constant_p, legitimate_address_p): Change return type
6347
        into 'bool'.
6348
        (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
6349
        * config/s390/s390.c: (s390_match_ccmode,
6350
        symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
6351
        legitimate_reload_constant_p): Change return type into 'bool'.
6352
        (preferred_la_operand_p,legitimate_la_operand_p, legitimate_address_p):
6353
        Likewise.  Additionally adapted comment.
6354
        (s390_extra_constraint_p): Change Comment to reflect 'int' return type.
6355
        (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
6356
        (s390_decompose_address): Change the type of the internal flags
6357
        "pointer", "base_ptr", "indx_ptr", and the return value into 'bool'.
6358
        (struct s390_address): Change type of "pointer" into bool.
6359
        * config/s390/s390.md: ("*tmdi_reg", "*tmsi_reg", "tm_full"):
6360
        Adapt calls for 's390_tm_ccmode' to the new signature.
6361
 
6362
2005-05-09  Adrian Straetling  
6363
 
6364
        * config/s390/s390.c: (s390_match_ccmode_set,
6365
        s390_branch_condition_mnemonic, s390_short_displacement,
6366
        s390_decompose_address, get_thread_pointer, legitimize_tls_address,
6367
        print_shift_count_operand, get_some_local_dynamic_name,
6368
        get_some_local_dynamic_name_1, reg_used_in_mem_p,
6369
        addr_generation_dependency_p, s390_split_branches,
6370
        annotate_constant_pool_refs, find_constant_pool_ref,
6371
        replace_constant_pool_ref, find_ltrel_base, replace_ltrel_base,
6372
        s390_optimize_prologue, find_unused_clobbered_reg, s390_frame_area,
6373
        s390_register_info, s390_frame_info, s390_init_frame_layout,
6374
        s390_update_frame_layout, save_fpr, restore_fpr, save_gprs,
6375
        restore_gprs, s390_function_arg_size, s390_function_arg_float,
6376
        s390_init_machine_status, s390_assemble_integer, s390_handle_option,
6377
        s390_encode_section_info, s390_cannot_force_const_mem,
6378
        s390_delegitimize_address, s390_return_in_memory, s390_init_builtins,
6379
        s390_expand_builtin, s390_output_mi_thunk, s390_safe_attr_type,
6380
        s390_adjust_priority, s390_issue_rate,
6381
        s390_first_cycle_multipass_dfa_lookahead, s390_cannot_copy_insn_p,
6382
        s390_rtx_costs, s390_address_cost, s390_reorg, s390_valid_pointer_mode,
6383
        s390_build_builtin_va_list, s390_gimplify_va_arg,
6384
        s390_function_ok_for_sibcall, s390_call_saved_register_used,
6385
        s390_pass_by_reference, s390_fixed_condition_code_regs,
6386
        s390_cc_modes_compatible s390_mainpool_start,, s390_mainpool_finish,
6387
        s390_mainpool_cancel, s390_chunkify_start, s390_chunkify_finish,
6388
        s390_chunkify_cancel, s390_start_pool, s390_end_pool,
6389
        s390_add_pool_insn, s390_find_pool, s390_add_constant,
6390
        s390_find_constant, s390_add_execute, s390_find_execute,
6391
        s390_execute_label, s390_execute_target, s390_dump_pool,
6392
        s390_dump_execute, s390_alloc_pool, s390_free_pool): Remove prototypes.
6393
        Move target macro definitions to the end of the file.  Move several
6394
        functions within the file to assure correct compiling.
6395
 
6396
2005-05-09  Steven Bosscher  
6397
 
6398
        * calls.c (purge_reg_equiv_notes): Remove, fold into...
6399
        (fixup_tail_calls): ...here.  Only look at insns between the
6400
        start of the function and the FUNCTION_BEG insn note.
6401
 
6402
        * gcse.c (one_cprop_pass): Fix typos in dumps.
6403
 
6404
        * tree-ssa-operands.h (FOR_EACH_PHI_ARG): Fix typos.
6405
 
6406
2005-05-09  Adrian Straetling  
6407
 
6408
        * config/s390/s390.h: Move xxx_REGNUM definitions to s390.md.
6409
        * config/s390/s390.md: ("SIBCALL_REGNUM", "BASE_REGNUM",
6410
        "RETURN_REGNUM", "CC_REGNUM", "TP_REGNUM"): New constants.
6411
        Replace every occurrence of '(reg: 33)' by '(reg:
6412
        CC_REGNUM)'.
6413
        ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Replace
6414
        '(reg: 36)' by '(reg: TP_REGNUM)'.
6415
        ("*sibcall_br", "*sibcall_value_br"): Replace '(reg:DI 1)' by '(reg:DI
6416
        REG_SC)'.
6417
 
6418
2005-05-09  Adrian Straetling  
6419
 
6420
        * config/s390/s390.md: ("gf") New mode attribute.
6421
        ("fixuns_truncdfdi2", "fixuns_truncdfsi2", "fixuns_truncsfdi2",
6422
        "fixuns_truncsfsi2"): Merge.
6423
        ("fix_truncdfdi2", "fix_truncsfdi2"): Merge.
6424
        ("fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", "fix_truncsfdi2_ieee",
6425
        "fix_truncsfsi2_ieee"): Merge.
6426
 
6427
2005-05-09  Adrian Straetling  
6428
 
6429
        * config/s390/s390.md: ("FPR") New mode macro.
6430
        ("de", "dee"): New mode attributes.
6431
        ("cmpdf", "cmpsf"): Merge.
6432
        ("*cmpdf_ccs_0", "*cmpsf_ccs_0"): Merge.
6433
        ("*cmpdf_ccs_0_ibm", "*cmpdf_ccs_0_ibm"): Merge.
6434
        ("*cmpdf_ccs", "*cmpsf_ccs"): Merge.
6435
        ("*cmpdf_ccs_ibm", "*cmpsf_ccs_ibm"): Merge.
6436
        ("floatdidf2", "floatdisf2"): Merge.
6437
        ("adddf3", "addsf3"): Merge.
6438
        ("*adddf3", "*addsf3"): Merge.
6439
        ("*adddf3_cc", "*addsf3_cc"): Merge.
6440
        ("*adddf3_cconly", "*addsf3_cconly"): Merge.
6441
        ("*adddf3_ibm", "*addsf3_ibm"): Merge.
6442
        ("subdf3", "subsf3"): Merge.
6443
        ("*subdf3", "*subsf3"): Merge.
6444
        ("*subdf3_cc", "*subsf3_cc"): Merge.
6445
        ("*subdf3_cconly", "*subsf3_cconly"): Merge.
6446
        ("*subdf3_ibm", "*subsf3_ibm"): Merge.
6447
        ("muldf3", "mulsf3"): Merge.
6448
        ("*muldf3", "*mulsf3" "): Merge.
6449
        ("*muldf3_ibm", "*mulsf3_ibm"): Merge.
6450
        ("*fmadddf", "*fmaddsf"): Merge.
6451
        ("*fmsubdf", "*fmsubsf"): Merge.
6452
        ("divdf3", "divsf3"): Merge.
6453
        ("*divdf3", "*divsf3"): Merge.
6454
        ("*divdf3_ibm", "*divsf3_ibm"): Merge.
6455
        ("negdf2", "negsf2"): Merge.
6456
        ("*negdf2_cc", "*negsf2_cc"): Merge.
6457
        ("*negdf2_cconly", "*negsf2_cconly"): Merge.
6458
        ("*negdf2", "*negsf2"): Merge.
6459
        ("*negdf2_ibm", "*negsf2_ibm"): Merge.
6460
        ("absdf2", "abssf2"): Merge.
6461
        ("*absdf2_cc", "*abssf2_cc"): Merge.
6462
        ("*absdf2_cconly", "*abssf2_cconly"): Merge.
6463
        ("*absdf2", "*abssf2"): Merge.
6464
        ("*absdf2_ibm", "*abssf2_ibm"): Merge.
6465
        ("*negabsdf2_cc", "*negabssf2_cc"): Merge.
6466
        ("*negabsdf2_cconly", "*negabssf2_cconly"): Merge.
6467
        ("*negabsdf2", "*negabssf2"): Merge.
6468
        ("sqrtdf2", "sqrtsf2"): Merge.
6469
 
6470
2005-05-09  Adrian Straetling  
6471
 
6472
        * config/s390/s390.c: (s390_adjust_priority): Adapt to changed
6473
        attribute names.
6474
        * config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
6475
        "x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
6476
        ("x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
6477
        "x_floadsf", "x_fstoredf", "x_fstoresf") and replace 'type'
6478
        attribute names.
6479
        * config/s390/s390.md: ("type"): Rename "fsimpd, fsimps, floadd, floads,
6480
        fstored, fstores, fmuld, fmuls, fdivd, fdivs, fsqrtd, fsqrts" to
6481
        "fsimpdf, fsimpsf, floaddf, floadsf, fstoredf, fstoresf, fmuldf,
6482
        fmulsf, fdivdf, fdivsf, fsqrtdf, fsqrtsf".
6483
        ("*cmpdf_ccs_0", "*cmpdf_css_0_ibm", "*cmpdf_ccs",
6484
        "*cmpdf_ccs_ibm", "*cmpsf_ccs_0", "*cmpsf_css_0_ibm",
6485
        "*cmpsf_ccs", "*cmpsf_ccs_ibm", "*movdi_64", "*movdi_31",
6486
        "*movsi_zarch", "*movsi_esa", "*movdf_64", "*movdf_31", "movsf",
6487
        "*muldf3", "*muldf3_ibm", "*fmadddf", "*fmsubdf", "*mulsf3",
6488
        "mulsf3_ibm", "*fmaddsf", "fmsubsf", "*divdf3", "*divdf3_ibm",
6489
        "*negdf2_cc", "*negdf2_cconly", "*negdf2", "*negdf2_ibm",
6490
        "*negsf2_cc", "*negsf2_cconly", "*negsf2", "*absdf2_cc",
6491
        "*absdf2_cconly", "*absdf2", "*absdf2_ibm", "*abssf2_cc",
6492
        "*abssf2_cconly", "*abssf2", "*abssf2_ibm", "*negabsdf2_cc",
6493
        "*negabsdf2_cconly", "*negabsdf2", "*negabssf2_cc",
6494
        "*negabssf2_cconly", "*negabssf2", "sqrtdf2", "sqrtsf2"): Rename
6495
        'type' value.
6496
        ("*divsf3"): Additionally rename second pattern to
6497
        "*divsf3_ibm".
6498
        ("truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
6499
        "*adddf3", "*adddf3_cc", "*adddf3_cconly", "*adddf3_ibm",
6500
        "*addsf3", "*addsf3_cc", "*addsf3_cconly", "*subdf3",
6501
        "subdf3_cc", "*subdf3_cconly", "*subdf3_ibm", "*subsf3",
6502
        "subsf3_cc", "*subsf3_cconly", "*subsf3_ibm"): Merge identical
6503
        'type values' and rename 'type' value.
6504
        ("*addsf3"): Additionally rename second pattern to
6505
        "*addsf3_ibm".
6506
 
6507
2005-05-09  Adrian Straetling  
6508
 
6509
        * config/s390/s390.md: ("SHIFT"): New mode macro.
6510
        ("lr", "shift"): New mode attributes.
6511
        ("ashldi3", "lshrdi3"): Merge.
6512
        ("*ashldi3_31", "*lshrdi3"_31): Merge.
6513
        ("*ashldi3_64", "*lshrdi3"_64): Merge.
6514
        ("ashlsi3", "lshrsi3"): Merge.
6515
 
6516
2005-05-09  Adrian Straetling  
6517
 
6518
        * config/s390/s390.md: ("DSI", "SCOND"): New mode
6519
        macros.
6520
        ("E", "g"): New mode attributes.
6521
        ("*adddi3_alc_cc", "*addsi3_alc_cc"): Merge.
6522
        ("*adddi3_alc", "*addsi3_alc"): Merge.
6523
        ("*subdi3_slb_cc", "*subsi3_slb_cc"): Merge.
6524
        ("*subdi3_slb", "*subsi3_slb"): Merge.
6525
        ("adddicc", "addsicc"): Merge.
6526
        ("*sconddi", "*scondsi"): Merge.
6527
        ("*sconddi_neg", "*scondsi_neg"): Merge.
6528
        ("sltu", "sgtu", "sleu", "sgeu"): Merge.
6529
        ("negdi2", "negsi2"): Extract expander pattern from
6530
        "negsi2" and merge with "negdi2".
6531
        ("*negdi2"): Merge with instruction pattern of "negsi2".
6532
        ("*negdi2_cc", "*negsi2_cc"): Merge.
6533
        ("*negdi2_cconly", "*negsi2_cconly"): Merge.
6534
        ("rotldi3", "rotlsi3"): Merge.
6535
 
6536
2005-05-09  Adrian Straetling  
6537
 
6538
        * config/s390/s390.md: ("hc"): New mode attribute.
6539
        ("extendhidi2", "extendqidi2"): Merge.
6540
        ("*extendhidi2", "*extendqidi2"): Merge.
6541
        ("extendhisi2", "extendqisi2"): Merge.
6542
        ("zero_extendhidi2", "zero_extendqidi2"): Merge.
6543
        ("*zero_extendhidi2", "*zero_extendqidi2"): Merge.
6544
        Merged 2 define_split.
6545
        ("*zero_extendhisi2", "*zero_extendqisi2"): Merge.
6546
        ("*zero_extendhisi2_64", "*zero_extendqisi2_64"): Merge.
6547
 
6548
2005-05-09  Adrian Straetling  
6549
 
6550
        * config/s390/s390.md: ("COMPARE"): New mode macro.
6551
        ("beq", "bne", "bgt", "bgtu", "blt", "bltu", "bge", "bgeu",
6552
        "ble", "bleu", "bunordered", "bordered", "buneq", "bunlt",
6553
        "bungt", "bunle", "bunge", "bltgt"): Merge.
6554
 
6555
2005-05-09  Adrian Straetling  
6556
 
6557
        * config/s390/s390.md: ("INT"): New mode macro.
6558
        ("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
6559
        Merge.
6560
 
6561
2005-05-09  Adrian Straetling  
6562
 
6563
        * config/s390/s390.md: ("GPR", "P"): New mode macros.
6564
        ("cmpdi", "cmpsi"): Merge.
6565
        ("strlendi", "strlensi"): Merge.
6566
        ("*strlendi", "*strlensi"): Merge.
6567
        ("movmemdi", "movmemsi"): Merge.
6568
        ("clrmemdi", "clrmemsi"): Merge.
6569
 
6570
2005-05-09  Adrian Straetling  
6571
 
6572
        * config/s390/s390.md: ("HQI"): New mode macro.
6573
        ("icm_lo", "icm_hi", "max_uint"): New mode attributes.
6574
        ("*tmhi_full", "*tmqi_full"): Merge.
6575
        ("*tsthiCCT", "*tstqiCCT"): Merge.
6576
        ("*tsthi", "*tstqi"): Merge.
6577
        ("*tsthi_cconly", "tstqi_cconly"): Merge.
6578
        ("*sethighhisi", "*sethighqisi"): Merge.
6579
 
6580
2005-05-09  Kazu Hirata  
6581
 
6582
        * crtstuff.c, integrate.h, tree-scalar-evolution.h,
6583
        config/alpha/unicosmk.h, config/arc/arc.md,
6584
        config/arm/bpabi.h, config/arm/coff.h, config/arm/elf.h,
6585
        config/arm/ieee754-df.S, config/arm/ieee754-sf.S,
6586
        config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
6587
        config/arm/semi.h, config/arm/uclinux-elf.h,
6588
        config/arm/wince-pe.h, config/fr30/fr30.c,
6589
        config/rs6000/altivec.h: Update copyright.
6590
 
6591
2005-05-09  Nathan Sidwell  
6592
 
6593
        * config/pdp11/pdp11.c (pdp11_output_function_prologue): Use
6594
        gcc_assert and gcc_unreachable as appropriate.
6595
        (pdp11_output_function_epilogue, output_move_double,
6596
        output_move_quad, print_operand_address, output_jump,
6597
        output_addr_const_pdp11): Likewise.
6598
        * config/pdp11/pdp11.h (FUNCTION_PROFILER,
6599
        ASM_OUTPUT_ALIGN): Likewise.
6600
        * config/pdp11/pdp11.md: Likewise.
6601
        (extendhisi2, subhi3, subqi3): Likewise.
6602
 
6603
2005-05-09  David Edelsohn  
6604
 
6605
        PR middle-end/21237
6606
        * dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
6607
        to NE_EXPR case.
6608
 
6609
2005-05-09  Kazu Hirata  
6610
 
6611
        * config/ia64/ia64.c: Fix a comment typo.
6612
 
6613
2005-05-09  Richard Earnshaw  
6614
 
6615
        PR target/21397
6616
        * arm.c (ARM_OPT_SET_CPU, ARM_OPT_SET_ARCH, ARM_OPT_SET_TUNE): Define.
6617
        (arm_override_options): Use them instead of manifest constants.  Don't
6618
        allow -march to override the -mtune setting.
6619
 
6620
2005-05-09  Nathan Sidwell  
6621
 
6622
        * config/iq2000/iq2000.c (abort_with_insn): Use fancy_abort.
6623
        (gen_int_relational): Use gcc_unreachable and gcc_assert as necessary.
6624
        (function_arg_advance, function_arg, save_restore_insns,
6625
        iq2000_expand_prologue, iq2000_output_conditional_branch,
6626
        expand_one_builtin, print_operand):
6627
        * config/iq2000/iq2000.md (tablejump): Likewise.
6628
 
6629
2005-05-09  David Ung  
6630
 
6631
        * config/mips/mips.h (processor_type): Add names for the 24K.
6632
        * config/mips/mips.c (mips_cpu_info_table): Add names for the 24K
6633
        processor family.
6634
        * config/mips/mips.md (cnv_mode): New attribute for recording the
6635
        conversion types of float convert insns.
6636
        (cpu): Add 24k and 24kx.
6637
        (include): Include 24k.md file.
6638
        (truncdfsf2, extendsfdf2, fix_truncdfsi2_insn, fix_truncdfsi2_macro)
6639
        (fix_truncdfdi2, fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2)
6640
        (floatdisf2): Setup cnv_mode.
6641
        (fix_truncsfsi2_insn, fix_truncsfsi2_macro): Changed mode to SF and
6642
        setup cnv_mode.
6643
        * config/mips/24k.md: New file, contains 24k DFA pipeline
6644
        description.
6645
 
6646
2005-05-09  Nathan Sidwell  
6647
 
6648
        * config/sh/sh.c (print_operand_address): Use gcc_assert and
6649
        gcc_unreachable as appropriate.
6650
        (print_operand, prepare_move_operands, prepare_scc_operands,
6651
        output_movedouble, output_branch, shift_insns_rtx, gen_shifty_op,
6652
        gen_shl_and, shl_sext_kind, gen_datalabel_ref, dump_table,
6653
        fixup_mova, gen_far_branch, sh_reorg, split_branches,
6654
        final_prescan_insn, output_stack_adjust, sh_expand_epilogue,
6655
        sh_set_return_address, sh_setup_incoming_varargs,
6656
        initial_elimination_offset, sh_pch_valid_p, get_free_reg,
6657
        sh_expand_builtin, sh_output_mi_thunk, extract_sfunc_addr,
6658
        check_use_sfunc_addr): Likewise.
6659
        * config/sh/netbsd-elf.h (FUNCTION_PROFILER): Likewise.
6660
        * config/sh/sh.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
6661
        * config/sh/symbian.c (sh_symbian_mark_dllexport,
6662
        sh_symbian_mark_dllimport): Likewise.
6663
        * config/sh/sh.md: Likewise.
6664
        (movdicc, call_pop, call_value_pop, casesi_worker_1,
6665
        casesi_worker_2, casesi_shift_media, casesi_load_media,
6666
        return_media): Likewise.
6667
 
6668
2005-05-08  Roger Sayle  
6669
 
6670
        PR inline-asm/8788
6671
        * stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
6672
        operands.
6673
 
6674
2005-05-08  Richard Henderson  
6675
 
6676
        * config/alpha/alpha.c (adjust_address): Fix typo last change.
6677
 
6678
2005-05-08  Stephane Carrez  
6679
 
6680
        * config/m68hc11/m68hc11.h (REG_VALID_P): A regno must be >= 0
6681
        and -1 can happen in reg_renumber when no hard register is assigned.
6682
 
6683
2005-05-08  Steven Bosscher  
6684
            Kazu Hirata  
6685
 
6686
        PR tree-optimization/14841, tree-optimization/15838
6687
        * tree-ssa-ccp.c (fold_const_aggregate_ref): New.
6688
        (evaluate_stmt): Call it.
6689
 
6690
2005-05-08  Jakub Jelinek  
6691
 
6692
        * config/ia64/ia64.c (ia64_override_options): Don't set
6693
        ia64_flag_var_tracking and clear flag_var_tracking here...
6694
        (ia64_file_start): ... but here.
6695
 
6696
2005-05-08  Nathan Sidwell  
6697
 
6698
        * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use gcc_assert
6699
        and gcc_unreachable as appropriate.
6700
        (expand_prologue, expand_epilogue, m68hc11_gen_lowpart,
6701
        m68hc11_gen_highpart, print_operand, print_operand_address,
6702
        m68hc11_expand_compare, m68hc11_expand_compare_and_branch,
6703
        m68hc11_gen_movhi): Likewise.
6704
        * config/m68hc11/m68hc11.h (HARD_X_REGNUM): Reword comment.
6705
        * config/m68hc11/m68hc11.md: Reword comment.
6706
 
6707
2005-05-08  Stephane Carrez  
6708
 
6709
        PR target/21281
6710
        * config/m68hc11/predicates.md (splitable_operand): An immediate is
6711
        allowed.
6712
 
6713
2005-05-08  Stephane Carrez  
6714
 
6715
        * config/m68hc11/predicates.md (reg_or_some_mem_operand): Do not allow
6716
        the 68HC12 address indirect addressing mode as it is not supported by
6717
        bset and bclr.
6718
        * config/m68hc11/m68hc11-protos.h
6719
        (m68hc11_valid_addressing_p): Declare.
6720
        (m68hc11_add_mode): Declare.
6721
        * config/m68hc11/m68hc11.c (m68hc11_valid_addressing_p): Rename from
6722
        register_indirect_p and export it.
6723
        (m68hc11_z_replacement): Use emit_insn_after when adding the save Z
6724
        instruction so that it is part of the good BB.
6725
        (m68hc11_gen_movhi): Fix invalid generation of indexed indirect
6726
        addressing with movw.
6727
        (m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for
6728
        68HC12.
6729
        * config/m68hc11/m68hc11.h (ADDR_STRICT, ADDR_INCDEC, ADDR_INDEXED,
6730
        ADDR_OFFSET, ADDR_INDIRECT, ADDR__CONST): Moved from m68hc11.c.
6731
        * config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only
6732
        for 68HC11.
6733
        ("*movhi_68hc12"): Handle movhi_const0.
6734
        ("*subhi3", "subqi3"): Use general_operand for operand 1.
6735
        ("*subhi3_zext"): Likewise.
6736
 
6737
2005-05-08  Stephane Carrez  
6738
 
6739
        PR target/19051
6740
        * config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for
6741
        operand 1 and fix constraints.
6742
        ("mulqihi3"): Use general_operand for operand 2.
6743
 
6744
2005-05-08  Julian Brown  
6745
            H.J. Lu  
6746
            Paul Brook  
6747
 
6748
        * configure.ac: Set ld_vers_major, ld_vers_minor and ld_vers_patch for
6749
        GNU linker. Support linker version x.x.x.x.x. Require GNU linker
6750
        20050308/2.16.0 or newer for comdat group.
6751
        * configure: Regenerated.
6752
        * config.in: Regenerated.
6753
        * varasm.c (default_function_rodata_section): Put .rodata section in
6754
        COMDAT group when necessary.
6755
        (default_elf_asm_named_section): Rename HAVE_GAS_COMDAT_GROUP to
6756
        HAVE_COMDAT_GROUP.
6757
        (default_unique_section_1): Don't use .gnu.linkonce when COMDAT is
6758
        available.
6759
 
6760
2005-05-08  Kazu Hirata  
6761
 
6762
        * tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
6763
        instead of VARRAY.
6764
        * tree-flow.h (num_referenced_var, referenced_var): Likewise.
6765
        * tree-into-ssa.c (mark_def_site_blocks): Likewise.
6766
        * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise.
6767
        * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
6768
 
6769
2005-05-08  Stephane Carrez  
6770
 
6771
        PR target/16925
6772
        * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
6773
        64-bit constants on 64-bit hosts.
6774
        (m68hc11_split_logical): Simplify.
6775
        (m68hc11_split_move): Likewise.
6776
 
6777
2005-05-08  Nathan Sidwell  
6778
            Paolo Bonzini  
6779
 
6780
        * Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
6781
        * aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
6782
        * configure.ac (enable_checking): Fix typos in runtime_checking.
6783
        (ENABLE_RUNTIME_CHECKING): Mark as target template.
6784
        (xm_file): Prepend auto-host.h
6785
        (HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
6786
        * mkconfig.sh: Do not automatically define USED_FOR_TARGET in
6787
        tconfig.h.
6788
        * crtstuff.c: Do not include auto-host.h.
6789
        (IN_LIBGCC2): Do not define.
6790
        * gcov-io.h: Include tconfig.h, not auto-host.h.
6791
        * libgcc2.c: Do not include auto-host.h.
6792
        (abort): Do not undefine.
6793
        * libgcov.c: Remove unneeded comment about config.h.
6794
        * unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
6795
        * config.in, configure: Regenerated.
6796
 
6797
2005-05-08  Nathan Sidwell  
6798
            Falk Hueffner  
6799
 
6800
        * config/alpha/alpha.c (tls_symbolic_operand_1): Use gcc_assert
6801
        and gcc_unreachable as appropriate.
6802
        (get_aligned_mem, get_unaligned_address,
6803
        alpha_emit_set_long_const, alpha_emit_conditional_branch,
6804
        alpha_emit_setcc, alpha_emit_conditional_move,
6805
        alpha_lookup_xfloating_lib_func, alpha_compute_xfloating_mode_arg,
6806
        alpha_emit_xfloating_libcall, alpha_split_tfmode_pair,
6807
        alpha_expand_unaligned_load, alpha_expand_block_move,
6808
        alpha_expand_zap_mask, get_trap_mode_suffix,
6809
        get_round_mode_suffix, get_some_local_dynamic_name,
6810
        print_operand_address, function_arg, alpha_return_in_memory,
6811
        function_value, alpha_expand_builtin,
6812
        alpha_initial_elimination_offset, alpha_expand_epilogue,
6813
        summarize_insn, alpha_handle_trap_shadows, alphaev5_insn_pipe,
6814
        alphaev5_next_group, alpha_align_insns,
6815
        unicosmk_initial_elimination_offset, unicosmk_unique_section,
6816
        unicosmk_ssib_name): Likewise.
6817
        * config/alpha/alpha.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
6818
        * config/alpha/unicosmk.h (TRAMPOLINE_TEMPLATE,
6819
        ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_DIFF_VEC): Likewise.
6820
        * config/alpha/vms.h (INITIAL_ELIMINATION_OFFSET,
6821
        ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
6822
        * config/alpha/alpha.md (*divmodsi_internal_er,
6823
        *divmoddi_internal_er, ashldi3, *insxl, sibcall, call_osf,
6824
        call_nt, call_umk, call_vms, call_value, sibcall_value,
6825
        call_value_osf, call_value_nt, call_value_vms, call_value_umk,
6826
        *call_vms_1, *movmemdi_1, *clrmemdi_1, *call_value_vms_1): Likewise.
6827
        * config/alpha/predicates.md (input_operand): Likewise.
6828
 
6829
2005-05-08  Nathan Sidwell  
6830
 
6831
        * config/frv/frv.c (frv_default_flags_for_cpu): Use gcc_assert and
6832
        gcc_unreachable, as appropriate.
6833
        (frv_function_prologue, frv_alloc_temp_reg,
6834
        frv_initial_elimination_offset, frv_expand_block_move,
6835
        frv_expand_block_clear, frv_print_operand_jump_hint,
6836
        frv_legitimize_tls_address, unspec_got_name, frv_emit_move,
6837
        frv_emit_movsi, frv_split_cond_move, frv_split_minmax,
6838
        frv_ifcvt_modify_insn, frv_ifcvt_modify_final,
6839
        frv_adjust_field_align, frv_insn_unit, frv_cond_flags,
6840
        frv_sort_insn_group, frv_reorder_packet, frv_matching_accg_mode,
6841
        frv_in_small_data_p, frv_asm_out_constructor,
6842
        frv_asm_out_destructor, frv_output_dwarf_dtprel): Likewise.
6843
        * config/frv/frv.md (reload_incc_fp, *cond_exec_si_binary1,
6844
        *cond_exec_si_binary2, *cond_exec_si_divide, *cond_exec_si_unary1,
6845
        *cond_exec_sf_conv, *cond_exec_sf_add, call, sibcall, call_value,
6846
        sibcall_value, casesi): Likewise.
6847
 
6848
        * config/mn10300/mn10300.c (print_operand): Use gcc_assert and
6849
        gcc_unreachable as appropriate.
6850
        (print_operand_address, mn10300_print_reg_list, expand_prologue,
6851
        expand_epilogue, notice_update_cc, initial_offset,
6852
        mn10300_address_cost_1): Likewise.
6853
        * config/mn10300/mn10300.md: Likewise.
6854
        (absdf2, abssf2, negdf2, negsf2): Likewise.
6855
 
6856
2005-05-08  Richard Sandiford  
6857
 
6858
        PR target/21416
6859
        * config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
6860
        comparisons.
6861
        * config/mips/mips.md (swapped_fcond): New code macro and attribute.
6862
        (sgt_, sge_): Generalize to all members of swapped_fcond,
6863
        including sunge_ and sungt_.
6864
 
6865
2005-05-08  Richard Sandiford  
6866
 
6867
        * integrate.h (get_hard_reg_initial_val): Change type of register
6868
        parameter from int to unsigned int.
6869
        (has_hard_reg_initial_val): Likewise.
6870
        * integrate.c (get_hard_reg_initial_val): Likewise.
6871
        (has_hard_reg_initial_val): Likewise.  Remove cast to unsigned int.
6872
 
6873
2005-05-08  Kazu Hirata  
6874
 
6875
        * except.c (eh_status): Change the type of ttype_data to
6876
        VEC(tree,gc)*.
6877
        (add_ttypes_entry, assign_filter_values,
6878
        output_function_exception_table): Use VEC instead of VARRAY.
6879
 
6880
2005-05-07  David Edelsohn  
6881
 
6882
        * config/rs6000/rs6000.md (popcount2): Fix non-C90 constant.
6883
 
6884
2005-05-07  Paul Brook  
6885
 
6886
        * Makefile.in: Fix dependencies.
6887
        (GCOV_IO_H, VARRAY_H): Set.
6888
 
6889
2005-05-07  Anthony Green  
6890
 
6891
        PR bootstrap/21403
6892
        * configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
6893
        x$STMP_FIXPROTO test.
6894
        * configure: Rebuilt.
6895
 
6896
2005-05-07  Joseph S. Myers  
6897
 
6898
        * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
6899
        inappropriate feature test macros if flag_iso.
6900
 
6901
2005-05-07  Joseph S. Myers  
6902
 
6903
        * config/ia64/hpux.h (NO_IMPLICIT_EXTERN_C): Define.
6904
 
6905
2005-05-07  Hans-Peter Nilsson  
6906
 
6907
        PR target/21441
6908
        * config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
6909
        ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
6910
        Handle moved operand being in special register.
6911
        ("smulsi3_highpart", "umulsi3_highpart"): Change .error into
6912
        presumed working insn.
6913
        (mover2side): Add FIXME.
6914
 
6915
2005-05-07  Richard Sandiford  
6916
 
6917
        * integrate.c (get_func_hard_reg_initial_val): Delete.
6918
        (has_func_hard_reg_initial_val): Delete.
6919
        (get_hard_reg_initial_val): Inline the old implementation of
6920
        get_func_hard_reg_initial_val.  Use has_hard_reg_initial_val
6921
        instead of has_func_hard_reg_initial_val to test for an existing
6922
        pseudo.  Only create an rtx if a new initial value entry is needed.
6923
        (has_hard_reg_initial_val): Scan the initial value list directly.
6924
        Don't create an rtx.
6925
 
6926
2005-05-07  David Edelsohn  
6927
 
6928
        * config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
6929
        from extra_options.
6930
        * config.in (HAVE_AS_POPCNTB): New.
6931
        * configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
6932
        (HAVE_AS_POPCNTB): New.
6933
        * configure: Regenerated.
6934
        * config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
6935
        * config/rs6000/rs6000.c (rs6000_override_options, power5): Add
6936
        MASK_POPCNTB.  Uncomment rs6000_sched_restricted_insns_priority
6937
        and rs6000_sched_costly_dep.
6938
        * config/rs6000/rs6000.h (TARGET_POPCNTB): New.
6939
        (TARGET_XL_COMPAT): Delete.
6940
        * config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
6941
        (popcount2): New.
6942
        (popcntb2): New.
6943
        * config/rs6000/rs6000.opt (mpopcntb): New.
6944
 
6945
        * opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
6946
        if variable name exists.
6947
 
6948
2005-05-07  Matt Kraai  
6949
 
6950
        * Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
6951
 
6952
2005-05-07  Richard Henderson  
6953
 
6954
        PR target/21412
6955
        * config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
6956
        with constant offsets.
6957
 
6958
2005-05-07  Nathan Sidwell  
6959
 
6960
        * config/v850/v850.c (print_operand): Use gcc_assert and
6961
        gcc_unreachable, as appropriate.
6962
        (print_operand_address, v850_handle_data_area_attribute,
6963
        v850_encode_data_area, construct_restore_jr, construct_save_jarl,
6964
        v850_insert_attributes, construct_prepare_instruction): Likewise.
6965
        * config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
6966
        * config/v850/v850.md (movsicc, *sasf_1): Likewise.
6967
 
6968
2005-05-07  Kazu Hirata  
6969
 
6970
        * tree-ssa-loop-ivcanon.c, config/i386/i386.c,
6971
        config/rs6000/rs6000.h: Fix comment typos.
6972
 
6973
2005-05-07  Richard Sandiford  
6974
 
6975
        * doc/invoke.texi: Remove documentation for MIPS' -mint64 option.
6976
        * config/mips/mips.c (TARGET_SCALAR_MODE_SUPPORTED_P): Delete.
6977
        (mips_scalar_mode_supported_p): Delete.
6978
 
6979
2005-05-06  Eric Christopher  
6980
 
6981
        * config/mips/mips.opt: Remove -mint64 option.
6982
        * config/mips/mips.c (override_options): Remove -mint64
6983
        handling.
6984
        * config/mips/mips.h (INT_TYPE_SIZE): Define to 32.
6985
        * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove
6986
        64-bit integer handling.
6987
        * doc/invoke.texi (Option Summary): Remove -mint64 for
6988
        mips.
6989
 
6990
2005-05-06  Zdenek Dvorak  
6991
 
6992
        PR tree-optimization/19401
6993
        * tree-flow.h (tree_unroll_loops_completely): Declaration changed.
6994
        * tree-ssa-loop-ivcanon.c (enum unroll_level): New.
6995
        (estimated_unrolled_size): New function.
6996
        (try_unroll_loop_completely, canonicalize_loop_induction_variables,
6997
        tree_unroll_loops_completely): Always unroll loops if the code size
6998
        does not increase.
6999
        * tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
7000
        loops should be unrolled completely.
7001
        (gate_tree_complete_unroll): Run complete unrolling unconditionally.
7002
 
7003
2005-05-06  Zdenek Dvorak  
7004
 
7005
        PR rtl-optimization/21254
7006
        * loop-iv.c (iv_number_of_iterations): Simplify infiniteness
7007
        assumptions for loops that otherwise do not roll.
7008
        (find_simple_exit): Prefer # of iterations that is guaranteed
7009
        not to be infinite.
7010
        * loop-unroll.c (decide_peel_once_rolling,
7011
        decide_peel_completely): Check whether the loop is infinite.
7012
 
7013
2005-05-06  Pat Haugen  
7014
 
7015
        * config/rs6000/sysv4.opt: Fix typo.
7016
 
7017
2005-05-06  Denis Vlasenko  
7018
            Jakub Jelinek  
7019
 
7020
        PR target/21329
7021
        * config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
7022
        for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
7023
        Don't use rep; movs{l,q} if the repetition count is really small,
7024
        instead use a sequence of movs{l,q} instructions.
7025
 
7026
2005-05-06  Jeff Law  
7027
 
7028
        PR tree-optimization/21380
7029
        * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
7030
        thread through a block with no preds.
7031
 
7032
2005-05-06  Kazu Hirata  
7033
 
7034
        * tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
7035
        ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
7036
        add_call_read_ops): Use VEC instead of VARRAY.
7037
 
7038
2005-05-06  Nathan Sidwell  
7039
 
7040
        * config/mcore/mcore.c (mcore_print_operand_address): Use
7041
        gcc_assert and gcc_unreachable as appropriate.
7042
        (mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
7043
        mcore_output_andn, output_inline_const, mcore_output_move,
7044
        mcore_output_movedouble, mcore_expand_block_move,
7045
        layout_mcore_frame, mcore_initial_elimination_offset,
7046
        mcore_expand_prolog, mcore_mark_dllexport,
7047
        mcore_mark_dllimport): Likewise.
7048
        * config/mcore/mcore.h (switch_to_section): Likewise.
7049
        * config/mcore/mcore.md: Likewise.
7050
 
7051
2005-05-06  Aldy Hernandez  
7052
 
7053
        * config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
7054
        TARGET_PROFILE_KERNEL.
7055
 
7056
        * config/rs6000/rs6000.c (output_profile_hook): Add comment to
7057
        TARGET_PROFILE_KERNEL use.
7058
 
7059
2005-05-06  Nathan Sidwell  
7060
 
7061
        * config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
7062
        and gcc_unreachable, as appropriate.
7063
        (gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
7064
        m32r_expand_prologue, m32r_output_function_epilogue,
7065
        m32r_legitimize_pic_address, m32r_print_operand_address,
7066
        emit_cond_move, m32r_function_symbol,
7067
        m32r_output_block_move): Likewise.
7068
        * config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
7069
        * config/m32r/m32r.md ( *movsi_insn, *zero_branch_insn,
7070
        *rev_zero_branch_insn): Likewise.
7071
 
7072
2005-05-06  Jakub Jelinek  
7073
 
7074
        PR c++/20961
7075
        * varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
7076
        if both NEWDECL and OLDDECL are already weak.
7077
 
7078
2005-05-06  Richard Sandiford  
7079
 
7080
        * config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
7081
 
7082
2005-05-05  J"orn Rennecke  
7083
            Kaz Kojima  
7084
 
7085
        * config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
7086
        and plus_constant.
7087
 
7088
2005-05-05  Aldy Hernandez  
7089
            David Edelsohn  
7090
 
7091
        * config.gcc: Add .opt magic for the rs6000 ports.
7092
 
7093
        * doc/invoke.texi: Document -mabi= option properly.  Document
7094
        -misel and -mno-sel.  Document -mspe and -mno-spe.  Document
7095
        -mvrsave and -mno-vrsave.  Document deprecation of -mspe= and
7096
        -misel=.
7097
 
7098
        * config/rs6000/aix.h: Remove XL_COMPAT stuff.  Remove
7099
        SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES.  Define
7100
        TARGET_XL_COMPAT.
7101
 
7102
        * config/rs6000/aix.opt: New.
7103
        * config/rs6000/aix41.opt: New.
7104
        * config/rs6000/aix64.opt: New.
7105
        * config/rs6000/darwin.opt: New.
7106
        * config/rs6000/linux64.opt: New.
7107
        * config/rs6000/rs6000.opt: New.
7108
        * config/rs6000/sysv4.opt: New.
7109
 
7110
        * config/rs6000/sysv4.h: Delete definitions of MASK_* and
7111
        associated TARGET_*.  Remove SUBTARGET_OPTIONS,
7112
        SUBTARGET_SWITCHES.
7113
        Define TARGET_USES_SYSV4_OPT.
7114
        * config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
7115
        * config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES.  Define
7116
        TARGET_USES_AIX64_OPT.
7117
        * config/rs6000/aix51.h: Same.
7118
        * config/rs6000/aix52.h: Same.
7119
        * config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
7120
        MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
7121
        Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
7122
        Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
7123
        * config/rs6000/linux64.h: Use
7124
        rs6000_explicit_options.  Remove EXTRA_SUBTARGET_SWITCHES.
7125
 
7126
        * config/rs6000/rs6000.c: Remove definitions of
7127
        rs6000_sched_restricted_insns_priority,
7128
        rs6000_long_double_size_string, rs6000_altivec_vrsave,
7129
        rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
7130
        rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
7131
        rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
7132
        rs6000_alignment_string.  Define rs6000_explicit_options.
7133
        (rs6000_parse_abi_options): Remove.
7134
        (rs6000_parse_alignment_option): Remove.
7135
        (rs6000_parse_float_gprs_option): Remove.
7136
        (rs6000_handle_option): New.  Define TARGET_HANDLE_OPTION.  Define
7137
        TARGET_DEFAULT_TARGET_FLAGS.
7138
        (rs6000_override_options): Revamp to use new .opt machinery.
7139
 
7140
        * config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
7141
        of new .opt machinery.  Remove target_flags.  Redefine
7142
        TARGET_MFCRF and TARGET_POWERPC64.  Remove TARGET_SWITCHES,
7143
        SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
7144
        rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
7145
        rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
7146
        rs6000_longcall_switch, rs6000_default_long_calls,
7147
        rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
7148
        rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
7149
        TARGET_ALTIVEC_VRSAVE.
7150
 
7151
2005-05-05  Ralf Corsepius  
7152
 
7153
        * config.gcc (hppa1.1-*-rtems*): Remove.
7154
        * config/pa/rtems.h: Remove.
7155
 
7156
2005-05-05  Ralf Corsepius  
7157
 
7158
        * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
7159
        Exclude roe/603e multilib variants.
7160
 
7161
2005-05-04  Denis Chertykov  
7162
 
7163
        PR target/21284
7164
        * config/avr/avr.c (avr_output_addr_vec_elt): Use special section
7165
        for output.
7166
 
7167
2005-05-05  Richard Sandiford  
7168
 
7169
        * config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
7170
        arm/pe.opt to $extra_options.
7171
        * config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
7172
        (target_float_abi_name, target_float_switch, target_abi_name)
7173
        (ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
7174
        (ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
7175
        (ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
7176
        (ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
7177
        (ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
7178
        (THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
7179
        (THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
7180
        (TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
7181
        (TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
7182
        (TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
7183
        (TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
7184
        (TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
7185
        (TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
7186
        (TARGET_OPTIONS, arm_cpu_select, arm_select,  structure_size_string)
7187
        (arm_pic_register_string): Delete.
7188
        (TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
7189
        TARGET_TPCS_FRAME.
7190
        (TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
7191
        * config/arm/coff.h (TARGET_DEFAULT): Likewise.
7192
        * config/arm/elf.h (TARGET_DEFAULT): Likewise.
7193
        * config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
7194
        * config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
7195
        * config/arm/semi.h (TARGET_DEFAULT): Likewise.
7196
        * config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
7197
        * config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
7198
        * config/arm/pe.h (TARGET_DEFAULT): Likewise.
7199
        (TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
7200
        (SUBTARGET_SWITCHES): Delete.
7201
        * config/arm/arm.c (target_float_switch): Delete.
7202
        (arm_cpu_select): Moved from config/arm/arm.h.
7203
        (target_fpu_name, target_fpe_name, target_float_abi_name)
7204
        (target_abi_name, structure_size_string, arm_pic_register_string)
7205
        (arm_select): Make static.
7206
        (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
7207
        (arm_handle_option): New function.
7208
        (arm_override_options): Update target_flags checks for new mask names.
7209
        Remove target_float_switch code.
7210
        (arm_expand_prologue, thumb_expand_prologue): Check
7211
        !TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
7212
        * config/arm/arm.opt, config/arm/pe.opt: New files.
7213
 
7214
2005-05-05  Nathan Sidwell  
7215
 
7216
        * config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
7217
        gcc_unreachable as appropriate.
7218
        (arc_double_limm_p, arc_setup_incoming_varargs,
7219
        arc_compute_function_type, arc_output_function_prologue,
7220
        arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
7221
        output_shift, arc_print_operand, arc_print_operand_address,
7222
        arc_final_prescan_insn): Likewise.
7223
        * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
7224
 
7225
2005-05-04  Geoffrey Keating  
7226
 
7227
        * config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
7228
        comparing Pmode.
7229
        (SDI): New.
7230
        (cmp): Delete.
7231
        (wd): New.
7232
        (add3, add3_internal1, add3_internal2,
7233
        add3_internal3, one_cmpl2, sub3, neg2,
7234
        clz2, ctz2, ffs2): New.
7235
        (addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
7236
        (one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
7237
        (adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
7238
        (one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
7239
        (sync_compare_and_swap): Use  rather than .
7240
 
7241
2005-05-05  Paul Brook  
7242
 
7243
        * Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
7244
        cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
7245
        regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
7246
        and tree-data-ref.h with *_H variables.
7247
 
7248
2005-05-05  Kelley Cook  
7249
 
7250
        * config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.
7251
 
7252
2005-05-05  Kelley Cook  
7253
 
7254
        * system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
7255
 
7256
2005-05-04  Gerald Pfeifer  
7257
 
7258
        * doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
7259
 
7260
2005-05-04 Fariborz Jahanian 
7261
 
7262
        * config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
7263
        setting of vrsave register for current function after
7264
        call to save_world is emitted.
7265
 
7266
2005-05-05  Hans-Peter Nilsson  
7267
 
7268
        * config/mmix/predicates.md: New file.
7269
        * config/mmix/mmix.c (mmix_symbolic_or_address_operand)
7270
        (mmix_reg_or_constant_operand, mmix_reg_cc_operand)
7271
        (mmix_foldable_comparison_operator, mmix_comparison_operator)
7272
        (mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
7273
        * config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
7274
        Don't define.
7275
        * config/mmix/mmix.md: Include predicates.md.
7276
        ("call", "call_value"): Force address to register if it isn't a
7277
        mmix_symbolic_or_address_operand.
7278
 
7279
2005-05-04  Andrew MacLeod  
7280
 
7281
        * tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
7282
        the flags are of appropriate types.
7283
        (num_ssa_operands): Generalize using the generic interface.
7284
        * tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
7285
        iterator.
7286
 
7287
2005-05-04  Richard Sandiford  
7288
 
7289
        * protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
7290
        (keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.
7291
 
7292
2005-05-04  Kazu Hirata  
7293
 
7294
        * tree-outof-ssa.c (edge_leader, stmt_list,
7295
        analyze_edges_for_bb): Use VEC instead of VARRAY.
7296
        (init_analayze_edges_for_bb, fini_analayze_edges_for_bb): New.
7297
        (perform_edge_inserts): Call init_analayze_edges_for_bb and
7298
        fini_analayze_edges_for_bb.
7299
 
7300
2005-05-04  James E Wilson  
7301
 
7302
        PR driver/21112
7303
        * gcc.c (process_command): In the second argv scan loop, ignore
7304
        Xassembler and Xpreprocessor, along with their argument.
7305
 
7306
2005-05-04  Kazu Hirata  
7307
 
7308
        * tree-flow-inline.h, tree-ssa-operands.c,
7309
        tree-ssa-operands.h, tree-ssa-opfinalize.h:
7310
        Likewise. tree-vn.c: Fix comment typos.
7311
        * doc/passes.texi, doc/tree-ssa.texi: Fix typos.
7312
 
7313
2005-05-04  Paolo Bonzini  
7314
 
7315
        * doc/tm.texi (Target Hooks): Document
7316
        TARGET_RESOLVE_OVERLOADED_BUILTIN.
7317
 
7318
2005-05-04  Paul Brook  
7319
 
7320
        * Makefile.in: Change dependencies on target.h to $(TARGET_H).
7321
 
7322
2005-05-04  Kazu Hirata  
7323
 
7324
        * dwarf2out.c (incomplete_types, retry_incomplete_types,
7325
        gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
7326
        of VARRAY.
7327
 
7328
        * loop-unroll.c (var_to_expand, analyze_insn_to_expand_var,
7329
        get_expansion, expand_var_during_unrolling,
7330
        insert_var_expansion_initialization,
7331
        combine_var_copies_in_loop_exit, release_var_copies): Use VEC
7332
        instead of VARRAY.
7333
 
7334
        * tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
7335
        update_stmt.
7336
 
7337
2004-05-03  Andrew Pinski  
7338
 
7339
        PR middle-end/15618
7340
        * fold-const.c (fold_widened_comparison): Treat BOOLEAN_TYPE
7341
        the same as INTEGER_TYPE.
7342
        (fold_binary): Fold "bool_var != 0" to bool_var.
7343
        Fold "bool_var == 1" to bool_var.
7344
 
7345
2004-05-03  Richard Henderson  
7346
 
7347
        PR middle-end/21318
7348
        * function.c (instantiate_virtual_regs_in_insn): Use the mode
7349
        from recog_data instead of insn_data.
7350
 
7351
2005-05-03  DJ Delorie  
7352
 
7353
        * common.opt (fdiagnostics-show-option): No variable is needed.
7354
        * diagnostic.h (diagnostic_context): Add show_option_requested flag.
7355
        * diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
7356
        (diagnostic_report_diagnostic): Test for enabled diagnostics here.
7357
        Save and restore original message format.  Use flag in context
7358
        instead of global.
7359
        (warning): Don't test for enabled warnings here.
7360
        * opts.c (common_handle_option): Handle -fdiagnostics-show-option
7361
        here.
7362
 
7363
2005-05-04  Kelley Cook  
7364
 
7365
        * config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
7366
        * config/m32r/xm-linux.h: Don't undefine HOST_WORDS_BIG_ENDIAN.
7367
        * mips-tfile.c: Use WORDS_BIG_ENDIAN instead of HOST_WORDS_BIG_ENDIAN.
7368
        * aclocal.m4: Don't include accross.m4.
7369
        * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
7370
        Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
7371
        * configure, config.in: Regenerate.
7372
 
7373
2005-05-04  Jakub Jelinek  
7374
 
7375
        PR middle-end/21265
7376
        * expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
7377
        (clear_storage): Add argument.
7378
        * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
7379
        Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
7380
        tailcall.
7381
        (emit_block_move): Handle BLOCK_OP_TAILCALL method.
7382
        (clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
7383
        (store_expr, store_constructor): Adjust callers.
7384
        * builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
7385
        to emit_block_move if CALL_EXPR_TAILCALL (exp).
7386
        (expand_builtin_memmove): Add ORIG_EXP argument, copy
7387
        CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
7388
        (expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
7389
        with EXP.  Pass EXP to expand_builtin_memmove.
7390
        (expand_builtin_memset): Add ORIG_EXP argument, pass
7391
        BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
7392
        (expand_builtin_bzero): Replace ARGLIST argument with EXP.
7393
        Pass EXP to expand_builtin_memset.
7394
        (expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
7395
        the new CALL_EXPR.
7396
        (expand_builtin_strncmp): Likewise.
7397
        (expand_builtin_printf): Replace ARGLIST argument with EXP.
7398
        Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
7399
        (expand_builtin_fprintf): Likewise.
7400
        (expand_builtin): Adjust calls to
7401
        expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.
7402
 
7403
        * config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
7404
        item in V4SF mode.
7405
 
7406
        PR rtl-optimization/21239
7407
        * combine.c (combine_simplify_rtx) : Fix a typo.
7408
 
7409
2005-05-03  Kazu Hirata  
7410
 
7411
        * tree-flow.h (tree_ann_common_d): Move aux to ...
7412
        (stmt_ann_d): ... here.
7413
        * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
7414
        move_computations_stmt, schedule_sm): Update references to
7415
        aux.
7416
        * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
7417
 
7418
        * tree-cfg.c (remove_bb): Remove a redundant call to
7419
        set_bb_for_stmt.
7420
        * tree-if-conv.c (replace_phi_with_cond_modify_expr):
7421
        Likewise.
7422
 
7423
2005-05-03  Richard Henderson  
7424
 
7425
        * config/rs6000/rs6000.c: Remove conflict markers.
7426
 
7427
        * cfg.c (dump_flow_info): Use max_reg_num, not max_regno.
7428
 
7429
2005-05-03  James E Wilson  
7430
 
7431
        * dwarf2out.c (lookup_filename): Call maybe_emit_file.
7432
 
7433
2005-05-03  DJ Delorie  
7434
 
7435
        * c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery
7436
        decide if the warning will be printed.
7437
        * calls.c (expand_call): Likewise.
7438
        * function.c (init-function_start): Likewise.
7439
 
7440
        * common.opt (-fdiagnostics-show-option): New.
7441
        * opts.c (option_enabled): Accept the option index instead of a
7442
        pointer to the option descriptor.
7443
        * opts.h (option_enabled): Likewise.
7444
        * toplev.c (print_switch_values): Pass option index, not option
7445
        descriptor.
7446
        * diagnostic.h (diagnostic_info): Add option_index.
7447
        * diagnostic.c: Include opts.h.
7448
        (diagnostic_set_info): Initialize option_index.
7449
        (diagnostic_report_diagnostic): Amend option name if appropriate.
7450
        (warning): Check to see if the specified warning is enabled.
7451
        Store option index.
7452
        * doc/invoke.texi (-fdiagnostics-show-options): Document.
7453
 
7454
2005-05-03  Richard Henderson  
7455
 
7456
        * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
7457
        SPEC_OR_GEN_REGS definitions.
7458
 
7459
2005-05-03  Alexandre Oliva  
7460
 
7461
        PR target/16888
7462
        * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
7463
        for unavailable registers.
7464
 
7465
2005-05-03  Kazu Hirata  
7466
 
7467
        * tree-cfg.c (tree_forwarder_block_p): Fix a typo.
7468
 
7469
        * cfglayout.c (block_locators_blocks,
7470
        insn_locators_initialize, insn_scope): Use VEC instead of
7471
        VARRAY.
7472
 
7473
        * tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
7474
        mudflap_finish_file, mudflap_finish_file): Use VEC instead of
7475
        VARRAY.
7476
 
7477
2005-05-03  Eric Botcazou  
7478
 
7479
        * config/sparc/predicates.md (const_compl_high_operand): New.
7480
        * config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
7481
        gen_safe_HIGH64.
7482
        (sparc_emit_set_const64_quick1): Adjust for above change.
7483
        (sparc_emit_set_const64_quick2): Likewise.
7484
        (sparc_emit_set_const64_longway): Likewise.
7485
        (sparc_emit_set_const64): Likewise.
7486
        * config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
7487
        movdi_const64_special): Delete.
7488
        (logical constant splitters): Use const_compl_high_operand.
7489
 
7490
2005-05-03  Richard Guenther  
7491
 
7492
        * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
7493
        rather than STRIP_NOPS.
7494
 
7495
2005-05-03  Jakub Jelinek  
7496
 
7497
        PR rtl-optimization/21330
7498
        * loop-unswitch.c (may_unswitch_on): Set *cinsn only when
7499
        returning non-NULL.
7500
        (unswitch_single_loop): Clear cinsn when retrying.
7501
 
7502
        PR target/21297
7503
        * config/i386/i386.c (legitimize_address): When canonicalizing
7504
        ASHIFT into MULT, multiply by 1 << shift_count instead of
7505
        1 << log2 (shift_count).
7506
 
7507
2005-05-03  Andrew MacLeod  
7508
 
7509
        * lambda-code.c (gcc_loop_to_lambda_loop,
7510
        lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
7511
        stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
7512
        generic operand interface.
7513
        * tree-data-ref.c (find_data_references_in_loop): Use generic interface.
7514
        * tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
7515
        generic operand interface.
7516
        * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
7517
        link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
7518
        next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
7519
        num_imm_uses): Use ssa_use_operand_t.
7520
        (get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
7521
        get_v_must_def_ops): Delete.
7522
        (get_def_from_ptr, get_phi_result_ptr): Get def directly now.
7523
        (get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
7524
        get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
7525
        get_v_must_def_kill_ptr): Delete.
7526
        (delink_stmt_imm_use): Move and use new operand interface.
7527
        (op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
7528
        op_iter_next_tree): Use new operand implementation.
7529
        (clear_and_done_ssa_iter): New.  Initialize a blank operand iterator.
7530
        (op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator
7531
        type check.
7532
        (op_iter_next_mustdef, op_iter_next_maydef,
7533
        op_iter_next_must_and_may_def): Delete. Replace with...
7534
        (op_iter_next_maymustdef): New.  Combine must and may next operations.
7535
        (op_iter_init_maydef, op_iter_init_mustdef,
7536
        op_iter_init_must_and_may_def): Use new interface.
7537
        (single_ssa_tree_operand ): New.  Process single operands only as trees.
7538
        (single_ssa_use_operand): New.  Process single operands only as uses.
7539
        (single_ssa_def_operand): New.  Process single operands only as defs.
7540
        (zero_ssa_operands): New.  Return TRUE if there are zero operands of the
7541
        specified types.
7542
        (num_ssa_operands): New.  Count the number of specified operands.
7543
        (compare_ssa_operands_equal): New.  Compare two statements' operands.
7544
        (single_phi_def): New.  Return true if PHI has one def of the specified
7545
        operand type.
7546
        (op_iter_init_phiuse): New.  Initialize the iterator for PHI arguments.
7547
        (op_iter_init_phidef): New.  Initialize the iterator for the PHI def.
7548
        * tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
7549
        (struct stmt_ann_d): Operands field no longer require GTY().
7550
        (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
7551
        * tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
7552
        * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
7553
        dump_replaceable_exprs, rewrite_trees): Use generic interface.
7554
        * tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node):
7555
        Use use_operand_p instead of ssa_imm_use_t *.
7556
        * tree-pretty-print.c (dump_vops): check if operands are active before
7557
        dumping virtual operands.
7558
        * tree-sra.c (sra_walk_function): Use ZERO_SSA_OPERANDS.
7559
        * tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
7560
        (ccp_fold): Use new interface.
7561
        (ccp_visit_stmt): Remove unused variables and code.
7562
        (convert_to_gimple_builtin): Insert statements before calling
7563
        mark_new_vars_to_rename.
7564
        * tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
7565
        (copy_prop_visit_cond_stmt): Use generic interface.
7566
        * tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the
7567
        annotation in table.
7568
        (thread_across_edge): Use generic interface.
7569
        (initialize_hash_element): Initialzie with stmt, not annotation.
7570
        (eliminate_redundant_computations): Use generic interface.
7571
        (record_equivalences_from_stmt): Pass stmt, not annotation.
7572
        (avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
7573
        interface.
7574
        * tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
7575
        * tree-ssa-loop-ivopts.c (find_invariants_stmt,
7576
        find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use
7577
        generic operand interface.
7578
        * tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
7579
        interface.
7580
        * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
7581
        Interface.
7582
        * tree-ssa-operands.c (struct opbuild_list_d): New.  Operand build type.
7583
        (build_defs, build_uses, build_v_may_defs, build_vuses,
7584
        build_v_must_defs): Change type to struct opbuild_list_d.
7585
        (ops_active): New.  Operands active boolean.
7586
        (operand_memory, operand_memory_index): New.  Operand memory managers.
7587
        (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
7588
        allocate_vuse_optype, allocate_v_must_def_optype): Delete.
7589
        (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
7590
        Change from functions to static variable list heads.
7591
        (opbuild_initialize_virtual): New.  Initialize a virtual build list.
7592
        (opbuild_initialize_real): New.  Initialize a virtual build list.
7593
        (opbuild_free): New.  Free a build list.
7594
        (opbuild_num_elems): New.  Number of items in a list.
7595
        (opbuild_append_real): New.  Add a real (tree *) operand.
7596
        (opbuild_append_virtual): New.  Add and sort a virtual (tree) operand.
7597
        (opbuild_first): New.  Return first element index in a list.
7598
        (opbuild_next): New.  Return next element in a list.
7599
        (opbuild_elem_real): New.  Return real element.
7600
        (opbuild_elem_virtual): New.  Return virtual element.
7601
        (opbuild_elem_uid): New.  Return UID of virtual element.
7602
        (opbuild_clear): New.  Reset an operand list.
7603
        (opbuild_remove_elem): New.  Remove an element form a list.
7604
        (ssa_operands_active): New.  Return true if operand cache is active.
7605
        (init_ssa_operands, fini_ssa_operands): Initialize new implementation.
7606
        (ssa_operand_alloc): New.  Allocate memory from an operand chunk.
7607
        (correct_use_link): Use use_operand_p.
7608
        (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
7609
        finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation.
7610
        (cleanup_v_may_defs): Use new implmentation.
7611
        (finalize_ssa_stmt_operands, start_ssa_stmt_operands): New
7612
        implementation.
7613
        (append_def, append_use, append_v_may_def, append_vuse,
7614
        append_v_must_def): Call opbuild_append routine instead of using varray.
7615
        (build_ssa_operands): Simplify to simply use stmt, don't maintain a
7616
        global parse_old_ops variable.
7617
        (free_ssa_operands): New implementation.
7618
        (update_stmt_operands): Move.  Change argument to build_ssa_operands.
7619
        (copy_virtual_operands): Move. New generic implementation.
7620
        (create_ssa_artficial_load_stmt): Move. New implementation.
7621
        (swap_tree_operands): Update for new implementation.
7622
        (get_expr_operands): Add stmt parameter to calls to swap_tree_operands.
7623
        (add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
7624
        rather than a varray.
7625
        (verify_imm_links): Use use_operand_p.
7626
        (dump_immediate_uses_for): If the immediate use variable is a virtual
7627
        variable, show the virtual ops in the stmt.
7628
        * tree-ssa-operands.h (def_operand_p): No longer a structure.
7629
        (NULL_DEF_OPERAND_P): Now a #define.
7630
        (def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
7631
        vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
7632
        (def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
7633
        mustdef_optype_d): New.  Use Linked list representation.
7634
        (SSA_OPERAND_MEMORY_SIZE): New.  Size of operand memory chunk.
7635
        (struct ssa_operand_memory_d): New.  Allocated Chunk node.
7636
        (struct stmt_operands_d): Change to new pointers that are not GTY.
7637
        (STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
7638
        STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
7639
        SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
7640
        STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT,
7641
        SET_V_MUST_DEF_KILL): Delete.
7642
        (V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT,
7643
        V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
7644
        (V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT,
7645
        V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
7646
        (enum ssa_op_iter_type): Operand iterator typechecking values.
7647
        (struct ssa_operand_iterator_d): Use linked lists of operands.
7648
        (SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
7649
        (FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
7650
        FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
7651
        (FOR_EACH_PHI_ARG): New.  Iterate over PHI arguments.
7652
        (FOR_EACH_PHI_OR_STMT_USE): New.  Iterate over PHI or stmt uses.
7653
        (FOR_EACH_PHI_OR_STMT_DEF): New.  Iterate over PHI or stmt defs.
7654
        (SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND,
7655
        SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
7656
        * tree-ssa-opfinalize.h: New.  Function templates for expansion.
7657
        (FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
7658
        alloc_vuse, and alloc_mustdef.
7659
        (FINALIZE_FUNC): Expands into finalize_ssa_def_ops,
7660
        finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
7661
        and finalize_ssa_v_must_def_ops.
7662
        * tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
7663
        (create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
7664
        stmt around.
7665
        (compute_avail): Use generic iterator interface.
7666
        * tree-ssa-propagate.c (first_vdef): Use generic operand interface.
7667
        (stmt_makes_single_load, stmt_makes_single_store): Use
7668
        ZERO_SSA_OPERANDS.
7669
        * tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
7670
        (statement_sink_location): Use generic interface.
7671
        * tree-ssa.c (verify_ssa):  Use %p in fprintf.  Use generic interface.
7672
        (delete_tree_ssa): Don't call release_defs.  Call release_ssa_name and
7673
        reset the immediate use link nodes.
7674
        (stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
7675
        * tree-ssanames.c (make_ssa_name): Use use_operand_p.
7676
        * tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
7677
        (eliminate_tail_call): Use generic operand interface.
7678
        * tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
7679
        (vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic
7680
        interface.
7681
        * tree-vect-transform.c (update_vuses_to_preheader): Use generic
7682
        interface.
7683
        * tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
7684
        * tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
7685
        vuse_optype.
7686
        (vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add):
7687
        Use statement pointer instead of vuse_optype.  Use generic interface.
7688
        * tree-vrp.c (maybe_add_assert_expr): Use generic interface.
7689
        (stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
7690
        * tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
7691
        (tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
7692
        * doc/tree-ssa.texi: Update documentation for operand interface.
7693
 
7694
2005-05-03  Nathan Sidwell  
7695
 
7696
        * config/darwin.c (machopic_define_symbol): Use gcc_assert or
7697
        gcc_unreachable as appropriate.
7698
        (machopic_function_base_name, machopic_indirect_data_reference,
7699
        machopic_legitimize_pic_address, darwin_non_lazy_pcrel): Likewise.
7700
        * config/host-darwin.c (darwin_gt_pch_use_address): Likewise
7701
        * config/rs6000/altivec.md (*mov_internal,
7702
        build_vector_mask_for_load): Likewise.
7703
        * config/rs6000/darwin.md (movdf_low_si, movdf_low_di,
7704
        *call_nonlocal_darwin64, *call_value_nonlocal_darwin64,
7705
        *sibcall_symbolic_64, *sibcall_value_symbolic_64): Likewise.
7706
        * config/rs6000/predicates.md (easy_fp_constant,
7707
        logical_operand): Likewise.
7708
        * config/rs6000/rs6000.c (spe_expand_predicate_builtin,
7709
        compute_save_world_info, rs6000_emit_prologue,
7710
        rs6000_output_mi_thunk): Reword comments to avoid 'abort'.
7711
        * config/rs6000/host-darwin.c (segv_handler): Use fancy_abort
7712
        directly.
7713
 
7714
2005-05-03  Uros Bizjak  
7715
 
7716
        PR middle-end/21282
7717
        * convert.c (convert_to_integer): Convert ceil and floor in
7718
        c99 mode only.
7719
 
7720
2005-04-29  Geoffrey Keating  
7721
 
7722
        PR target/20813
7723
        * config/rs6000/rs6000.md (floatsidf2_internal): Merge to create
7724
        define_insn_and_split.  Split only when memory operand is
7725
        offsettable.  Use adjust_address rather than plus_constant.
7726
        (floatunssidf2_internal): Likewise.
7727
        (fix_truncdfsi2_internal): Split only when memory operand is
7728
        offsettable.  Use adjust_address rather than plus_constant.
7729
        (fix_trunctfsi2_internal): Likewise.
7730
        (floatsidf2_internal): Likewise.
7731
 
7732
2005-05-02  Diego Novillo  
7733
 
7734
        * tree-vrp.c (set_value_range_to_nonnull): Declare inline.
7735
        (set_value_range_to_null): Likewise.
7736
        (set_value_range_to_varying): New function.  Use it in all
7737
        call sites that used to call set_value_range (vr, VR_VARYING, ...).
7738
        (extract_range_from_assert): If the integral type has a
7739
        super-type, and LIMIT is not within MIN and MAX values of that
7740
        type, set the resulting range to VR_VARYING.
7741
 
7742
2005-05-02  Hans-Peter Nilsson  
7743
 
7744
        * config/mmix/mmix.opt: New file.
7745
        * config/mmix/mmix.h: Move options-related comments to mmix.opt.
7746
        (mmix_cc1_ignored_option): Don't declare.
7747
        (TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
7748
        (TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
7749
        (TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
7750
        (TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
7751
        (TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
7752
        (TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
7753
        (TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
7754
        (TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
7755
        Don't define.
7756
        (TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
7757
        * config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
7758
        (TARGET_DEFAULT_TARGET_FLAGS): Override default.
7759
 
7760
2005-05-02  Joseph S. Myers  
7761
 
7762
        PR c/15698
7763
        * c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
7764
        * c-decl.c (current_function_prototype_built_in,
7765
        current_function_prototype_arg_types): New.
7766
        (merge_decls): Keep source location of prototype followed by
7767
        nonprototype declaration.  Update C_DECL_BUILTIN_PROTOTYPE.
7768
        (builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
7769
        (start_function): Always set current_function_prototype_locus,
7770
        current_function_prototype_built_in and
7771
        current_function_prototype_arg_types.  Check for external
7772
        prototype whether or not visible for external function and set
7773
        current_function_prototype_arg_types accordingly.
7774
        (store_parm_decls_oldstyle): Use
7775
        current_function_prototype_arg_types for checking old-style
7776
        definition against prototype.  Give warnings only if
7777
        current_function_prototype_built_in).
7778
 
7779
2005-05-02  Daniel Jacobowitz  
7780
 
7781
        * ggc.h (ggc_alloc_zone_pass_stat): New macro.
7782
        (ggc_alloc_zone_stat): Don't define.
7783
        * ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
7784
        ggc_alloc_zone_pass_stat.
7785
        * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
7786
        * tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
7787
        (make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
7788
 
7789
2005-05-02  Daniel Jacobowitz  
7790
 
7791
        * calls.c (expand_call): Handle current_function_pretend_args_size
7792
        when checking for sibcalls.
7793
 
7794
2005-05-02  Kazu Hirata  
7795
 
7796
        PR tree-optimization/21294
7797
        * tree-vrp.c (vrp_expr_computes_nonzero): New.
7798
        (extract_range_from_expr): Call vrp_expr_computes_nonzero.
7799
 
7800
2005-05-02  Janis Johnson  
7801
 
7802
        PR 19985
7803
        * gcov-io.h: Declare gcov external functions hidden.
7804
 
7805
2005-05-02  Kazu Hirata  
7806
 
7807
        * tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
7808
        record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
7809
        Use VEC instead of VARRAY.
7810
        (equiv_free): New.
7811
 
7812
        * tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
7813
        out common code.
7814
 
7815
2005-05-02  Paolo Bonzini  
7816
 
7817
        * c-common.c (resolve_overloaded_builtin): Forward to target
7818
        hook for BUILT_IN_MD built-ins.
7819
        * c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
7820
        for all types of built-in.
7821
        * target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New.  Use it
7822
        in the definition of the target hooks struct.
7823
        * target.h (struct gcc_target): Add resolve_overloaded_builtin.
7824
        * config/rs6000/altivec.h: Rewritten.
7825
        * config/rs6000/rs6000-c.c (struct altivec_builtin_types,
7826
        altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
7827
        rs6000_builtin_type, rs6000_builtin_type_compatible,
7828
        altivec_overloaded_builtins, rs6000_builtin_type,
7829
        rs6000_builtin_type_compatible): New.
7830
        * config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
7831
        New.
7832
        (def_builtin): Turn into a function.  Check for duplicates and store
7833
        the builtin into rs6000_builtin_decls.
7834
        (bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
7835
        bdesc_1arg): Add overloaded builtins.
7836
        (altivec_expand_builtin): Check for unresolved overloaded builtins,
7837
        do not support ALTIVEC_COMPILETIME_ERROR.
7838
        (rs6000_init_builtins): Add opaque 128-bit vector, and internal
7839
        nodes to represent front-end types.
7840
        (altivec_init_builtins, rs6000_common_init_builtins): Create builtins
7841
        with opaque arguments and/or return values.
7842
        * config/rs6000/rs6000.h (enum rs6000_builtins): Remove
7843
        ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
7844
        (rs6000_builtin_type_index): New.
7845
        (is_ev64_opaque_type): Rename to...
7846
        (rs6000_is_opaque_type): ... this.
7847
        (rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
7848
        target hook.
7849
 
7850
2005-05-02  Kazu Hirata  
7851
 
7852
        * function.c (reorder_blocks, reorder_blocks_1): Use VEC
7853
        instead of VARRAY.
7854
 
7855
2005-05-02  Nathan Sidwell  
7856
            Bernd Schmidt  
7857
 
7858
        * config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
7859
        print_address_operand, print_operand, legitimize_pic_address,
7860
        asm_conditional_branch, bfin_gen_compare, output_push_multiple,
7861
        output_pop_multiple): Use gcc_assert or gcc_unreachable as
7862
        appropriate.
7863
        * config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
7864
 
7865
2005-05-02  Dorit Naishlos  
7866
 
7867
        * doc/passes.texi: Document vectorization pass.
7868
 
7869
2005-05-02  Kazu Hirata  
7870
 
7871
        * tree-scalar-evolution.c (get_exit_conditions_rec,
7872
        select_loops_exit_conditions,
7873
        number_of_iterations_for_all_loops,
7874
        analyze_scalar_evolution_for_all_loop_phi_nodes,
7875
        scev_analysis): Use VEC instead of VARRAY.
7876
 
7877
2005-05-02  Michael Matz  
7878
 
7879
        PR c++/19542
7880
        * c-common.c (c_common_nodes_and_builtins): Create global null_node.
7881
        (warn_strict_null_sentinel): Define.
7882
        (check_function_sentinel): Check for null_node as valid sentinel too.
7883
        * c-common.h (c_tree_index): Added CTI_NULL.
7884
        (null_node) Define global_tree[CTI_NULL].
7885
        (warn_strict_null_sentinel): Declare.
7886
        * c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
7887
        * c.opt: (Wstrict-null-sentinel): New C++ option.
7888
        * doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
7889
 
7890
2005-05-01  Kazu Hirata  
7891
 
7892
        * gimplify.c (gimplify_compound_lval): Use VEC instead of
7893
        VARRAY.
7894
 
7895
        * global.c (calculate_reg_pav): Use VEC instead of VARRAY.
7896
 
7897
        * dwarf2out.c (decl_scope_table, push_decl_scope,
7898
        pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
7899
        instead of VARRAY.
7900
 
7901
2005-05-01  Mark Mitchell  
7902
 
7903
        PR C++/14391
7904
        * c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
7905
        if !flag_weak.
7906
        * doc/cpp.texi (__DEPRECATED): Document.
7907
        (__EXCEPTIONS): Likewise.
7908
        (__GXX_WEAK__): Likewise.
7909
 
7910
        * function.c (INVOKE__main): Do not define.
7911
        (expand_main_function): Check HAS_INIT_SECTION when determining
7912
        whether or not to call __main.
7913
 
7914
2005-05-01  Kazu Hirata  
7915
 
7916
        * tree-ssa-loop-ivopts.c: Fix a comment typo.
7917
 
7918
2005-01-05  Paul Brook  
7919
 
7920
        * config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
7921
        (INITIALIZE_TRAMPOLINE): Use it.
7922
        * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
7923
        * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
7924
        * config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.
7925
 
7926
2005-05-01  Gerald Pfeifer  
7927
 
7928
        * doc/install.texi (Specific): Omit dots in the @anchors names
7929
        for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
7930
        Omit underscores for x86_64-*-* and the "all ELF targets" entry.
7931
 
7932
2005-05-01  Zdenek Dvorak  
7933
 
7934
        PR tree-optimization/18316
7935
        PR tree-optimization/19126
7936
        * tree.c (build_int_cst_type): Avoid shift by size of type.
7937
        * tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
7938
        argument.
7939
        * tree-scalar-evolution.h (simple_iv): Declaration changed.
7940
        * tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
7941
        field.
7942
        (dump_cand): Dump depends_on information.
7943
        (determine_biv_step): Add argument to simple_iv call.
7944
        (contains_abnormal_ssa_name_p): Handle case expr == NULL.
7945
        (find_bivs, find_givs_in_stmt_scev): Do not require step to be a
7946
        constant.
7947
        (add_candidate_1): Record depends_on for candidates.
7948
        (tree_int_cst_sign_bit, constant_multiple_of): New functions.
7949
        (get_computation_at, get_computation_cost_at, may_eliminate_iv):
7950
        Handle ivs with nonconstant step.
7951
        (iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
7952
        (iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
7953
        (create_new_iv): Unshare the step before passing it to create_iv.
7954
        (free_loop_data): Free cand->depends_on.
7955
        (build_addr_strip_iref): New function.
7956
        (find_interesting_uses_address): Use build_addr_strip_iref.
7957
        (strip_offset_1): Split the recursive part from strip_offset.
7958
        Strip constant offset component_refs and array_refs.
7959
        (strip_offset): Split the recursive part to strip_offset_1.
7960
        (add_address_candidates): Removed.
7961
        (add_derived_ivs_candidates): Do not use add_address_candidates.
7962
        (add_iv_value_candidates): Add candidates with stripped constant
7963
        offset.  Consider all candidates with initial value 0 important.
7964
        (struct affine_tree_combination): New.
7965
        (aff_combination_const, aff_combination_elt, aff_combination_scale,
7966
        aff_combination_add_elt, aff_combination_add,
7967
        tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
7968
        fold_affine_sum): New functions.
7969
        (get_computation_at): Use fold_affine_sum.
7970
        * tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
7971
        * tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
7972
        to simple_iv call.
7973
 
7974
2005-04-30  Michael Matz  
7975
 
7976
        * config/i386/i386.md (movmemsi): Also active when
7977
        TARGET_INLINE_ALL_STRINGOPS.
7978
 
7979
2005-04-30  Eric Botcazou  
7980
 
7981
        PR bootstrap/20633
7982
        * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
7983
 
7984
2005-04-30  Paul Brook  
7985
 
7986
        * config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
7987
        thumb mode.
7988
        * config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
7989
        * config/arm/ieee754-sf.S: Ditto.
7990
        * config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
7991
        (FUNC_ALIAS): Use .thumb_set for thumb routines.
7992
 
7993
2005-04-30  Kazu Hirata  
7994
 
7995
        * tree-ssanames.c: Fix a comment typo.
7996
        * doc/options.texi: Fix a typo.
7997
 
7998
2005-04-30  Nathan Sidwell  
7999
 
8000
        * config/h8300/h8300.c (byte_reg): Use gcc_assert and
8001
        gcc_unreachable as appropriate.
8002
        (split_adds_subs, cond_string, print_operand,
8003
        h8300_initial_elimination_offset, h8300_classify_operand,
8004
        h8300_unary_length, h8300_short_immediate_length,
8005
        h8300_bitfield_length, h8300_binary_length,
8006
        h8300_insn_length_from_table, compute_mov_length, output_plussi,
8007
        compute_plussi_length, compute_plussi_cc, output_logical_op,
8008
        compute_logical_op_length, compute_logical_op_cc,
8009
        output_h8sx_shift, get_shift_alg, h8300_shift_needs_scratch_p,
8010
        output_a_shift, compute_a_shift_length, compute_a_shift_cc,
8011
        output_a_rotate, compute_a_rotate_length, fix_bit_operand,
8012
        h8300_regs_ok_for_stm): Likewise.
8013
        * config/h8300/h8300.md (*movsi_h8300, *movsf_h8300,
8014
        monitor_prologue): Likewise.
8015
 
8016
2005-04-30  Kazu Hirata  
8017
 
8018
        * loop-invariant.c (invariants, create_new_invariant,
8019
        get_inv_cost, best_gain_for_invariant,
8020
        find_invariants_to_move, move_invariants,
8021
        init_inv_motion_data, free_inv_motion_data): Use VEC instead
8022
        of VARRAY.
8023
 
8024
2005-04-29  Richard Henderson  
8025
 
8026
        * function.c (instantiate_decls): Remove valid_only argument.
8027
        (instantiate_decls_1, instantiate_decl): Likewise.
8028
        (instantiate_virtual_regs_1): Delete.
8029
        (instantiate_virtual_regs_lossage): Delete.
8030
        (instantiate_virtual_regs_in_rtx): New.
8031
        (safe_insn_predicate): New.
8032
        (instantiate_virtual_regs_in_insn): New.
8033
        (instantiate_virtual_regs): Update to match all that.  Only run
8034
        instantiate_decls once.
8035
 
8036
2005-04-29  Richard Henderson  
8037
            Daniel Jacobowitz  
8038
 
8039
        * gengtype.c (write_func_for_structure): Split out ...
8040
        (output_type_enum): ... new function.  Fix thinko accessing
8041
        TYPE_PARAM_STRUCT data.
8042
 
8043
2005-04-29  Tom Tromey  
8044
 
8045
        * tree.c (build_block): Removed unused 'tags' argument.
8046
        * tree.h (build_block): Removed argument.
8047
 
8048
2005-04-29  Michael Matz  
8049
 
8050
        PR rtl-optimization/21144
8051
        * postreload.c (reload_cse_move2add): Check for VOIDmode.
8052
 
8053
2005-04-29  Bob Wilson  
8054
 
8055
        * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Define to disable
8056
        flag_reorder_blocks.
8057
 
8058
2005-04-28  Kazu Hirata  
8059
 
8060
        PR tree-optimization/21030
8061
        * tree-vrp.c (adjust_range_with_scev): Do not create invalid
8062
        ranges where VR->MAX is smaller than VR->MIN.
8063
 
8064
2005-04-29  Devang Patel  
8065
 
8066
        PR tree-optimization/21272
8067
        PR tree-optimization/21266
8068
        * tree-if-conv.c (find_phi_replacement_condition): Fix think-o.
8069
 
8070
2005-04-29  Kazu Hirata  
8071
 
8072
        * tree-flow-inline.h: Fix a comment typo.
8073
        * doc/tree-ssa.texi: Fix a typo.
8074
 
8075
        * tree-flow-inline.h, tree-ssa-operands.c: Fix comment typos.
8076
 
8077
2005-04-29  Nathan Sidwell  
8078
 
8079
        * config/fr30/fr30.c (fr30_expand_prologue): Use gcc_assert and
8080
        gcc_unreachable as appropriate.
8081
        (fr30_expand_epilogue, fr30_setup_incoming_varargs,
8082
        fr30_print_operand, fr30_move_double): Likewise.
8083
        * config/fr30/fr30.md (*movsi_internal, *movsf_internal): Likewise.
8084
 
8085
2005-04-29  Mark Mitchell  
8086
 
8087
        * config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
8088
        definition has already been provided.
8089
        (ARM_EABI_DTORS_SECTION_OP): Likewise.
8090
        * config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
8091
        (ARM_EABI_DTORS_SECTION_OP): Likewise.
8092
 
8093
2005-04-29  Jim Tison  
8094
 
8095
        * config/s390/s390.md ("prologue_tpf", "epilogue_tpf"): Alter
8096
        trace hooks calls to improve performance.
8097
 
8098
2005-04-29  Julian Brown  
8099
            Mark Mitchell  
8100
            Paul Brook  
8101
 
8102
        * crtstuff.c: Handle targets that use .init_array.
8103
        * function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
8104
        that INVOKE__main is set correctly.
8105
        (expand_main_function): Test INVOKE__main.
8106
        * libgcc2.c: Do not define __main when using .init_array.
8107
        * config/arm/arm.c (arm_elf_asm_constructor): New function.
8108
        * config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
8109
        libgcc version.
8110
        (DTORS_SECTION_ASM_OP): Likewise.
8111
        (CTOR_LIST_BEGIN): Define specially when in libgcc.
8112
        (CTOR_LIST_END): Likewise.
8113
        (DTOR_LIST_BEGIN): Likewise.
8114
        (DTOR_LIST_END): Likewise.
8115
        * config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
8116
        (FINI_SECTION_ASM_OP): Likewise.
8117
        (INIT_ARRAY_SECTION_ASM_OP): Define.
8118
        (FINI_ARRAY_SECTION_ASM_OP): Likewise.
8119
        * config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
8120
        (SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
8121
        * doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
8122
        (FINI_ARRAY_SECTION_ASM_OP): Likewise.
8123
 
8124
2005-04-29  Nathan Sidwell  
8125
 
8126
        * config/m68k/m68k.c (m68k_initial_elimination_offset): Use
8127
        gcc_assert and gcc_unreachable as appropriate.
8128
        (output_dbcc_and_branch, output_scc_di, legitimize_pic_address,
8129
        const_int_cost, output_move_const_into_data_reg,
8130
        output_move_qimode, output_move_double, find_addr_reg,
8131
        print_operand, print_operand_address): Likewise.
8132
        * config/m68k/m68k.md (adddi3, subdi3, negsf2, negdf2, abssf2,
8133
        absdf2, sordered, sunordered, suneq, sunge, sungt, sunle, sunlt,
8134
        sltgt, bordered, bunordered, buneq, bunge, bungt, bunle, bunlt,
8135
        bltgt, *bordered_rev, *bunordered_rev, *buneq_rev, *bunge_rev,
8136
        *bunle_rev, *bunlt_rev, *bltgt_rev, negxf2, absxf2,
8137
        conditional_trap): Likewise.
8138
        * config/m68k/m68kelf.h (ASM_OUTPUT_ALIGN): Remove unreachable code.
8139
 
8140
2005-04-29  Nathan Sidwell  
8141
 
8142
        * config/xtensa/xtensa.c (gen_int_relational): Use gcc_assert and
8143
        gcc_unreachable as appropriate.
8144
        (gen_conditional_move, xtensa_split_operand_pair,
8145
        xtensa_split_operand_pair, xtensa_copy_incoming_a7,
8146
        xtensa_copy_incoming_a7, xtensa_copy_incoming_a7,
8147
        xtensa_copy_incoming_a7, xtensa_output_literal,
8148
        xtensa_output_literal, xtensa_output_literal): Likewise.
8149
        * config/xtensa/xtensa.h (INITIAL_ELIMINATION_OFFSET): Likewise.
8150
        * config/xtensa/xtensa.md (*btrue, *bfalse, *ubtrue, *ubfalse,
8151
        *bittrue, *bitfalse, *masktrue, *maskfalse, movsicc_internal0,
8152
        movsicc_internal1, movsfcc_internal0,
8153
        movsfcc_internal1): Likewise.
8154
 
8155
2005-04-28  James E Wilson  
8156
 
8157
        * config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
8158
        (ADDITIONAL_REGISTER_NAMES): Delete obsolete mmx register entries.
8159
 
8160
2005-04-28  DJ Delorie  
8161
 
8162
        * opt-functions.awk (var_set): Emit proper initializer for
8163
        non-target bitfields.
8164
 
8165
2005-04-28  Devang Patel  
8166
 
8167
        * dbxout.c (have_used_extensions): Remove.
8168
        (dbxout_type_fileds, dbxout_type, dbxout_symbol): Remove use of
8169
        have_used_extensions.
8170
 
8171
2005-04-28  James E Wilson  
8172
 
8173
        * doc/install.texi: Update -enable-languages info.  Correct path to
8174
        html docs.
8175
 
8176
2005-04-28  DJ Delorie  
8177
 
8178
        * optc-gen.awk (END): Make sure no variable is defined more
8179
        than once.
8180
        * opth-gen.awk (END): Allocate bits on a per-variable basis.
8181
        Allow for bitfield variables other than target_flags.
8182
        * doc/options.text (Mask): Document that you may specify a
8183
        variable other than target_flags.
8184
 
8185
2005-04-28  Martin Koegler 
8186
 
8187
        PR rtl-optimization/18877
8188
        * reload.c (decompose) : Handle pseudo reg
8189
        number in val.start.
8190
 
8191
2005-04-28  David Edelsohn  
8192
 
8193
        PR target/20813
8194
        * config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
8195
        MASK_PPC_GFXOPT.
8196
        * config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
8197
        * config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
8198
        * config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
8199
 
8200
2005-04-28  Richard Earnshaw  
8201
 
8202
        * arm.c (legitimize_pic_address): Fix sense of assertion test for
8203
        creating pseudos when the base offset is too large.
8204
 
8205
2005-04-28  Kazu Hirata  
8206
 
8207
        * global.c (earlyclobber_regclass): Change the type to
8208
        VEC(int,heap).
8209
        (check_earlyclobber): Update uses of earlyclobber_regclass.
8210
        (mark_reg_use_for_earlyclobber): Likewise.
8211
        (calculate_local_reg_bb_info): Allocate and free
8212
        earlyclobber_regclass using the VEC API.
8213
 
8214
2005-04-28  Nathan Sidwell  
8215
 
8216
        * tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
8217
        assert.
8218
 
8219
2005-04-28  Kazu Hirata  
8220
 
8221
        * modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
8222
        (*targetm.foo).
8223
 
8224
        * config.gcc: Obsolete c4x-* and tic4x-*.
8225
 
8226
        * tree.h (edge_def): Remove.
8227
 
8228
        * bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
8229
        function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
8230
        reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
8231
        JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
8232
        where appropriate.
8233
 
8234
        * attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
8235
        coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
8236
        errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
8237
        genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
8238
        integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
8239
        machmode.def, mips-tfile.c, params.c, pretty-print.c,
8240
        print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
8241
        tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
8242
        config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
8243
        config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
8244
        config/i386/cygming.h, config/i386/djgpp.h,
8245
        config/i386/lynx.h, config/i386/netware.c,
8246
        config/i386/winnt.c, config/ia64/ia64-c.c,
8247
        config/iq2000/iq2000.c, config/m32r/little.h,
8248
        config/m68k/m68k-protos.h, config/m68k/m68k.h,
8249
        config/m68k/m68k.md, config/mcore/mcore.c,
8250
        config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
8251
        config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
8252
        config/mn10300/mn10300.h, config/ns32k/netbsd.h,
8253
        config/ns32k/ns32k.c, config/ns32k/ns32k.h,
8254
        config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
8255
        config/pdp11/pdp11.h, config/rs6000/darwin.h,
8256
        config/rs6000/default64.h, config/rs6000/rs6000-c.c,
8257
        config/s390/2064.md, config/s390/2084.md,
8258
        config/s390/s390-modes.def, config/s390/s390-protos.h,
8259
        config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
8260
        config/stormy16/stormy16.c, config/vax/vax-protos.h,
8261
        config/vax/vax.c, config/vax/vax.h,
8262
        config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
8263
        copyright.
8264
 
8265
2005-04-28  Joseph S. Myers  
8266
 
8267
        * c-typeck.c (build_compound_expr): Correct logic in last change.
8268
 
8269
2005-04-27  James E. Wilson  
8270
 
8271
        * config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
8272
        parameters.  Replace conditional move code with assert checking for
8273
        ar.lc.  Delete obsolete comments.
8274
        (set_src_needs_barrier): Delete cond parameter, and code using it.
8275
        (rtx_needs_barrier): Delete initialization of cond.  Fix typo in
8276
        assert checking for PR_REGS.  Fix calls to update_set_flags and
8277
        set_src_needs_barrier.
8278
        (group_barrier_needed): Renamed from group_barrier_needed_p.  Fix all
8279
        callers.  Rewrite explanatory comment before the function.
8280
        (safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
8281
        Fix all callers.
8282
 
8283
2005-04-27  Mike Stump  
8284
 
8285
        * doc/cpp.texi: gcc now implements universal character names.
8286
 
8287
2005-04-27  Joseph S. Myers  
8288
 
8289
        PR c/21159
8290
        * c-typeck.c (build_compound_expr): Don't warn for left-hand side
8291
        being a compound expression whose right-hand side is cast to void.
8292
 
8293
2005-04-27  Caroline Tice  
8294
 
8295
        * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
8296
        Remove targetm.have_named_sections test.
8297
        (fix_edges_for_rarely_executed_code): Likewise.
8298
        (insert_section_boundary_note): Likewise.
8299
        (reorder_basic_blocks): Check partitioning flag before calling
8300
        verify_hot_cold_block_grouping.
8301
        * dbxout.c (dbxout_function_end): Get hot/cold section labels from
8302
        the function struct rather than global variables.
8303
        * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
8304
        (COLD_END_LABEL): Likewise
8305
        (cold_text_section_label): New static global variable.
8306
        (cold_end_label): Likewise.
8307
        (dwarf2out_switch_text_section): Get hot/cold section labels from
8308
        the function struct rather than global variables; test to make sure
8309
        cfun is defined.
8310
        (output_aranges): Use cold_text_section_label and cold_end_label;
8311
        check partitioning flag before putting out delta.
8312
        (output_ranges): Remove incorrect code attempting to use
8313
        hot/cold labels.
8314
        (output_line_info): Get cold section label from function struct; test
8315
        to make sure cfun is defined.
8316
        (add_location_or_const_value_attribute): Likewise.
8317
        (dwarf2out_var_location): Likewise.
8318
        (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
8319
        write out cold_text_section_label if partition flag is set.
8320
        (dwarf2out_finish): Write out cold_end_label if partition flag is set;
8321
        * function.h (struct function): Add new fields to point to hot/cold
8322
        section labels: hot_section_label, cold_section_label,
8323
        hot_section_end_label and cold_section_end_label; also add new field
8324
        for cold text section name, unlikely_text_section_name.
8325
        * opts.c (decode_options): Turn off partitioning flag if
8326
        !targetm.have_named_sections.
8327
        * output.h (hot_section_label): Remove.
8328
        (hot_section_end_label): Remove.
8329
        (cold_section_end_label): Remove.
8330
        (unlikely_section_label): Remove.
8331
        (unlikely_text_section_name): Remove.
8332
        * passes.c (rest_of_handle_final):  Remove extra blank line.
8333
        * varasm.c (unlikely_section_label): Remove.
8334
        (hot_section_label): Remove.
8335
        (hot_section_end_label): Remove.
8336
        (cold_section_end_label): Remove.
8337
        (unlikely_text_section_name):  Remove.
8338
        (initialize_cold_section_name): Modify to call
8339
        targetm.strip_name_encoding; to store cold section name in current
8340
        function struct, if it exists; and to only use the decl_section_name
8341
        if flag_named_sections is true.
8342
        (unlikely_text_section): Modify to get section name out of current
8343
        function struct, if there is one; otherwise build it from
8344
        UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
8345
        (in_unlikely_text_section): Likewise.
8346
        (named_section): Modify to get/put cold section name in current function
8347
        struct, if there is one.
8348
        (function_section):  Change 'bool unlikely' to 'int reloc'; check
8349
        targetm.have_named_sections before calling named_section.
8350
        (current_function_section): Likewise.
8351
        (assemble_start_function): Modify to get/put unlikely_text_section_name
8352
        in current function struct; modify to get hot/cold section labels
8353
        from function struct; initialize labels using
8354
        ASM_GENERATE_INTERNAL_LABEL;
8355
        test partitioning flag before writing out hot section label.
8356
        (assemble_end_function): Test partitioning flag before writing out
8357
        hot/cold section labels.
8358
        (default_section_type_flags_1):  Get cold text section name from
8359
        function struct if there is one; Set flags correctly for
8360
        cold text section if there is not a current function struct.
8361
 
8362
2005-04-27  Richard Guenther  
8363
 
8364
        * tree-ssa-propagate.c (set_rhs): Revert last change.
8365
 
8366
2005-04-27  Steve Ellcey  
8367
 
8368
        * explow.c (convert_memory_address): Add gcc_assert.
8369
 
8370
2005-04-27  Mark Mitchell  
8371
 
8372
        * configure.ac: Check for ld --sysroot support.
8373
        * gcc.c: Document %R specifier for specs.
8374
        (SYSROOT_SPEC): New macro.
8375
        (sysroot_spec): New variable.
8376
        (static_specs): Add sysroot_spec.
8377
        (main): Pass the sysroot spec to the linker if appropriate.
8378
        * configure: Regenerated.
8379
        * config.in: Likewise.
8380
 
8381
2005-04-27  Richard Guenther  
8382
 
8383
        * fold-const.c (fold_binary): Use build_fold_addr_expr
8384
        for address calculation and INDIRECT_REF handling.
8385
 
8386
2005-04-27  Andrew Haley  
8387
 
8388
        * postreload-gcse.c (hash_scan_set): Remove bogus assertion.
8389
 
8390
2005-04-27  Nathan Sidwell  
8391
 
8392
        * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
8393
        pointer when thumb backtracing is on.
8394
 
8395
        * config/fp-bit.c (abort): Revert change.
8396
 
8397
2005-04-27  Ian Lance Taylor  
8398
 
8399
        * c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
8400
 
8401
2005-04-27  Kazu Hirata  
8402
 
8403
        * tree-ssa-dce.c: Fix a comment typo.
8404
 
8405
2005-04-27  David S. Miller  
8406
 
8407
        * explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
8408
        Kill setjmpless_size.  current_function_calls_setjmp is completely
8409
        computed when we are called, so just use the optimized size value
8410
        instead of using REG_SAVE_AREA notes.
8411
        (optimize_save_area_alloca): Delete....
8412
        * rtl.h (optimize_save_area_alloca): Likewise...
8413
        * passes.c (rest_of_compilation): and don't call it any more.
8414
        * reg-notes.def (SAVE_AREA): Delete.
8415
 
8416
2005-04-27  Nathan Sidwell  
8417
 
8418
        * config/fp-bit.c (abort): Add noreturn attribute.
8419
 
8420
        * config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
8421
        gcc_unreachable as appropriate.
8422
        (ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
8423
        * config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
8424
        ASM_OUTPUT_REG_POP): Likewise.
8425
 
8426
2005-04-27  Paolo Bonzini  
8427
 
8428
        * tree-complex.c (expand_vector_operations_1): Do not build
8429
        VIEW_CONVERT_EXPR's for the lhs.
8430
 
8431
2005-04-27  Nathan Sidwell  
8432
 
8433
        * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
8434
        unnecessary noncanonical RTL handling.
8435
        * config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
8436
        gcc_assert and gcc_unreachable.
8437
 
8438
        * config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
8439
        gcc_unreachable as appropriate.
8440
        (THUMB_PRINT_OPERAND_ADDRESS): Likewise.
8441
        * config/arm/arm.c (arm_override_options, arm_compute_func_type,
8442
        use_return_insn, const_ok_for_op, arm_gen_constant,
8443
        arm_canonicalize_comparison, legitimize_pic_address,
8444
        thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
8445
        arm_cirrus_insn_p, cirrus_reorg, minmax_code,
8446
        load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
8447
        emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
8448
        arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
8449
        move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
8450
        dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
8451
        fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
8452
        output_call, output_mov_long_double_fpa_from_arm,
8453
        output_mov_long_double_arm_from_fpa,
8454
        output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
8455
        output_move_double, arithmetic_instr, shift_op, int_log2,
8456
        output_return_instruction, arm_output_function_prologue,
8457
        arm_output_epilogue, arm_output_function_epilogue,
8458
        emit_multi_reg_push, arm_get_frame_offsets,
8459
        arm_compute_initial_elimination_offset, arm_expand_prologue,
8460
        arm_print_operand, arm_assemble_integer, get_arm_condition_code,
8461
        arm_final_prescan_insn, arm_init_iwmmxt_builtins,
8462
        arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
8463
        thumb_compute_initial_elimination_offset,
8464
        thumb_output_function_prologue, thumb_load_double_from_address,
8465
        thumb_output_move_mem_multiple, thumb_reload_out_hi,
8466
        arm_emit_vector_const, arm_dbx_register_number): Likewise.
8467
        * config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
8468
        * config/arm/arm.md (thumb_extendhisi2,
8469
        *thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
8470
        *thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
8471
        thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
8472
        *arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
8473
        * config/arm/cirrus.md (*cirrus_arm_movdi,
8474
        *cirrus_movdf_hard_insn): Likewise.
8475
        * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
8476
 
8477
2005-04-27  Kazu Hirata  
8478
 
8479
        * tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
8480
        (num_ssa_names): Use VEC_length.
8481
        (ssa_names): Use VEC_index.
8482
        * tree-ssanames.c (ssa_names): Change the type to
8483
        VEC(tree,gc).
8484
        (init_ssanames, fini_ssa_names, make_ssanames,
8485
        release_ssa_name): Update uses of ssa_names.
8486
 
8487
        * dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
8488
        Use fold_buildN instead of fold (buildN (...)).
8489
 
8490
2005-04-27  Devang Patel 
8491
 
8492
        * dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
8493
 
8494
2005-04-27  Matt Thomas 
8495
            Jan-Benedict Glaw 
8496
 
8497
        * config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
8498
        (vax_output_mi_thunk): Ditto.
8499
        (vax_notice_cc_update): Ditto.
8500
        (INDEX_REGISTER_P): Add trailing \.
8501
        (BASE_REGISTER_P): Add trailing \.
8502
        (legitimate_address_p): Whitespace cleanup.  Remove trailing \.
8503
 
8504
2005-04-27  Richard Guenther  
8505
 
8506
        * tree-ssa-propagate.c (set_rhs): Check operand of
8507
        ADDR_EXPR for gimpliness, too.
8508
 
8509
2005-04-27  Kazu Hirata  
8510
 
8511
        * tree-ssa-pre.c: Fix a comment typo.
8512
 
8513
2005-04-27  Zdenek Dvorak  
8514
 
8515
        PR tree-optimization/21171
8516
        * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
8517
        record address uses if the reference is volatile.
8518
 
8519
2004-04-27  Paolo Bonzini  
8520
 
8521
        * tree-complex.c (expand_vector_operation): New, extracted from
8522
        expand_vector_operations_1.
8523
        (tree_vec_extract): Build a NOP_EXPR.
8524
        (expand_vec_parallel): Do not care about returning the correct type.
8525
        (expand_vector_operations_1): Call expand_vector_operation.
8526
        Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.
8527
 
8528
        * tree-complex.c (gate_expand_vector_operations): New.
8529
        (pass_lower_vector_ssa): Use it.
8530
        * tree-optimize.c (init_tree_optimization_passes): Include
8531
        pass_lower_vector_ssa.
8532
        * tree-vect-transform.c (vect_min_worthwhile_factor): New.
8533
        (vectorizable_operation): Use it.
8534
        * tree-vectorizer.c (get_vectype_for_scalar_type): Accept
8535
        integer modes for the vector type.
8536
 
8537
        * defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
8538
        * tree-vect-analyze.c (vect_enhance_data_refs_alignment):
8539
        Do not cope with UNITS_PER_SIMD_WORD == 0.
8540
        * tree-vectorizer.c (get_vectype_for_scalar_type): Check
8541
        if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
8542
        (vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
8543
        * config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
8544
        * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
8545
        * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
8546
        * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
8547
 
8548
        * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
8549
        * config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
8550
        * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.
8551
 
8552
        * doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
8553
        (UNITS_PER_SIMD_WORD): New.
8554
 
8555
2005-04-27  Nathan Sidwell  
8556
 
8557
        * config/ia64/ia64.c (ia64_encode_addr_area): Use gcc_assert and
8558
        gcc_unreachable as appropriate.
8559
        (ia64_expand_load_address, ia64_expand_tls_address,
8560
        ia64_split_tmode, ia64_split_tmode_move, ia64_expand_compare,
8561
        ia64_expand_vecint_compare, ia64_expand_vecint_minmax,
8562
        next_scratch_gr_reg, ia64_initial_elimination_offset,
8563
        ia64_expand_prologue, ia64_expand_epilogue,
8564
        ia64_output_dwarf_dtprel, ia64_print_operand,
8565
        ia64_register_move_cost, first_instruction, rws_access_regno,
8566
        update_set_flags, rtx_needs_barrier, group_barrier_needed_p,
8567
        ia64_sched_init, ia64_variable_issue,
8568
        ia64_first_cycle_multipass_dfs_lookahead_guard,
8569
        ia64_dfa_new_cycle, issue_nops_and_insn, get_template, bundling,
8570
        ia64_st_address_bypass_p, ia64_ld_address_bypass_p, process_set,
8571
        process_for_unwind_directive, ia64_hpux_file_end): Likewise.
8572
        * config/ia64/ia64.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
8573
        * config/ia64/ia64.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
8574
        * config/ia64/predicates.md (got_symbolic_operand,
8575
        sdata_symbolic_operand): Likewise.
8576
        * config/ia64/vect.md (vcondv2sf): Likewise.
8577
 
8578
2005-04-27  Matt Thomas 
8579
 
8580
        * config/vax/vax.c (legitimate_constant_address_p): New.  Formerly
8581
        CONSTANT_ADDRESS_P in config/vax/vax.h
8582
        (legitimate_constant_p): Added.  Formerly CONSTANT_P in vax.h.
8583
        (INDEX_REGISTER_P): New.
8584
        (BASE_REGISTER_P): New.
8585
        (indirectable_constant_address_p): New.  Adapted from
8586
        INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h. Use SYMBOL_REF_LOCAL_P.
8587
        (indirectable_address_p): New.  Adapted from
8588
        INDIRECTABLE_ADDRESS_P in vax.h.
8589
        (nonindexed_address_p): New.  Adapted from
8590
        GO_IF_NONINDEXED_ADDRESS in vax.h.
8591
        (index_temp_p): New.  Adapted from INDEX_TERM_P in vax.h.
8592
        (reg_plus_index_p): New.  Adapted from GO_IF_REG_PLUS_INDEX in vax.h.
8593
        (legitimate_address_p): New.  Adapted from
8594
        GO_IF_LEGITIMATE_ADDRESS in vax.h.
8595
        (vax_mode_dependent_address_p): New.  Adapted from
8596
        GO_IF_MODE_DEPENDENT_ADDRESS in vax.h.
8597
        * config/vax/vax.h (CONSTANT_ADDRESS_P): Use
8598
        legitimate_constant_address_p.
8599
        (CONSTANT_P): Use legitimate_constant_p.
8600
        (INDIRECTABLE_CONSTANT_ADDRESS_P): Removed.
8601
        (INDIRECTABLE_ADDRESS_P): Removed.
8602
        (GO_IF_NONINDEXED_ADDRESS): Removed.
8603
        (INDEX_TEMP_P): Removed.
8604
        (GO_IF_REG_PLUS_INDEX): Removed.
8605
        (GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p. Two
8606
        definitions, depending on whether REG_OK_STRICT is defined.
8607
        (GO_IF_MODE_DEPENDENT_ADDRESS): Use vax_mode_dependent_address_p.
8608
        Two definitions, depending on whether REG_OK_STRICT is defined.
8609
        * config/vax/vax-protos.h (legitimate_constant_address_p): Prototype
8610
        added.
8611
        (legitimate_constant_p): Prototype added.
8612
        (legitimate_address_p): Prototype added.
8613
        (vax_mode_dependent_address_p): Prototype added.
8614
 
8615
2005-04-27  Kazu Hirata  
8616
 
8617
        * tree.h (phi_arg_d): Expand a comment in phi_arg_d.
8618
 
8619
2005-04-27  Joseph S. Myers  
8620
 
8621
        PR c/21213
8622
        * c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
8623
        transparent union.
8624
 
8625
2005-04-27  Joseph S. Myers  
8626
 
8627
        PR c/20740
8628
        * c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
8629
        assertion failures, if __gcc_host_wide_int__ is not properly
8630
        defined.
8631
        (init_dynamic_diag_info): Give errors, not assertion failures, if
8632
        location_t, tree or __gcc_host_wide_int__ are not properly
8633
        defined.
8634
 
8635
2005-04-26  Kazu Hirata  
8636
 
8637
        * tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
8638
        n_iv_uses, iv_use, n_iv_cands, iv_cand,
8639
        tree_ssa_iv_optimize_init, record_use, add_candidate_1,
8640
        prepare_decl_rtl, free_loop_data,
8641
        tree_ssa_iv_optimize_finalize): Use the VEC API instead of
8642
        VARRAY.
8643
 
8644
        * tree.h (tree_phi_node): Add a comment about the order of PHI
8645
        arguments.
8646
 
8647
2005-04-26  Paul Brook  
8648
 
8649
        * config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.
8650
 
8651
2005-04-26  Nathan Sidwell  
8652
 
8653
        * config/mips.mips.c (mips_legitimize_tls_address): Use
8654
        gcc_unreachable.
8655
 
8656
        * config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
8657
        * config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
8658
        * config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.
8659
 
8660
        * config/sparc/sparc.h (enum reg_class): Reword comment to avoid
8661
        'abort'.
8662
 
8663
2005-04-26  Jeff Law  
8664
 
8665
        * tree-flow-inline.h (op_iter_next_must_and_may_def): New.
8666
        (op_iter_init_must_and_may_def): Likewise.
8667
        (unmodifiable_var_p): Move to a later point in the file.
8668
        * tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
8669
        * tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
8670
        (dse_record_phis): Directly check for virtual operands rather than
8671
        using need_imm_uses_for.
8672
        (dse_optimize_stmt): Handle V_MUST_DEF operands.  Handle case where
8673
        store has multiple V_{MAY,MUST}_DEF operands.
8674
 
8675
2005-04-26  Andrew MacLeod  
8676
 
8677
        * tree-cfg.c (bsi_replace): Delink immediate uses for the original
8678
        stmt.
8679
 
8680
2005-04-26  Kazu Hirata  
8681
 
8682
        * tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
8683
        call to find_edge outside a loop to go through a PHI chain.
8684
 
8685
2004-04-26  Richard Guenther  
8686
 
8687
        PR tree-optimization/17598
8688
        * fold-const.c (fold_binary): Fold comparisons of addresses
8689
        of COMPONENT_REFs which reference the same field to
8690
        comparisons of the addresses of the base objects.
8691
 
8692
2005-04-26  Julian Brown  
8693
 
8694
        * config/arm/arm.c (arm_return_in_msb): New function.
8695
        (arm_must_pass_in_stack): New function.
8696
        (TARGET_RETURN_IN_MSB): Define target hook.
8697
        (TARGET_MUST_PASS_IN_STACK): Define target hook.
8698
        (arm_function_value): Pad small aggregate return.
8699
        (arm_pad_arg_upward): New function.
8700
        (arm_pad_reg_upward): New function.
8701
        * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
8702
        (FUNCTION_ARG_PADDING): Define macro.
8703
        (BLOCK_REG_PADDING): Define macro.
8704
        (PAD_VARARGS_DOWN): Correct padding for AAPCS.
8705
        * config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
8706
        (arm_pad_reg_upward): Declare function.
8707
 
8708
2005-04-26  Kazu Hirata  
8709
 
8710
        * basic-block.h (ei_cond): New.
8711
        (FOR_EACH_EDGE): Call ei_cond.
8712
 
8713
        PR tree-optimization/21047
8714
        * fold-const.c (fold_binary): Abort on ASSERT_EXPR.
8715
        (fold): Don't handle ASSERT_EXPR.
8716
 
8717
2005-04-25  Roger Sayle  
8718
 
8719
        * sched-deps.c (sched_analyze_1): On STACK_REGS targets, x87, treat
8720
        all writes to any stack register as a read/write dependency on
8721
        FIRST_STACK_REG.
8722
        (sched_analyze_2): Likewise, for reads from any stack register.
8723
 
8724
2005-04-25  Richard Henderson  
8725
 
8726
        * final.c (output_addr_const): Revert 2005-04-09 change.
8727
 
8728
2005-04-25  Mike Stump  
8729
 
8730
        * config/darwin.c (darwin_encode_section_info): Always set
8731
        MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
8732
 
8733
2005-04-25  Kaveh R. Ghazi  
8734
 
8735
        * collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
8736
        gensupport.c, protoize.c, toplev.c: Replace calls to
8737
        `unlock_stream' with `unlock_std_streams'.
8738
 
8739
2005-04-25  Devang Patel 
8740
 
8741
        * dbxout.c (dbxout_type): Emit attribute vector.
8742
 
8743
2005-04-05  Paul Brook  
8744
 
8745
        * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
8746
        * target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
8747
        * config/arm/arm.c (arm_cxx_atexit_name): New function.
8748
        (TARGET_CXX_USE_AEABI_ATEXIT): New macro.
8749
        * cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
8750
        (register_dtor_fn): Likewise.
8751
        * doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
8752
 
8753
2005-04-25  Ian Lance Taylor  
8754
 
8755
        * c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
8756
        * c-common.h (EXPR_STMT_EXPR): Don't define.
8757
        (c_common_stmt_codes): Don't define.
8758
        * c-dump.c (c_dump_tree): Remove EXPR_STMT case.
8759
        * c-gimplify.c (gimplify_expr_stmt): Remove.
8760
        (c_gimplify_expr): Remove EXPR_STMT case.
8761
        * c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
8762
        to INIT_STATEMENT_CODES.
8763
        * c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
8764
 
8765
2005-04-25  Jan Hubicka  
8766
 
8767
        * tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
8768
 
8769
        * except.c: Include diagnostic.h
8770
        (dump_eh_tree, verify_eh_tree): New functions.
8771
        * except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
8772
        * tree-cfg.c (tree_verify_flow_info): verify eh edges.
8773
        (dump_function_to_file): dump eh tree.
8774
        * tree-eh.c (mark_eh_edge): New function.
8775
        (mark_eh_edge_found_error): New static variable.
8776
        (verify_eh_edges): New function.
8777
 
8778
2005-04-25  Nathan Sidwell  
8779
 
8780
        * tree-ssa-alias.c (fieldoff_t): Remove.
8781
        (fieldoff_s): typedef the structure itself.  Create a vector of
8782
        objects.
8783
        (push_fields_onto_fieldstack): Return count of fields pushed.
8784
        Remove peeling of first field.  Adjust.
8785
        (fieldoff_compare): Adjust.
8786
        (create_overlap_variables_for): Adjust.
8787
 
8788
2005-04-25  Joseph S. Myers  
8789
 
8790
        * doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
8791
 
8792
2005-04-25  Joseph S. Myers  
8793
 
8794
        PR bootstrap/21215
8795
        * doc/install.texi: Document correct assembler and linker to use
8796
        on i?86-*-solaris2.10.
8797
 
8798
2005-04-25  Steven Bosscher  
8799
 
8800
        Fix PR tree-optimization/21173
8801
 
8802
        * tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
8803
        Unshare expression we pass to force_gimple_operand.
8804
 
8805
2005-04-25  J"orn Rennecke 
8806
            Stephen Clarke 
8807
            Roger Sayle 
8808
 
8809
        PR rtl-optimization/20413
8810
        * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
8811
        VOIDmode for LABEL_REF.
8812
        * final.c (shorten_branches): Likewise.
8813
        * jump.c (mark_all_labels, redirect_exp_1): Likewise.
8814
        * loop.c (reg_dead_after_loop): Likewise.
8815
        * varasm.c (decode_addr_const): Likewise.
8816
        * doc/rtl.texi: Document mode requirement for LABEL_REF.
8817
 
8818
2005-04-25  Ralf Corsepius  
8819
 
8820
        * config.gcc (avr-*-*): Remove redundant "case".
8821
 
8822
2005-04-25  Kazu Hirata  
8823
 
8824
        * tree-vect-analyze.c (vect_mark_relevant): Take
8825
        VEC(tree,heap) instead of varray_type as an argument.
8826
        (vect_mark_stmts_to_be_vectorized): Change the type of
8827
        worklist to VEC(tree,heap).  Adjust uses of worklist.
8828
 
8829
2005-04-24  Devang Patel  
8830
 
8831
        *  config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
8832
 
8833
2005-04-24  Ian Lance Taylor  
8834
 
8835
        * c-semantics.c (build_stmt): Remove test of specific tree codes
8836
        for TREE_SIDE_EFFECTS handling.
8837
 
8838
2005-04-24  Per Bothner  
8839
 
8840
        * c-opts.c (finish_options):  Make the line-number of the 
8841
        location 0, as assumed elsewhere, rather than 1.
8842
 
8843
2005-04-24  Kazu Hirata  
8844
 
8845
        * tree-ssa-uncprop.c (equiv_stack): Change the type o
8846
        VEC(tree,heap).
8847
        (tree_ssa_uncprop, uncprop_finalize_block,
8848
        uncprop_initialize_block): Update uses of equiv_stack.
8849
 
8850
2005-04-24  Richard Henderson  
8851
 
8852
        PR rtl-opt/21163
8853
        * simplify-rtx.c (simplify_binary_operation) : Check
8854
        for SCALAR_INT_MODE_P instead of not MODE_CC before returning
8855
        constm1_rtx.
8856
        : Use CONST0_RTX.
8857
        : Use CONST0_RTX and CONST1_RTX.
8858
        : Likewise.
8859
 
8860
2005-04-24  Kaveh R. Ghazi  
8861
 
8862
        * collect2.c (main): Unlock the stdio streams.
8863
        * gcc.c (main): Likewise.
8864
        * gcov-dump.c (main): Likewise.
8865
        * gcov.c (main): Likewise.
8866
        * gen-protos.c (main): Likewise.
8867
        * gensupport.c (init_md_reader_args_cb): Likewise.
8868
        * protoize.c (main): Likewise.
8869
        * toplev.c (general_init): Likewise.
8870
 
8871
2005-04-24  Jakub Jelinek  
8872
 
8873
        PR middle-end/20991
8874
        * cgraph.h (cgraph_local_info): Add vtable_method field.
8875
        * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
8876
        and node is vtable_method, finalized and not reachable, don't do
8877
        anything.
8878
 
8879
2005-04-24  Kazu Hirata  
8880
 
8881
        * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
8882
        COMPARISON_CLASS_P.
8883
        * tree-ssa-pre.c (create_value_expr_from): Use
8884
        CONSTANT_CLASS_P and REFERENCE_CLASS_P.
8885
        * tree-ssa-propagate.c (stmt_makes_single_load,
8886
        stmt_makes_single_store): Use REFERENCE_CLASS_P.
8887
        * tree-vect-transform.c (vect_is_simple_cond): Use
8888
        COMPARISON_CLASS_P.
8889
        * tree-vrp.c (extract_range_from_assert,
8890
        build_assert_expr_for, fp_predicate, has_assert_expr): Use
8891
        COMPARISON_CLASS_P.
8892
 
8893
        * tree-ssa-live.c (build_tree_conflict_graph): Change the type
8894
        of tpa_to_clear to VEC(int,heap).  Update uses of
8895
        tpa_to_clear.  Free tpa_to_clear at the end.
8896
 
8897
2005-04-24  Andrew Pinski  
8898
 
8899
        * tree.h (TREE_THIS_VOLATILE): Document the effect on a
8900
        function decl.
8901
 
8902
2005-04-24  Nathan Sidwell  
8903
 
8904
        * config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
8905
        and gcc_unreachable as appropriate.
8906
        (num_insns_constant, output_vec_const_move,
8907
        build_mask64_2_operands, rs6000_output_dwarf_dtprel,
8908
        rs6000_emit_set_const, rs6000_emit_move,
8909
        spe_build_register_parallel, function_arg,
8910
        rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
8911
        spe_expand_predicate_builtin, spe_expand_evsel_builtin,
8912
        rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
8913
        rs6000_common_init_builtins, expand_block_clear,
8914
        expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
8915
        extract_ME, rs6000_get_some_local_dynamic_name,
8916
        rs6000_output_function_entry, print_operand,
8917
        print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
8918
        output_cbranch, output_e500_flip_gt_bit,
8919
        rs6000_emit_vector_compare, rs6000_emit_vector_compare,
8920
        rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
8921
        compute_save_world_info, rs6000_stack_info,
8922
        rs6000_emit_load_toc_table, rs6000_frame_related,
8923
        spe_synthesize_frame_save, rs6000_emit_epilogue,
8924
        rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
8925
        output_function_profiler, rs6000_trampoline_size,
8926
        rs6000_initialize_trampoline, find_addr_reg,
8927
        rs6000_machopic_legitimize_pic_address,
8928
        rs6000_initial_elimination_offset,
8929
        rs6000_dbx_register_number): Likewise.
8930
        * config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
8931
        *movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
8932
        *movti_power, *movti_string, call, call_value, sibcall,
8933
        sibcall_value): Likewise.
8934
        * config/rs6000/spe.md (*movdf_e500_double,
8935
        *movv2si_internal): Likewise.
8936
        * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
8937
        from comment.
8938
 
8939
2005-04-24  Richard Henderson  
8940
 
8941
        PR target/21101
8942
        * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
8943
        * config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
8944
        Deny modes smaller than 4 bytes.
8945
        * config/i386/i386-protos.h: Update.
8946
 
8947
2005-04-24  Ralf Corsepius  
8948
 
8949
        * config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
8950
        Switch h8300-*-rtems* to ELF.
8951
 
8952
2005-04-24  Kazu Hirata  
8953
 
8954
        * vec.h (VEC_safe_grow): Replace grow with safe_grow.
8955
 
8956
2005-04-23  Kazu Hirata  
8957
 
8958
        * ipa-inline.c, tree-ssa-operands.h: Fix comment typos.
8959
 
8960
2005-04-23  Richard Guenther  
8961
 
8962
        PR middle-end/21082
8963
        * fold-const.c: Fold &a[i]-&a[j] to i-j.
8964
 
8965
2005-04-23  Zdenek Dvorak  
8966
 
8967
        * tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
8968
        definitions of ssa names in condition.  Split recusive part to ...
8969
        (tree_simplify_using_condition_1): New function.
8970
        (expand_simple_operations): New function.
8971
 
8972
2005-04-23  Zdenek Dvorak  
8973
 
8974
        * tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
8975
        (find_interesting_uses_cond): Do not use integer_zerop and
8976
        integer_nonzerop to check for integer constants.
8977
        (set_use_iv_cost): Record the value field.
8978
        (determine_use_iv_cost_generic, determine_use_iv_cost_address,
8979
        determine_use_iv_cost_outer): Set the value field of the cost pair.
8980
        (may_eliminate_iv): Do not return the comparison code.
8981
        (iv_elimination_compare): New function.
8982
        (determine_use_iv_cost_condition): Set the value field.  Record
8983
        noneliminable invariants correctly.
8984
        (rewrite_use_compare, rewrite_use_outer): Use the value field.
8985
 
8986
2005-04-23  DJ Delorie  
8987
 
8988
        * diagnostic.c (warning): Accept parameter to classify warning option.
8989
        (warning0): New, for when a pointer to an error() like function is needed.
8990
        * errors.c (warning): Likewise.
8991
        * errors.h (warning, warning0): Adjust prototypes.
8992
        * toplev.h (warning, warning0): Likewise.
8993
 
8994
        * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
8995
        c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
8996
        c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
8997
        fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
8998
        genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
8999
        reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
9000
        tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
9001
        tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
9002
 
9003
        * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
9004
        config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
9005
        config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
9006
        config/darwin.c, config/darwin.h, config/h8300/h8300.c,
9007
        config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
9008
        config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
9009
        config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
9010
        config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
9011
        config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
9012
        config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
9013
        config/rs6000/aix52.h, config/rs6000/darwin.h,
9014
        config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
9015
        config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
9016
        config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
9017
        config/stormy16/stormy16.c, config/v850/v850-c.c,
9018
        config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
9019
        callers.
9020
 
9021
2005-04-23  Richard Henderson  
9022
 
9023
        PR rtl-opt/21102
9024
        * simplify-rtx.c (simplify_binary_operation): Fix mode check before
9025
        performing some integral scalar simplifications.
9026
 
9027
2005-04-23  Richard Henderson  
9028
 
9029
        PR target/21099
9030
        * config/i386/i386.c (ix86_split_to_parts): Use proper mode when
9031
        simplifying CONST_VECTOR.
9032
 
9033
2005-04-23  Kazu Hirata  
9034
 
9035
        * tree-ssa-live.c (live_worklist): Take a stack allocated on
9036
        heap as an argument.  Update uses of stack.
9037
        (calculate_live_on_entry): Allocate stack on heap.
9038
 
9039
        * tree-ssa-live.c (build_tree_conflict_graph): Allocate
9040
        partition_link and tpa_nodes on heap.
9041
 
9042
        * tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
9043
        (mark_stmt_necessary, propagate_necessity,
9044
        mark_really_necessary_kill_operand_phis): Update uses of
9045
        worklist.
9046
        (tree_dce_init): Allocate worklist using VEC_alloc.
9047
        (tree_dce_done): Free worklist using VEC_free.
9048
 
9049
2005-04-23  Mike Stump  
9050
 
9051
        * config/darwin.c (machopic_indirection_name): Don't use
9052
        quotes needlessly.
9053
        (darwin_emit_unwind_label): Use user_label_prefix instead of
9054
        "_".
9055
 
9056
2005-04-23  Kazu Hirata  
9057
 
9058
        * final.c, ipa-inline.c, varasm.c: Fix comment typos.
9059
 
9060
2005-04-23  Hans-Peter Nilsson  
9061
 
9062
        * config.gcc : Specify .opt files.
9063
        * config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
9064
        config/cris/linux.opt: New files.
9065
        * config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
9066
        (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
9067
        (TARGET_ELF): Override to 0.
9068
        (CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
9069
        -melinux-stacksize=N.
9070
        * config/cris/cris.c: (cris_handle_option): New function.
9071
        (TARGET_DEFAULT_TARGET_FLAGS): Override.
9072
        (TARGET_HANDLE_OPTION): Override to cris_handle_option.
9073
        (cris_override_options): Use MASK_*, not TARGET_MASK_*.
9074
        * config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
9075
        (TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
9076
        (TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
9077
        (TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
9078
        (TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
9079
        (TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
9080
        (TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
9081
        (TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
9082
        (TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
9083
        (TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
9084
        (TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
9085
        (TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
9086
        (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
9087
        (CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
9088
        (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
9089
        (TARGET_LINUX): Define 0.
9090
        (TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
9091
        (CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
9092
        (CRIS_SUBTARGET_DEFAULT): New empty default macro.
9093
        * config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
9094
        (TARGET_LINUX): Override to 1.
9095
        (CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
9096
 
9097
2005-04-23  Nathan Sidwell  
9098
 
9099
        * haifa-sched.c (schedule_block): Fix thinko in previous
9100
        assertification patch.
9101
 
9102
2005-04-23  Richard Sandiford  
9103
 
9104
        * config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to
9105
        $extra_options.  Also add pa/pa-hpux1010.opt for hpux10.[1-9]*.
9106
        (hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
9107
        pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to
9108
        $extra_options.  Also add pa/pa-hpux1111.opt for hpux11.[1-9]*.
9109
        (hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
9110
        pa/pa-hpux.opt to $extra_options.  Also add pa/pa-hpux1111.opt
9111
        for hpux11.[1-9]*.
9112
        * config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch)
9113
        (pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags)
9114
        (MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS)
9115
        (MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY)
9116
        (TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING)
9117
        (MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS)
9118
        (MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE)
9119
        (TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS)
9120
        (TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH)
9121
        (MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD)
9122
        (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20)
9123
        (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS)
9124
        (SUBTARGET_OPTIONS): Delete.
9125
        (TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20.
9126
        (TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000)
9127
        instead of a string.
9128
        * config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string)
9129
        (pa_cpu_string, pa_unix_string): Delete.
9130
        (pa_cpu): Initialize to TARGET_SCHED_DEFAULT.
9131
        (flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and
9132
        TARGET_HPUX_10_10.
9133
        (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
9134
        (pa_handle_option): New function.
9135
        (override_options): Remove handling of -march=, -mfixed-range=,
9136
        -mschedule= and -munix=.
9137
        * config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete.
9138
        * config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete.
9139
        * config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete.
9140
        * config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete.
9141
        * config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete.
9142
        * config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete.
9143
        * config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before
9144
        redefining.
9145
        * config/pa/pa.opt: New file.
9146
        * config/pa/pa-hpux.opt: New file.
9147
        * config/pa/pa-hpux1010.opt: New file.
9148
        * config/pa/pa-hpux1111.opt: New file.
9149
        * config/pa/pa64-hpux.opt: New file.
9150
 
9151
2005-04-22  David S. Miller  
9152
 
9153
        * rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an
9154
        integer when it's mode is VOIDmode not DImode.
9155
 
9156
2005-04-22  Geoffrey Keating  
9157
 
9158
        * config/rs6000/rs6000.md (sync_add_internal,
9159
        sync_addshort_internal, sync_sub_internal, sync_andsi_internal,
9160
        sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal,
9161
        sync_boolc_internal, sync_boolc_internal2,
9162
        sync_boolcc_internal, sync_lock_test_and_set): Use
9163
        "bne- $-xxx" rather than local labels.
9164
        (sync_lock_release): Add second operand.
9165
        (lwsync): Use .long rather than a more meaningful opcode.
9166
        * doc/md.texi (Standard Names): Add description of second
9167
        parameter to sync_lock_test_and_set.
9168
 
9169
2005-04-23  Kazu Hirata  
9170
 
9171
        PR tree-optimization/21088
9172
        * fold-const.c (fold_unary, fold_binary, fold_ternary):
9173
        Export.
9174
        * tree-vrp.c (compare_values): Use fold_binary to compare
9175
        pointers.  Use boolean_type_node as the type of a comparison
9176
        expression being folded.
9177
        * tree.h: Add prototypes for fold_unary, fold_binary,
9178
        fold_ternary.
9179
 
9180
        * tree-ssa-dom.c: Fix formatting.
9181
 
9182
2005-04-22  Diego Novillo  
9183
 
9184
        * Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H.
9185
        * lambda-code.c (perfect_nestify): Mark virtual operands in
9186
        the moved statement for renaming.
9187
        * params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define.
9188
        (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
9189
        * params.h (MIN_VIRTUAL_MAPPINGS): Define.
9190
        (VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
9191
        * tree-flow.h (struct var_ann_d): Update comments.
9192
        (rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names,
9193
        allocate_ssa_names, find_phi_node_for, dump_tree_ssa,
9194
        debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats,
9195
        debug_tree_ssa_stats, rewrite_ssa_into_ssa,
9196
        dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by,
9197
        debug_names_replaced_by): Remove declarations.
9198
        (delete_update_ssa, get_current_def, set_current_def): Declare.
9199
        (rewrite_into_loop_closed_ssa): Add new argument.  Update
9200
        all callers.
9201
        * tree-into-ssa.c: Include params.h.
9202
        (old_virtual_ssa_names): Remove.  Update all users.
9203
        (need_to_replace_names_p): Remove.  Update all users.
9204
        (struct update_ssa_stats_d): Declare.
9205
        (update_ssa_stats): New local.
9206
        (dump_tree_ssa, debug_tree_ssa, debug_def_blocks,
9207
        dump_tree_ssa_stats, debug_tree_ssa_stats,
9208
        dump_update_ssa, debug_update_ssa,
9209
        dump_names_replaced_by, debug_names_replaced_by): Declare.
9210
        (get_current_def, set current_def): Make extern.
9211
        (is_old_name, is_new_name): Protect against references
9212
        past the end of the sets.
9213
        (add_new_name_mapping): Assert that OLD and NEW are
9214
        different SSA names for the same symbol.
9215
        When adding a virtual mapping, update stats for virtual
9216
        mapping heuristic.
9217
        (insert_phi_nodes_for): If UPDATE_P is true, create the
9218
        LHS of the new PHI by duplicating SSA name VAR.
9219
        (insert_phi_nodes_1): Remove.  Update all users.
9220
        (insert_phi_nodes): Remove second argument.  Update all
9221
        users.
9222
        (maybe_replace_use, maybe_replace_def): New.
9223
        (rewrite_update_stmt): Call them.
9224
        (mark_def_interesting): Remove calls to is_gimple_reg.
9225
        (prepare_phi_args_for_update): Remove.  Update all users.
9226
        (prepare_block_for_update): Only process virtual operands
9227
        and GIMPLE registers in normal form.
9228
        (prepare_use_sites_for): New.
9229
        (prepare_names_to_update): Rename from prepare_def_sites.
9230
        Call prepare_use_sites_for.
9231
        (dump_update_ssa): Rename from dump_repl_tbl.
9232
        Update all users.
9233
        Show statistics for virtual mapping heuristic.
9234
        (debug_update_ssa): Rename from debug_debug_repl_tbl.
9235
        (init_update_ssa): Initialize UPDATE_SSA_STATS.
9236
        (delete_update_ssa): Make extern.
9237
        (mark_set_for_renaming): If the set is empty, do nothing.
9238
        (release_ssa_name_after_update_ssa): Update comment.
9239
        (insert_updated_phi_nodes_for): Do not remove existing
9240
        PHI nodes for symbols.
9241
        (switch_virtuals_to_full_rewrite_p): New.
9242
        (switch_virtuals_to_full_rewrite): New.
9243
        (update_ssa): Call them.
9244
        Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT
9245
        for every statement before updating.
9246
        If all the names in NEW_SSA_NAMES have been marked for
9247
        removal, do nothing.
9248
        Only start at the top of the CFG if there are symbols in
9249
        SYMS_TO_RENAME.
9250
        (ssa_rewrite_finalize_block): Remove.
9251
        (ssa_register_new_def): Remove.
9252
        (ssa_rewrite_stmt): Remove.
9253
        (ssa_rewrite_phi_arguments): Remove.
9254
        (ssa_rewrite_initialize_block): Remove.
9255
        (ssa_mark_def_sites): Remove.
9256
        (ssa_mark_def_sites_initialize_block): Remove.
9257
        (ssa_mark_phi_uses): Remove.
9258
        (rewrite_ssa_into_ssa): Remove.
9259
        * tree-phinodes.c (find_phi_node_for): Remove.
9260
        * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
9261
        Call update_ssa.
9262
        * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops):
9263
        Remove calls to verify_dominators and
9264
        verify_loop_structure.
9265
        (tree_unswitch_single_loop): Call update_ssa.
9266
        * tree-ssa.c (verify_ssa): Assert that need_ssa_update_p
9267
        returns false.
9268
        Call verify_stmts.
9269
        (delete_tree_ssa): Assert that need_ssa_update_p returns
9270
        false.
9271
        * tree-vect-transform.c (vect_transform_loop): Call update_ssa.
9272
        * tree-vectorizer.c (allocate_new_names, rename_def_op,
9273
        free_new_names): Remove.  Update all users.
9274
        (rename_use_op): Call get_current_def.
9275
        (rename_variables_in_bb): Do not handle any real or
9276
        virtual definition.
9277
        (slpeel_update_phis_for_duplicate_loop): Call
9278
        get_current_def and set_current_def instead of using
9279
        SSA_NAME_AUX.
9280
        (slpeel_update_phi_nodes_for_guard2): Reformat comments.
9281
        (slpeel_can_duplicate_loop_p): Call need_ssa_update_p,
9282
        ssa_names_to_replace and delete_update_ssa.
9283
        * doc/invoke.texi: Document --param min-virtual-mappings
9284
        and --param virtual-mappings-ratio.
9285
 
9286
2005-04-22  Diego Novillo  
9287
 
9288
        * tree-cfg.c (tree_duplicate_bb): Call create_new_def_for
9289
        for newly created PHI nodes.
9290
        Call create_new_def_for for every new V_MAY_DEF and
9291
        V_MUST_DEF on the copied statement.
9292
        (struct ssa_name_map_entry): Remove.
9293
        (ssa_name_map_entry_hash): Remove.
9294
        (ssa_name_map_entry_eq): Remove.
9295
        (allocate_ssa_names): Remove.
9296
        (rewrite_to_new_ssa_names_def): Remove.
9297
        (rewrite_to_new_ssa_names_use): Remove.
9298
        (rewrite_to_new_ssa_names_bb): Remove.
9299
        (rewrite_to_new_ssa_names): Remove.
9300
        (tree_duplicate_sese_region): Remove variables ver,
9301
        definitions, phi, ssa_name_map and bi.
9302
        Call need_ssa_update_p instead of any_marked_for_rewrite_p.
9303
        Call update_ssa.
9304
        * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
9305
        update_ssa instead of rewrite_ssa_into_ssa.
9306
        * tree-ssa-loop-manip.c (add_exit_phis_edge): Call
9307
        create_new_def_for.
9308
        (find_uses_to_rename_use): Add argument 'need_phis'.
9309
        (find_uses_to_rename_stmt): Do not scan virtual operands.
9310
        (find_uses_to_rename): Only scan PHI nodes for
9311
        non-virtual names.
9312
        (rewrite_into_loop_closed_ssa): Call update_ssa.
9313
        (check_loop_closed_ssa_use): Ignore virtual operands.
9314
        (check_loop_closed_ssa_stmt): Likewise.
9315
        (verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is
9316
        NULL.
9317
        (rename_variables, set_phi_def_stmts): Remove.
9318
        (tree_duplicate_loop_to_header_edge): Reformat comment.
9319
        Remove variables BB, I and DEFINITIONS.
9320
        Call need_ssa_update_p.
9321
        Call update_ssa.
9322
        (lv_adjust_loop_header_phi): Reformat comment.
9323
        * tree-ssanames.c (ssa_names_to_rewrite): Remove.
9324
        (marked_for_rewrite_p, any_marked_for_rewrite_p,
9325
        mark_for_rewrite, unmark_all_for_rewrite,
9326
        marked_ssa_names): Remove.  Update all users.
9327
        (release_ssa_name): If VAR has been registered for SSA
9328
        updating, do nothing.
9329
        * tree-vrp.c (new_ssa_names, old_ssa_names): Remove.
9330
        (build_assert_expr_for): Call register_new_name_mapping.
9331
        (insert_range_assertions): Update call to update_ssa.
9332
        * tree.h (mark_for_rewrite, unmark_all_for_rewrite,
9333
        marked_for_rewrite_p, any_marked_for_rewrite_p,
9334
        marked_ssa_names): Remove.
9335
 
9336
2005-04-22  Jeff Law  
9337
 
9338
        * tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
9339
        (restore_currdefs_to_original_value): Likewise.
9340
        (register_definitions_for_stmt): Likewise.
9341
        (tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
9342
        for each variable.  Do not allocate/free block_defs_stack either.
9343
        Do not iterate if we just thread jumps.  Only iterate if the
9344
        tree_cleanup_cfg does useful work (temporary).
9345
        (dom_opt_initialize_block): No longer push a marker on
9346
        BLOCK_DEFS_STACK.
9347
        (dom_opt_finalize_block): Removal call to restore currdefs.
9348
        Relax restrictions for recording edge equivalences.
9349
        (record_equivalences_from_phis): No longer need to track
9350
        CURRENT_DEF.
9351
        (optimize_stmt): Similarly.
9352
        (thread_across_edge): Simplify by removing the requirement that
9353
        statements in the block we are threading through must be nops.
9354
        (initialize_hash_element): Handle GOTO_EXPR.
9355
 
9356
2005-04-22  David S. Miller  
9357
 
9358
        * sched-vis.c (print_value): Use CONST_DOUBLE_LOW and
9359
        CONST_DOUBLE_HIGH.
9360
        * config/sparc/sparc.c (sparc_rtx_costs): Likewise, and
9361
        fix check on CONST_DOUBLE mode.  It should be VOIDmode
9362
        when it is representing an integer.
9363
 
9364
2005-04-22  Nathan Sidwell  
9365
 
9366
        * builtins.c (gimplify_va_arg_expr): Reword comments to avoid
9367
        'abort'. Use gcc_assert and gcc_unreachable as appropriate.
9368
        * c-format.c (get_constant, decode_format_attr, get_flag_spec,
9369
        find_char_info_specifier_index,
9370
        find_length_info_modifier_index): Likewise.
9371
        * c-typeck.c (composite_type, pop_init_level): Likewise.
9372
        * combine.c (cant_combine_insn_p, try_combine): Likewise.
9373
        * cse.c (cse_insn): Likewise
9374
        * dominance.c (calc_dfs_tree): Likewise
9375
        dwarf2out.c (loc_descriptor_from_tree_1,
9376
        add_abstract_origin_attribute, force_decl_die,
9377
        force_type_die): Likewise
9378
        emit-rtl.c (operand_subword_force): Likewise
9379
        explow.c (hard_function_value): Likewise
9380
        expmed.c (store_bit_field, expand_divmod,
9381
        emit_store_flag_force): Likewise
9382
        expr.c (emit_move_multi_word, store_expr,
9383
        expand_expr_real_1): Likewise
9384
        final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
9385
        output_operand): Likewise
9386
        flow.c (recompute_reg_usage): Likewise
9387
        * function.c (assign_stack_temp_for_type, assign_temp,
9388
        handle_epilogue_set): Likewise
9389
        * genextract.c (main): Likewise
9390
        * gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
9391
        gimplify_modify_expr_rhs, gimplify_expr): Likewise
9392
        * haifa-sched.c (ready_lastpos, ready_remove_first, ready_element,
9393
        ready_remove, rm_line_notes, rm_other_notes,
9394
        schedule_block): Likewise
9395
        mips-tfile.c (copy_object, out_of_bounds): Likewise
9396
 
9397
2005-04-22 David Edelsohn  
9398
 
9399
        PR target/20813
9400
        * config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT.
9401
        * config/rs6000/rs6000.c (processor_target_table): Rename rs64a to
9402
        rs64.  Add MASK_PPC_GFXOPT to powerpc64 and rs64.
9403
        (rs6000_init_libfuncs): Set TFmode optabs to xlq names if
9404
        TARGET_XL_COMPAT.
9405
        * doc/invoke.texi (PowerPC options): Change rs64a to rs64.
9406
 
9407
2005-04-22  Nathan Sidwell  
9408
 
9409
        * lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap).
9410
        (gcc_tree_to_linear_expression): Convert to heap allocated
9411
        vectors.
9412
        (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
9413
        lbv_to_gcc_expression, lle_to_gcc_expression,
9414
        lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
9415
        perfect_nestify): Likewise.
9416
        lambda.h (gcc_loopnest_to_lambda_loopnest,
9417
        lambda_loopnest_to_gcc_loopnest): Likewise.
9418
        tree-loop-linear.c (linear_transform_loops): Likewise.
9419
 
9420
2005-04-22  Eric Botcazou  
9421
 
9422
        * config/sparc/predicates.md (arith_double_operand): Use
9423
        trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64.
9424
        * config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode.
9425
        (DImode, DFmode constant splitters): Likewise.  Remove code for
9426
        TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64.
9427
        (logical constant splitters): Use const_int_operand predicate.
9428
        (lshrsi3_extend): Remove code for TARGET_ARCH64 &&
9429
        HOST_BITS_PER_WIDE_INT < 64.
9430
 
9431
2005-04-22  Nathan Sidwell  
9432
 
9433
        * config/pa/pa.c (legitimize_pic_address): Use gcc_assert and
9434
        gcc_unreachable as appropriate.
9435
        (force_mode, emit_move_sequence, singlemove_string,
9436
        output_move_double, output_fp_move_double, find_addr_reg,
9437
        output_block_move, output_block_clear, output_and,
9438
        output_64bit_and, output_ior, output_64bit_ior, store_reg_modify,
9439
        pa_adjust_cost, pa_issue_rate, print_operand,
9440
        output_global_address, output_arg_descriptor, output_cbranch,
9441
        output_lbranch, output_bb, output_bvb, output_dbra, output_movb,
9442
        output_call): Likewise.
9443
        * config/pa/pa.md (call, call_value, sibcall, sibcall_value,
9444
        prefetch, prefetch_cc, prefetch_nocc): Likewise.
9445
 
9446
2005-04-22  Zdenek Dvorak  
9447
 
9448
        * Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
9449
        _gcov_pow2_profiler and _gcov_one_value_profiler.
9450
        (tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
9451
        (GTFILES): Add $(srcdir)/tree-profile.c.
9452
        * gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
9453
        __gcov_one_value_profiler): Declare.
9454
        * gimplify.c (force_gimple_operand): Check whether the statements
9455
        should be produced in ssa form.
9456
        (force_gimple_operand_bsi): New function.
9457
        * libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
9458
        __gcov_one_value_profiler): New functions.
9459
        * rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
9460
        the profiled value is a power of two or not.
9461
        * tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
9462
        * tree-flow.h (in_ssa_p): Declare.
9463
        (force_gimple_operand_bsi): Declare.
9464
        * tree-into-ssa.c (in_ssa_p): New variable.
9465
        (rewrite_into_ssa): Set in_ssa_p.
9466
        * tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
9467
        * tree-profile.c: Include ggc.h and gt-tree-profile.h.
9468
        (gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
9469
        tree_one_value_profiler_fn): New variables.
9470
        (tree_init_edge_profiler): Initialize the profiler function decls.
9471
        (tree_gen_edge_profiler): Use global gcov_type_node.
9472
        (prepare_instrumented_value): New function.
9473
        (tree_gen_interval_profiler, tree_gen_interval_profiler,
9474
        tree_gen_one_value_profiler): Call the library functions instead of
9475
        creating instrumentation code.
9476
        * tree.c (build_fn_decl): New function.
9477
        * tree.h (build_fn_decl): Declare.
9478
        * value-prof.c (rtl_divmod_values_to_profile,
9479
        rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
9480
        tree_mod_pow2_value_transform, tree_find_values_to_profile):
9481
        Do not handle may_be_other and precise values of exponents at pow2
9482
        profiler.
9483
        (tree_mod_subtract_transform): Reflect that value field of
9484
        histogram has changed meaning.
9485
        (tree_divmod_values_to_profile): Record the values correctly.
9486
        (tree_values_to_profile): Update comment.
9487
        * value-prof.h (struct histogram_value_t): Remove pow2 data.
9488
 
9489
2005-04-22  Joseph S. Myers  
9490
 
9491
        * varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
9492
        (decl).
9493
 
9494
2005-04-22  Nathan Sidwell  
9495
 
9496
        * config/i386/i386.md (length_immediate): Use gcc_assert or
9497
        gcc_unreachable, as appropriate.
9498
        (*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf,
9499
        *pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387,
9500
        *truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64,
9501
        *adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64,
9502
        *addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
9503
        *addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1,
9504
        *addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1,
9505
        *addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1,
9506
        *addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1,
9507
        *ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext,
9508
        *ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1,
9509
        *ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
9510
        pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64,
9511
        pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse,
9512
        *prefetch_sse_rex): Likewise.
9513
        * config/i386/predicates.md (x86_64_immediate_operand,
9514
        x86_64_zext_immediate_operand, symbolic_operand,
9515
        no_seg_address_operand, aligned_operand,
9516
        memory_displacement_operand): Likewise.
9517
        * config/i386/sse.md (*mov_internal,
9518
        *movv2df_internal): Likewise.
9519
 
9520
2005-04-22  Jan Hubicka  
9521
 
9522
        * Makefile.in (ipa.o, ipa-inline.o): New files.
9523
        * cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder,
9524
        cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes,
9525
        cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
9526
        * cgraphunit.c (cgraph_default_inline_p,
9527
        cgraph_decide_inlining_incrementally,  ncalls_inlined,
9528
        nfunctions_inlined, initial_insns, overall_insns,
9529
        cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
9530
        cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
9531
        cgraph_mark_inline, cgraph_check_inline_limits,
9532
        cgraph_default_inline_p, cgraph_recursive_inlining_p,
9533
        update_callee_keys, lookup_recursive_calls,
9534
        cgraph_decide_recursive_inlining, cgraph_set_inline_failed,
9535
        cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
9536
        cgraph_decide_inlining_incrementally, cgraph_gate_inlining,
9537
        pass_ipa_inline): Move to ipa-inline.c
9538
        (cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c
9539
        * ipa.c: New file.
9540
        * ipa-inline.c: New file.
9541
 
9542
2005-04-22  Eric Botcazou  
9543
 
9544
        * doc/invoke.texi (SPARC options): Document that -mapp-regs
9545
        is turned off by default on Solaris.
9546
 
9547
2005-04-21  Roger Sayle  
9548
 
9549
        * c-common.h (objc_build_method_signature): Update prototype.
9550
        * stub-objc.c (objc_build_method_signature): Update the stub
9551
        implementation to accept and ignore additional parameter.
9552
        * c-parser.c (c_parser_objc_method_decl): Reorgnize to pass
9553
        the value of ellipsis to objc_build_method_signature instead
9554
        of setting TREE_OVERFLOW on the parms TREE_LIST node.
9555
 
9556
2005-04-21  Geoffrey Keating  
9557
 
9558
        * config/rs6000/rs6000-protos.h (rs6000_emit_sync): New.
9559
        * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Use
9560
        gen_rtx_* not gen_rtx_fmt_*.
9561
        (rs6000_emit_vector_select): Likewise.
9562
        (rs6000_emit_sync): New.
9563
        * config/rs6000/rs6000.md (GPR, INT, INT1): New mode macros.
9564
        (larx, stcx, cmp): New mode substitutions.
9565
        (UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC,
9566
        UNSPEC_ISYNC): New constants.
9567
        (rlwinm): Give name.
9568
        (memory_barrier, isync, lwsync): New insns.
9569
        (sync_compare_and_swap, sync_lock_test_and_set): New insn.
9570
        (sync_lock_release): New expander.
9571
        (sync_add, sync_sub, sync_ior, sync_and,
9572
        sync_xor, sync_nand, sync_old_add,
9573
        sync_old_sub, sync_old_ior, sync_old_and,
9574
        sync_old_xor, sync_old_nand, sync_new_add,
9575
        sync_new_sub, sync_new_ior, sync_new_and,
9576
        sync_new_xor, sync_new_nand): New expanders.
9577
        (sync_add_internal, sync_addshort_internal,
9578
        sync_sub_internal, sync_andsi_internal, sync_anddi_internal,
9579
        sync_boolsi_internal, sync_booldi_internal, sync_boolc_internal,
9580
        sync_boolc_internal2, sync_boolcc_internal): New insns.
9581
 
9582
        * doc/md.texi (Standard Names): sync_compare_and_swap's operand 0
9583
        is the memory before, not after, the operation.  Clarify
9584
        barrier requirements.
9585
 
9586
2005-04-21  Nathan Sidwell  
9587
 
9588
        * cfghooks.h (struct cfg_hooks): Reword comments to avoid 'abort'.
9589
        * lambda.h (lambda_vector_min_nz): Likewise.
9590
        * langhooks.h (struct lang_hooks_for_types,
9591
        struct lang_hooks): Likewise.
9592
        * output.h (assemble_integer, this_is_asm_operands): Likewise.
9593
        * tree.h: Likewise.
9594
        * vec.h: Likewise.
9595
        * tree-flow-inline.h (relink_imm_use): Use gcc_assert.
9596
 
9597
        * optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
9598
        comments to avoid 'abort'.  Use gcc_assert as necessary.
9599
        * opts.c (common_handle_option): Likewise.
9600
        * pretty-print.c (pp_base_format_text): Likewise.
9601
        * print-rtl.c (print_rtx): Likewise.
9602
        * read-rtl.c (read_rtx_filename, read_rtx_1): Likewise.
9603
        * regmove.c (try_auto_increment): Likewise.
9604
        * reload.c (find_valid_class, find_reloads_toplev,
9605
        find_equiv_reg): Likewise.
9606
        * reload1.c (reload, forget_old_reloads_1, function_invariant_p,
9607
        merge_assigned_reloads): Likewise.
9608
        * tree-inline.c (inline_forbidden_p_1,
9609
        estimate_num_insns_1): Likewise.
9610
        * tree-optimize.c (execute_todo): Likewise.
9611
        * tree-outof-ssa.c (eliminate_phi): Likewise.
9612
        * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
9613
        * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise.
9614
        * tree-ssa-operands.c (parse_ssa_operands,
9615
        get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
9616
        * tree-ssa-pre.c (find_or_generate_expression): Likewise.
9617
        * tree-ssanames.c (release_ssa_name): Likewise.
9618
        * tree.c (int_bit_position, int_byte_position, tree_low_cst,
9619
        walk_tree): Likewise.
9620
 
9621
        * tree-ssa-operands.c (verify_abort): Fold into ..
9622
        (verify_imm_links): ... here.
9623
 
9624
2005-04-21  Richard Henderson  
9625
 
9626
        * config/alpha/sync.md (sync_new_nand): Fix constraints
9627
        on non-memory operand for previous inversion.
9628
 
9629
2005-04-21  Devang Patel  
9630
 
9631
        PR optimization/20994
9632
        * tree-if-conv.c (find_phi_replacement_condition): Avoid generating
9633
        x = !(a == b) : p , q;.
9634
        (pass_if_conversion): Verify stmts and flow.
9635
 
9636
2005-04-21  Nathan Sidwell  
9637
 
9638
        * optabs.c (gen_conditional_trap): Restore #define.
9639
 
9640
        * alias.c (true_dependence): Remove 'abort' from comments. Use
9641
        gcc_assert and gcc_unreachable as appropriate.
9642
        (canon_true_dependence): Likewise.
9643
        * bb-reorder.c (connect_traces): Likewise.
9644
        * c-common.c (c_add_case_label): Likewise.
9645
        * c-decl.c (finish_function): Likewise.
9646
        * caller-save.c (insert_restore, insert_save): Likewise.
9647
        * cfg.c (update_bb_profile_for_threading): Likewise.
9648
        * cfganal.c (flow_active_insn_p): Likewise.
9649
        * cfgexpand.c (add_reg_br_prob_note): Likewise.
9650
        * cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge,
9651
        cfg_layout_merge_blocks): Likewise.
9652
        * ifcvt.c (cond_exec_process_insns, merge_if_block,
9653
        find_if_block): Likewise.
9654
        * integrate.c (allocate_initial_values): Likewise.
9655
        * jump.c (reverse_condition, reverse_condition_maybe_unordered,
9656
        swap_condition, unsigned_condition, signed_condition,
9657
        mark_jump_label, invert_jump_1, rtx_renumbered_equal_p,
9658
        reg_or_subregno): Likewise.
9659
        * lambda-code.c (lambda_compute_auxillary_space,
9660
        lambda_transform_legal_p): Likewise.
9661
        * lambda-mat.c (lambda_matrix_inverse_hard): Likewise.
9662
        * langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to,
9663
        lhd_incomplete_type_error, lhd_expand_expr,
9664
        lhd_types_compatible_p, lhd_tree_size): Likewise.
9665
        * lcm.c (create_pre_exit, optimize_mode_switching): Likewise.
9666
        * local-alloc.c (update_equiv_regs): Likewise.
9667
        * loop-unroll.c (peel_loop_completely
9668
        unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
9669
        peel_loop_simple, unroll_loop_stupid,
9670
        analyze_iv_to_split_insn): Likewise.
9671
        * loop.c (gen_prefetch, find_and_verify_loops,
9672
        basic_induction_var): Likewise.
9673
        * modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise.
9674
        * value-prof.c (tree_find_values_to_profile): Likewise.
9675
        * varasm.c (named_section, default_assemble_integer,
9676
        decode_addr_const): Likewise.
9677
 
9678
2005-04-21 Alan Modra  
9679
           Fariborz Jahanian 
9680
 
9681
        * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
9682
        portion of argument passed in fpr.
9683
        * expr.c (emit_push_insn): Fix computation of 'offset' used to
9684
        decide on partial argument save on stack.
9685
 
9686
2005-04-21  Kazu Hirata  
9687
 
9688
        * config/sparc/predicates.md, config/sparc/sparc.md: Fix
9689
        comment typos.
9690
 
9691
2005-04-21  Jan Hubicka  
9692
 
9693
        * cgraphunit.c: Include tree-pass.h
9694
        (cgraph_decide_recursive_inlining,
9695
        cgraph_decide_inlining_of_small_function, cgraph_set_inline_failed,
9696
        cgraph_decide_inlining): Dump goes to dump_file.
9697
        (cgraph_optimize): Call ipa passes instead of inliner.
9698
        (cgraph_gate_inlining, pass_ipa_inline): New.
9699
        * tree-optimize.c (all_ipa_passes): New static variable.
9700
        (register_one_dump_file): Dead with IPA passes.
9701
        (register_dump_files): Likewise.
9702
        (init_tree_optimization_passes): Initialize IPA passes.
9703
        (execute_todo): Do cgraph dump when asked to, do not dump function body
9704
        for IPA pass.
9705
        * tree-pass.h (TODO_dump_cgraph): New macro.
9706
        (ipa_passes): Declare.
9707
        * Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h
9708
 
9709
2005-04-21  Nathan Sidwell  
9710
 
9711
        * config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
9712
        gcc_assert instead of abort.
9713
        (classify_argument, examine_argument, construct_container,
9714
        contains_128bit_aligned_vector_p, ix86_check_movabs,
9715
        standard_80387_constant_opcode, standard_80387_constant_rtx,
9716
        ix86_initial_elimination_offset, ix86_compute_frame_layout,
9717
        pro_epilogue_adjust_stack, ix86_expand_epilogue,
9718
        ix86_address_cost, legitimate_address_p, legitimize_pic_address,
9719
        legitimize_tls_address, output_pic_addr_const,
9720
        i386_output_dwarf_dtprel, put_condition_code, print_reg,
9721
        get_some_local_dynamic_name, print_operand, print_operand_address,
9722
        output_387_binary_op, emit_i387_cw_initialization,
9723
        output_fix_trunc, output_fp_compare, ix86_output_addr_vec_elt,
9724
        ix86_expand_clear, ix86_expand_binary_operator,
9725
        ix86_expand_unary_operator, ix86_match_ccmode, ix86_cc_mode,
9726
        ix86_cc_modes_compatible, ix86_fp_comparison_codes,
9727
        ix86_fp_comparison_arithmetics_cost, ix86_expand_fp_compare,
9728
        ix86_expand_branch, ix86_expand_setcc,
9729
        ix86_expand_carry_flag_compare, ix86_expand_fp_movcc,
9730
        ix86_expand_int_addcc, ix86_split_to_parts, ix86_split_long_move,
9731
        ix86_expand_movmem, ix86_expand_call, assign_386_stack_local,
9732
        memory_address_length, ix86_attr_length_immediate_default,
9733
        ix86_attr_length_address_default, ix86_agi_dependant,
9734
        x86_initialize_trampoline, ix86_init_mmx_sse_builtins,
9735
        ix86_expand_binop_builtin, ix86_force_to_memory,
9736
        ix86_secondary_memory_needed, ix86_avoid_jump_misspredicts,
9737
        x86_emit_floatuns): Likewise.
9738
        * config/i386/netware.c (gen_regparm_prefix,
9739
        i386_nlm_strip_name_encoding): Likewise.
9740
        * config/i386/winnt.c (i386_pe_mark_dllexport): Likewise.
9741
 
9742
2005-04-21  Nathan Sidwell  
9743
 
9744
        * optabs.c (gen_condiational_trap): Remove #define.
9745
        (add_equal_note): Assertify. Remove explicit indirection from
9746
        call via function pointer.
9747
        (expand_ternary_op, expand_simple_binop, expand_binop,
9748
        expand_twoval_unop, expand_twoval_binop,
9749
        expand_twoval_binop_libfunc, expand_simple_unop expand_unop,
9750
        emit_unop_insn,  emit_no_conflict_block,  prepare_cmp_insn,
9751
        prepare_operand emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
9752
        prepare_float_lib_cmp, emit_conditional_move,
9753
        emit_conditional_add, gen_add2_insn, gen_add3_insn,
9754
        have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn,
9755
        expand_float, expand_fix, debug_optab_libfuncs, gen_cond_trap,
9756
        vector_compare_rtx, expand_vec_cond_expr): Likewise.
9757
 
9758
2005-04-21  Nathan Sidwell  
9759
 
9760
        * vec.h: Update API to separate allocation mechanism from type.
9761
        (VEC_safe_grow): New.
9762
        * vec.c (calculate_allocation): New.
9763
        (vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
9764
        (vec_gc_free, vec_heap_free): Remove.
9765
        * gengtype-lex.l (DEF_VEC_): Process mult-argument macros.  Adjust.
9766
        (VEC): Likewise.
9767
        (mangle_macro_name): New.
9768
        (struct macro_def): New.
9769
        (struct macro): Add multiple argument values.
9770
        (macro_expans_end): New.
9771
        (push_macro_expansion):  Chain on new macro. Process multiple
9772
        args, create follow on expansion. Return follow on argument.
9773
        (macro_input): Deal with multiple arguments.
9774
 
9775
        * tree.h: Define VEC(tree,heap) and VEC(tree,gc).
9776
        (struct tree_binfo): Adjust.
9777
        * basic-block.h: Define VEC(edge,gc).
9778
        (struct edge_def): Adjust.
9779
        (struct basic_block_def, struct edge_iterator): Likewise.
9780
        (ei_container, ei_start_1, ei_last_1): Likewise.
9781
        * cfg.c (connect_src, connect_dest): Likewise.
9782
        * cfgrtl.c (force_nonfallthru_and_redirect)
9783
        * dbxout.c (dbxout_type)
9784
        * dwarf2out.c (gen_member_die)
9785
        * lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
9786
        (gcc_tree_to_linear_expression): Adjust.
9787
        (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
9788
        lbv_to_gcc_expression, lle_to_gcc_expression,
9789
        lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
9790
        perfect_nestify): Likewise.
9791
        * lambda.h (gcc_loopnest_to_lambda_loopnest,
9792
        lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
9793
        * profile.c (instrument_values): Adjust.
9794
        * tree-cfg.c (modified_noreturn_calls): Adjust.
9795
        (remove_fallthru_edge): Likewise.
9796
        * tree-dump.c (dequeue_and_dump): Adjust.
9797
        * tree-flow-inline.h (mark_stmt_modified): Adjust.
9798
        * tree-flow.h (modified_noreturn_calls): Adjust.
9799
        (tree_on_heap): Remove. (yay!)
9800
        (register_new_def): Adjust.
9801
        * tree-into-ssa.c: Define VEC(int,heap).
9802
        (block_defs_stack): Adjust.
9803
        (find_idf, insert_phi_nodes, register_new_def,
9804
        rewrite_initialize_block, rewrite_finalize_block,
9805
        register_new_update_single, rewrite_update_init_block,
9806
        rewrite_update_fini_block, rewrite_blocks,
9807
        ssa_rewrite_finalize_block, ssa_register_new_def,
9808
        ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
9809
        * tree-loop-linear.c (linear_transform_loops): Adjust.
9810
        * tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
9811
        (push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
9812
        * tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
9813
        stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
9814
        vrp_variables_stack): Adjust declarations.
9815
        (tree_ssa_dominator_optimize): Adjust.
9816
        (dom_opt_initialize_block, remove_local_expressions_from_table,
9817
        restore_nonzero_vars_to_original_value,
9818
        restore_vars_to_original_value,
9819
        restore_currdefs_to_original_value, dom_opt_finalize_block,
9820
        record_var_is_nonzero, record_cond, record_const_or_copy_1,
9821
        optimize_stmt, update_rhs_and_lookup_avail_expr,
9822
        lookup_avail_expr, record_range): Likewise.
9823
        * tree-ssa-pre.c: Define VEC(basic_block,heap).
9824
        (compute_antic_aux): Adjust.
9825
        (inserted_exprs, create_expression_by_pieces,
9826
        insert_into_preds_of_block, eliminate, mark_operand_necessary,
9827
        remove_dead_inserted_code, fini_pre): Likewise.
9828
        * tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
9829
        (varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist.
9830
        ssa_prop_init): Likewise.
9831
        * tree-ssa.c: Define VEC(bitmap,heap).
9832
        (verify_name_tags): Adjust.
9833
        * value-prof.c (rtl_divmod_values_to_profile): Adjust.
9834
        (insn_prefetch_values_to_profile, rtl_find_values_to_profile,
9835
        tree_divmod_values_to_profile, tree_find_values_to_profile,
9836
        value_profile_transformations): Likewise.
9837
        * value-prof.h: Define VEC(histogram_value,heap).
9838
        * varasm.c: Remove alias_pair pointer typedef, define
9839
        VEC(alias_pair,gc).
9840
        (finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
9841
 
9842
        * config/pa/pa.c (typedef extern_symbol): Typedef the structure,
9843
        not a pointer to it.  Create an object vector.
9844
        (extern_symbols): Turn into an object vector.
9845
        (pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
9846
 
9847
2005-04-21  Sebastian Pop  
9848
 
9849
        PR/20742
9850
        * Makefile.in (tree-chrec.o): Depend on params.h.
9851
        * params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
9852
        default value 20.
9853
        * tree-chrec.c: Depend on params.h.  Replace build with buildN,
9854
        and fold build with fold_buildN.
9855
        (chrec_fold_plus_1): Fail with a chrec_don_know when the size of
9856
        the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
9857
        (tree_contains_chrecs): Compute an estimation of the size of the
9858
        given expression.
9859
        * tree-chrec.h (tree_contains_chrecs): Modify its declaration.
9860
        (tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
9861
        * tree-scalar-evolution.c (simple_iv): Ditto.
9862
        * doc/invoke.texi (scev-max-expr-size): Documented.
9863
 
9864
2005-04-21  Richard Sandiford  
9865
 
9866
        * config.gcc (*-*-darwin*): Add darwin.opt to $extra_options.
9867
        (i[34567]86-pc-msdosdjgpp*): Likewise i386/djgpp.opt.
9868
        (i[34567]86-*-lynxos*, powerpc-*-lynxos*): Likewise lynx.opt.
9869
        (i[34567]86-*-sco3.2v5*): Likewise i386/sco5.opt.
9870
        (i[34567]86-*-pe, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
9871
        (i[34567]86-*-uwin*): Likewise i386/cygming.opt.
9872
        * config/darwin.h (darwin_one_byte_bool, darwin_fix_and_continue)
9873
        (darwin_fix_and_continue_switch, SUBTARGET_OPTIONS): Delete.
9874
        * config/darwin.c (darwin_one_byte_bool, darwin_fix_and_continue)
9875
        (darwin_fix_and_continue_switch): Delete.
9876
        * config/lynx.h (SUBTARGET_OS_LYNX_SWITCHES): Delete.
9877
        (SUBTARGET_SWITCHES): Delete.
9878
        * config/i386/i386.h (target_flags, MASK_80387, MASK_RTD)
9879
        (MASK_ALIGN_DOUBLE, MASK_SVR3_SHLIB, MASK_IEEE_FP, MASK_FLOAT_RETURNS)
9880
        (MASK_NO_FANCY_MATH_387, MASK_OMIT_LEAF_FRAME_POINTER)
9881
        (MASK_STACK_PROBE, MASK_NO_ALIGN_STROPS, MASK_INLINE_ALL_STROPS)
9882
        (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS, MASK_MMX)
9883
        (MASK_SSE, MASK_SSE2, MASK_SSE3, MASK_3DNOW, MASK_3DNOW_A)
9884
        (MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT)
9885
        (MASK_TLS_DIRECT_SEG_REFS, MASK_NO_RED_ZONE, TARGET_80387)
9886
        (TARGET_RTD, TARGET_ALIGN_DOUBLE, TARGET_PUSH_ARGS)
9887
        (TARGET_ACCUMULATE_OUTGOING_ARGS, TARGET_SVR3_SHLIB, TARGET_IEEE_FP)
9888
        (TARGET_128BIT_LONG_DOUBLE, TARGET_NO_FANCY_MATH_387)
9889
        (TARGET_USE_FANCY_MATH_387, TARGET_OMIT_LEAF_FRAME_POINTER)
9890
        (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Delete.
9891
        (TARGET_FLOAT_RETURNS_IN_80387): Make an alias of TARGET_FLOAT_RETURNS.
9892
        (TARGET_64BIT): Undef before redefining.
9893
        (TARGET_TLS_DIRECT_SEG_REFS, TARGET_STACK_PROBE)
9894
        (TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS, TARGET_SSE)
9895
        (TARGET_SSE2, TARGET_SSE3, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A)
9896
        (TARGET_RED_ZONE, TARGET_USE_MS_BITFIELD_LAYOUT, TARGET_SWITCHES)
9897
        (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS)
9898
        (ix86_fpmath_string, ix86_tls_dialect_string, ix86_cmodel_string)
9899
        (ix86_asm_string, ix86_regparm, ix86_regparm_string)
9900
        (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
9901
        (ix86_debug_arg_string, ix86_debug_addr_string)
9902
        (ix86_align_loops_string, ix86_align_jumps_string)
9903
        (ix86_align_funcs_string): Delete.
9904
        * config/i386/cygming.h (MASK_NOP_FUN_DLLIMPORT)
9905
        (TARGET_NOP_FUN_DLLIMPORT, SUBTARGET_SWITCHES): Delete.
9906
        * config/i386/djgpp.h (MASK_BNU210, SUBTARGET_SWITCHES): Delete.
9907
        (SUBTARGET_OVERRIDE_OPTIONS): Check TARGET_BNU210.
9908
        * config/i386/lynx.h (SUBTARGET_SWITCHES): Delete.
9909
        * config/i386/sco5.h (MASK_COFF, TARGET_ELF)
9910
        (SUBTARGET_SWITCHES): Delete.
9911
        * config/i386/i386.c (ix86_debug_arg_string): Delete.
9912
        (ix86_debug_addr_string): Delete.
9913
        (ix86_cmodel_string, ix86_asm_string, ix86_tls_dialect_string)
9914
        (ix86_fpmath_string, ix86_regparm_string, ix86_regparm)
9915
        (ix86_align_loops_string, ix86_align_jumps_string)
9916
        (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
9917
        (ix86_align_funcs_string): Make static.
9918
        (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
9919
        (ix86_handle_option): New function.
9920
        (TARGET_USE_MS_BITFIELD_LAYOUT): Delete.
9921
        (ix86_ms_bitfield_layout_p): Check TARGET_MS_BITFIELD_LAYOUT.
9922
        * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove handling
9923
        of darwin_fix_and_continue_switch.
9924
        (darwin_one_byte_bool): Delete.
9925
        * config/rs6000/lynx.h (EXTRA_SUBTARGET_SWITCHES): Delete.
9926
        * config/rs6000/rs6000.c (rs6000_override_options): Update assignment
9927
        to darwin_one_byte_bool.
9928
        * config/darwin.opt, config/lynx.opt, config/i386/cygming.opt,
9929
        * config/i386/djgpp.opt, config/i386/i386.opt,
9930
        * config/i386/sco5.opt: New files.
9931
 
9932
2005-04-21  Eric Botcazou  
9933
 
9934
        * config/sparc/sparc.c (reg_or_0_operand, const1_operand,
9935
        fp_zero_operand, fp_register_operand, intreg_operand,
9936
        fcc_reg_operand, fcc0_reg_operand, icc_or_fcc_reg_operand,
9937
        call_operand, call_operand_address, tgd_symbolic_operand,
9938
        tld_symbolic_operand, tie_symbolic_operand, tle_symbolic_operand,
9939
        symbolic_operand, symbolic_memory_operand, label_ref_operand,
9940
        sp64_medium_pic_operand, data_segment_operand,
9941
        text_segment_operand, splittable_symbolic_memory_operand,
9942
        reg_or_nonsymb_mem_operand, splittable_immediate_memory_operand,
9943
        eq_or_neq, normal_comp_operator, noov_compare_op,
9944
        noov_compare64_op, v9_regcmp_op, extend_op, cc_arithop,
9945
        cc_arithopn, arith_operand, arith_4096_operand, arith_add_operand,
9946
        const64_operand, const64_high_operand, arith11_operand,
9947
        arith10_operand, arith_double_operand, arith_double_4096_operand,
9948
        arith_double_add_operand, arith11_double_operand,
9949
        arith10_double_operand, small_int, small_int_or_double,
9950
        uns_small_int, uns_arith_operand, clobbered_register,
9951
        input_operand, compare_operand): Delete.
9952
        (sparc_emit_set_const32): Use predicates in assertion.  Remove special
9953
        code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT != 64.
9954
        (sparc_emit_set_const64): Call gcc_unreachable if H_B_P_W_I == 32.
9955
        (GEN_HIGHINT64, GEN_INT64): Delete.
9956
        (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
9957
        gen_safe_XOR64): Adjust for above deletion.
9958
        (sparc_emit_set_const64): Support only H_B_P_W_I == 64 and CONST_INTs.
9959
        Use 'unsigned HOST_WIDE_INT' instead of 'long' for bitmask.
9960
        (legitimate_constant_p): Use const_zero_operand instead.
9961
        (sparc_extra_constraint_check): Likewise.
9962
        * config/sparc/sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'O'.
9963
        (PREFERRED_RELOAD_CLASS): Use const_zero_operand.
9964
        (PREDICATE_CODES): Delete.
9965
        * config/sparc/sparc.md: Include predicates.md.
9966
        (All patterns): Adjust for new predicate names.
9967
        (cmpdi, cmpdi_sp64): Use arith_operand predicate.
9968
        (movhi_const64_special, movsi_const64_special): Add 'K' constraint.
9969
        (movdi): Use general_operand predicate.
9970
        (movdi_sp64_dbl): Delete.
9971
        (movdi_const64_special): Add 'N' constraint.
9972
        (movdicc): Use arith10_operand predicate.
9973
        (movdi_cc_sp64, movdi_cc_sp64_trunc): Use arith11_operand predicate.
9974
        (movdi_cc_reg_sp64): Use arith10_operand predicate.
9975
        (movdi_cc_reg_sp64_trunc): Delete.
9976
        (cmp_zero_extract, cmp_zero_extract_sp64): Use small_int_operand.
9977
        (adddi3_sp64, cmp_ccx_plus, cmp_ccx_plus_set): Use arith_operand.
9978
        (subdi3_sp32): Delete.
9979
        (subdi3_insn_sp32): Change to define_insn_and_split.
9980
        (subdi3_sp64, cmp_minus_ccx, cmp_minus_ccx_set): Use arith_operand.
9981
        (muldi3, muldi3_sp64, muldi3_v8plus): Likewise.
9982
        (smulsi3_highpart_v8plus, const_smulsi3_highpart_v8plus,
9983
        umulsi3_highpart_v8plus, const_umulsi3_highpart_v8plus): Use
9984
        small_int_operand predicate.
9985
        (divdi3, udivdi3): Use arith_operand predicate.
9986
        (udivsi3, udivsi3_sp32, udivsi3_sp64): Use nonimmediate_operand.
9987
        (and3_sp64, ior3_sp64, xor3_sp64,
9988
        xor_not__sp64) : Use arith_operand predicate.
9989
        (xordi3_sp64_dbl): Delete.
9990
        (cmp_ccx_arith_op, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
9991
        cmp_ccx_xor_not_set, cmp_ccx_arith_op_not, cmp_ccx_arith_op_not_set,
9992
        cmp_ccx_neg, cmp_ccx_set_neg, one_cmpl2_sp64, cmp_ccx_not,
9993
        cmp_ccx_set_not): Use arith_operand predicate.
9994
        (ashrsi3_extend2, lshrsi3_extend2 et al.): Use small_int_operand.
9995
        * config/sparc/predicates.md: New file.
9996
 
9997
2005-04-21  Kazu Hirata  
9998
 
9999
        PR tree-optimization/14846
10000
        * fold-const.c (fold_single_bit_test_into_sign_test): New,
10001
        split out from ...
10002
        (fold_single_bit_test): ... here.
10003
        (fold_binary): Call fold_single_bit_test_into_sign_test
10004
        instead of fold_single_bit_test.
10005
 
10006
2005-04-20  James E Wilson  
10007
 
10008
        PR c++/20805
10009
        * dwarf2out.c (gen_variable_die): Don't emit a specification if this
10010
        is another declaration.
10011
 
10012
2005-04-21  Hans-Peter Nilsson  
10013
 
10014
        * config/cris/predicates.md: New file.
10015
        * config/cris/cris-protos.h (cris_store_multiple_op_p)
10016
        (cris_movem_load_rest_p): Declare.
10017
        * config/cris/cris.c (cris_store_multiple_op): Return bool, not int.
10018
        (cris_movem_load_rest_p): Ditto.  Globalize.
10019
        (cris_bdap_operand, cris_bdap_biap_operand,
10020
        cris_orthogonal_operator, cris_commutative_orth_op,
10021
        cris_operand_extend_operator,
10022
        cris_additive_operand_extend_operator, cris_extend_operator,
10023
        cris_plus_or_bound_operator, cris_mem_op,
10024
        cris_general_operand_or_symbol,
10025
        cris_general_operand_or_gotless_symbol,
10026
        cris_general_operand_or_plt_symbol, cris_mem_call_operand,
10027
        cris_load_multiple_op): Remove predicate functions.
10028
        (cris_symbol, cris_gotless_symbol) : Return 0, don't
10029
        abort, for UNSPECs other than CRIS_UNSPEC_PLT.
10030
        * config/cris/cris.h (PREDICATE_CODES): Don't define.
10031
        * config/cris/cris.md: Include predicates.md.
10032
        ("call", "call_value"): Generate CONSTs of Pmode, not VOIDmode.
10033
 
10034
2005-04-20  Ian Lance Taylor  
10035
 
10036
        * c-common.def: Remove STMT_EXPR (moved to cp/cp-tree.def).
10037
        * c-common.h (STMT_EXPR_STMT): Don't define.
10038
        (STMT_EXPR_NO_SCOPE): Don't define.
10039
        * c-dump.c (c_dump_tree): Don't handle STMT_EXPR.
10040
        * c-pretty-print.c (pp_c_primary_expression): Likewise.
10041
        (pp_c_expression): Likewise.
10042
 
10043
2005-04-20  Richard Henderson  
10044
 
10045
        PR target/21100
10046
        * config/i386/mmx.md (push1): Fix predicate thinko.
10047
 
10048
2005-04-20  Jeff Law  
10049
 
10050
        * reload1.c (reload): Ignore equivalences between pseudos and
10051
        read only memory.
10052
 
10053
2005-04-20  Joseph S. Myers  
10054
 
10055
        PR c/12913
10056
        * c-tree.h (struct c_label_list): Update comment.
10057
        (struct c_label_context): Rename to struct c_label_context_se.
10058
        (label_context_stack): Rename to label_context_stack_se.
10059
        (C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
10060
        c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
10061
        c_end_vm_scope): New.
10062
        (C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
10063
        * c-decl.c (pop_scope): Call c_end_vm_scope.
10064
        (pushdecl): Call c_begin_vm_scope for variably modified
10065
        declarations.
10066
        (define_label): Check for jumping into scope of identifier with
10067
        variably modified type.  Push label on stack for those defined at
10068
        current context of identifiers with variably modified type.
10069
        (start_function): Create stack level for context of identifiers
10070
        with variably modified type.
10071
        (finish_function): Pop stack level for context of identifiers with
10072
        variably modified type.
10073
        * c-typeck.c (label_context_stack): Rename to
10074
        label_context_stack_se.
10075
        (label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
10076
        (c_finish_goto_label): Check for jumping into scope of identifier
10077
        with variably modified type.  Push label on stack for those jumped
10078
        to from current context of identifiers with variably modified
10079
        type.
10080
        (struct c_switch): Add blocked_vm.
10081
        (c_start_case): Initialize blocked_vm.
10082
        (do_case): Check blocked_vm.
10083
        (c_finish_case): Add comment.
10084
        (c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
10085
        variable label_context_stack.
10086
 
10087
2005-04-20  Kazu Hirata  
10088
 
10089
        * tree-ssa-phiopt.c (tree_ssa_phi_opt): Update calls to
10090
        conditional_replacement, value_replacement, abs_replacement,
10091
        minmax_replacement.
10092
        (replace_phi_edge_with_variable): Remove argument BB.
10093
        (conditional_replacement, value_replacement,
10094
        minmax_replacement, abs_replacement): Remove argument PHI_BB.
10095
        Update a call to replace_phi_edge_with_variable.
10096
 
10097
        * tree-ssa-phiopt.c: Fix comments.
10098
 
10099
2005-04-20  Michael Matz  
10100
 
10101
        PR20973
10102
        * reload.c (push_reload, find_dummy_reload): Check for uninitialized
10103
        pseudos.
10104
 
10105
2005-04-20  Kazu Hirata  
10106
 
10107
        * tree-ssa-phiopt.c: Fix comment typos.
10108
 
10109
        PR tree-optimization/21116
10110
        * tree-ssa-phiopt.c: Fix a typo.
10111
 
10112
2005-04-19  Richard Henderson  
10113
 
10114
        * builtins.c (expand_builtin_sync_operation): Revert last change.
10115
        * optabs.c (expand_bool_compare_and_swap): Compare vs old value,
10116
        not vs new value.
10117
        (expand_compare_and_swap_loop): Likewise.
10118
        (expand_sync_operation): Remove fallback from NAND to AND; invert
10119
        memory operand when expanding from cmpxchg.
10120
        (expand_sync_fetch_operation): Likewise.
10121
        * doc/extend.texi (Atomic Builtins): Fix docs for nand and
10122
        compare-and-swap.
10123
 
10124
        * config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand
10125
        when implementing NAND.  Fix double-add for AFTER.
10126
        * config/alpha/sync.md (sync_nand): Invert memory operand.
10127
        (sync_old_nand, sync_new_nand): Likewise.
10128
        (sync_compare_and_swap): Fix compare vs zero.  Return old
10129
        memory value.
10130
        (sync_lock_test_and_set): Remove extra label and last
10131
        memory barrier.
10132
 
10133
        * config/i386/sync.md (sync_compare_and_swap): Fix pattern
10134
        to return old memory value.
10135
        (sync_compare_and_swap_cc): Likewise.
10136
 
10137
        * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early
10138
        return pre-reload.  Don't consider output or anti dependencies.
10139
        * config/ia64/sync.md (IMODE): New.
10140
        (modesuffix): Add QI and HI.
10141
        (memory_barrier): Simplify expansion.
10142
        (sync_compare_and_swap): Use IMODE, not I48MODE.
10143
        (cmpxchg_acq_): Likewise.
10144
        (sync_lock_test_and_set): Likewise.
10145
        (sync_lock_release): Likewise.
10146
 
10147
2005-04-19  James A. Morrison  
10148
 
10149
        * fold-const.c (fold_binary): Fold ~(X ^ Y) to ~X ^ Y or X ^ ~Y if
10150
        ~X or ~Y simplify.
10151
 
10152
2005-04-19  James A. Morrison  
10153
 
10154
        * fold-const (fold_binary):  Fold ~X ^ ~ Y to X ^ Y.
10155
 
10156
2005-04-20  Michael Pogue  
10157
            Joseph S. Myers  
10158
 
10159
        * c.opt (Wint-to-pointer-cast, Wpointer-to-int-cast): New options.
10160
        * c-typeck.c (build_c_cast): Check these options.
10161
        * doc/invoke.texi: Document these options.
10162
 
10163
2005-04-20  Kazu Hirata  
10164
 
10165
        * tree-ssa-phiopt.c: Update a comment about the pass.
10166
 
10167
2005-04-19  Kazu Hirata  
10168
 
10169
        * tree-ssa-phiopt.c, config/arm/arm.c, config/fr30/fr30.md,
10170
        config/mcore/mcore.c: Fix comment typos.
10171
 
10172
2005-04-19  Daniel Jacobowitz  
10173
 
10174
        * Makefile.in (libgcc.mk): Pass GCC_FOR_TARGET.
10175
        * mklibgcc.in: Use $GCC_FOR_TARGET instead of ./xgcc.
10176
 
10177
2005-04-19  Paul Brook  
10178
 
10179
        * config/arm/arm.c (arm_init_libfuncs): Clear mod optabs.
10180
 
10181
2005-04-19  Andrew Haley  
10182
 
10183
        PR java/21022
10184
        * dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
10185
        looking at a field's bitpos.
10186
 
10187
2005-04-19  Kaveh R. Ghazi  
10188
 
10189
        * system.h (fopen, fdopen, freopen): Define these to the unlocked
10190
        libiberty functions.
10191
 
10192
2005-04-19  Kazu Hirata  
10193
 
10194
        PR tree-optimization/21096
10195
        * tree-ssa-copy.c (fini_copy_prop): Free cached_last_copy_of.
10196
 
10197
2005-04-19  Alan Modra  
10198
 
10199
        PR target/21098
10200
        * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
10201
        * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.
10202
 
10203
2005-04-19  Alexandre Oliva  
10204
 
10205
        * tree-cfg.c (dump_function_to_file): Use cfun info only if it
10206
        refers to the function being dumped.
10207
 
10208
2005-04-18  Daniel Jacobowitz  
10209
 
10210
        * varasm.c (assemble_start_function): Remove reset of in_section.
10211
 
10212
2005-04-18  James A. Morrison  
10213
 
10214
        PR tree-optimization/21085
10215
        * fold-const (fold_binary): Don't change X % -C to X % C if C has
10216
        overflowed.
10217
 
10218
2005-04-19  Ben Elliston  
10219
 
10220
        * doc/invoke.texi (Optimize Options): Refer to the correct
10221
        optimisation flag -ftree-dominator-opts, not -ftree-dom.
10222
 
10223
2005-04-18  Christopher Jaillet 
10224
 
10225
        * config/rs6000/rs6000.c (machopic_output_stub):  Increase
10226
        alloca argument to be big enough.
10227
 
10228
2005-04-18  Alexandre Oliva  
10229
 
10230
        PR middle-end/21049
10231
        * tree-cfg.c (dump_function_to_file): Do not crash if cfun or
10232
        cfun->cfg are NULL.
10233
 
10234
2005-04-18  Tom Tromey  
10235
 
10236
        * cgraphunit.c (cgraph_finalize_compilation_unit): Fix a comment
10237
        typo.
10238
 
10239
2005-04-18  Richard Henderson  
10240
 
10241
        * config/alpha/alpha.c (alpha_split_atomic_op): New.
10242
        (alphaev5_insn_pipe): Add LD_L, ST_C, MB types.
10243
        (alphaev4_insn_pipe): Likewise.  Correct IST and LDSYM pipes.
10244
        * config/alpha/alpha-protos.h: Update.
10245
        * config/alpha/alpha.md (UNSPECV_MB, UNSPECV_LL, UNSPECV_SC): New.
10246
        (UNSPECV_ATOMIC, UNSPECV_CMPXCHG, UNSPECV_XCHG): New.
10247
        (attr type): Add ld_l, st_c, mb.
10248
        (andsi_internal, andnotsi3, iorsi_internal, one_cmplsi_internal,
10249
        iornotsi3, xorsi_internal, xornotsi3): New.
10250
        * config/alpha/ev4.md (ev4_ld): Add ld_l.
10251
        (ev4_ist_c, ev4_mb): New.
10252
        * config/alpha/ev5.md (ev5_st): Add st_c, mb.
10253
        (ev5_ld_l): New.
10254
        * config/alpha/ev6.md (ev6_ild): Add ld_l.
10255
        (ev6_ist): Add st_c.
10256
        (ev6_mb): New.
10257
        * config/alpha/sync.md: New file.
10258
 
10259
2005-04-18  Richard Henderson  
10260
 
10261
        * builtins.c (expand_builtin_sync_operation): Fold nand to and
10262
        for constants.
10263
 
10264
        * optabs.c (expand_sync_operation): Fix typo expanding nand to and.
10265
 
10266
2005-04-18  Devang Patel  
10267
 
10268
        * config/rs6000/atlivec.md (mulv4si3): New pattern.
10269
 
10270
2005-04-18  James A. Morrison  
10271
 
10272
        PR tree-optimization/20922
10273
        * fold-const.c (fold_binary): Fold X - c > X and X + c < X to false.
10274
        Fold X + c >= X and fold X - c <= X to true.
10275
 
10276
2005-04-18  James A. Morrison  
10277
 
10278
        * config/ia64/unwind-ia64.c (emergency_reg_state_free): Make an
10279
        unsigned int.
10280
        (emergency_labeled_state_free): Likewise.
10281
 
10282
2005-04-18  Nick Clifton  
10283
 
10284
        * config/h8300/h8300.md (jump): Remove prescan parameter from
10285
        calls to final_scan_insn.
10286
 
10287
        * config/arc/arc.c (arc_output_function_epilogue): Remove prescan
10288
        parameter from calls to final_scan_insn.
10289
 
10290
        * config.gcc (m68hc12): Use the m68hc11.opt file for target
10291
        specific options.
10292
        (v850e, v850e1): Use the v850.opt file for target specific
10293
        options.
10294
 
10295
2005-04-18  Kazu Hirata  
10296
 
10297
        PR tree-optimization/21001
10298
        * tree-optimize.c (init_tree_optimization_passes): Move the
10299
        first pass_forwprop immediately before pass_vrp.
10300
 
10301
2005-04-17  Ian Lance Taylor  
10302
 
10303
        * c-common.def (SIZEOF_EXPR, ARROW_EXPR, ALIGNOF_EXPR): Remove.
10304
        * c-common.c (c_sizeof_or_alignof_type): Change second parameter
10305
        from enum tree_code op to bool is_sizeof.
10306
        * c-common.h (c_sizeof_or_alignof_type): Update declaration.
10307
        (c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.
10308
        * c-pretty-print.c (pp_c_postfix_expression): Remove ARROW_EXPR
10309
        case.
10310
        (pp_c_unary_expression): Remove SIZEOF_EXPR and ALIGNOF_EXPR
10311
        cases.
10312
        (pp_c_expression): Remove ARROW_EXPR, SIZEOF_EXPR, and
10313
        ALIGNOF_EXPR cases.
10314
 
10315
2005-04-17  Ian Lance Taylor  
10316
 
10317
        * system.h: Poison DONT_ACCESS_GBLS_AFTER_EPILOGUE.
10318
 
10319
2005-04-17  Richard Henderson  
10320
 
10321
        * config/alpha/alpha.c (va_list_skip_additions): Only define if
10322
        TARGET_ABI_OSF.
10323
        (TARGET_STDARG_OPTIMIZE_HOOK): Likewise.
10324
        (alpha_stdarg_optimize_hook): Likewise.  Allow for one more round
10325
        of indirection through ssa names while looking for the gpr counter
10326
        field.
10327
        (alpha_setup_incoming_varargs) : Make use of the
10328
        saved va_list_gpr_size and va_list_fpr_size.
10329
 
10330
2005-04-17  Kazu Hirata  
10331
 
10332
        * tree-vrp.c (compare_values): Check that VAL1 and VAL2 are
10333
        both pointers or both integers.
10334
 
10335
        * tree-vrp.c (maybe_add_assert_expr): Don't assert
10336
        ASSERT_EXPRs for single-use variable.
10337
 
10338
        * tree-into-ssa.c: Fix a comment typo.
10339
 
10340
2005-04-17  Richard Sandiford  
10341
 
10342
        * config/mips/iris6.h (DRIVER_SELF_SPECS): Check -march as well as
10343
        -mipsN before forcing a default of -mips2.
10344
 
10345
2005-04-17  Kazu Hirata  
10346
 
10347
        * predict.h (IS_TAKEN): Remove.
10348
        * rtl.h (NOTE_PREDICTION): Likewise.
10349
 
10350
        * modulo-sched.c (CFG_HOOKS): Remove.
10351
 
10352
        * c-parser.c (N_C_TTYPES): Remove.
10353
 
10354
        * tree-flow-inline.h (get_stmt_operands): Remove.
10355
        * lambda-code.c, tree-ssa-loop-unswitch.c,
10356
        tree-ssa-operands.c, tree-ssa-pre.c, tree-ssa-propagate.c,
10357
        tree-ssa-sink.c, tree-ssa.c, tree-tailcall.c,
10358
        tree-vect-transform.c, tree-vectorizer.c, tree-vrp.c): Remove
10359
        calls to get_stmt_operands.
10360
        * doc/tree-ssa.texi: Don't mention get_stmt_operands.
10361
 
10362
2005-04-17  Richard Henderson  
10363
 
10364
        PR target/20375
10365
        * config/alpha/alpha.c (alpha_setup_incoming_varargs): Advance a copy
10366
        of CUMULATIVE_ARGS past the last named argument.
10367
        (alpha_va_start): Expect pretend_args_size only if strictly less than
10368
        6 named arguments.
10369
 
10370
2005-04-17  Kazu Hirata  
10371
 
10372
        PR middle-end/21024
10373
        * builtins.c (expand_builtin_strcat): Convert the result of
10374
        strlen to the right type.
10375
        * fold-const.c (fold_binary) : Use fold_convert to
10376
        avoid creating type mismatches.
10377
        : Pass op0 and op1 to fold_build2 to avoid creating
10378
        type mismatches.
10379
 
10380
        * c-lex.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Remove.
10381
 
10382
2005-04-16  Richard Henderson  
10383
 
10384
        PR target/21051
10385
        * builtins.c (expand_builtin) :
10386
        Use the mode of boolean_type_node when the user doesn't provide one.
10387
        * config/ia64/sync.md (sync_lock_release): Use operand 1.
10388
 
10389
2005-04-16  Alexandre Oliva  
10390
 
10391
        PR target/20126
10392
        * loop.c (loop_givs_rescan): Handle non-replaceable (plus (reg)
10393
        (const)).
10394
 
10395
        * tree-scalar-evolution.c (interpret_rhs_modify_expr): Fix typo in
10396
        comment.
10397
 
10398
2005-04-16  Roger Sayle  
10399
            Steven Bosscher  
10400
 
10401
        * fold-const.c (fold_binary_to_constant): Delete obsolete comment.
10402
        (fold_unary_to_constant): Likewise.
10403
 
10404
2005-04-16  Kazu Hirata  
10405
 
10406
        * basic-block.h: Adjust the value of PROP_SCAN_DEAD_STORES,
10407
        PROP_ASM_SCAN.
10408
 
10409
2005-04-16  Gerald Pfeifer  
10410
 
10411
        * doc/install.texi (Specific): Avoid using asterisks in @anchor
10412
        names related to target triplets.
10413
        Remove i?86-*-esix from platform directory.
10414
        Remove powerpc-*-eabiaix from platform directory.
10415
 
10416
2005-04-16  Joseph S. Myers  
10417
 
10418
        PR middle-end/20491
10419
        * config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
10420
        falling through from SUBREG case to REG.
10421
 
10422
2005-04-15  Roger Sayle  
10423
 
10424
        * fold-const.c (fold_relational_hi_lo): Delete function and prototype.
10425
        (fold_binary): Update comment mentioning fold_relational_hi_lo.
10426
        (fold_binary_to_constant): Simplify using fold_binary.
10427
        (fold_unary_to_constant): Likewise, simplify using fold_unary.
10428
 
10429
2005-04-15  Rainer Orth  
10430
 
10431
        * gthr-posix.c (pthread_cancel): Define.
10432
        (pthread_mutexattr_init): Likewise.
10433
        (pthread_mutexattr_settype): Likewise.
10434
        (pthread_mutexattr_destroy): Likewise.
10435
 
10436
2005-04-15  David S. Miller  
10437
 
10438
        PR target/20673
10439
        * config/sparc/sparc.h (sparc_hard_reg_printed): Mark as GTY(()).
10440
 
10441
2005-04-15  Kazu Hirata  
10442
 
10443
        PR tree-optimization/21031
10444
        * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): New.
10445
        (forward_propagate_into_cond_1): Call it.  Forward propagate
10446
        integer-integer casts into COND_EXPRs.
10447
 
10448
2005-04-15  Dave Korn  
10449
 
10450
        * gcc.c (default_compilers): Clarify obscure error message when
10451
        reading from standard input.
10452
 
10453
2005-04-15  Kazu Hirata  
10454
 
10455
        * basic-block.h (PROP_EQUAL_NOTES): Remove.
10456
        * flow.c (propagate_one_insn): Don't use PROP_EQUAL_NOTES.
10457
 
10458
        * tree-ssa-alias.c (init_alias_info): Remove a call to
10459
        get_stmt_operands.
10460
 
10461
2005-04-15  Andrew MacLeod  
10462
 
10463
        * tree-vect-analyze.c (vect_stmt_relevant_p): Process immediate uses
10464
        of non-virtual PHI nodes like we use to.
10465
 
10466
2005-05-15  Paolo Bonzini  
10467
 
10468
        * genattrtab.c (ATTR_EQ_ATTR_P): Remove.
10469
        (attr_copy_rtx): Do not use it.
10470
 
10471
2005-04-15  Andrew Macleod  
10472
 
10473
        * doc/tree-ssa.texi: Grammer/abbreviation updates.
10474
 
10475
2005-04-15  Diego Novillo  
10476
 
10477
        * tree-vect-transform.c (vectorizable_store): Mark necessary
10478
        objects in the vectorized store needing renaming.  Update the
10479
        SSA graph for V_MAY_DEF operands in the original store.
10480
 
10481
2005-04-14  Daniel Berlin 
10482
 
10483
        * tree-ssa-pre.c (compute_avail): It's okay to have
10484
        TREE_INVARIANT's here, and value number the resulting expressions.
10485
        (create_expression_by_pieces): Make sure operands that were
10486
        min_invariant when we started, stay that way.
10487
 
10488
2005-04-15  David Edelsohn  
10489
 
10490
        * doc/install.texi (*-ibm-aix*): Add comment about system limits.
10491
 
10492
2005-04-15  Kazu Hirata  
10493
 
10494
        PR tree-optimization/20936.
10495
        * tree-ssa-ccp.c (visit_assignment): Fix a typo.
10496
 
10497
2005-04-15  Volker Reichelt  
10498
 
10499
        * doc/invoke.texi: Fix typos.
10500
        * doc/md.texi: Likewise.
10501
        * doc/rtl.texi: Likewise.
10502
        * doc/sourcebuild.texi: Likewise.
10503
        * doc/tm.texi: Likewise.
10504
 
10505
2005-04-15  Uros Bizjak  
10506
 
10507
        PR tree-optimization/21004
10508
        * convert.c (convert_to_integer): Convert ceilf, ceill, floorf
10509
        and floorl in c99 mode only.
10510
        * builtins.c (expand_builtin_int_roundingfn): Assert that
10511
        fallback_fndecl is not NULL_TREE.
10512
 
10513
2005-04-15  Kazu Hirata  
10514
 
10515
        * cfgrtl.c (purge_all_dead_edge): Remove an unused argument.
10516
        * basic-block.h: Update the prototype for
10517
        purge_all_dead_edges.
10518
        * cfgexpand.c (tree_expand_cfg): Update a call to
10519
        purge_all_dead_edges.
10520
        * combine.c (combine_instructions): Likewise.
10521
        * passes.c (rest_of_handle_old_regalloc, rest_of_handle_cse,
10522
        rest_of_handle_cse2, rest_of_handle_gcse,
10523
        rest_of_handle_postreload): likewise.
10524
 
10525
2005-04-15  Alexandre Oliva  
10526
 
10527
        PR middle-end/20739
10528
        * gimplify.c (gimplify_addr_expr): Compensate for removal of
10529
        e.g. cv-qualification conversions.
10530
 
10531
2005-04-14  Mike Stump  
10532
 
10533
        * config/darwin-c.c (framework_construct_pathname): We must
10534
        find all headers of a framework in the first instance of it
10535
        found in the seach path.
10536
 
10537
2005-04-14  Kazu Hirata  
10538
 
10539
        PR tree-optimization/21021
10540
        * tree-vrp.c (compare_values): Work around a bug in the front
10541
        end that produces a comparison of mismatched types.
10542
 
10543
2004-04-14  Richard Henderson  
10544
 
10545
        * config/ia64/ia64.h (enum fetchop_code): Remove.
10546
        (enum ia64_builtins): Move ...
10547
        * config/ia64/ia64.c (enum ia64_builtins): ... here.  Remove all
10548
        members except BSP and FLUSHRS.
10549
        (ia64_init_builtins): Remove __sync builtins.
10550
        (ia64_expand_builtin): Likewise.
10551
        (ia64_expand_fetch_and_op, ia64_expand_op_and_fetch): Remove.
10552
        (ia64_expand_compare_and_swap, ia64_expand_lock_test_and_set): Remove.
10553
        (ia64_expand_lock_release): Remove.
10554
        * config/ia64/ia64.md (mf): Move to sync.md.
10555
        (mf_internal, fetchadd_acq_si, fetchadd_acq_di, cmpxchg_acq_si,
10556
        cmpxchg_acq_di, xchgsi, xchgdi): Likewise.
10557
        * config/ia64/sync.md: New file.
10558
        (memory_barrier): Rename from mf.
10559
        (fetchadd_acq_): Macroize from _si/_di patterns.
10560
        (cmpxchg_acq_): Likewise.
10561
        (sync_lock_test_and_set): Likewise.
10562
 
10563
        * config/ia64/ia64intrin.h: Define nothing for C; limit #defines
10564
        to c++.  Remove __sync* declarations.  s/_si/_4/.  s/_di/_8/.
10565
 
10566
2004-04-14  Richard Henderson  
10567
 
10568
        * config/i386/i386.c (x86_cmpxchg, x86_xadd): New.
10569
        (ix86_compare_emitted): New.
10570
        (ix86_expand_compare): Use ix86_compare_emitted if set.
10571
        (ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0
10572
        and ix86_compare_op0 are set.
10573
        * config/i386/i386.h (x86_cmpxchg, x86_xadd): Declare.
10574
        (TARGET_CMPXCHG, TARGET_XADD): New.
10575
        (ix86_compare_emitted): Declare.
10576
        * config/i386/i386.md: Include sync.md
10577
        (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2): New.
10578
        (UNSPECV_XCHG, UNSPECV_LOCK): New.
10579
        * config/i386/sync.md: New file.
10580
 
10581
2004-04-14  Richard Henderson  
10582
 
10583
        PR middle-end/14311
10584
        * builtin-types.def (BT_BOOL, BT_VOLATILE_PTR, BT_I1, BT_I2,
10585
        BT_I4, BT_I8, BT_FN_VOID_VPTR, BT_FN_I1_VPTR_I1, BT_FN_I2_VPTR_I2,
10586
        BT_FN_I4_VPTR_I4, BT_FN_I8_VPTR_I8, BT_FN_BOOL_VPTR_I1_I1,
10587
        BT_FN_BOOL_VPTR_I2_I2, BT_FN_BOOL_VPTR_I4_I4, BT_FN_BOOL_VPTR_I8_I8,
10588
        BT_FN_I1_VPTR_I1_I1, BT_FN_I2_VPTR_I2_I2, BT_FN_I4_VPTR_I4_I4,
10589
        BT_FN_I8_VPTR_I8_I8): New.
10590
        * builtins.def (DEF_SYNC_BUILTIN): New.
10591
        (BUILT_IN_FETCH_AND_ADD_N, BUILT_IN_FETCH_AND_ADD_1,
10592
        BUILT_IN_FETCH_AND_ADD_2, BUILT_IN_FETCH_AND_ADD_4,
10593
        BUILT_IN_FETCH_AND_ADD_8, BUILT_IN_FETCH_AND_SUB_N,
10594
        BUILT_IN_FETCH_AND_SUB_1, BUILT_IN_FETCH_AND_SUB_2,
10595
        BUILT_IN_FETCH_AND_SUB_4, BUILT_IN_FETCH_AND_SUB_8,
10596
        BUILT_IN_FETCH_AND_OR_N, BUILT_IN_FETCH_AND_OR_1,
10597
        BUILT_IN_FETCH_AND_OR_2, BUILT_IN_FETCH_AND_OR_4,
10598
        BUILT_IN_FETCH_AND_OR_8, BUILT_IN_FETCH_AND_AND_N,
10599
        BUILT_IN_FETCH_AND_AND_1, BUILT_IN_FETCH_AND_AND_2,
10600
        BUILT_IN_FETCH_AND_AND_4, BUILT_IN_FETCH_AND_AND_8,
10601
        BUILT_IN_FETCH_AND_XOR_N, BUILT_IN_FETCH_AND_XOR_1,
10602
        BUILT_IN_FETCH_AND_XOR_2, BUILT_IN_FETCH_AND_XOR_4,
10603
        BUILT_IN_FETCH_AND_XOR_8, BUILT_IN_FETCH_AND_NAND_N,
10604
        BUILT_IN_FETCH_AND_NAND_1, BUILT_IN_FETCH_AND_NAND_2,
10605
        BUILT_IN_FETCH_AND_NAND_4, BUILT_IN_FETCH_AND_NAND_8,
10606
        BUILT_IN_ADD_AND_FETCH_N, BUILT_IN_ADD_AND_FETCH_1,
10607
        BUILT_IN_ADD_AND_FETCH_2, BUILT_IN_ADD_AND_FETCH_4,
10608
        BUILT_IN_ADD_AND_FETCH_8, BUILT_IN_SUB_AND_FETCH_N,
10609
        BUILT_IN_SUB_AND_FETCH_1, BUILT_IN_SUB_AND_FETCH_2,
10610
        BUILT_IN_SUB_AND_FETCH_4, BUILT_IN_SUB_AND_FETCH_8,
10611
        BUILT_IN_OR_AND_FETCH_N, BUILT_IN_OR_AND_FETCH_1,
10612
        BUILT_IN_OR_AND_FETCH_2, BUILT_IN_OR_AND_FETCH_4,
10613
        BUILT_IN_OR_AND_FETCH_8, BUILT_IN_AND_AND_FETCH_N,
10614
        BUILT_IN_AND_AND_FETCH_1, BUILT_IN_AND_AND_FETCH_2,
10615
        BUILT_IN_AND_AND_FETCH_4, BUILT_IN_AND_AND_FETCH_8,
10616
        BUILT_IN_XOR_AND_FETCH_N, BUILT_IN_XOR_AND_FETCH_1,
10617
        BUILT_IN_XOR_AND_FETCH_2, BUILT_IN_XOR_AND_FETCH_4,
10618
        BUILT_IN_XOR_AND_FETCH_8, BUILT_IN_NAND_AND_FETCH_N,
10619
        BUILT_IN_NAND_AND_FETCH_1, BUILT_IN_NAND_AND_FETCH_2,
10620
        BUILT_IN_NAND_AND_FETCH_4, BUILT_IN_NAND_AND_FETCH_8,
10621
        BUILT_IN_BOOL_COMPARE_AND_SWAP_N, BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
10622
        BUILT_IN_BOOL_COMPARE_AND_SWAP_2, BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
10623
        BUILT_IN_BOOL_COMPARE_AND_SWAP_8, BUILT_IN_VAL_COMPARE_AND_SWAP_N,
10624
        BUILT_IN_VAL_COMPARE_AND_SWAP_1, BUILT_IN_VAL_COMPARE_AND_SWAP_2,
10625
        BUILT_IN_VAL_COMPARE_AND_SWAP_4, BUILT_IN_VAL_COMPARE_AND_SWAP_8,
10626
        BUILT_IN_LOCK_TEST_AND_SET_N, BUILT_IN_LOCK_TEST_AND_SET_1,
10627
        BUILT_IN_LOCK_TEST_AND_SET_2, BUILT_IN_LOCK_TEST_AND_SET_4,
10628
        BUILT_IN_LOCK_TEST_AND_SET_8, BUILT_IN_LOCK_RELEASE_N,
10629
        BUILT_IN_LOCK_RELEASE_1, BUILT_IN_LOCK_RELEASE_2,
10630
        BUILT_IN_LOCK_RELEASE_4, BUILT_IN_LOCK_RELEASE_8,
10631
        BUILT_IN_SYNCHRONIZE: New.
10632
        * builtins.c (called_as_built_in): Rewrite from CALLED_AS_BUILT_IN
10633
        as a function.  Accept __sync_ as a prefix as well.
10634
        (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
10635
        expand_builtin_lock_test_and_set, expand_builtin_synchronize,
10636
        expand_builtin_lock_release): New.
10637
        (expand_builtin): Call them.
10638
        * c-common.c (DEF_BUILTIN): Don't require __builtin_ prefix if
10639
        neither BOTH_P nor FALLBACK_P are defined.
10640
        (builtin_type_for_size): New.
10641
        (sync_resolve_size, sync_resolve_params, sync_resolve_return): New.
10642
        (resolve_overloaded_builtin): New.
10643
        * c-common.h (resolve_overloaded_builtin): Declare.
10644
        (builtin_type_for_size): Declare.
10645
        * c-typeck.c (build_function_call): Invoke resolve_overloaded_builtin.
10646
        * expr.c (sync_add_optab, sync_sub_optab, sync_ior_optab,
10647
        sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab,
10648
        sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab,
10649
        sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab,
10650
        sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab,
10651
        sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap,
10652
        sync_compare_and_swap_cc, sync_lock_test_and_set,
10653
        sync_lock_release): New.
10654
        * optabs.h: Declare them.
10655
        * expr.h (expand_val_compare_and_swap, expand_bool_compare_and_swap,
10656
        expand_sync_operation, expand_sync_fetch_operation,
10657
        expand_sync_lock_test_and_set): Declare.
10658
        * genopinit.c (optabs): Add sync optabs.
10659
        * optabs.c (init_optabs): Initialize sync optabs.
10660
        (expand_val_compare_and_swap_1, expand_val_compare_and_swap,
10661
        expand_bool_compare_and_swap, expand_compare_and_swap_loop,
10662
        expand_sync_operation, expand_sync_fetch_operation,
10663
        expand_sync_lock_test_and_set): New.
10664
        * doc/extend.texi (Atomic Builtins): New section
10665
        * doc/md.texi (Standard Names): Add sync patterns.
10666
 
10667
2005-04-14  Alexandre Oliva  
10668
 
10669
        * tree-eh.c (lower_try_finally_copy): Generate new code in
10670
        response to goto_queue entries as if the queue was sorted by
10671
        index, not pointers.
10672
        (lower_try_finally_switch): Likewise.
10673
 
10674
2005-04-14  Richard Henderson  
10675
 
10676
        * config/i386/i386.c (ix86_expand_sse_cmp): Split out from ...
10677
        (ix86_expand_sse_movcc): ... here.  Take cmp as a pre-computed
10678
        register.
10679
        (ix86_expand_fp_movcc): Update to match.
10680
        (ix86_expand_fp_vcond, ix86_expand_int_vcond): New.
10681
        * config/i386/i386-protos.h: Update.
10682
        * config/i386/sse.md (vcondv4sf, vcondv2df): New.
10683
        (vcond, vcondu): New.
10684
 
10685
2005-04-14  Joseph S. Myers  
10686
 
10687
        * doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
10688
        refer to 4.0.
10689
 
10690
2005-04-14  Julian Brown  
10691
 
10692
        * Revert elfos.h part of my patch from 2005-04-13 for causing libstdc++
10693
        link failures on ppc64 Linux.
10694
 
10695
2005-04-14  Andreas Krebbel  
10696
 
10697
        * config.gcc: Set cpu_type for s390.
10698
 
10699
2005-04-14  Daniel Berlin  
10700
 
10701
        Fix PR tree-optimization/20963
10702
        * tree-ssa-pre.c (compute_avail): Remove special case for
10703
        TREE_INVARIANT.
10704
        (create_expression_by_pieces): Add value numbers for forced out
10705
        statements.
10706
 
10707
2005-04-14  Hans-Peter Nilsson  
10708
 
10709
        * config/cris/cris.md: Replace references to (reg:SI 16) with
10710
        (reg:SI CRIS_SRP_REGNUM).
10711
 
10712
2005-04-14  Kazu Hirata  
10713
 
10714
        PR tree-optimization/20657
10715
        * tree-vrp.c (extract_range_from_expr): Notice INTEGER_CST to
10716
        create an appropriate range from it.
10717
 
10718
2005-04-14  Uros Bizjak  
10719
 
10720
        * reg-stack.c (subst_stack_regs_pat): Handle  and
10721
         case.
10722
 
10723
        * config/i386/i386.md (UNSPEC_FIST_FLOOR, UNSPEC_FIST_CEIL): New.
10724
        (*fist2_floor_1, fistdi2_floor, fistdi2_floor_with_temp)
10725
        (fist2_floor, fist2_floor_with_temp): New isns patterns
10726
        to implement lfloor and llfloor built-ins as x87 intrinsic function.
10727
        (fistdi2_floor, fist2_floor splitters): New splitters.
10728
        (lfloor2): New expanders.
10729
        (*fist2_ceil_1, fistdi2_ceil, fistdi2_ceil_with_temp)
10730
        (fist2_ceil, fist2_ceil_with_temp): New isns patterns
10731
        to implement lceil and llceil built-ins as x87 intrinsic function.
10732
        (fistdi2_ceil, fist2_ceil splitters): New splitters.
10733
        (lceil2): New expanders.
10734
 
10735
2005-04-14  Uros Bizjak  
10736
 
10737
        * convert.c (convert_to_integer): Convert (long int)trunc{,f,l},
10738
        and (long long int)ceil{,f,l} into FIX_TRUNC_EXPR.
10739
 
10740
2005-04-14  Ulrich Weigand  
10741
 
10742
        PR target/20927
10743
        * config/s390/s390-modes.def: Define TFmode.
10744
 
10745
2005-04-13  Richard Sandiford  
10746
 
10747
        * config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
10748
        (JUMP_TABLES_IN_TEXT_SECTION): Define.
10749
        * config/mips/mips.c (mips16_insn_length): Remove reference to
10750
        JUMP_TABLES_IN_TEXT_SECTION.
10751
 
10752
2005-04-13 Fariborz Jahanian 
10753
 
10754
        * simplify-rtx.c (simplify_binary_operation_1): Return
10755
        scalar or vector of constant 0, depending on the xor's
10756
        mode.
10757
 
10758
2005-04-13  Dale Johannesen  
10759
 
10760
        * objc/Make-lang.in (objc-lang.o):  Depend on tree-gimple.h.
10761
        (objc-act.o):  Ditto.
10762
        * objc/objc-act.c (objc_gimplify_expr):  New.
10763
        (objc_get_callee_fndecl):  New.
10764
        * objc/objc-act.h:  Include tree-gimple.h.  Declare new functions.
10765
        * objc/objc-lang.c (LANG_HOOKS_GIMPLIFY_EXPR):  Define.
10766
        (LANG_HOOKS_GET_CALLEE_FNDECL):  Define.
10767
 
10768
2005-04-13  Devang Patel  
10769
 
10770
        * tree-if-conv.c (tree_if_convert_cond_expr): Do not create extra
10771
        temp variables.
10772
 
10773
2005-04-13  Hans-Peter Nilsson  
10774
 
10775
        CRIS prologue as RTL.
10776
        * config/cris/cris-protos.h (cris_emit_movem_store)
10777
        (cris_expand_prologue): Prototype.
10778
        * config/cris/cris.c (struct machine_function): New member
10779
        stdarg_regs.
10780
        (cfa_label_num, cris_target_asm_function_prologue): Remove.
10781
        (TARGET_ASM_FUNCTION_PROLOGUE): Don't override.
10782
        (cris_general_operand_or_gotless_symbol): Accept CRIS_UNSPEC_GOT.
10783
        (cris_load_multiple_op, cris_return_address_on_stack)
10784
        (cris_return_address_on_stack_for_return): ISO-Cify.
10785
        (cris_store_multiple_op): New predicate function.
10786
        (cris_expand_prologue, cris_emit_movem_store): New functions.
10787
        (cris_print_operand) : Handle modifications other than
10788
        post-increment.
10789
        (cris_symbol, cris_got_symbol): Return 0 for CRIS_UNSPEC_GOT.
10790
        (cris_gotless_symbol): Return 1 for CRIS_UNSPEC_GOT.
10791
        (cris_gen_movem_load): Rearrange slightly to make local variable
10792
        src a parameter, removing osrc.
10793
        (cris_setup_incoming_varargs): Set machine_function member
10794
        stdarg_regs to correspond to the number of registers that need to
10795
        be saved.
10796
        * config/cris/cris.h (EXTRA_CONSTRAINT_S): Accept
10797
        CRIS_UNSPEC_GOT.
10798
        (PREDICATE_CODES): Add cris_store_multiple_op.  Make
10799
        cris_general_operand_or_gotless_symbol accept UNSPEC.
10800
        * config/cris/cris.md (CRIS_UNSPEC_GOT): New constant.
10801
        ("*movsi_internal") : Handle CRIS_UNSPEC_GOT.
10802
        ("*cris_store_multiple"): New pattern.  Tweak common comment above
10803
        this and "*cris_load_multiple".
10804
        ("prologue"): New define_expand.
10805
 
10806
        * config/cris/cris.md ("epilogue"): Conditionalize on
10807
        TARGET_PROLOGUE_EPILOGUE.
10808
 
10809
2005-04-13  Steve Ellcey  
10810
 
10811
        PR target/20924
10812
        * config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
10813
        fpsr 0 instead of fpsr 1.
10814
        (divsf3_internal_thr): Ditto.
10815
        (divdf3_internal_lat): Ditto.
10816
        (divdf3_internal_thr): Ditto.
10817
        (divxf3_internal_lat): Ditto.
10818
        (divxf3_internal_thr): Ditto.
10819
 
10820
2005-04-13  Kazu Hirata  
10821
 
10822
        PR tree-optimization/20913
10823
        * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Fold COND_EXPR.
10824
 
10825
        PR tree-optimization/20702
10826
        * tree-vrp.c (maybe_add_assert_expr): Recurse into
10827
        dominator children that haven't been walked into.
10828
 
10829
2005-04-13  Julian Brown  
10830
 
10831
        * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK from
10832
        being used for symbols with vague linkage when HAVE_GAS_COMDAT_GROUP
10833
        is true.
10834
 
10835
2005-04-13  Kazu Hirata  
10836
 
10837
        * basic-block.h, tree-ssa-uncprop.c, varasm.c,
10838
        config/i386/sse.md: Fix comment typos.
10839
 
10840
        * genattrtab.c (NULL_ATTR): Remove.
10841
        * ifcvt.c (NULL_EDGE): Likewise.
10842
 
10843
        * rtl.h (RTX_EXPR_FIRST, RTX_EXPR_LAST): Remove.
10844
 
10845
        * rtl.h (NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS,
10846
        NOTE_PREDICT): Remove.
10847
 
10848
2005-04-13  Eric Botcazou  
10849
 
10850
        * configure.ac (gcc_AC_CHECK_DECLS): Add vsnprintf.
10851
        * configure: Regenerate.
10852
        * config.in: Likewise.
10853
        * system.h: Declare vsnprintf if not already declared.
10854
 
10855
2005-04-13  Eric Botcazou  
10856
 
10857
        * optc-gen.awk: Handle stand-alone Mask records.
10858
        * opth-gen.awk: Likewise.
10859
        * doc/options.texi (Option file format): Document them.
10860
        * config.gcc (sparc-*-netbsdelf*, sparc-*-linux*, sparc64-*-freebsd*,
10861
        sparc64-*-linux*, sparc64-*-netbsd*): Add long-double-switch.opt.
10862
        (sparc64-*-openbsd*, sparc64-*-elf*): Add little-endian.opt.
10863
        * config/sparc/sparc.h (MASK_FPU, MASK_UNALIGNED_DOUBLES,
10864
        MASK_V8, MASK_SPARCLITE, MASK_SPARCLET, MASK_V9,
10865
        MASK_DEPRECATED_V8_INSNS, MASK_IMPURE_TEXT, MASK_APP_REGS,
10866
        MASK_HARD_QUAD, MASK_LITTLE_ENDIAN, MASK_PTR64, MASK_64BIT,
10867
        MASK_STACK_BIAS, MASK_FPU_SET, MASK_VIS, MASK_V8PLUS,
10868
        MASK_FASTER_STRUCTS, MASK_LONG_DOUBLE_128): Delete.
10869
        (TARGET_FPU, TARGET_UNALIGNED_DOUBLES, TARGET_V8, TARGET_SPARCLITE,
10870
        TARGET_SPARCLET, TARGET_V9, TARGET_DEPRECATED_V8_INSNS,
10871
        TARGET_IMPURE_TEXT, TARGET_APP_REGS, MASK_HARD_QUAD,
10872
        TARGET_LITTLE_ENDIAN, TARGET_PTR64, TARGET_64BIT, MASK_STACK_BIAS,
10873
        TARGET_FPU_SET, TARGET_VIS, TARGET_V8PLUS, TARGET_FASTER_STRUCTS,
10874
        TARGET_LONG_DOUBLE_128): Likewise.
10875
        (TARGET_SWITCHES, SUBTARGET_SWITCHES): Likewise.
10876
        (TARGET_OPTIONS, SUBTARGET_OPTIONS): Likewise.
10877
        * config/sparc/freebsd.h (SUBTARGET_SWITCHES): Likewise.
10878
        * config/sparc/linux.h (SUBTARGET_SWITCHES): Likewise.
10879
        * config/sparc/linux64.h (SUBTARGET_SWITCHES): Likewise.
10880
        * config/sparc/netbsd-elf.h (SUBTARGET_SWITCHES): Likewise.
10881
        * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
10882
        * config/sparc/sparc.c (fpu_option_set): New global.
10883
        (sparc_handle_option): New function.
10884
        (sparc_override_options): Test fpu_option_set.
10885
        (TARGET_DEFAULT_TARGET_FLAGS): Set to TARGET_DEFAULT.
10886
        (TARGET_HANDLE_OPTION): Set to sparc_handle_option.
10887
        * config/sparc/sparc.opt: New file.
10888
        * config/sparc/little-endian.opt: Likewise.
10889
        * config/sparc/long-double-switch.opt: Likewise.
10890
 
10891
2005-04-13  Bernd Schmidt  
10892
 
10893
        * config/bfin/bfin.c (bfin_lib_id_given): New static variable.
10894
        (bfin_handle_options): Set it if -mshared-library-id= is seen.
10895
        * config/bfin/bfin.opt (mshared-library-id=): Lose
10896
        Var(bfin_lib_id_given).
10897
 
10898
2005-04-13  Matt Thomas  
10899
 
10900
        * config/rs6000/sysv4.h (NO_IMPLICIT_EXTERN_C): undefine before
10901
        defining.
10902
 
10903
2005-04-13  Kazu Hirata  
10904
 
10905
        * rtl.h (CLEAR_RTX_FLAGS): Remove.
10906
 
10907
        * cgraphunit.c (INSNS_PER_CALL): Remove.
10908
 
10909
        * tree-ssa-forwprop.c (vars,
10910
        record_single_argument_cond_exprs,
10911
        substitute_single_use_vars): Remove.
10912
        (forward_propagate_into_cond_1, forward_propagate_into_cond):
10913
        New.
10914
        (tree_ssa_forward_propagate_single_use_vars): Call
10915
        forward_propagate_into_cond for each COND_EXPR.
10916
 
10917
        * tree-inline.c (INSNS_PER_STMT): Remove.
10918
 
10919
2005-04-12  Richard Henderson  
10920
 
10921
        * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Split ...
10922
        (ix86_expand_sse_fp_minmax): ... from ...
10923
        (ix86_expand_fp_movcc): ... here.
10924
        (ix86_expand_sse_movcc): Rewrite from ix86_split_sse_movcc.
10925
        * config/i386/i386-protos.h: Update.
10926
        * config/i386/i386.md (UNSPEC_IEEE_MIN, UNSPEC_IEEE_MAX): New.
10927
        (sse_setccsf, sse_setccdf): Allow before reload.
10928
        (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): Remove.
10929
        (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): Remove.
10930
        (ieee_sminsf3, ieee_smaxsf3, ieee_smindf3, ieee_smaxdf3): New.
10931
        * config/i386/sse.md (andsf3, nandsf3, iorsf3, xorsf3): New.
10932
        (anddf3, nanddf3, iordf3, xordf3): New.
10933
 
10934
2005-04-12  Jeff Law  
10935
 
10936
        * Makefile.in (OBJS-common): Add tree-ssa-uncprop.o.
10937
        (tree-ssa-uncprop.o): Add dependencies.
10938
        * tree-cfg.c (remove_useless_stmts_bb, remove_useless_stmts): Remove.
10939
        * tree-flow.h (remove_useless_stmts): Remove prototype.
10940
        * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
10941
        remove_useless_stmts.
10942
        * timevar.def (TV_TREE_SSA_UNCPROP): New timevar.
10943
        * tree-optimize.c (init_tree_optimization_passes): Add uncprop pass.
10944
        * tree-pass.h (pass_uncprop): Declare.
10945
        * tree-ssa-uncprop.c: New file.
10946
 
10947
2005-04-12  James E. Wilson  
10948
 
10949
        PR target/20670
10950
        * unwind-ia64.c (uw_intall_context): Add missing load of r27.
10951
 
10952
2005-04-12  Caroline Tice  
10953
 
10954
        Temporary fix for partitioning problems.
10955
        * passes.c (rest_of_handle_final): Remove code that
10956
        frees unlikely_text_section_name,
10957
        * varasm.c (assemble_start_function): Test for partitioning
10958
        flag before writing out section labels.
10959
        (assemble_end_function): Test for partitioning flag before
10960
        writing out section labels.
10961
 
10962
2005-04-12  Steven Bosscher  
10963
            Stuart Hastings 
10964
            Jan Hubicka  
10965
 
10966
        * Makefile.in: Add function.h to BASIC_BLOCK_H.  Remove all
10967
        references to gt-tree-cfg.h.
10968
        * basic-block.h (struct basic_block_def): Don't skip rbi
10969
        for garbage collection.
10970
        (struct reorder_block_def): Make GTY-able.
10971
        (struct control_flow_graph): New structure.
10972
        (n_edges, n_basic_blocks, last_basic_block, basic_block_info,
10973
        BASIC_BLOCK, EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR): No longer vars,
10974
        but instead defines to the control_flow_graph for cfun.
10975
        (label_to_block_map): New define, points to the label map of
10976
        the control_flow_graph for cfun.
10977
        (n_edges_for_function, n_basic_blocks_for_function,
10978
        last_basic_block_for_function, basic_block_info_for_function,
10979
        EXIT_BLOCK_PTR_FOR_FUNCTION, ENTRY_BLOCK_PTR_FOR_FUNCTION,
10980
        basic_block_info_for_function, label_to_block_map_for_function):
10981
        Counterparts for the above, taking a struct function as an extra
10982
        argument.
10983
        (alloc_rbi_pool, free_rbi_pool): Remove prototypes.
10984
        * cfg.c: (n_edges, n_basic_blocks, last_basic_block,
10985
        basic_block_info, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Remove.
10986
        (alloc_rbi_pool, free_rbi_pool): Remove.
10987
        (initialize_bb_rbi): Use ggc_alloc_cleared instead of pool_alloc.
10988
        * cfglayout.c: (cfg_layout_initialize): Don't allocate the rbi pool
10989
        here...
10990
        (cfg_layout_finalize) ... and don't free it here.
10991
        * cfgrtl.c (cfg_layout_delete_block): Zero out rbi so it gets
10992
        garbage collected.
10993
        * flow.c (free_basic_block_vars): Set label_to_block_map and
10994
        n_edges to zero too.
10995
        * function.h (struct function): Add cfg field.
10996
        * function.c (allocate_struct_function): Allocate the cfg.
10997
        * tree-cfg.c (label_to_block_map): Remove.
10998
        (build_tree_cfg): Don't allocate the rbi pool here...
10999
        (delete_tree_cfg_annotations): ...and don't free it here.
11000
        Also don't nullify label_to_block_map for cfun.
11001
 
11002
2005-04-12  Caroline Tice  
11003
 
11004
        * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
11005
        Revert my patch from April 9.
11006
        (fix_edges_for_rarely_executed_code): Revert my patch from April 9.
11007
        (reorder_basic_blocks): Revert my patch from April 9.
11008
        (insert_section_boundary_note): Revert my patch from April 9.
11009
        * dbxout.c (dbxout_function_end): Revert my patch from April 9.
11010
        * dwarf2out.c (COLD_TEXT_SECTION_LABEL): Revert my patch from April 9.
11011
        (COLD_END_LABEL):  Revert my patch from April 9.
11012
        (cold_text_section_label):  Revert my patch from April 9.
11013
        (cold_end_label): Revert my patch from April 9.
11014
        (dwarf2out_switch_text_section): Revert my patch from April 9.
11015
        (output_aranges): Revert my patch from April 9.
11016
        (output_ranges):  Revert my patch from April 9.
11017
        (output_line_info): Revert my patch from April 9.
11018
        (add_location_or_const_value_attribute):  Revert my patch from April 9.
11019
        (dwarf2out_var_location): Revert my patch from April 9.
11020
        (dwarf2out_init):  Revert my patch from April 9.
11021
        (dwarf2out_finish): Revert my patch from April 9.
11022
        * function.h (struct function): Revert my patch from April 9.
11023
        * opts.c (decode_options): Revert my patch from April 9.
11024
        * output.h (unlikely_section_label, hot_section_label,
11025
        hot_section_end_label, cold_section_end_label,
11026
        unlikely_text_section_name): Revert my patch from April 9.
11027
        * passes.c (rest_of_handle_final): Revert my patch from April 9.
11028
        * varasm.c (unlikely_section_label, hot_section_label,
11029
        hot_section_end_label, cold_section_end_label,
11030
        unlikely_text_section_name): Revert my patch from April 9.
11031
        (initialize_cold_section_name): Revert my patch from April 9.
11032
        (unlikely_text_section): Revert my patch from April 9.
11033
        (in_unlikely_text_section): Revert my patch from April 9.
11034
        (named_section): Revert my patch from April 9.
11035
        (function_section): Revert my patch from April 9.
11036
        (current_function_section): Revert my patch from April 9.
11037
        (assemble_start_function): Revert my patch from April 9.
11038
        (assemble_end_function): Revert my patch from April 9.
11039
        (default_section_type_flags_1): Revert my patch from April 9.
11040
 
11041
2005-04-12  Eric Botcazou  
11042
 
11043
        * config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
11044
        * config/sparc/sparc.md (untyped_call): Save the registers manually.
11045
 
11046
        * config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.
11047
 
11048
2005-04-12  Ulrich Weigand  
11049
 
11050
        PR middle-end/20917
11051
        * config/s390/s390.md ("*set_tp"): Use SET in pattern.
11052
        ("set_tp_64", "set_tp_31"): Adapt expanded pattern.
11053
 
11054
2004-04-12  Richard Henderson  
11055
 
11056
        * config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE,
11057
        UNSPEC_PSHUFLW, UNSPEC_PSHUFHW, UNSPEC_ADDSUB, UNSPEC_HADD,
11058
        UNSPEC_HSUB, UNSPEC_MOVSHDUP, UNSPEC_MOVSLDUP, UNSPEC_MOVDDUP): Remove.
11059
        (UNSPEC_*, UNSPECV_*): Renumber.
11060
 
11061
2005-04-12  Frank Ch. Eigler  
11062
 
11063
        PR mudflap/19266
11064
        From Richard Henderson :
11065
        * tree-mudflap.c (mf_build_check_statement_for): Correct block
11066
        splitting logic.
11067
 
11068
2005-04-12  Dorit Naishlos  
11069
 
11070
        * tree-cfg.c (tree_verify_flow_info): Use LABEL_EXPR_LABEL.
11071
 
11072
2005-04-12  Bernd Schmidt  
11073
 
11074
        * config/bfin/bfin.c (bfin_library_id_string): Remove.
11075
        (bfin_library_id): New variable.
11076
        (bfin_expand_prologue): Use bfin_library_id and bfin_lib_id_given
11077
        instead of bfin_library_id_string.
11078
        (bfin_handle_option): New function.
11079
        (override_options): Remove most code to deal with shared library IDs,
11080
        just check they aren't used without -mid-shared-library.
11081
        (TARGET_HANDLE_OPTION): Define.
11082
        * config/bfin/bfin.h (TARGET_OPTIONS): Delete macro.
11083
        * config/bfin/bfin.opt (mshared-library-id=): New.
11084
 
11085
2005-04-12  Kazu Hirata  
11086
 
11087
        * tree-vect-transform.c: Fix comment typos.
11088
 
11089
2005-04-12 Mostafa Hagog 
11090
 
11091
        * postreload-gcse.c (eliminate_partially_redundant_load): Don't
11092
        split critical edges when not possible/profitable.
11093
 
11094
2005-04-12  Richard Sandiford  
11095
 
11096
        * config/ns32k/ns32k.h (target_flags, MASK_32081, MASK_RTD)
11097
        (MASK_REGPARM, MASK_32532, MASK_32332, MASK_NO_SB, MASK_NO_BITFIELD)
11098
        (MASK_HIMEM, MASK_32381, MASK_MULT_ADD, MASK_SRC, MASK_IEEE_COMPARE)
11099
        (TARGET_32081, TARGET_32381, TARGET_MULT_ADD, TARGET_RTD)
11100
        (TARGET_REGPARM, TARGET_32532, TARGET_32332, TARGET_SB, TARGET_HIMEM)
11101
        (TARGET_BITFIELD, TARGET_IEEE_COMPARE, TARGET_SWITCHES): Delete.
11102
        (OVERRIDE_OPTIONS): Clear MASK_SB instead of setting MASK_NO_SB.
11103
        * config/ns32k/netbsd.h (TARGET_DEFAULT): Remove MASK_NO_SB and
11104
        MASK_NO_BITFIELD.
11105
        * config/ns32k/ns32k.c (ns32k_handle_option): New function.
11106
        (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
11107
        * config/ns32k/ns32k.opt: New file.
11108
 
11109
2005-04-12  Richard Sandiford  
11110
 
11111
        * config.gcc (m68k-*-linux*): Add m68k/ieee.opt to $extra_options.
11112
        * config/m68k/m68k.h (target_flags, MASK_68020, TARGET_68020)
11113
        (MASK_68030, TARGET_68030, MASK_68040, TARGET_68040, MASK_68040_ONLY)
11114
        (TARGET_68040_ONLY, MASK_68060, TARGET_68060, MASK_5200, TARGET_5200)
11115
        (MASK_CFV3, TARGET_CFV3, MASK_CFV4, TARGET_CFV4, MASK_528x)
11116
        (TARGET_528x, MASK_CF_HWDIV, TARGET_CF_HWDIV, MASK_68881, TARGET_68881)
11117
        (MASK_BITFIELD, TARGET_BITFIELD, MASK_SHORT, TARGET_SHORT)
11118
        (MASK_ALIGN_INT, TARGET_ALIGN_INT, MASK_PCREL, TARGET_PCREL)
11119
        (MASK_NO_STRICT_ALIGNMENT, TARGET_STRICT_ALIGNMENT, MASK_RTD)
11120
        (TARGET_RTD, MASK_SEP_DATA, TARGET_SEP_DATA, MASK_ID_SHARED_LIBRARY)
11121
        (TARGET_ID_SHARED_LIBRARY, MASK_ALL_CF_BITS, TARGET_SWITCHES)
11122
        (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Delete.
11123
        (MASK_COLDFIRE): Formatting fixes.
11124
        (TARGET_COLDFIRE): Turn into a boolean value for consistency.
11125
        * config/m68k/linux.h (SUBTARGET_SWITCHES): Delete.
11126
        * config/m68k/m68k.c (m68k_library_id_string): Initialize to
11127
        "_current_shared_library_a5_offset_".
11128
        (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
11129
        (MASK_ALL_CPU_BITS): New macro.
11130
        (m68k_handle_option): New function.
11131
        (override_options): Remove handling of m68k_library_id_string.
11132
        * config/m68k/m68k.opt: New file.
11133
        * config/m68k/ieee.opt: New file.
11134
 
11135
2005-04-11  Mark Mitchell  
11136
 
11137
        * target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
11138
        (TARGET_CXX_DETERMINE_CLASS_VISIBILITY): New macro.
11139
        (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
11140
        (TARGET_CXX): Adjust accordingly.
11141
        * target.h (struct gcc_target): Remove epxort_class_data.  Add
11142
        determine_class_data_visibility and class_data_always_comdat.
11143
        * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
11144
        (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Document.
11145
        (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
11146
        * config/arm/arm.c (arm_cxx_export_class_data): Remove.
11147
        (arm_cxx_determine_class_data_visibility): New.
11148
        (arm_cxx_class_data_always_comdat): Likewise.
11149
        (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
11150
        (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
11151
        (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
11152
        * config/arm/arm.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define.
11153
        * config/arm/symbian.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P):
11154
        Define.
11155
 
11156
2005-04-11  Devang Patel  
11157
 
11158
        * tree-data-ref.c (build_classic_dist_vector,
11159
        compute_subscript_distance): Make externally visible.
11160
        * tree-data-ref.h (build_classic_dist_vector,
11161
        compute_subscript_distance): Same.
11162
        * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
11163
        Check distance vector against vectorization factor.
11164
        (vect_analyze_loop): Determine vectorizaion factor before
11165
        analyzing data dependences.
11166
        * tree-vectorizer.c (loops_num): Make it externally visible and
11167
        rename ...
11168
        * tree-vectorizer.c (vect_loops_num): ... new name.
11169
        * tree-vectorizer.h  (vect_loops_num): New.
11170
 
11171
2005-04-11  Devang Patel  
11172
 
11173
        * tree-vect-analyze.c (vect_analyze_operations): Check
11174
        vectorizable codition.
11175
        * tree-vect-transform.c (vect_is_simple_cond): New function.
11176
        (vectorizable_condition): New function.
11177
        (vect_transform_stmt): Handle condition_vec_info_type.
11178
        * tree-vectorizer.h (enum stmt_vec_info_type): Add
11179
        condition_vec_info_type.
11180
        (vectorizable_condition): New.
11181
 
11182
2005-04-11  Geoffrey Keating  
11183
 
11184
        * config/i386/i386.h (TARGET_FPMATH_DEFAULT): New.
11185
        * config/i386/darwin.h (TARGET_FPMATH_DEFAULT): New.
11186
        * config/i386/i386.c (override_options): Use TARGET_FPMATH_DEFAULT.
11187
 
11188
        * config/i386/darwin.h (ASM_SPEC): Use -arch i386 not -arch i686.
11189
        (SUBTARGET_EXTRA_SPECS): Always 'i386'.
11190
 
11191
        * dwarf2out.c (output_line_info): Don't try to dereference
11192
        a NULL current_function_decl.
11193
 
11194
        * config/t-slibgcc-darwin: Don't put shared libraries in
11195
        directories other than $(slibdir).
11196
        * config/rs6000/darwin.h: Find -m64 libgcc under the name the
11197
        OS uses for it.
11198
 
11199
2005-04-11  Diego Novillo  
11200
 
11201
        PR tree-optimization/20933
11202
        * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Move
11203
        logic to reject aliases between read-only and writable
11204
        variables ...
11205
        (may_alias_p): ... here.
11206
        (get_tmt_for): Do not associate read-only tags to pointers
11207
        whose pointed-to type is not read-only.
11208
        * tree-ssa.c (verify_ssa): Check that memory stores have at
11209
        least one V_MAY_DEF or V_MUST_DEF.
11210
 
11211
2005-04-11  Kaveh R. Ghazi  
11212
 
11213
        PR/17092
11214
        * configure.ac (gcc_UNLOCKED_FUNCS): New.
11215
        (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
11216
        * system.h (putchar, getc, getchar, clearerr, feof, fileno,
11217
        fflush, fgetc, fgets, ferror, fread): Redefine to the associated
11218
        _unlocked function.
11219
        (fwrite_unlocked): Fix prototype.
11220
 
11221
        * configure, config.in: Regenerate.
11222
 
11223
2005-04-11  David Edelsohn  
11224
 
11225
        * tree-ssa-loop-im.c: Include real.h.
11226
        (determine_invariantness_stmt): If real division divisor is
11227
        invariant and flag_unsafe_math_optimizations enabled, generate
11228
        invariant reciprocal for hoisting.
11229
        * Makefile.in (tree-ssa-loop-im.o): Add real.h dependency.
11230
 
11231
2005-04-11  Daniel Berlin  
11232
 
11233
        Fix PR tree-optimization/20926
11234
 
11235
        * tree-ssa-alias.c (add_type_alias): Handle subvars.
11236
 
11237
2005-04-11  Devang Patel  
11238
 
11239
        * config/rs6000.c (rs6000_emit_vector_select): Fix vector select
11240
        operand ordering.
11241
 
11242
2005-04-11  Andrew Pinski  
11243
 
11244
        * fold-const.c (fold_binary_op_with_conditional_arg):
11245
        use fold_buildN instead of "fold (buildN" in some
11246
        non obvious places.
11247
        (fold_unary): Likewise.
11248
        (fold_binary): Likewise.
11249
 
11250
2005-04-11  Daniel Berlin  
11251
 
11252
        Fix PR tree-optimization/20612
11253
        * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix increment
11254
        handling
11255
        (perfect_nestify): preheaderbb is *not* part of loop of the
11256
        old destination.
11257
 
11258
2005-04-11  Andrew Pinski  
11259
 
11260
        * tree-ssa-alias.c (may_alias_p): If the variable
11261
        is a global variable and the pointer is parameter
11262
        and -fargument-noalias-global is used, then
11263
        the pointer cannot alias the variable.
11264
 
11265
2005-04-11  James A. Morrison  
11266
 
11267
        * config/sparc/sparc.c: Use gcc_assert and gcc_unreachable.
11268
        * config/sparc/sparc.h: Likewise.
11269
        * config/sparc/sparc.md: Likewise.
11270
 
11271
2005-04-11  Kazu Hirata  
11272
 
11273
        * tree-vrp.c (maybe_add_assert_expr): Move a comment.
11274
 
11275
        * tree-vrp.c: Fix a comment typo.
11276
 
11277
2005-04-11  Diego Novillo  
11278
 
11279
        PR tree-optimization/20920
11280
        * tree-pretty-print.c (dump_generic_node): Show '(ab)' if an
11281
        SSA_NAME flows through an abnormal edge.
11282
        * tree-vrp.c (infer_value_range): Ignore SSA names that flow
11283
        through abnormal edges.
11284
        (maybe_add_assert_expr): Likewise.
11285
 
11286
2005-04-11  Richard Sandiford  
11287
 
11288
        * config/s390/s390.h (s390_tune_string, s390_arch_string)
11289
        (s390_warn_framesize_string, s390_warn_dynamicstack_string)
11290
        (s390_stack_size_string, s390_stack_guard_string, target_flags)
11291
        (MASK_HARD_FLOAT, MASK_SMALL_EXEC, MASK_DEBUG_ARG, MASK_64BIT)
11292
        (MASK_ZARCH, MASK_MVCLE, MASK_TPF_PROFILING, MASK_NO_FUSED_MADD)
11293
        (MASK_BACKCHAIN, MASK_PACKED_STACK, TARGET_HARD_FLOAT)
11294
        (TARGET_SOFT_FLOAT, TARGET_SMALL_EXEC, TARGET_DEBUG_ARG)
11295
        (TARGET_64BIT, TARGET_ZARCH, TARGET_MVCLE, TARGET_TPF_PROFILING)
11296
        (TARGET_NO_FUSED_MADD, TARGET_FUSED_MADD, TARGET_BACKCHAIN)
11297
        (TARGET_PACKED_STACK, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
11298
        * config/s390/s390.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
11299
        (TARGET_HANDLE_OPTION): Likewise.
11300
        (s390_tune): Initialize to PROCESSOR_max.
11301
        (s390_arch_string): Make static.
11302
        (s390_tune_string, s390_warn_framesize_string): Delete.
11303
        (s390_warn_dynamicstack_string, s390_stack_size_string): Delete.
11304
        (s390_stack_guard_string, s390_warn_dynamicstack_p): Delete.
11305
        (s390_handle_arch_option, s390_handle_option): New functions.
11306
        (override_options): Remove parsing of option strings.
11307
        * config/s390/s390.opt: New file.
11308
 
11309
2005-04-11  Paolo Bonzini  
11310
 
11311
        * tree-complex.c (expand_vector_operations): Call
11312
        update_stmt_if_modified.
11313
 
11314
2005-04-11  Paolo Bonzini  
11315
 
11316
        * tree-vect-analyze (vect_determine_vectorization_factor):
11317
        Do not use GET_MODE_NUNITS.
11318
        * tree-vect-transform.c (vect_get_vec_def_for_operand,
11319
        (vectorizable_load, vect_transform_loop): Likewise.
11320
 
11321
2005-04-11  Uros Bizjak  
11322
 
11323
        * builtins.def (BUILT_IN_LCEIL, BUILT_IN_LCEILF, BUILT_IN_LCEILL)
11324
        (BUILT_IN_LLCEIL, BUILT_IN_LLCEILF, BUILT_IN_LLCEILL): New.
11325
        * optabs.h (enum optab_index): Add new OTI_lceil.
11326
        (lceil_optab): Define corresponding macro.
11327
        * optabs.c (init_optabs): Initialize lceil_optab.
11328
        * genopinit.c (optabs): Implement lceil_optab using lceilsi2
11329
        and lceildi2 patterns.
11330
        * builtins.c (expand_builtin_int_roundingfn): Handle
11331
        BUILT_IN_LCEIL{,F,L} and BUILT_IN_LLCEIL{,F,L}.
11332
        (fold_builtin_int_roundingfn): Handle BUILT_IN_LCEIL{,F,L} and
11333
        BUILT_IN_LLCEIL{,F,L}.
11334
        (fold_builtin_1): Fold BUILT_IN_LCEIL{,F,L} and
11335
        BUILT_IN_LLCEIL{,F,L} using fold_builtin_int_roundingfn.
11336
        (mathfn_built_in): Handle BUILT_IN LCEIL and BUILT_IN_LLCEIL.
11337
        (expand_builtin): Expand BUILT_IN_LCEIL{,F,L} and
11338
        BUILT_IN_LLCEIL{,F,L} using expand_builtin_int_roundingfn.
11339
        * convert.c (convert_to_integer): Convert (long int)ceil{,f,l},
11340
        into lceil built-in function and (long long int)ceil{,f,l} into
11341
        llceil built-in function.
11342
        * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LCEIL and
11343
        BUILT_IN_LLCEIL.
11344
 
11345
2005-04-10  John David Anglin  
11346
 
11347
        * pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
11348
        zero.
11349
 
11350
2005-04-10  Kazu Hirata  
11351
 
11352
        * config/arm/arm.c: Fix a comment typo.
11353
        * doc/tree-ssa.texi: Fix a typo.
11354
 
11355
2005-04-10  Steven Bosscher  
11356
 
11357
        * cselib.c (clear_table): Rename to cselib_clear_table.
11358
        * cselib.h (cselib_clear_table): Add prototype.
11359
        * gcse.c (gcse_main): Make 'f' argument unused.
11360
        (alloc_gcse_mem): Do not walk the insn chain, walk the contents
11361
        of each basic block instead.
11362
        (compute_sets, compute_hash_table_work): Likewise.
11363
        (constprop_register): Change int 'alter_jumps' argument to bool.
11364
        (do_local_cprop): Likewise.
11365
        (local_cprop_pass): Likewise.  Also walk basic blocks instead of
11366
        the insn chain.  Explicitly clear the cselib tables after finishing
11367
        one basic block.  Make sure there are no unterminated libcall blocks.
11368
        Update compute_sets call.
11369
        (cprop): Walk basic blocks instead of the insn chain.
11370
        (one_cprop_pass, compute_ld_motion_mems, compute_store_table):
11371
        Likewise.
11372
        (bypass_jumps): Update alloc_gcse_mem, compute_sets, and
11373
        one_cprop_pass calls.
11374
 
11375
2005-04-10  Richard Sandiford  
11376
 
11377
        * combine.c (combine_simplify_rtx): Remove a transformation that
11378
        relies on an invalid assumption about rtl sign-extension semantics.
11379
 
11380
2005-04-10  Richard Sandiford  
11381
 
11382
        * value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
11383
        to build_int_cst_wide.
11384
 
11385
2005-04-09  Alexandre Oliva  
11386
 
11387
        PR target/20126
11388
        * loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
11389
        set the original address pseudo to the correct value before the
11390
        original insn, if possible, and leave the insn alone, otherwise
11391
        create a new pseudo, set it and replace it in the insn.
11392
        * recog.c (validate_change_maybe_volatile): New.
11393
        * recog.h (validate_change_maybe_volatile): Declare.
11394
 
11395
2005-04-09  Caroline Tice  
11396
 
11397
        * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
11398
        Remove targetm.have_named_sections test.
11399
        (fix_edges_for_rarely_executed_code): Likewise.
11400
        (insert_section_boundary_note): Likewise.
11401
        (reorder_basic_blocks): Check partitioning flag before calling
11402
        verify_hot_cold_block_grouping.
11403
        * dbxout.c (dbxout_function_end): Get hot/cold section labels from
11404
        the function struct rather than global variables.
11405
        * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
11406
        (COLD_END_LABEL): Likewise
11407
        (cold_text_section_label): New static global variable.
11408
        (cold_end_label): Likewise.
11409
        (dwarf2out_switch_text_section): Get hot/cold section labels from
11410
        the function struct rather than global variables.
11411
        (output_aranges): Use cold_text_section_label and cold_end_label;
11412
        check partitioning flag before putting out delta.
11413
        (output_ranges): Remove incorrect code attempting to use
11414
        hot/cold labels.
11415
        (output_line_info): Get cold section label from function struct.
11416
        (add_location_or_const_value_attribute): Likewise.
11417
        (get_subprogram_die): Get hot/cold section labels from function struct.
11418
        (dwarf2out_var_location): Likewise.
11419
        (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
11420
        write out cold_text_section_label if partition flag is set.
11421
        (dwarf2out_finish): Write out cold_end_label if partition flag is set;
11422
        * function.h (struct function): Add new fields to point to hot/cold
11423
        section labels: hot_section_label, cold_section_label,
11424
        hot_section_end_label and cold_section_end_label; also add new field
11425
        for cold text section name, unlikely_text_section_name.
11426
        * opts.c (decode_options): Turn off partitioning flag if
11427
        !targetm.have_named_sections.
11428
        * output.h (hot_section_label): Remove.
11429
        (hot_section_end_label): Remove.
11430
        (cold_section_end_label): Remove.
11431
        (unlikely_section_label): Remove.
11432
        (unlikely_text_section_name): Remove.
11433
        * passes.c (rest_of_handle_final):  Remove code that frees
11434
        unlikely_text_section_name.
11435
        * varasm.c (unlikely_section_label): Remove.
11436
        (hot_section_label): Remove.
11437
        (hot_section_end_label): Remove.
11438
        (cold_section_end_label): Remove.
11439
        (unlikely_text_section_name):  Remove.
11440
        (initialize_cold_section_name): Modify to call
11441
        targetm.strip_name_encoding; to store cold section name in current
11442
        function struct, if it exists; and to only use the decl_section_name
11443
        if flag_named_sections is true.
11444
        (unlikely_text_section): Modify to get section name out of current
11445
        function struct, if there is one; otherwise build it from
11446
        UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
11447
        (in_unlikely_text_section): Likewise.
11448
        (named_section): Modify to get/put cold section name in current function
11449
        struct, if there is one.
11450
        (function_section):  Change 'bool unlikely' to 'int reloc'; check
11451
        targetm.have_named_sections before calling named_section.
11452
        (current_function_section): Likewise.
11453
        (assemble_start_function): Modify to get/put unlikely_text_section_name
11454
        in current function struct; modify to get hot/cold section labels
11455
        from function struct; initialize labels using
11456
        ASM_GENERATE_INTERNAL_LABEL;
11457
        test partitioning flag before writing out hot section label.
11458
        (assemble_end_function): Test partitioning flag before writing out
11459
        hot/cold section labels.
11460
        (default_section_type_flags_1):  Modify to use array instead of
11461
         char* for unlikely_text_section_name; set flags correctly for
11462
         cold text section if there is not a current function decl.
11463
 
11464
2005-04-09  Jakub Jelinek  
11465
 
11466
        * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
11467
        and TI_VA_LIST_FPR_COUNTER_FIELD.
11468
        (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
11469
        * tree-pass.h (pass_stdarg): Add.
11470
        * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
11471
        * tree-stdarg.c: New file.
11472
        * tree-stdarg.h: New file.
11473
        * Makefile.in (OBJS-common): Add tree-stdarg.o.
11474
        (tree-stdarg.o): Add dependencies.
11475
        * function.h (struct function): Add va_list_gpr_size and
11476
        va_list_fpr_size fields.
11477
        * function.c (allocate_struct_function): Initialize them.
11478
        * target.h (struct gcc_target): Add stdarg_optimize_hook.
11479
        * target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
11480
        (TARGET_INITIALIZER): Add it.
11481
 
11482
        * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
11483
        va_list_{g,f}pr_counter_field.
11484
        (ix86_setup_incoming_varargs): Don't do anything if reg_save
11485
        area will not be used.  Only save registers that tree-stdarg.c
11486
        detected they need saving.
11487
        (ix86_va_start): Don't set up fields that won't be used.
11488
 
11489
        * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
11490
        va_list_{g,f}pr_counter_field.
11491
        (setup_incoming_varargs): Don't do anything if reg_save
11492
        area will not be used.  Only save registers that tree-stdarg.c
11493
        detected they need saving.
11494
        (rs6000_va_start): Don't set up fields that won't be used.
11495
 
11496
        * config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
11497
        (alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
11498
        (va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
11499
        (TARGET_STDARG_OPTIMIZE_HOOK): Define.
11500
 
11501
2005-04-09  Jakub Jelinek  
11502
 
11503
        PR target/20795
11504
        * config/i386/i386.c (construct_container): Pass empty aligned
11505
        struct, union or class in memory.
11506
 
11507
2005-04-09  Kazu Hirata  
11508
 
11509
        * dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
11510
        tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
11511
        config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
11512
        config/rs6000/predicates.md: Fix comment typos.
11513
 
11514
        * sched-int.h (haifa_insn_data): Remove blockage and units.
11515
        (INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
11516
        ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
11517
        MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.
11518
 
11519
2005-04-09  Jan Hubicka  
11520
            Steven Bosscher  
11521
 
11522
        * cfglayout.c (copy_bbs): Rename n_edges to num_edges.
11523
        * cfgloop.c (get_loop_exit_edges): Likewise.
11524
        * cfgloopmanip.c (fix_irreducible_loops): Likewise.
11525
        (unloop): Likewise.
11526
        * loop-unroll.c (analyze_insns_in_loop): Likewise.
11527
        * tree-cfg.c (dump_cfg_status): Likewise.
11528
 
11529
2005-04-09  David Edelsohn  
11530
 
11531
        * config/rs6000/predicates.md (altivec_register_operand): Remove
11532
        redundant match_code test.
11533
        (gpc_reg_operand): Same.
11534
        (cc_reg_operand): Same.
11535
        (cc_reg_not_cr0_operand): Same.
11536
 
11537
2005-04-09  Jan Hubicka  
11538
 
11539
        Forgotten hunk from my last merge patch:
11540
        * final.c (output_addr_const): Do not call mark_referenced.
11541
 
11542
2005-04-09  Andrew MacLeod  
11543
 
11544
        * doc/tree-ssa.texi: Add immediate use documentation.
11545
 
11546
2005-04-09  Richard Earnshaw 
11547
 
11548
        * arm.c (FL_WBUF): Define.
11549
        (arm_tune_strongarm): Renamed from arm_is_strong.  All uses changed.
11550
        (arm_is_6_or_7): Delete.
11551
        (arm_tune_wbuf): New.
11552
        (arm_override_options): Set arm_tune_wbuf.
11553
        * arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
11554
        (arm_is_6_or_7): Delete declaration.
11555
        (arm_tune_wbuf): New declartion.
11556
        * arm.md (is_strongarm): Derive from arm_tune_strongarm.
11557
        (model_wbuf): Derive from arm_tune_wbuf.
11558
        * arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
11559
        (arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
11560
        (arm740t): Mark CPUs as having a write buffer.
11561
 
11562
2005-04-09  Uros Bizjak  
11563
 
11564
        * config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
11565
        of 'const_double_operand' in operand 2 constraints.  Update enable
11566
        condition.
11567
 
11568
2005-04-09  Uros Bizjak  
11569
 
11570
        * builtins.def (BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL)
11571
        (BUILT_IN_LLFLOOR, BUILT_IN_LLFLOORF, BUILT_IN_LLFLOORL): New.
11572
        * optabs.h (enum optab_index): Add new OTI_lfloor.
11573
        (lfloor_optab): Define corresponding macro.
11574
        * optabs.c (init_optabs): Initialize lfloor_optab.
11575
        * genopinit.c (optabs): Implement lfloor_optab using lfloorsi2
11576
        and lfloordi2 patterns.
11577
        * builtins.c (expand_builtin_int_roundingfn): New prototype.
11578
        (expand_builtin_int_roundingfn): New function.
11579
        (fold_builtin_int_roundingfn): New prototype.
11580
        (fold_builtin_int_roundingfn): New function, renamed from
11581
        fold_builtin_lround.
11582
        Handle BUILT_IN_LROUND{,F,L}, BUILT_IN_LLROUND{,F,L} and
11583
        BUILT_IN_LFLOOR{,F,L}, BUILT_IN_LLFLOOR{,F,L}.
11584
        (fold_builtin_1): Fold BUILT_IN_LFLOOR{,F,L} and
11585
        BUILT_IN_LLFLOOR{,F,L} using fold_builtin_int_roundingfn.
11586
        (mathfn_built_in): Handle BUILT_IN LFLOOR and BUILT_IN_LLFLOOR.
11587
        (expand_builtin): Expand BUILT_IN_LFLOOR{,F,L} and
11588
        BUILT_IN_LLFLOOR{,F,L} using expand_builtin_int_roundingfn.
11589
        * convert.c (convert_to_integer): Convert (long int)floor{,f,l},
11590
        into lfloor built-in function and (long long int)floor{,f,l} into
11591
        llfloor built-in function.
11592
        * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LFLOOR and
11593
        BUILT_IN_LLFLOOR.
11594
 
11595
2005-04-08  Ian Lance Taylor  
11596
 
11597
        * c-common.def: Move FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
11598
        CONTINUE_STMT, and SWITCH_STMT to cp/cp-tree.def.
11599
        * c-common.h (WHILE_COND, WHILE_BODY): Move to cp/cp-tree.h.
11600
        (DO_COND, DO_BODY): Likewise.
11601
        (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Likewise.
11602
        (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Likewise.
11603
        (c_common_stmt_codes): Remove FOR_STMT, WHILE_STMT, DO_STMT,
11604
        BREAK_STMT, CONTINUE_STMT, and SWITCH_STMT.
11605
        (build_continue_stmt, build_break_stmt): Don't declare.
11606
        (c_do_switch_warnings): Update declaration.
11607
        * c-gimplify.c (enum bc_t): Remove.
11608
        (struct c_gimplify_ctx, ctxp): Remove.
11609
        (push_context, pop_context): Remove static functions.
11610
        (c_genericize): Don't call push_context or pop_context.
11611
        (begin_bc_block, finish_bc_block): Remove static functions.
11612
        (build_bc_goto): Likewise.
11613
        (gimplify_c_loop): Likewise.
11614
        (gimplify_for_stmt, gimplify_while_stmt): Likewise.
11615
        (gimplify_do_stmt, gimplify_switch_stmt): Likewise.
11616
        (c_gimplify_expr): Remove handling of FOR_STMT, WHILE_STMT,
11617
        DO_STMT, SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
11618
        * c-common.c (c_do_switch_warnings): Rename from
11619
        c_do_switch_warnings_1.
11620
        (c_do_switch_warnings) [old version]: Remove.
11621
        (c_do_switch_expr_warnings): Remove.
11622
        * c-typeck.c (c_finish_case): Call new c_do_switch_warnings
11623
        function instead of c_do_switch_expr_warnings.
11624
        * c-dump.c (c_dump_tree): Remove handling of BREAK_STMT,
11625
        CONTINUE_STMT, DO_STMT, FOR_STMT, SWITCH_STMT, and WHILE_STMT.
11626
        * c-pretty-print.c (pp_c_statement): Likewise.
11627
        * c-semantics.c (build_break_stmt, build_continue_stmt): Remove.
11628
 
11629
2005-04-08  Devang Patel  
11630
 
11631
        * tree-if-conv.c (find_phi_replacement_condition): New parameter, loop.
11632
        While selecting replacement condition pay attention to loop header.
11633
 
11634
2005-04-08  Diego Novillo  
11635
 
11636
        Merge from tree-cleanup-branch: VRP, store CCP, store
11637
            copy-prop, incremental SSA updating of FUD chains and
11638
            newly exposed symbols.
11639
 
11640
        * Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
11641
        (OBJS-common): Add tree-vrp.o.
11642
        (tree-vrp.o): New rule.
11643
        * basic-block.h (nearest_common_dominator_for_set): Declare.
11644
        * common.opt (ftree-store-ccp): New flag.
11645
        (ftree-copy-prop): New flag.
11646
        (ftree-vrp): New flag.
11647
        (ftree-store-copy-prop): New flag.
11648
        * dominance.c (nearest_common_dominator_for_set): New.
11649
        * domwalk.c (walk_dominator_tree): Only traverse
11650
        statements in blocks marked in walk_data->interesting_blocks.
11651
        * domwalk.h (struct dom_walk_data): Add field interesting_blocks.
11652
        * fold-const.c (fold): Handle ASSERT_EXPR.
11653
        * opts.c (decode_options): Set flag_tree_copy_prop at -O1.
11654
        Set flag_tree_store_ccp, flag_tree_store_copy_prop and
11655
        flag_tree_vrp at -O2.
11656
        * timevar.def (TV_TREE_VRP): Define.
11657
        (TV_TREE_COPY_PROP): Define.
11658
        (TV_TREE_STORE_COPY_PROP): Define.
11659
        (TV_TREE_SSA_INCREMENTAL): Define.
11660
        (TV_TREE_STORE_CCP): Define.
11661
        * tree-cfg.c (tree_can_merge_blocks_p): Remove reference
11662
        to kill_redundant_phi_nodes from comment.
11663
        (verify_expr): Handle ASSERT_EXPR.
11664
        * tree-dfa.c (mark_new_vars_to_rename): Remove second
11665
        argument.  Update all users.
11666
        (mark_call_clobbered_vars_to_rename): Remove.  Update all
11667
        users.
11668
        * tree-flow-inline.h (unmodifiable_var_p): New.
11669
        * tree-flow.h (enum value_range_type): Declare.
11670
        (struct value_range_def): Declare.
11671
        (value_range): Declare.
11672
        (remove_all_phi_nodes_for): Remove.  Update all users.
11673
        (find_phi_node_for): Declare.
11674
        (add_type_alias): Declare.
11675
        (count_uses_and_derefs): Declare.
11676
        (kill_redundant_phi_nodes): Remove.
11677
        (rewrite_into_ssa): Remove.
11678
        (rewrite_def_def_chains): Remove.
11679
        (update_ssa, register_new_name_mapping, create_new_def_for,
11680
        need_ssa_update_p, name_registered_for_update_p,
11681
        release_ssa_name_after_update_ssa, dump_repl_tbl,
11682
        debug_repl_tbl, dump_names_replaced_by,
11683
        debug_names_replaced_by, mark_sym_for_renaming,
11684
        mark_set_for_renaming, get_current_def, set_current_def,
11685
        get_value_range, dump_value_range, debug_value_range,
11686
        dump_all_value_ranges, debug_all_value_ranges,
11687
        expr_computes_nonzero, loop_depth_of_name,
11688
        unmodifiable_var_p): Declare.
11689
        * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
11690
        ASSERT_EXPR.
11691
        * tree-into-ssa.c (block_defs_stack): Update comment.
11692
        (old_ssa_names, new_ssa_names, old_virtual_ssa_names,
11693
        syms_to_rename, names_to_release, repl_tbl,
11694
        need_to_initialize_update_ssa_p, need_to_update_vops_p,
11695
        need_to_replace_names_p): New locals.
11696
        (NAME_SETS_GROWTH_FACTOR): Define.
11697
        (struct repl_map_d): Declare.
11698
        (struct mark_def_sites_global_data): Add field
11699
        interesting_blocks.
11700
        (enum rewrite_mode): Declare.
11701
        (REGISTER_DEFS_IN_THIS_STMT): Define.
11702
        (compute_global_livein): Use last_basic_block instead of
11703
        n_basic_blocks.
11704
        (set_def_block): Remove last argument.  Update all callers.
11705
        (prepare_use_operand_for_rename): Remove.  Update all callers.
11706
        (prepare_def_operand_for_rename): Remove.  Update all callers.
11707
        (symbol_marked_for_renaming): New.
11708
        (is_old_name): New.
11709
        (is_new_name): New.
11710
        (repl_map_hash): New.
11711
        (repl_map_eq): New.
11712
        (repl_map_free): New.
11713
        (names_replaced_by): New.
11714
        (add_to_repl_tbl): New.
11715
        (add_new_name_mapping): New.
11716
        (mark_def_sites): Assume that all the operands in the
11717
        statement are in normal form.
11718
        (find_idf): Assert that the block in the stack is valid.
11719
        (get_default_def_for): New.
11720
        (insert_phi_nodes_for): Add new argument 'update_p'.
11721
        Add documentation.
11722
        If update_p is true, add a new mapping between the LHS of
11723
        each new PHI and the name that it replaces.
11724
        (insert_phi_nodes_1): Only call find_idf if needed.
11725
        (get_reaching_def): Call get_default_def_for.
11726
        (rewrite_operand): Remove.
11727
        (rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
11728
        and REWRITE_THIS_STMT are false.
11729
        Assume that all the operands in the statement are in
11730
        normal form.
11731
        (rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
11732
        (rewrite_virtual_phi_arguments): Remove.
11733
        (invalidate_name_tags): Remove.
11734
        (register_new_update_single, register_new_update_set,
11735
        rewrite_update_init_block, replace_use,
11736
        rewrite_update_fini_block, rewrite_update_stmt,
11737
        rewrite_update_phi_arguments): New.
11738
        rewrite_blocks): Remove argument 'fix_virtual_phis'.
11739
        Add arguments 'entry', 'what' and 'blocks'.
11740
        Initialize the dominator walker according to 'what' and
11741
        'blocks'.
11742
        Start the dominator walk at 'entry'.
11743
        (mark_def_site_blocks): Add argument 'interesting_blocks'.
11744
        Use it to configure the dominator walker.
11745
        (rewrite_into_ssa): Remove argument 'all'.
11746
        Make internal.
11747
        (rewrite_all_into_ssa): Remove.
11748
        (rewrite_def_def_chains): Remove.
11749
        (mark_def_interesting, mark_use_interesting,
11750
        prepare_phi_args_for_update, prepare_block_for_update,
11751
        prepare_def_site_for, prepare_def_sites,
11752
        dump_names_replaced_by, debug_names_replaced_by,
11753
        dump_repl_tbl, debug_repl_tbl, init_update_ssa,
11754
        delete_update_ssa, create_new_def_for,
11755
        register_new_name_mapping, mark_sym_for_renaming,
11756
        mark_set_for_renaming, need_ssa_update_p,
11757
        name_registered_for_update_p, ssa_names_to_replace,
11758
        release_ssa_name_after_update_ssa,
11759
        insert_updated_phi_nodes_for, update_ssa): New.
11760
        * tree-loop-linear.c (linear_transform_loops): Call
11761
        update_ssa instead of rewrite_into_ssa.
11762
        * tree-optimize.c (vars_to_rename): Remove.
11763
        Update all users.
11764
        (init_tree_optimization_passes): Replace
11765
        pass_redundant_phi with pass_copy_prop.
11766
        Add pass_vrp.
11767
        Replace pass_ccp with pass_store_ccp.
11768
        Add pass_store_copy_prop after pass_store_ccp.
11769
        (execute_todo): If the TODO_ flags don't include updating
11770
        the SSA form, assert that it does not need to be updated.
11771
        Call update_ssa instead of rewrite_into_ssa and
11772
        rewrite_def_def_chains.
11773
        If TODO_verify_loops is set, call verify_loop_closed_ssa.
11774
        (tree_rest_of_compilation):
11775
        * tree-pass.h (TODO_dump_func, TODO_ggc_collect,
11776
        TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
11777
        TODO_cleanup_cfg): Renumber.
11778
        (TODO_verify_loops, TODO_update_ssa,
11779
        TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
11780
        TODO_update_ssa_only_virtuals): Define.
11781
        (pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
11782
        Declare.
11783
        * tree-phinodes.c (make_phi_node): Update documentation.
11784
        (remove_all_phi_nodes_for): Remove.
11785
        (find_phi_node_for): New.
11786
        * tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
11787
        * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
11788
        (interpret_rhs_modify_expr): Likewise.
11789
        * tree-sra.c (decide_instantiations): Mark all symbols in
11790
        SRA_CANDIDATES for renaming.
11791
        (mark_all_v_defs_1): Rename from mark_all_v_defs.
11792
        (mark_all_v_defs): New function.  Update all users to call it
11793
        with the whole list of scalarized statements, not just the
11794
        first one.
11795
        * tree-ssa-alias.c (count_ptr_derefs): Make extern.
11796
        (compute_flow_insensitive_aliasing): If the tag is
11797
        unmodifiable and the variable isn't or vice-versa, don't
11798
        make them alias of each other.
11799
        (setup_pointers_and_addressables): If the type tag for
11800
        VAR is about to change, mark the old one for renaming.
11801
        (add_type_alias): New.
11802
        * tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
11803
        (ccp_lattice_t): Rename from latticevalue.
11804
        (value): Remove.  Update all users.
11805
        (const_val): New local variable.
11806
        (do_store_ccp): New local variable.
11807
        (dump_lattice_value): Handle UNINITIALIZED.
11808
        (debug_lattice_value): New.
11809
        (get_default_value): Re-write.
11810
        (set_lattice_value): Re-write.
11811
        (def_to_varying): Remove.  Update all users.
11812
        (likely_value): Return VARYING for statements that make
11813
        stores when STORE_CCP is false.
11814
        Return VARYING for any statement other than MODIFY_EXPR,
11815
        COND_EXPR and SWITCH_EXPR.
11816
        (ccp_initialize): Re-write.
11817
        (replace_uses_in, replace_vuse_in, substitute_and_fold):
11818
        Move to tree-ssa-propagate.c.
11819
        (ccp_lattice_meet): Handle memory stores when
11820
        DO_STORE_CCP is true.
11821
        (ccp_visit_phi_node): Likewise.
11822
        (ccp_fold): Likewise.
11823
        (evaluate_stmt): Likewise.
11824
        (visit_assignment): Likewise.
11825
        (ccp_visit_stmt): Likewise.
11826
        (execute_ssa_ccp): Add argument 'store_ccp'.  Copy it
11827
        into DO_STORE_CCP.
11828
        (do_ssa_ccp): New.
11829
        (pass_ccp): Use it.
11830
        (do_ssa_store_ccp): New.
11831
        (gate_store_ccp): New.
11832
        (pass_store_ccp): Declare.
11833
        * tree-ssa-copy.c: Include tree-ssa-propagate.h.
11834
        (may_propagate_copy): Reformat.
11835
        Don't abort if ORIG is a virtual and DEST isn't.
11836
        If NEW does not have alias information but DEST does,
11837
        copy it.
11838
        (copy_of, cached_last_copy_of, do_store_copy_prop, enum
11839
        copy_prop_kind, which_copy_prop): Declare.
11840
        (stmt_may_generate_copy, get_copy_of_val,
11841
        get_last_copy_of, set_copy_of_val, dump_copy_of,
11842
        copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
11843
        copy_prop_visit_stmt, copy_prop_visit_phi_node,
11844
        init_copy_prop, fini_copy_prop, execute_copy_prop,
11845
        gate_copy_prop, do_copy_prop, gate_store_copy_prop,
11846
        store_copy_prop): New.
11847
        (pass_copy_prop, pass_store_copy_prop): Declare.
11848
        * tree-ssa-dom.c (struct opt_stats_d): Add fields
11849
        'num_const_prop' and 'num_copy_prop'.
11850
        (cprop_operand): Update them.
11851
        (dump_dominator_optimization_stats): Dump them.
11852
        (tree_ssa_dominator_optimize): Call update_ssa instead of
11853
        rewrite_into_ssa.
11854
        (loop_depth_of_name): Declare extern.
11855
        (simplify_cond_and_lookup_avail_expr): Guard against NULL
11856
        values for LOW or HIGH.
11857
        (cprop_into_successor_phis): Only propagate if NEW != ORIG.
11858
        (record_equivalences_from_stmt): Call expr_computes_nonzero.
11859
        (cprop_operand): Only propagate if VAL != OP.
11860
        * tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
11861
        statement for renaming.
11862
        * tree-ssa-loop-im.c (move_computations): Call update_ssa.
11863
        * tree-ssa-loop-ivopts.c (rewrite_address_base): Call
11864
        add_type_alias if necessary.
11865
        Call mark_new_vars_to_rename.
11866
        (tree_ssa_iv_optimize): If new symbols need to be renamed,
11867
        mark every statement updated, call update_ssa and
11868
        rewrite_into_loop_closed_ssa.
11869
        * tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
11870
        from LIVEIN if VAR is a virtual.
11871
        * tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
11872
        * tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
11873
        (get_call_expr_operands): Reformat statement.
11874
        (add_stmt_operand): Don't create V_MAY_DEFs for read-only
11875
        symbols.
11876
        * tree-ssa-propagate.c (ssa_prop_init): Initialize
11877
        SSA_NAME_VALUE for every name.
11878
        (first_vdef, stmt_makes_single_load, stmt_makes_single_store,
11879
        get_value_loaded_by): New.
11880
        (replace_uses_in, replace_vuses_in, replace_phi_args_in,
11881
        substitute_and_fold): Move from tree-ssa-ccp.c.
11882
        * tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
11883
        first_vdef, stmt_makes_single_load, stmt_makes_single_store,
11884
        get_value_loaded_by, replace_uses_in, substitute_and_fold):
11885
        Declare.
11886
        * tree-ssa.c (verify_use): Fix error message.
11887
        (propagate_into_addr, replace_immediate_uses, get_eq_name,
11888
        check_phi_redundancy, kill_redundant_phi_nodes,
11889
        pass_redundant_phi): Remove.  Update all users.
11890
        * tree-vect-transform.c (vect_create_data_ref_ptr): Call
11891
        add_type_alias, if necessary.
11892
        * tree-vectorizer.h (struct _stmt_vect_info): Update
11893
        documentation for field 'memtag'.
11894
        * tree-vrp.c: New file.
11895
        * tree.def (ASSERT_EXPR): Define.
11896
        * tree.h (ASSERT_EXPR_VAR): Define.
11897
        (ASSERT_EXPR_COND): Define.
11898
        (SSA_NAME_VALUE_RANGE): Define.
11899
        (struct tree_ssa_name): Add field 'value_range'.
11900
        (PHI_REWRITTEN): Remove.
11901
        (struct tree_phi_node): Remove field 'rewritten'.
11902
        * doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
11903
        -ftree-store-copy-prop): Document.
11904
        * doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
11905
        Document usage of update_ssa.
11906
 
11907
2005-04-08  David Edelsohn  
11908
 
11909
        PR target/20814
11910
        * config/rs6000/predicates.md (altivec_register_operand): Accept
11911
        SUBREG.
11912
        (and64_operand): Do not limit CONST_INT to mask64_operand.
11913
        (and64_2_operand): Do not limit CONST_INT to mask64_1or2_operand.
11914
        (and_operand): Do not limit CONST_INT to mask_operand.
11915
 
11916
2005-04-09  Hans-Peter Nilsson  
11917
 
11918
        PR rtl-optimization/20466
11919
        * flow.c (invalidate_mems_from_set): Handle a MEM by checking it
11920
        for overlap of the address of each list member.
11921
        (mark_set_1): Call invalidate_mems_from_set for MEMs too.
11922
 
11923
2005-04-08  Mike Stump  
11924
 
11925
        * config/darwin.c (indirect_data): Fix typo in strncmp logic.
11926
 
11927
        * config/rs6000/rs6000.c (rs6000_emit_prologue): Use 5 nops,
11928
        instead of 4.
11929
 
11930
2005-04-08  Kazu Hirata  
11931
 
11932
        * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.
11933
 
11934
        * function.c (push_function_context_to): Don't set
11935
        contains_functions.
11936
        * function.h (function): Remove contains_functions.
11937
        (current_function_contains_functions): Remove.
11938
 
11939
        * function.h (function): Remove instrument_entry_exit.
11940
        (current_function_instrument_entry_exit): Remove.
11941
 
11942
        * function.h (nonlocal_labels): Remove.
11943
 
11944
        * tree.h (STRIP_MAIN_TYPE_NOPS): Remove.
11945
 
11946
        * genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
11947
        (check_attr_value, write_attr_get, write_expr_attr_cache,
11948
        find_attr, make_internal_attr): Don't reference negative_ok or
11949
        unsigned_p.
11950
        * genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED,
11951
        ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove.
11952
        (ATTR_STATIC): Adjust the value.
11953
 
11954
        * c-common.h (C_ARTIFICIAL_STRING_P): Remove.
11955
 
11956
2005-04-08  Ulrich Weigand  
11957
 
11958
        * config/s390/tpf.h (ASM_SPEC): Define.
11959
 
11960
2005-04-08  Kazu Hirata  
11961
 
11962
        * tree-flow.h: Remove the prototype for
11963
        redirect_immediate_uses.
11964
        (TDFA_USE_OPS, TDFA_USE_VOPS): Remove.
11965
 
11966
2005-04-08  Richard Earnshaw  
11967
 
11968
        * arm.c (arm_const_double_by_parts): New function.
11969
        * arm-protos.h (arm_const_double_by_parts): Add prototype.
11970
        * arm.md (define_split for 64-bit constants): Add another one.
11971
 
11972
2005-04-08  Andrew MacLeod  
11973
 
11974
        * tree-ssa-operands.c (correct_use_link): Remove linear scan.
11975
 
11976
2005-04-08  Kaveh R. Ghazi  
11977
 
11978
        * system.h: Revert last change.
11979
 
11980
2005-04-08  Richard Sandiford  
11981
 
11982
        * config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
11983
        (MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
11984
        (TARGET_SWITCHES): Delete.
11985
        * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
11986
        * config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
11987
        TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
11988
        * config/xtensa/xtensa.opt: New file.
11989
 
11990
2005-04-08  Ben Elliston  
11991
 
11992
        * config/fp-bit.c: Include L_mul_tf in #endif comment.
11993
        * config/fp-bit.h: Tidy comments.
11994
 
11995
2005-04-07  Kaveh R. Ghazi  
11996
 
11997
        * system.h: Poison PARAMS.
11998
 
11999
2005-04-07  Richard Sandiford  
12000
 
12001
        * config/vax/vax.h (target_flags, MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
12002
        (MASK_G_FLOAT, TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT)
12003
        (TARGET_SWITCHES): Delete.
12004
        * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
12005
        * config/vax/vax.opt: New file.
12006
 
12007
2005-04-07  Daniel Berlin  
12008
 
12009
        * tree-ssa-dse.c (dse_optimize_stmt): Fix incorrect comment.
12010
 
12011
2005-04-07  Ian Lance Taylor  
12012
 
12013
        * config/iq2000/iq2000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Don't
12014
        define.
12015
        * config/mips/mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
12016
        * config/sparc/sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE):
12017
        Likewise.
12018
 
12019
2005-04-07  Kazu Hirata  
12020
 
12021
        * tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider
12022
        all immediate uses in PHI nodes.
12023
 
12024
2005-04-07  Richard Earnshaw  
12025
 
12026
        * arm.c (arm_const_double_inline_cost): Handle any constant by
12027
        using gen_lowpart and gen_highpart_mode.
12028
        (note_invalid_constants): All constants in an RTX with a constraint
12029
        that permits memory are now pushed to the constant pool.
12030
        (output_move_double): Delete code to handle reg to reg and
12031
        constant to reg moves.
12032
        (const_double_needs_minipool, output_mov_immediate): Delete.
12033
        * arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
12034
        CONST_INT and CONST_VECTOR.
12035
        * arm.md (ANY64): New mode macro.
12036
        (arm_movdi): Split reg-reg and const-reg moves.  Simplify constraints.
12037
        (movdf_soft_insn): Split reg-reg and const-reg moves.
12038
        (split patterns for 64-bit constant and register moves): New.
12039
        * cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
12040
        (cirrus_movdf_hard_insn): Likewise.
12041
        * fpa.md (movdf_fpa): Likewise.
12042
        * iwmmxt.md (iwmmxt_arm_movdi): Likewise.
12043
        (movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
12044
        constraints.
12045
        (movv2si_internal_2): Likewise.
12046
        * vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
12047
        (movdf_vfp): Likewise.
12048
        * arm-protos.h (output_mov_immediate): Delete prototype.
12049
 
12050
2005-04-07  Joseph S. Myers  
12051
 
12052
        PR target/20093
12053
        * simplify-rtx.c (simplify_unary_operation_1): Check
12054
        SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.
12055
 
12056
2005-04-06  James E Wilson  
12057
 
12058
        PR target/20717
12059
        * cgraphunit.c (record_call_1, case FDESC_EXPR): Handle same as
12060
        ADDR_EXPR.
12061
 
12062
2004-04-06  Richard Sandiford  
12063
 
12064
        * coverage.h (GCOV_TYPE_NODE): Delete.
12065
        * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref)
12066
        (build_ctr_info_type): Use get_gcov_type () instead of GCOV_TYPE_NODE.
12067
        * tree-profile.c (tree_gen_edge_profiler, tree_gen_interval_profiler)
12068
        (tree_gen_pow2_profiler, tree_gen_one_value_profiler): Likewise.
12069
        * value-prof.c (tree_divmod_fixed_value_transform): Delete.
12070
 
12071
2004-04-06  Richard Sandiford  
12072
 
12073
        PR other/20792
12074
        * Makefile.in (gcc.pot): Remove options.c dependency.
12075
        * optc-gen.awk: Don't quote help strings with N_().
12076
 
12077
2005-04-06  James A. Morrison  
12078
 
12079
        * c-common.c (handle_malloc_atttribute): Only set DECL_IS_MALLOC if
12080
        the function returns a pointer type.
12081
 
12082
2005-04-06  Daniel Berlin  
12083
 
12084
        * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): New
12085
        * params.h (SALIAS_MAX_IMPLICIT_FIELDS): New
12086
        * doc/invoke.texi: Documnet salias-max-implicit-fields.
12087
        * tree-ssa-alias.c (struct used_part): Add implicit_uses and
12088
        explicit_uses members.
12089
        (get_or_create_used_part_for): Initialize new fields.
12090
        (fieldoff_compare): New function.
12091
        (create_overlap_variables_for): Count number of fields, use
12092
        heuristic to determine whether to create subvars for vars with
12093
        only implicit uses.
12094
        Sort the field list by offset and avoid creating duplicate SFT's.
12095
 
12096
2005-04-06  Richard Sandiford  
12097
 
12098
        * c.opt (-F): Remove trailing whitespace from help string.
12099
        (-finput-charset): Use a tab to separate the switch name and help
12100
        string.
12101
        * common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
12102
        (-ftree-vectorizer-verbose): Likewise.
12103
 
12104
2005-04-06  Kazu Hirata  
12105
 
12106
        * tree-ssa-sink.c (nearest_common_dominator_of_uses): Look at
12107
        a PHI argument where a use occurs instead of all PHI arguments.
12108
 
12109
2005-04-06  Joseph S. Myers  
12110
 
12111
        * c-decl.c (finish_decl): Apply pending #pragma weak regardless of
12112
        scope.
12113
 
12114
2005-04-06  Kazu Hirata  
12115
 
12116
        * cse.c, tree-flow-inline.h, tree-flow.h, tree-ssa-operands.c,
12117
        tree-ssa-sink.c, tree.h, config/bfin/bfin.c,
12118
        config/bfin/bfin.h: Fix comment typos.
12119
 
12120
2005-04-06  Ranjit Mathew  
12121
 
12122
        * doc/install.texi: Update the URL for Jacks.
12123
        * doc/sourcebuild.texi: Likewise.
12124
 
12125
2005-04-06  Eric Botcazou  
12126
 
12127
        PR target/17245
12128
        * config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'.
12129
        Revert 2004-10-08 patch.  Reject TFmode LO_SUM in 32-bit mode.
12130
 
12131
2005-04-06  Kelley Cook  
12132
 
12133
        * Makefile.in (LIBGCC2_CFLAGS): Revert -pipe change.
12134
 
12135
2005-04-06  Richard Sandiford  
12136
 
12137
        * config/v850/v850-protos.h (override_options): Delete.
12138
        * config/v850/v850.h (target_flags, MASK_GHS, MASK_LONG_CALLS, MASK_EP)
12139
        (MASK_PROLOG_FUNCTION, MASK_DEBUG, MASK_V850, MASK_V850E)
12140
        (MASK_SMALL_SLD, MASK_BIG_SWITCH, MASK_NO_APP_REGS, MASK_DISABLE_CALLT)
12141
        (MASK_STRICT_ALIGN, MASK_US_BIT_SET, MASK_US_MASK_SET, TARGET_GHS)
12142
        (TARGET_LONG_CALLS, TARGET_EP, TARGET_PROLOG_FUNCTION, TARGET_V850)
12143
        (TARGET_BIG_SWITCH, TARGET_DEBUG, TARGET_V850E, TARGET_US_BIT_SET)
12144
        (TARGET_SMALL_SLD, TARGET_DISABLE_CALLT, TARGET_NO_APP_REGS)
12145
        (TARGET_STRICT_ALIGN, TARGET_SWITCHES, TARGET_OPTIONS)
12146
        (OVERRIDE_OPTIONS): Delete.
12147
        (MASK_CPU): Redefine as MASK_V850 | MASK_V850E.
12148
        (small_memory_info): Remove the value field.
12149
        (CONDITIONAL_REGISTER_USAGE): Check !TARGET_APP_REGS rather than
12150
        TARGET_NO_APP_REGS.
12151
        * config/v850/v850.c (small_memory): Remove the value field.
12152
        (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
12153
        (override_options): Delete.
12154
        (v850_handle_memory_option, v850_handle_option): New functions.
12155
        * config/v850/v850.opt: New file.
12156
 
12157
2005-04-06  Geoffrey Keating  
12158
 
12159
        * config.host: Add a section for generic hosts, and a subsection
12160
        for Darwin.  Add a case for x86-darwin.  Update ppc-darwin case.
12161
        * config/host-darwin.c: New, split out of config/rs6000/host-darwin.c.
12162
        * config/host-darwin.h: New.
12163
        * config/x-darwin: New.
12164
        * config/i386/host-i386-darwin.c: New.
12165
        * config/i386/x-darwin: New.
12166
        * config/rs6000/host-darwin.c: Include host-darwin.h.
12167
        (darwin_rs6000_gt_pch_get_address): Move to config/host-darwin.c.
12168
        (darwin_rs6000_gt_pch_use_address): Likewise.
12169
        * config/rs6000/x-darwin: Change name of .o built, update
12170
        dependencies for changes to rs6000/host-darwin.c.
12171
 
12172
2005-04-06  Ralf Corsepius  
12173
 
12174
        PR target/17824
12175
        * config/c4x/c4x.h (ASM_PROG, LD_PROG): Remove.
12176
 
12177
2005-04-06  Dorit Naishlos  
12178
 
12179
        * tree-vect-analyze.c (vect_analyze_loop_form): Call
12180
        split_loop_exit_edge instead of loop_split_edge_with.
12181
 
12182
2005-04-06  Paolo Bonzini  
12183
 
12184
        * config/rs6000/altivec.md (UNSPEC_VSLW, UNSPEC_SUBS,
12185
        UNSPEC_SET_VSCR): New constants, used throughout.
12186
        (*andc3_v4sf): New.
12187
        (altivec_vspltisb, altivec_vsplitish, altivec_vsplitisw):
12188
        Replace with...
12189
        (altivec_vspltis): ... this pattern, using
12190
        a QImode const_int_operand for the immediate.
12191
        (abs2, absv4sf2, altivec_abss_): Rewrite as
12192
        define_expands.
12193
 
12194
2005-04-06  Ralf Corsepius  
12195
 
12196
        PR target/17822
12197
        * config/avr/t-avr (AR_FOR_TARGET,RANLIB_FOR_TARGET): Remove.
12198
 
12199
2005-04-06  Kelley Cook  
12200
 
12201
        * Makefile.in (LIBGCC2_CFLAGS): Compile with -pipe.
12202
 
12203
2005-04-06  Ben Elliston  
12204
 
12205
        * gcc.c: Correct comment about DEFAULT_SWITCH_TAKES_ARG and
12206
        DEFAULT_WORD_SWITCH_TAKES_ARG which incorrectly reported these
12207
        macros as living in "this file" and not gcc.h.
12208
 
12209
2005-04-06  Ben Elliston  
12210
 
12211
        * doc/invoke.texi (Optimize Options): Mention -ftree-lrs, not
12212
        -ftree-live_range_split.  Perhaps renamed at some point?
12213
 
12214
2005-04-06  Zdenek Dvorak  
12215
 
12216
        PR target/20625
12217
        * tree-ssa-loop-ivopts.c (generic_type_for): New function.
12218
        (add_candidate_1): Use generic_type_for instead of unsigned_type_for.
12219
 
12220
2005-04-06  Zdenek Dvorak  
12221
 
12222
        * tree-flow.h (number_of_iterations_cond): Declaration removed.
12223
        * tree-ssa-loop-niter.c (number_of_iterations_cond): Made static.
12224
        (number_of_iterations_special): New function.
12225
        (number_of_iterations_exit): Use number_of_iterations_special.
12226
        Use simplify_using_outer_evolutions only at -O3.
12227
        (number_of_iterations_cond, tree_simplify_using_condition,
12228
        simplify_using_initial_conditions, loop_niter_by_eval,
12229
        compare_trees, can_count_iv_in_wider_type_bound,
12230
        simplify_using_outer_evolutions): Use fold_build.
12231
 
12232
2005-04-05  Thomas Fitzsimmons  
12233
 
12234
        * doc/install.texi (Configuration): Document --with-java-home.
12235
 
12236
2005-04-05  Richard Henderson  
12237
 
12238
        PR target/20342
12239
        PR target/20447
12240
        * config/i386/i386.c (print_operand): Handle vector zeros.
12241
        (ix86_split_to_parts): Handle CONST_VECTOR.
12242
        (ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
12243
        (ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
12244
        what modes to tie for MMX and SSE registers.
12245
        * config/i386/i386.h (MMX_REG_MODE_P): Remove.
12246
        * config/i386/i386.md: Extend move 0 -> xor peephole to apply
12247
        to vector modes as well.
12248
        * config/i386/predicates.md (const0_operand): Handle VOIDmode
12249
        properly as an input mode.
12250
 
12251
2005-04-05  Andrew MacLeod  
12252
 
12253
        * tree-ssa-operands.c (verify_abort): Use %p for pointers.
12254
 
12255
2005-04-05  Andrew MacLeod  
12256
 
12257
        * tree-pretty-print.c (dump_generic_node): Use %p for pointer.
12258
 
12259
2005-04-05  Jakub Jelinek  
12260
 
12261
        * config/i386/i386.c (init_cumulative_args): For -m32 -mfpmath=sse
12262
        and local functions, set sse_nregs to 8 and float_in_sse.
12263
        (function_arg_advance, function_arg): If float_in_sse, pass
12264
        SFmode and DFmode arguments in SSE registers.
12265
        * config/i386/i386.h (CUMULATIVE_ARGS): Add float_in_sse field.
12266
 
12267
        * config/i386/i386.c (ix86_value_regno): Only optimize local functions
12268
        of -funit-at-a-time.
12269
 
12270
2005-04-05  Paolo Bonzini  
12271
 
12272
        * config/i386/i386-protos.h (ix86_function_value): Accept two
12273
        arguments, like the target macro.
12274
        * config/i386/i386.h (FUNCTION_VALUE): Pass both arguments.
12275
        * config/i386/i386.c (ix86_function_value): Accept the second
12276
        argument of the target macro.
12277
        (ix86_function_ok_for_sibcall): Pass a function pointer to
12278
        ix86_function_value.
12279
        (ix86_function_value, ix86_libcall_value) [!TARGET_64BIT]: Adjust
12280
        call to ix86_value_regno).
12281
        (ix86_value_regno): Add support for returning floating point values
12282
        in SSE registers.
12283
 
12284
2005-04-05  Jakub Jelinek  
12285
 
12286
        PR tree-optimization/20076
12287
        * tree-inline.c (inline_forbidden_p_1): Prevent inlining functions
12288
        that call __builtin_return or __builtin_apply_args.
12289
 
12290
2005-04-05  Andrew MacLeod  
12291
 
12292
        * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use update_stmt.
12293
        Use immediate use iterator.
12294
        (stmt_is_bumper_for_loop): Use immediate use iterator.
12295
        * predict.c (strip_builtin_expect): Use update_stmt.
12296
        * tree-cfg.c (update_modified_stmts): New. Call update_stmt_if_modified
12297
        on all elements of a STATEMENT_LIST.
12298
        (bsi_insert_before, bsi_insert_after): Call update_modified_stmts.
12299
        (bsi_remove): Remove imm_use links and mark the stmt as modified.
12300
        (bsi_replace): Mark stmt as modified and the update it.
12301
        * tree-complex.c (update_complex_assignment): Call mark_stmt_modified.
12302
        (expand_complex_libcal): Call update_stmt.
12303
        (expand_complex_comparison): Call mark_stmt_modified.
12304
        (expand_complex_operations_1): Call update_stmt_if_modified.
12305
        (expand_vector_operations_1): Call mark_stmt_modified.
12306
        * tree-dfa.c (compute_immediate_uses, free_df_for_stmt, free_df,
12307
        compute_immediate_uses_for_phi, compute_immediate_uses_for_stmt,
12308
        add_immediate_use, redirect_immediate_use,
12309
        redirect_immediate_uses, dump_immediate_uses, debug_immediate_uses,
12310
        dump_immediate_uses_for, debug_immediate_uses_for): Delete.
12311
        (mark_new_vars_to_rename): Call update_stmt.
12312
        * tree-dump.c (dump_option_value_in): Add "stmtaddr".
12313
        * tree-flow-inline.h (modify_stmt): Rename to mark_stmt_modified.
12314
        Ignore PHI nodes.
12315
        (unmodify_stmt): Delete.
12316
        (update_stmt): New.  Force an update of a stmt.
12317
        (update_stmt_if_modified): update a stmt if it is out of date.
12318
        (get_stmt_operands): Verify stmt is NOT modified.
12319
        (stmt_modified_p): Update comment.
12320
        (delink_imm_use): Remove a use node from its immuse list.
12321
        (link_imm_use_to_list): Link a use node to a specific list.
12322
        (link_imm_use): Link a node to the correct list.
12323
        (set_ssa_use_from_ptr): Set a use node to a specific value, and insert
12324
        it in the correct list, if appropriate.
12325
        (link_imm_use_stmt): Link a use node, and set the stmt pointer.
12326
        (relink_imm_use): Link a use node in place of another node in a list.
12327
        (relink_imm_use_stmt): LInk a node in place of another node, and set
12328
        the stmt pointer.
12329
        (end_safe_imm_use_traverse): New.  Terminate a safe immuse iterator.
12330
        (end_safe_imm_use_p): New.  Check for the end of a safe immuse iterator.
12331
        (first_safe_imm_use): New.  Initialize a safe immuse iterator.
12332
        (next_safe_imm_use): New.  Proceed to next safe immuse iterator value.
12333
        (end_readonly_imm_use_p): New.  Check for end of a fast immuse iterator.
12334
        (first_readonly_imm_use): New.  Initialize a fast immuse iterator.
12335
        (next_readonly_imm_use): New.  Get the next fast immuse iterator value.
12336
        (has_zero_uses): New.  Return true if there are no uses of a var.
12337
        (has_single_use): New.  Return true if there is only a single use of a
12338
        variable.
12339
        (single_imm_use): New.  Return the simgle immediate use.
12340
        (num_imm_uses): New.  Return the number of immediate uses.
12341
        (get_v_must_def_ops): Use is now a pointer.
12342
        (use_operand_p, get_v_may_def_op_ptr, get_vuse_op_ptr,
12343
        get_v_must_def_kill_ptr, get_phi_arg_def_ptr): Return the address of
12344
        the use node.
12345
        (get_immediate_uses, num_immediate_uses, immediate_use): Delete.
12346
        (delink_stmt_imm_use): Delink all immuses from a stmt.
12347
        (phi_arg_index_from_use): New.  Return a phi arg index for a use.
12348
        * tree-flow.h (struct dataflow_d): Delete.
12349
        (immediate_use_iterator_d): New.  Immediate use iterator struct.
12350
        (FOR_EACH_IMM_USE_FAST): New.  Macro for read only immuse iteration.
12351
        (FOR_EACH_IMM_USE_SAFE): New.  Macro for write-safe immuse iteration.
12352
        (BREAK_FROM_SAFE_IMM_USE): New.  Macro for earlyu exit from write-safe
12353
        iteration.
12354
        (struct stmt_ann_d): Remove dataflow_t from struct.
12355
        * tree-if-conv.c (tree_if_conversion).  Don't call free_df.
12356
        (if_convertible_phi_p): Use FAST immuse iterator.
12357
        (if_convertible_loop_p): Don't call compute_immediate_uses.
12358
        (replace_phi_with_cond_modify_expr): Call update_stmt.
12359
        * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites): Call
12360
        update_stmt_if_modified.
12361
        (rewrite_all_into_ssa): Initialize ssa operands.
12362
        * tree-loop-linear.c (linear_transform_loops): Don't call free_df or
12363
        compute_immediate_uses.
12364
        * tree-optimize.c (execute_todo): Call verify_ssa whenever the
12365
        ssa_property is available.
12366
        (execute_one_pass):  Change parameters passed to execute_todo.
12367
        * tree-outof-ssa.c (rewrite_trees): Don't call modify_stmt.
12368
        (remove_ssa_form): Call fini_ssa_operands.
12369
        (insert_backedge_copies): Delete call to modify_stmt.
12370
        * tree-phinodes.c (make_phi_node): Initialize use nodes.
12371
        (release_phi_node): Delink any use nodes before releasing.
12372
        (resize_phi_node): Relink any use nodes.
12373
        (remove_phi_arg_num): Delink the use node.
12374
        (remove_phi_node): Release the ssa_name AFTER releasing the phi node.
12375
        (remove_all_phi_nodes_for): Release phi node first.
12376
        * tree-pretty-print.c (dump_generic_node): Print stmt address.
12377
        * tree-sra.c (mark_all_v_defs): Call update_stmt_if_modified.
12378
        (scalarize_use, scalarize_copy): Call update_stmt.
12379
        * tree-ssa-alias.c (compute_may_aliases): Update all modified stmts.
12380
        (compute_points_to_and_addr_escape): Call mark_stmt_modified.
12381
        * tree-ssa-cpp.c (need_imm_uses_for): Delete.
12382
        (ccp_initialize): Remove call to compute_immediate_uses.
12383
        (substitute_and_fold, execute_fold_all_builtins): Call update_stmt.
12384
        * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update all modified
12385
        stmts.
12386
        (simplify_cond_and_lookup_avail_expr): Call mark_stmt_modified.
12387
        (simplify_switch_and_lookup_avail_expr): Call mark_stmt_modified.
12388
        (eliminate_redundant_computations): Call mark_stmt_modified.
12389
        (cprop_operand): Call mark_stmt_modified.
12390
        (optimize_stmt): Call update_stmt_if_modified and mark_stmt_modified.
12391
        * tree-ssa-dse.c (fix_phi_uses, fix_stmt_v_may_defs): Delete.
12392
        (dse_optimize_stmt): Use new immuse interface.
12393
        (tree_ssa_dse): Remove calls to compute_immediate_uses and free_df.
12394
        * tree-ssa-forwprop.c (need_imm_uses_for): Delete.
12395
        (substitute_single_use_vars): Use new immuse interface.
12396
        (tree_ssa_forward_propagate_single_use_vars): Remove calls to free_df
12397
        and compute_immediate_uses.
12398
        * tree-ssa-loop-im.c (single_reachable_address): Use new immuse
12399
        interface.
12400
        (rewrite_mem_refs): Call update_stmt.
12401
        (determine_lsm): Remove call to compute_imm_uses and free_df.
12402
        * tree-ssa-loop-ivcanon.c (create_canonical_iv): Call update_stmt.
12403
        (try_unroll_loop_completely): Call update_stmt.
12404
        * tree-ssa-loop-ivopts.c (rewrite_address_base): Call update_stmt.
12405
        (rewrite_use_compare): Call update_stmt.
12406
        (compute_phi_arg_on_exit): Insert each stmt before trying to process.
12407
        (rewrite_use) : Call update_stmt.
12408
        * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Add arg to call.
12409
        * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Call
12410
        update_stmt.
12411
        * tree-ssa-operands.c (NULL_USE_OPERAND_P): Remove declaration.
12412
        (allocate_use_optype, allocate_vuse_optype): Adjust allocation size.
12413
        (free_uses, free_vuses, free_v_may_defs, free_v_must_defs): Delink
12414
        use nodes.
12415
        (initialize_vuse_operand): New.  Initialize a vuse operand.
12416
        (initialize_v_may_def_operand): New.  Initialize a maydef operand.
12417
        (initialize_v_must_def_operand): New.  Initialize a mustdef operand.
12418
        (finalize_ssa_defs): Use stmt parameter.
12419
        (correct_use_link): Ensure a use node is in the correct list, and has
12420
        the correct stmt pointer.
12421
        (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_vuses,
12422
        finalize_ssa_v_must_defs): Also initialize use nodes.
12423
        (finalize_ssa_stmt_operands): Pass extra stmt operands.
12424
        (build_ssa_operands): Seperate parsing from final operand construction.
12425
        (parse_ssa_operands): New.  Parse entry point for operand building.
12426
        (swap_tree_operands): New.  Swap 2 tree operands.
12427
        (update_stmt_operands): Ranamed from get_stmt_operands.  Always builds
12428
        operands.
12429
        (get_expr_operands): Call swap_tree_operands when needed.
12430
        (copy_virtual_operands): Use initialize routines for virtual use ops.
12431
        (create_ssa_artficial_load_stmt): Add extra stmt parameter.
12432
        (verify_abort): New.  Issue imm_use error.
12433
        (verify_imm_links): New Verify imm_use links for a var.
12434
        (dump_immediate_uses_for): New.  Dump imm_uses for a var to file.
12435
        (dump_immediate_uses): New.  Dump imm_uses for all vars to file.
12436
        (debug_immediate_uses): New.  Dump imm_uses for all vars to stderr.
12437
        (debug_immediate_uses_for): New.  Dump imm_uses for a var to stderr.
12438
        * tree-ssa-operands.h (struct use_operand_ptr): Delete.
12439
        (NULL_USE_OPERAND_P) Define.
12440
        (use_optype_d, v_def_use_operand_type, vuse_optype_d): Add immediate
12441
        use node.
12442
        (struct vuse_operand_type): New struct.
12443
        (SET_USE): Call set_ssa_use_from_ptr.
12444
        (USE_STMT): Define.
12445
        (PHI_ARG_INDEX_FROM_USE): Define.
12446
        * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Set the phi
12447
        argument via SET_USE, not PHI_ARG_DEF_TREE.
12448
        * tree-ssa-pre.c (eliminate): Call update_stmt.
12449
        * tree-ssa-propagate.c (cfg_blocks_get): Use imm_use iterators.  Don't
12450
        call free_df.
12451
        * tree-ssa-sink.c (all_immediate_uses_same_place): Use imm_use iterator.
12452
        (nearest_common_dominator_of_uses): Use imm_use iterator.
12453
        (statement_sink_location): Use imm_use iterator and interface.
12454
        (execute_sink_code): Don't call compute_immediate_uses or free-df.
12455
        * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): Use
12456
        PHI_ARG_DEF, not PHI_ARG_DEF_TREE.
12457
        * tree-ssa.c (verify_use, verify_phi_args): Verify some imm_use info.
12458
        (verify_ssa): Ensure no stmt is marked modify after optimization pass
12459
        if new parameter is true.
12460
        (init_tree_ssa): Don't initialize operand cache here.
12461
        (delete_tree_ssa): Don't destroy operand cache here.
12462
        (propagate_into_addr): Pass in a use pointer, return true if anything
12463
        was changed.
12464
        (replace_immediate_uses): Use imm_use iterator, call update_stmt.
12465
        (check_phi_redundancy): Use imm_use iterator.
12466
        (kill_redundant_phi_nodes): Don't call compute_immediate_uses or
12467
        free_df.
12468
        * tree-ssanames.c (make_ssa_name): Initialize imm_use node.
12469
        (release_ssa_name): Delink node and all elements in its imm_use list.
12470
        * tree-tailcall.c (adjust_return_value): Call update_stmt.
12471
        * tree-vect-analyze.c (vect_stmt_relevant_p): Use imm_use iterator.
12472
        * tree-vectorizer.c (need_imm_uses_for): Delete.
12473
        (vectorize_loops): Dont call compute_immediate_uses or free_df.
12474
        * tree.h (struct ssa_imm_use_d): Define.
12475
        (SSA_NAME_IMM_USE_NODE): Define.
12476
        (struct tree_ssa_name): Add imm_use node.
12477
        (PHI_DF): Delete.
12478
        (PHI_ARG_IMM_USE_NODE): Define.
12479
        (struct phi_arg_d): Add imm_use node.
12480
        (struct tree_phi_node): Remove struct dataflow_d element.
12481
        (TDF_STMTADDR): Define.
12482
 
12483
2005-04-05  Dale Johannesen  
12484
 
12485
        * doc/invoke.texi (Optimization Options):  Remove
12486
        duplicate -fcse-follow-jumps.  Add -fweb.
12487
        (-ftree-lim):  Fix spelling (-ftree-loop-im, invariants).
12488
        (-fivcanon):  Fix spelling (-ftree-loop-ivcanon).
12489
 
12490
2005-04-05  Per Bothner  
12491
 
12492
        * tree-ssa.c (execute_early_warn_uninitialized): Pass context node
12493
        to talk_tree as 'data' parameter, rather than EXPR_LOCUS.
12494
        (warn_uninit): Get EXPR_LOCUS from context now instead.
12495
        This fixes a USE_MAPPED_LOCATION testsuite failure.
12496
 
12497
        * tree-ssa.c (warn_uninitialized_var): Remove useless local.
12498
 
12499
2005-04-05  Per Bothner  
12500
 
12501
        * c-decl.c (finish_function): If USE_MAPPED_LOCATION set the location
12502
        of the artification 'return 0' in main() to BUILTINS_LOCATION.
12503
        * tree-cfg.c (remove_bb): Check that location isn't BUILTINS_LOCATION
12504
        before warning.
12505
 
12506
2004-04-05  Devang Patel  
12507
 
12508
        * config/rs600/altivec.md (altivec_vsr): Rename to ..
12509
        (lhsr3): ... new name.
12510
        (altivec_vsra): Rename to ..
12511
        (ashr3): ... new name.
12512
        * config/rs6000/rs6000.c (builtin_description): Rename shift
12513
        operations.
12514
 
12515
2004-04-05  Paolo Bonzini  
12516
 
12517
        * combine.c (RTL_HOOKS_GEN_LOWPART_NO_EMIT): Use
12518
        gen_lowpart_for_combine.
12519
        * cse.c (gen_lowpart_if_possible): Move...
12520
        * rtlhooks.c (gen_lowpart_if_possible): ... here.  Also try
12521
        gen_lowpart_SUBREG.
12522
        (gen_lowpart_no_emit_general): Use it.
12523
 
12524
2005-04-05  Eric Botcazou  
12525
 
12526
        * config/sparc/sparc.c (TARGET_ASM_FILE_END): Undefine before
12527
        overriding.
12528
 
12529
2005-04-05  Paolo Bonzini  
12530
 
12531
        * system.h: Fix typo.
12532
 
12533
2005-04-05  Bernd Schmidt  
12534
 
12535
        * config/bfin/bfin-modes.def: New file.
12536
        * config/bfin/bfin-protos.h: New file.
12537
        * config/bfin/bfin.c: New file.
12538
        * config/bfin/bfin.h: New file.
12539
        * config/bfin/bfin.md: New file.
12540
        * config/bfin/bfin.opt: New file.
12541
        * config/bfin/crti.s: New file.
12542
        * config/bfin/crtn.s: New file.
12543
        * config/bfin/elf.h: New file.
12544
        * config/bfin/lib1funcs.asm: New file.
12545
        * config/bfin/predicates.md: New file.
12546
        * config/bfin/t-bfin: New file.
12547
        * config/bfin/t-bfin-elf: New file.
12548
        * doc/extend.texi (exception_handler, kspisusp, nesting, nmi_handler):
12549
        Document new attributes.
12550
        (interrupt, interrupt_handler, saveall): Update documentation for
12551
        these attributes.
12552
        * doc/install.texi (Specific): Add entry for the Blackfin.
12553
        * doc/invoke.texi (Blackfin Options): New section.
12554
        * doc/md.texi (Blackfin family): New section to document constraints.
12555
        * config.gcc: Add bfin*-* and bfin*-elf configurations.
12556
 
12557
2005-04-05  Olivier Hainque  
12558
 
12559
        * config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
12560
        match what the system unwinder expects.
12561
        * config/mips/mips.c (mips_frame_set): If we're saving the return
12562
        address register and the dwarf return address column number differs
12563
        from the hard register number, adjust the note reg to refer to the
12564
        former.
12565
 
12566
2004-04-05  Richard Sandiford  
12567
 
12568
        * config/mn10300/mn10300-protos.h (mn10300_override_options): Declare.
12569
        * config/mn10300/mn10300.h (target_flags, TARGET_MULT_BUG)
12570
        (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
12571
        (processor_type): New enum.
12572
        (mn10300_processor): New variable.
12573
        (TARGET_AM33, TARGET_AM33_2): Redefine in terms of mn10300_processor.
12574
        (PROCESSOR_DEFAULT, OVERRIDE_OPTIONS): New macros.
12575
        * config/mn10300/linux.h (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
12576
        (PROCESSOR_DEFAULT): New macro.
12577
        * config/mn10300/mn10300.c (mn10300_processor): New variable.
12578
        (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
12579
        (mn10300_handle_option, mn10300_override_options): New functions.
12580
        * config/mn10300/mn10300.opt: New file.
12581
 
12582
2005-04-05  Eric Botcazou  
12583
            Sebastian Pop 
12584
 
12585
        PR tree-optimization/19903
12586
        * tree-chrec.c (chrec_convert): Return chrec_dont_know for constants
12587
        that don't fit in their type after conversion.
12588
 
12589
2005-04-05  Uros Bizjak 
12590
 
12591
        PR target/20421
12592
        * config/i386/i386.md (frndintxf2_floor, frndintxf2_ceil)
12593
        (frndintxf2_trunc, frndintxf2_mask_pm): Add FLAGS_REG clobber.
12594
        Allocate local stack slots here.  Set ix86_optimize_mode_switching.
12595
        flag here. Implement using define_insn_and_split.
12596
        (frndintxf2_floor_i387, frndintxf2_ceil_i387, frndintxf2_trunc_i387)
12597
        (frndintxf2_mask_pm_i387): New insn patterns.
12598
        (floorsf2, floordf2, floorxf2): Remove local stack slot allocations.
12599
        Do not set ix86_optimize_mode_switching flag.
12600
        (ceilsf2, ceildf2, ceilxf2): Same.
12601
        (btruncsf2, btruncdf2, btruncxf2): Same.
12602
        (nearbyintsf2, nearbyintdf2, nearbyintxf2): Same.
12603
 
12604
2005-04-05  Ian Lance Taylor  
12605
 
12606
        PR debug/9963
12607
        * config/i386/cygming.h (ASM_OUTPUT_EXTERNAL): Pass DECL to
12608
        i386_pe_record_external_function.
12609
        (i386_pe_record_external_function): Update declaration.
12610
        * config/i386/winnt.c (struct extern_list): Add decl field.
12611
        (i386_pe_record_external_function): Add decl parameter.
12612
        (i386_pe_file_end): Check TREE_ASM_WRITTEN on decl, not
12613
        identifier.
12614
        * config/i386/i386-protos.h (i386_pe_record_external_function):
12615
        Update declaration.
12616
 
12617
2005-04-05  Kazu Hirata  
12618
 
12619
        * config/m68k/m68k-protos.h: Add a prototype for
12620
        valid_dbcc_comparison_p_2.
12621
        * config/m68k/m68k.c (not_sp_operand, symbolic_operand,
12622
        extend_operator, const_uint32_operand, const_sint32_operand,
12623
        general_src_operand, nonimmediate_src_operand,
12624
        memory_src_operand, post_inc_operand, pre_dec_operand,
12625
        pcrel_address): Move to predicates to predicates.md.
12626
        * config/m68k/m68k.h (PREDICATE_CODES): Remove.
12627
        * config/m68k/m68k.md: Include predicates.md.
12628
        * config/m68k/predicates.md: New.
12629
 
12630
2005-04-04  Roger Sayle  
12631
 
12632
        * config/i386/i386.md (*truncdfsf2_i387_1): New pattern.
12633
 
12634
        * fold-const.c (maybe_lvalue_p): Delete orphaned comment.
12635
 
12636
2005-04-04  Ian Lance Taylor  
12637
 
12638
        * c-typeck.c (struct c_switch): Rename switch_stmt field to
12639
        switch_expr.
12640
        (c_start_case): Build SWITCH_EXPR, not SWITCH_STMT.
12641
        (do_case): Use SWITCH_COND rather than SWITCH_STMT_COND.
12642
        (c_finish_case): Use SWITCH_BODY rather than SWITCH_STMT_BODY.
12643
        Call c_do_switch_expr_warnings rather than c_do_switch_warnings.
12644
        * c-common.c (c_do_switch_warnings_1): New static function broken
12645
        out of c_do_switch_warnings.
12646
        (c_do_switch_warnings): Call c_do_switch_warnings_1.
12647
        (c_do_switch_expr_warnings): New function.
12648
        * c-common.h (c_do_switch_expr_warnings): Declare.
12649
 
12650
2005-04-04  David Edelsohn  
12651
            Daniel Jacobowitz  
12652
 
12653
        * tree-eh.c (tree_could_trap_p): Allow non-constant floating point
12654
        trapping divide.
12655
        * rtlanal.c (may_trap_p): Same.
12656
 
12657
2005-04-04  Dale Johannesen  
12658
 
12659
        * ChangeLog:  remove reference to ChangeLog.12.
12660
 
12661
2005-04-05  Hans-Peter Nilsson  
12662
 
12663
        CRIS epilogue as RTL.
12664
        * config/cris/cris.md: Change all 0 in unspec 0 to
12665
        CRIS_UNSPEC_PLT.
12666
        (CRIS_UNSPEC_PLT, CRIS_UNSPEC_FRAME_DEALLOC): New constants.
12667
        ("*cris_load_multiple", "cris_frame_deallocated_barrier"): New
12668
        patterns.
12669
        ("return"): Change to define_expand.  Call cris_expand_return for
12670
        actual expansion.
12671
        ("*return_expanded"): New pattern.
12672
        ("epilogue"): New define_expand.
12673
        * config/cris/cris.h (PREDICATE_CODES): Add
12674
        cris_load_multiple_op.
12675
        * config/cris/cris.c (ASSERT_PLT_UNSPEC): Correct test for unspec
12676
        type.
12677
        (enum cris_retinsn_type): New.
12678
        (struct machine_function): New member return_type.
12679
        (TARGET_ASM_FUNCTION_EPILOGUE): Don't override.
12680
        (cris_target_asm_function_epilogue): Remove, moving RTLified
12681
        contents to...
12682
        (cris_expand_epilogue): New function.
12683
        (cris_reg_saved_in_regsave_area, cris_movem_load_rest_p,
12684
        (cris_gen_movem_load, cris_load_multiple_op)
12685
        (cris_return_address_on_stack_for_return, cris_expand_return): New
12686
        functions.
12687
        (cris_target_asm_function_prologue)
12688
        (cris_initial_frame_pointer_offset): Call
12689
        cris_reg_saved_in_regsave_area instead of complicated expression.
12690
        Call cris_return_address_on_stack instead of an expression.
12691
        (cris_print_operand) : New cases.
12692
        (cris_return_address_on_stack): Change return-type to bool.
12693
        (cris_simple_epilogue): Ditto.  Return false if registers are
12694
        saved.
12695
        * config/cris/cris-protos.h (cris_simple_epilogue)
12696
        (cris_return_address_on_stack): Adjust prototype return type.
12697
        (cris_gen_movem_load, cris_expand_epilogue, cris_expand_return)
12698
        (cris_return_address_on_stack_for_return): New prototypes.
12699
 
12700
2005-04-04  Kazu Hirata  
12701
 
12702
        * config/frv/frv.h (PREDICATE_CODES): Add CONST to
12703
        gpr_or_int12_operand.
12704
 
12705
        * config/frv/frv-protos.h: Add a prototype to
12706
        frv_legitimate_memory_operand and frv_const_unspec_p.
12707
        (frv_unspec): Move from frv.c.
12708
        * config/frv/frv.c (frv_unspec): Move to frv-protos.h.
12709
        (frv_const_unspec_p, frv_legitimate_memory_operand_): Export.
12710
        (ldd_address_operand, fdpic_fptr_operand, frv_load_operand,
12711
        gpr_or_fpr_operand, gpr_or_int12_operand,
12712
        gpr_fpr_or_int12_operand, fpr_or_int6_operand,
12713
        gpr_or_int10_operand, gpr_or_int_operand, int12_operand,
12714
        int6_operand, int5_operand, uint5_operand, uint4_operand,
12715
        uint1_operand, int_2word_operand, uint16_operand,
12716
        upper_int16_operand, integer_register_operand,
12717
        gpr_no_subreg_operand, fpr_operand, even_reg_operand,
12718
        odd_reg_operand, even_gpr_operand, odd_gpr_operand,
12719
        quad_fpr_operand, even_fpr_operand, odd_fpr_operand,
12720
        dbl_memory_one_insn_operand, dbl_memory_two_insn_operand,
12721
        move_destination_operand, movcc_fp_destination_operand,
12722
        frv_function_symbol_referenced_p, move_source_operand,
12723
        condexec_dest_operand, condexec_source_operand,
12724
        reg_or_0_operand, lr_operand, fdpic_operand, got12_operand,
12725
        const_unspec_operand, gpr_or_memory_operand,
12726
        gpr_or_memory_operand_with_scratch, fpr_or_memory_operand,
12727
        icc_operand, fcc_operand, cc_operand, icr_operand,
12728
        fcr_operand, cr_operand, call_operand, sibcall_operand,
12729
        symbolic_operand, relational_operator,
12730
        integer_relational_operator, float_relational_operator,
12731
        ccr_eqne_operator, minmax_operator,
12732
        condexec_si_binary_operator, condexec_si_media_operator,
12733
        condexec_si_divide_operator, condexec_si_unary_operator,
12734
        condexec_sf_conv_operator, condexec_sf_add_operator,
12735
        condexec_memory_operand, intop_compare_operator, acc_operand,
12736
        even_acc_operand, quad_acc_operand, accg_operand: Move to
12737
        predicates.md.
12738
        * config/frv/frv.h (PREDICATE_CODES): Remove.
12739
        * config/frv/frv.md: Include predicates.md.
12740
        * config/frv/predicates.md: New.
12741
 
12742
2004-04-04  Richard Sandiford  
12743
 
12744
        PR target/19537
12745
        * Makefile.in (tree-ssa-loop-ivopts.o): Depend on langhooks.h.
12746
        * tree-ssa-loop-ivopts.c: Include langhooks.h.
12747
        (add_standard_iv_candidates_for_size): New function, extracting code
12748
        from add_standard_iv_candidates and parameterizing it by type size.
12749
        (add_standard_iv_candidates): Use add_standard_iv_candidates_for_size.
12750
 
12751
2004-04-04  Richard Sandiford  
12752
 
12753
        * system.h (GCOV_SIZE_TYPE): Unposion.
12754
        * gcov-io.h (GCOV_TYPE_NODE): Delete, replacing with...
12755
        (GCOV_TYPE_SIZE): ...this new macro.
12756
        * coverage.h (get_gcov_type, GCOV_TYPE_NODE): Declare.
12757
        * coverage.c (get_gcov_type, get_gcov_unsigned_t): New functions.
12758
        (rtl_coverage_counter_ref): Use GCOV_TYPE_SIZE.
12759
        (build_fn_info_type, build_fn_info_value, build_ctr_info_type)
12760
        (build_ctr_info_value, build_gcov_info): Use get_gcov_unsigned_t
12761
        instead of unsigned_intSI_type_node.
12762
        * rtl-profile.c (rtl_gen_interval_profiler, rtl_gen_pow2_profiler)
12763
        (rtl_gen_one_value_profiler_no_edge_manipulation)
12764
        (rtl_gen_const_delta_profiler): Use GCOV_TYPE_SIZE.
12765
        * value-prof.c: Include coverage.h.
12766
 
12767
2005-04-02  Daniel Berlin  
12768
            Diego Novillo 
12769
 
12770
        Fix PR tree-optimization/20703
12771
        Fix PR tree-optimization/20725
12772
 
12773
        * tree-ssa-pre.c (phi_translate): Handle tcc_comparison.
12774
        (create_expression_by_pieces): Ditto.
12775
        (valid_in_set): Ditto. Also handle tcc_declaration.
12776
        (find_or_generate_expression): Handle comparison class.
12777
        (insert_into_preds_of_block): Ditto.
12778
        (insert_aux): Ditto.
12779
        (create_value_expr_from): Handle comparison class, recursively
12780
        handle reference nodes.
12781
        (compute_avail): Handle comparison classes, rewrite a little cleaner.
12782
        (execute_pre): Fix spacing.
12783
        (do_fre): Renamed to execute_fre.
12784
 
12785
2005-04-04  Eric Botcazou  
12786
 
12787
        * doc/invoke.texi (SPARC options): Document that
12788
        -mlittle-endian is not supported on Linux either.
12789
 
12790
2005-04-04  Eric Botcazou  
12791
 
12792
        PR target/4198
12793
        PR target/12027
12794
        * config.gcc (Obsolete configurations): Remove
12795
        sparclite-*-coff*, sparclite-*-elf* and sparc86x-*-elf*.
12796
        (sparclite-*-coff*): Delete.
12797
        (sparclite-*-elf*): Likewise.
12798
        (sparc86x-*-elf*): Likewise.
12799
        (target_cpu_default) : Remove sparc86x.
12800
        * config/sparc/lite.h: Delete.
12801
        * config/sparc/litecoff.h: Likewise.
12802
        * config/sparc/liteelf.h: Likewise.
12803
        * config/sparc/sp86x-elf.h: Likewise.
12804
        * config/sparc/t-sparclite: Likewise.
12805
        * config/sparc/t-sp86x: Likewise.
12806
 
12807
2005-04-04  Adrian Straetling  
12808
 
12809
        * config/s390/s390-protos.h: (s390_comparison,
12810
        s390_alc_comparison, s390_slb_comparison, const0_operand,
12811
        consttable_operand, larl_operand, s_operand,
12812
        shift_count_operand, bras_sym_operand, load_multiple_operation,
12813
        store_multiple_operation, s390_plus_operand): Remove prototypes.
12814
        (s390_legitimate_address_without_index_p): New prototype.
12815
        * config/s390/s390.c: (SYMBOL_FLAG_ALIGN1, DISP_IN_RANGE): Move
12816
        to s390.h.
12817
        (s390_comparison, s390_alc_comparison, s390_slb_comparison,
12818
        const0_operand, consttable_operand, larl_operand, s_operand,
12819
        shift_count_operand, bras_sym_operand, load_multiple_operation,
12820
        store_multiple_operation, s390_plus_operand): Move to
12821
        predicates.md.
12822
        (check_mode): Remove.
12823
        (s390_branch_condition_mask): Remove 'static'. Move prototype to
12824
        s390-protos.h.
12825
        (s390_legitimate_address_without_index_p): New.
12826
        * config/s390/s390.h (PREDICATE_CODES): Remove.
12827
        * config/s390/s390.md: Include predicates.md.
12828
        * config/s390/predicates.md: New.
12829
 
12830
2005-04-04  Eric Botcazou  
12831
 
12832
        PR target/20446
12833
        * config/sparc/sparc.h (NEED_INDICATE_EXEC_STACK): Define to 0.
12834
        * config/sparc/linux.h (TARGET_ASM_FILE_END): Delete.
12835
        (NEED_INDICATE_EXEC_STACK): Define to 1.
12836
        * config/sparc/linux64.h (TARGET_ASM_FILE_END): Delete.
12837
        (NEED_INDICATE_EXEC_STACK): Define to 1.
12838
        * config/sparc/sparc.c (TARGET_ASM_FILE_END): Set to sparc_file_end.
12839
        (add_pc_to_pic_symbol): Rename into pic_helper_symbol.
12840
        (add_pc_to_pic_symbol_name): Rename into pic_helper_symbol_name.
12841
        (pic_helper_emitted_p): New global.
12842
        (emit_pic_helper): New function extracted from...
12843
        (load_pic_register): ...here.  Add 'delay_pic_helper' parameter.
12844
        Do not call emit_pic_helper if delay_pic_helper is true.
12845
        (sparc_expand_prologue): Pass 'false' to load_pic_register.
12846
        (sparc_output_mi_thunk): Pass 'true' to load_pic_register.
12847
        (sparc_file_end): New function.
12848
 
12849
2005-04-04  Kazu Hirata  
12850
 
12851
        * config/mcore/mcore-protos.h: Remove the prototypes for
12852
        mcore_arith_reg_operand, mcore_general_movsrc_operand,
12853
        mcore_general_movdst_operand, mcore_reload_operand,
12854
        mcore_arith_J_operand, mcore_arith_K_operand,
12855
        mcore_arith_K_operand_not_0, mcore_arith_M_operand,
12856
        mcore_arith_K_S_operand, mcore_arith_imm_operand,
12857
        mcore_arith_any_imm_operand, mcore_arith_O_operand,
12858
        mcore_literal_K_operand, mcore_addsub_operand,
12859
        mcore_compare_operand, mcore_load_multiple_operation,
12860
        mcore_store_multiple_operation, mcore_call_address_operand.
12861
        Add a prototype for const_ok_for_mcore.
12862
        * config/mcore/mcore.c (mcore_call_address_operand,
12863
        mcore_general_movsrc_operand, mcore_general_movdst_operand,
12864
        mcore_arith_reg_operand, mcore_reload_operand,
12865
        mcore_arith_J_operand, mcore_arith_K_operand,
12866
        mcore_arith_K_operand_not_0, mcore_arith_K_S_operand,
12867
        mcore_arith_M_operand, mcore_arith_imm_operand,
12868
        mcore_arith_any_imm_operand, mcore_arith_O_operand,
12869
        mcore_literal_K_operand, mcore_addsub_operand,
12870
        mcore_compare_operand, mcore_load_multiple_operation,
12871
        mcore_store_multiple_operation): Move to predicates.md.
12872
        (const_ok_for_mcore): Export.
12873
        * config/mcore/mcore.h (PREDICATE_CODES): Remove.
12874
        * config/mcore/mcore.md: Include predicates.md.
12875
        * config/mcore/predicates.md: New.
12876
 
12877
        * config/mcore/predicates.md: Fix a comment typo.
12878
 
12879
2005-04-04  Andreas Krebbel  
12880
            Adrian Straetling  
12881
 
12882
        * config/s390/2064.md ("z_mul", "z_inf"): New insn reservations.
12883
        * config/s390/2084.md ("x_mul_hi", "x_mul_sidi", "x_div"): Likewise.
12884
        * config/s390/s390.md ("imulhi", "imulsi", "imuldi"): Added to "type"
12885
        attribute.
12886
        ("imul"): Removed from "type" attribute.
12887
        ("*muldi3_sign", "muldi3"): Changed type to imuldi.
12888
        ("mulsi3/1", "mulsi3/3", "mulsi/4", "mulsidi3", "umulsidi3"):
12889
        Changed type to imulsi.
12890
        ("*mulsi3_sign", "mulsi3/2"): Changed type to imulhi.
12891
 
12892
2005-04-04  Richard Sandiford  
12893
 
12894
        * config/mcore/mcore.h (target_flags, HARDLIT_BIT, ALIGN8_BIT, DIV_BIT)
12895
        (RELAX_IMM_BIT, W_FIELD_BIT, OVERALIGN_FUNC_BIT, CGDATA_BIT)
12896
        (SLOW_BYTES_BIT, LITTLE_END_BIT, M340_BIT, TARGET_HARDLIT)
12897
        (TARGET_DIV, TARGET_RELAX_IMM, TARGET_W_FIELD, TARGET_OVERALIGN_FUNC)
12898
        (TARGET_CG_DATA, TARGET_SLOW_BYTES, TARGET_LITTLE_END, TARGET_M340)
12899
        (TARGET_SWITCHES, mcore_stack_increment_string)
12900
        (TARGET_OPTIONS): Delete.
12901
        (TARGET_DEFAULT, OPTIMIZATION_OPTIONS): Use MASK_* constants rather
12902
        than *_BIT constants.
12903
        (TARGET_8ALIGN): #undef old definition before redefining to 1.
12904
        * config/mcore/mcore.c (mcore_stack_increment_string): Delete.
12905
        (TARGET_DEFAULT_TARGET_FLAGS): Override default to TARGET_DEFAULT.
12906
        (mcore_override_options): Delete mcore_stack_increment code.
12907
        Change use of M340_BIT to MASK_M340.
12908
        * config/mcore/mcore.opt: New file.
12909
 
12910
2005-04-04  Ian Lance Taylor  
12911
 
12912
        * config/arm/arm.c (replace_symbols_in_block): Remove static
12913
        function.
12914
 
12915
2005-04-04  Kazu Hirata  
12916
 
12917
        * config/fr30/fr30-protos.h: Remove the prototypes for
12918
        stack_add_operand, add_immediate_operand,
12919
        high_register_operand, low_register_operand, call_operand,
12920
        di_operand, and nonimmediate_di_operand.
12921
        * config/fr30/fr30.c (stack_add_operand,
12922
        add_immediate_operand, high_register_operand,
12923
        low_register_operand, call_operand, di_operand,
12924
        nonimmediate_di_operand): Move to predicates.md.
12925
        * config/fr30/fr30.h (PREDICATE_CODES): Remove.
12926
        * config/fr30/fr30.md: Include predicates.md.
12927
        * config/fr30/predicates.md: New.
12928
 
12929
        * config/mcore/mcore.h (PREDICATE_CODES): Add SYMBOL_REF and
12930
        LABEL_REF to mcore_general_movsrc_operand.  Add SYMBOL_REF to
12931
        mcore_call_address_operand.
12932
 
12933
        * config/sh/sh.h (PREDICATE_CODES): Add CONST to
12934
        general_movsrc_operand.
12935
 
12936
2005-04-04  Alan Modra  
12937
 
12938
        * passes.c (rest_of_handle_final): NULL unlikely_text_section_name
12939
        after freeing.
12940
 
12941
2005-04-04  Richard Earnshaw  
12942
 
12943
        PR target/14812
12944
        * arm.c (arm_select_cc_mode): Return CC_Zmode when comparing against
12945
        a negated value.
12946
 
12947
2005-04-04  Richard Henderson  
12948
            Jakub Jelinek  
12949
 
12950
        PR rtl-optimization/16104
12951
        * fold-const.c (fold_unary): Fix folding of vector conversions.
12952
 
12953
2005-04-04  Richard Sandiford  
12954
 
12955
        * config.gcc (xstormy16-*-elf): Set extra_options.
12956
        * config/stormy16/stormy16.h (target_flags, TARGET_SWITCHES): Delete.
12957
        * config/stormy16/stormy16.opt: New file.
12958
 
12959
2005-04-04  Richard Sandiford  
12960
 
12961
        * config/pdp11/pdp11.h (target_flags, TARGET_SWITCHES, TARGET_DEFAULT)
12962
        (TARGET_FPU, TARGET_SOFT_FLOAT, TARGET_AC0, TARGET_NO_AC0, TARGET_45)
12963
        (TARGET_BCOPY_BUILTIN, TARGET_INT16, TARGET_INT32, TARGET_FLOAT32)
12964
        (TARGET_FLOAT64, TARGET_ABSHI_BUILTIN, TARGET_BRANCH_EXPENSIVE)
12965
        (TARGET_BRANCH_CHEAP, TARGET_SPLIT, TARGET_NOSPLIT)
12966
        (TARGET_UNIX_ASM): Delete.
12967
        (TARGET_40_PLUS): Redefine in terms of TARGET_40 and TARGET_45.
12968
        * config/pdp11/2bsd.h (TARGET_UNIX_ASM_DEFAULT): Use MASK_UNIX_ASM.
12969
        * config/pdp11/pdp11.c (pdp11_handle_option): New function.
12970
        (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
12971
        * config/pdp11/pdp11.opt: New file.
12972
 
12973
2005-04-03  Roger Sayle  
12974
            Alexandre Oliva  
12975
 
12976
        PR c++/19199
12977
        * fold-const.c (non_lvalue): Split tests into...
12978
        (maybe_lvalue_p): New function.
12979
        (fold_cond_expr_with_comparison): Preserve lvalue-ness for the
12980
        C++ front-end prior to lowering into gimple form.
12981
 
12982
2005-04-03  Kaveh R. Ghazi  
12983
 
12984
        * builtins.def (BUILT_IN_STPNCPY, BUILT_IN_STRCASECMP,
12985
        BUILT_IN_STRNCASECMP): New.
12986
        * doc/extend.texi: Document stpncpy, strcasecmp, strncasecmp
12987
        and strndup.
12988
 
12989
2005-04-03  Richard Earnshaw  
12990
 
12991
        PR target/14812
12992
        * arm.md (addsi3_compare0_for_combiner): Delete.
12993
        (addsi3_compare0_scratch_for_combiner): Delete.
12994
        (cmpsi_neg_shiftsi): Delete.
12995
        (compare_negsi_si): New pattern.
12996
        (cmpsi_negshiftsi_si): New pattern.
12997
        (negated_cbranchsi4): Restrict to equality_operator.
12998
 
12999
        * arm.md (movhi_insn_arch4): delete trailing white space from assembler
13000
        template.
13001
 
13002
2005-04-03  Kazu Hirata  
13003
 
13004
        * cfghooks.c, cfgrtl.c, modulo-sched.c, config/i386/winnt.c:
13005
        Fix comment typos.
13006
 
13007
        * doc/install.texi: Fix a typo.
13008
 
13009
2005-04-03  Steven Bosscher  
13010
 
13011
        PR middle-end/20648
13012
        * bb-reorder.c (duplicate_computed_gotos): Do not unfactor
13013
        a computed goto if the edge to the computed goto block has
13014
        incoming abnormal edges.  Clarify how the function works.
13015
 
13016
2005-04-03  Nathan Sidwell  
13017
 
13018
        * params.c (set_param_value): Use gcc_assert & gcc_unreachable.
13019
        * passes.c (open_dump_file, rest_of_handle_final): Likewise.
13020
        * postreload-gcse.c (expr_equiv_p, oprs_unchanged_p,
13021
        hash_scan_set, reg_set_between_after_reload_p,
13022
        reg_used_between_after_reload_p, get_avail_load_store_reg,
13023
        eliminate_partially_redundant_load): Likewise.
13024
        * postreload.c (reload_cse_simplify_set,
13025
        reload_combine_note_use): Likewise.
13026
        * predict.c (predict_insn, expected_value_to_br_prob,
13027
        propagate_freq, expensive_function_p): Likewise.
13028
        * print-rtl.c (print_rtx): Likewise.
13029
        * profile.c (instrument_edges, instrument_values,
13030
        compute_branch_probabilities, branch_prob, union_groups,
13031
        tree_register_profile_hooks, rtl_register_profile_hooks): Likewise.
13032
        * protoize.c (in_system_include_dir, file_could_be_converted,
13033
        file_normally_convertible, gen_aux_info_file, seek_to_line,
13034
        do_cleaning): Likewise.
13035
        * tree-ssa-alias.c (collect_points_to_info_r): Likewise.
13036
        * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
13037
        * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
13038
 
13039
2005-04-03 Mostafa Hagog 
13040
 
13041
        * cfg.c (clear_bb_flags): Don't clear BB_DISABLE_SCHEDULE.
13042
        * modulo-sched.c (undo_replace_buff_elem): New structure.
13043
        (kernel_number_of_cycles, ps_unschedule_node,
13044
        undo_generate_reg_moves,free_undo_replace_buff,
13045
        undo_permute_partial_schedule,  loop_single_full_bb_p,
13046
        SIMPLE_SMS_LOOP_P, loop_canon_p, canon_loop,
13047
        build_loops_structure, get_sched_window): New.
13048
        (generate_reg_moves): Return undo_replace_buff_elem and other
13049
        fixes.
13050
        (generate_prolog_epilog): Remove old loop versioning.
13051
        (sms_schedule): Use loop information and loop_version.
13052
        (sms_schedule_by_order): Split part of it to get_sched_window.
13053
        * passes.c (rest_of_handle_sms): call cfg_layout_initialize
13054
        cfg_layout_finalize and free_dominance_info before/after SMS.
13055
 
13056
2005-04-03 Mostafa Hagog 
13057
 
13058
        * cfghooks.c (lv_flush_pending_stmts,
13059
        cfg_hook_duplicate_loop_to_header_edge, extract_cond_bb_edges,
13060
        lv_adjust_loop_header_phi, lv_add_condition_to_bb): New.
13061
        * cfghooks.h (cfg_hook_duplicate_loop_to_header_edge,
13062
        lv_add_condition_to_bb,
13063
        lv_adjust_loop_header_phi, extract_cond_bb_edges,
13064
        flush_pending_stmts): New in cfg_hooks structure.
13065
        (cfg_hook_duplicate_loop_to_header_edge, lv_flush_pending_stmts,
13066
        extract_cond_bb_edges, lv_adjust_loop_header_phi,
13067
        lv_add_condition_to_bb): New declarations.
13068
        * cfgloop.h (duplicate_loop_to_header_edge): Change return type to
13069
        bool.
13070
        (loop_version): Declare.
13071
        * cfgloopmanip.c (cfghooks.h): Include.
13072
        (duplicate_loop_to_header_edge): Change return type to bool.
13073
        (loop_version, lv_adjust_loop_entry_edge): Move here.
13074
        * cfgrtl.c (cfgloop.h): Include.
13075
        (rtl_verify_flow_info_1): Fix.
13076
        (rtl_lv_add_condition_to_bb, rtl_extract_cond_bb_edges): New.
13077
        (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add hooks to
13078
        initialization.
13079
        * tree-cfg.c (tree_lv_adjust_loop_header_phi,
13080
        tree_lv_add_condition_to_bb): New.
13081
        (tree_cfg_hooks): Add new hooks to initialization.
13082
        * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi,
13083
        lv_adjust_loop_entry_edge, tree_ssa_loop_version): Remove.
13084
 
13085
2005-04-03  Kazu Hirata  
13086
 
13087
        * config/stormy16/stormy16.h (PREDICATE_CODES): Add SUBREG to
13088
        xstormy16_below100_or_register,
13089
        xstormy16_splittable_below100_or_register, and
13090
        nonimmediate_nonstack_operand.
13091
 
13092
        * config/stormy16/stormy16-protos.h: Remove the prototypes for
13093
        xstormy16_ineqsi_operator, equality_operator,
13094
        inequality_operator, shift_operator,
13095
        xstormy16_below100_operand, xstormy16_below100_or_register,
13096
        xstormy16_splittable_below100_or_register,
13097
        xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand.
13098
        * config/stormy16/stormy16.c (xstormy16_ineqsi_operator,
13099
        equality_operator, inequality_operator,
13100
        xstormy16_below100_operand, xstormy16_below100_or_register,
13101
        xstormy16_splittable_below100_or_register,
13102
        xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand,
13103
        nonimmediate_nonstack_operand, shift_operator): Move to
13104
        predicates.md.
13105
        * config/stormy16/stormy16.h (PREDICATE_CODES): Remove.
13106
        * config/stormy16/stormy16.md: Include predicates.md.
13107
        * config/stormy16/predicates.md: New.
13108
 
13109
2005-04-02  Kazu Hirata  
13110
 
13111
        * config/iq2000/iq2000.c (uns_arith_operand, arith_operand,
13112
        small_int, large_int, reg_or_0_operand, simple_memory_operand,
13113
        equality_op, cmp_op, pc_or_label_operand, call_insn_operand,
13114
        move_operand, power_of_2_operand): Move to predicates.md.
13115
        * config/iq2000/iq2000.h (SPECIAL_MODE_PREDICATES,
13116
        PREDICATE_CODE): Remove.
13117
        * config/iq2000/iq2000.md: Include predicates.md.
13118
        * config/iq2000/predicates.md: New.
13119
 
13120
2005-04-02  Richard Sandiford  
13121
 
13122
        * config/m68hc11/m68hc11.h (target_flags, MASK_SHORT)
13123
        (MASK_AUTO_INC_DEC, MASK_M6811, MASK_M6812, MASK_M68S12)
13124
        (MASK_NO_DIRECT_MODE, MASK_MIN_MAX, MASK_LONG_CALLS)
13125
        (TARGET_SHORT, TARGET_M6811, TARGET_M6812, TARGET_M68S12)
13126
        (TARGET_AUTO_INC_DEC, TARGET_MIN_MAX, TARGET_NO_DIRECT_MODE)
13127
        (TARGET_LONG_CALLS, TARGET_SWITCHES, TARGET_OPTIONS)
13128
        (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS, m68hc11_regparm_string)
13129
        (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
13130
        (TARGET_M68HC11): Delete.
13131
        (TARGET_DEFAULT): Change the default setting from MASK_M6811 to 0.
13132
        * config/m68hc11/m68hc12.h (TARGET_M68HC12): Delete.
13133
        * config/m68hc11/m68hc11.c (m68hc11_regparm_string)
13134
        (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
13135
        (nb_soft_regs): Delete.
13136
        (TARGET_DEFAULT_TARGET_FLAGS): Override default with TARGET_DEFAULT.
13137
        (m68hc11_override_options): Remove the code that caters for MASK_M6811
13138
        and MASK_M6812 being set simultaneously.  Change the code that sets
13139
        the default m68hc11_soft_reg_count to use integers instead of strings.
13140
        (m68hc11_conditional_register_usage, hard_regno_mode_ok): Use
13141
        m68hc11_soft_reg_count (which now has an int type) as the number
13142
        of soft registers.
13143
        * config/m68hc11/m68hc11.opt: New file.
13144
 
13145
2005-04-02  Kazu Hirata  
13146
 
13147
        * config/fr30/fr30.h (PREDICATE_CODES): Remove
13148
        fp_displacement_operand, sp_displacement_operand.
13149
 
13150
        * config/m68hc11/m68hc11-protos.h: Add a prototype for
13151
        m68hcc_auto_inc_p.
13152
        Remove the prototypes for tst_operand, cmp_operand,
13153
        stack_register_operand, d_register_operand,
13154
        hard_addr_reg_operand, splitable_operand,
13155
        m68hc11_logical_operator, m68hc11_arith_operator,
13156
        m68hc11_non_shift_operator, m68hc11_shift_operator,
13157
        m68hc11_unary_operator, m68hc11_eq_compare_operator,
13158
        non_push_operand, hard_reg_operand, and
13159
        reg_or_some_mem_operand.
13160
        * config/m68hc11/m68hc11.c (m68hcc_auto_inc_p): Make it
13161
        extern.
13162
        (tst_operand, cmp_operand, non_push_operand,
13163
        splitable_operand, reg_or_some_mem_operand,
13164
        stack_register_operand, d_register_operand,
13165
        hard_addr_reg_operand, hard_reg_operand,
13166
        m68hc11_eq_compare_operator, m68hc11_logical_operator,
13167
        m68hc11_arith_operator, m68hc11_non_shift_operator,
13168
        m68hc11_shift_operator, m68hc11_unary_operator): Move to
13169
        predicates.md.
13170
        * config/m68hc11/m68hc11.h (PREDICATE_CODES): Remove.
13171
        * config/m68hc11/m68hc11.md: Include predicates.md.
13172
        * config/m68hc11/predicates.md: New.
13173
 
13174
2005-04-02  Alexandre Oliva  
13175
 
13176
        PR debug/19345
13177
        * dwarf2out.c (add_abstract_origin_attribute): Revert accidental
13178
        change checked in along with 2005-03-03's patch for debug/20253.
13179
        * tree-inline.c (remap_type): Remap TYPE_STUB_DECL.
13180
        (remap_decl): Insert type decl in map earlier.
13181
 
13182
2005-04-02  Alexandre Oliva  
13183
 
13184
        PR tree-optimization/20640
13185
        * tree-ssa-dce.c (remove_dead_stmt): Don't redirect edge to
13186
        post-dominator if it has phi nodes.
13187
        (eliminate_unnecessary_stmts): Remove dead phis in all blocks
13188
        before dead statements.
13189
 
13190
2005-04-02  Alexandre Oliva  
13191
 
13192
        PR middle-end/20491
13193
        * final.c (alter_subreg): Don't call subreg_regno for a non-REG.
13194
 
13195
2005-04-02  Alexandre Oliva  
13196
 
13197
        PR rtl-optimization/20290
13198
        * loop.c (for_each_insn_in_loop): Don't assume the loop body runs
13199
        in every iteration if the entry point is the exit test.
13200
 
13201
2005-04-02  Hans-Peter Nilsson  
13202
 
13203
        * config/cris/cris.md (attribute "length"): Define.
13204
 
13205
2005-04-02  Geoffrey Keating  
13206
 
13207
        * config/rs6000/predicates.md (indexed_or_indirect_operand): New.
13208
        (word_offset_memref_operand): New.
13209
        * config/rs6000/rs6000-protos.h (word_offset_memref_operand): Delete.
13210
        (indexed_or_indirect_operand): Delete.
13211
        * config/rs6000/rs6000.c (word_offset_memref_operand): Delete.
13212
        (indexed_or_indirect_operand): Delete.
13213
 
13214
        * config/rs6000/t-darwin8: Comment out ppc64 multilib.
13215
 
13216
        PR 20650
13217
        * config/rs6000/rs6000.md (fix_truncdfsi2): Make destination
13218
        a register.
13219
 
13220
        * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Add -pipe.
13221
        * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Likewise.
13222
 
13223
2005-04-01  Jan-Benedict Glaw  
13224
 
13225
        * gcc/config/vax/vax.md: Spellcheck, fix whitespace.
13226
 
13227
2005-04-01  Ian Lance Taylor  
13228
 
13229
        * gcc.c: Don't include  or declare getrusage.
13230
        (rus, prus): Remove static variables.
13231
        (execute): Use pex_run/pex_get_status rather than pexecute/pwait.
13232
        (process_command): Permit report_times and use_pipes together.
13233
 
13234
2005-04-01  Joseph S. Myers  
13235
 
13236
        * c-decl.c (validate_proto_after_old_defn): Look at
13237
        TYPE_MAIN_VARIANT of argument types.
13238
 
13239
2005-04-01  Paul Brook  
13240
 
13241
        * config/arm/arm.c (thumb_call_via_label): Include space for SP.
13242
        (arm_output_function_epilogue): Allow call_via_SP.
13243
        (thumb_call_via_reg, arm_file_end): Ditto.
13244
        * config/arm/arm.h (struct machine_function): Include space for SP.
13245
        (thumb_call_via_label): Update declaration.
13246
 
13247
2005-04-01  Ian Lance Taylor  
13248
 
13249
        * final.c (final_scan_insn): Revert part of 2005-03-30 patch: when
13250
        doing a peephole optimization, once again put any notes in the
13251
        proper position.
13252
 
13253
2005-04-01  Kazu Hirata  
13254
 
13255
        * bb-reorder.c, fold-const.c, varasm.c: Fix comment typos.
13256
 
13257
2005-04-01  Nathan Sidwell  
13258
 
13259
        * local-alloc.c (update_equiv_regs): Use gcc_assert, gcc_unreachable.
13260
        (block_alloc, find_free_reg): Likewise.
13261
        * loop-doloop.c (doloop_modify): Likewise.
13262
        * loop-invariant.c (record_use): Likewise.
13263
        * loop-iv.c (get_biv_step_1, get_biv_step, iv_analyze,
13264
        get_iv_value, canon_condition, eliminate_implied_condition,
13265
        eliminate_implied_condition, simplify_using_initial_values,
13266
        shorten_into_mode, canonicalize_iv_subregs,
13267
        iv_number_of_iterations): Likewise.
13268
        * loop-unroll.c (expand_var_during_unrolling): Likewise.
13269
        * loop-unswitch.c (compare_and_jump_seq, unswitch_single_loop,
13270
        unswitch_loop): Likewise.
13271
        * loop.c (INSN_LUID, loop_optimize, rtx_equal_for_loop_p,
13272
        move_movables, replace_call_address, find_and_verify_loops,
13273
        rtx_equal_for_prefetch_p, fold_rtx_mult_add, loop_iterations,
13274
        record_giv, final_giv_value, general_induction_var,
13275
        simplify_giv_expr, extension_within_bounds_p, try_copy_prop,
13276
        loop_giv_dump): Likewise.
13277
 
13278
        * gcov-io.h (GCOV_CHECK, GCOV_CHECK_READING,
13279
        GCOV_CHECK_WRITING): Remove.
13280
        (gcov_position, gcov_rewrite): Use gcc_assert.
13281
        * gcov-io.c (gcov_open, gcov_write_words, gcov_write_length,
13282
        gcov_read_words, gcov_sync, gcov_seek): Use gcc_assert.
13283
        * libgcov.c (__gcov_merge_single, __gcov_merge_delta): Use
13284
        gcc_assert.
13285
 
13286
2005-04-01  Kazu Hirata  
13287
 
13288
        * tree-inline.c: Fix a typo.
13289
 
13290
2005-04-01  Nathan Sidwell  
13291
 
13292
        * configure.ac (enable-checking): Explicitly set all variables for
13293
        collective switch values.  Alphabetize variables. Rename
13294
        ac_checking_valgrind to ac_valgrind_checking.  Allow 'none' as
13295
        synonym for 'no'.
13296
        * doc/install.texi (enable-checking): Update documentation.
13297
        * configure: Rebuilt.
13298
 
13299
2005-04-01  Kazu Hirata  
13300
 
13301
        * tree-inline.c (copy_body_r): Use CONSTANT_CLASS_P where
13302
        possible.
13303
 
13304
2005-04-01  Richard Earnshaw  
13305
 
13306
        * arm.c (adjacent_mem_locations): Reject volatile memory refs.
13307
        Also reject cases where this pattern will cause load delay stalls
13308
        unless optimizing for size and it will produce a shorter sequence.
13309
        * arm.md (arith_adjacent_mem): Make better use of ldm addressing
13310
        variants to avoid pre-adjusting the base when possible.
13311
 
13312
2005-04-01  Richard Earnshaw  
13313
 
13314
        * arm.md (minmax_arithsi): Reject all eliminable registers, not just
13315
        the frame and argument pointers.
13316
        (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec): Likewise.
13317
        (loadqisi_preinc, loadqisi_predec, strsi_preinc): Likewise.
13318
        (strsi_predec, loadsi_preinc, loadsi_predec): Likewise.
13319
        (strqi_shiftpreinc, strqi_shiftpredec, loadqi_shiftpreinc): Likewise.
13320
        (loadqi_shiftpredec, strsi_shiftpreinc, strsi_shiftpredec): Likewise.
13321
        (loadsi_shiftpreinc, loadsi_shiftpredec): Likewise.
13322
 
13323
2005-04-01  Danny Smith  
13324
 
13325
        * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define,
13326
        with entry for selectany attribute.
13327
        * config/i386/i386-protos.h (ix86_handle_selectany_attribute):
13328
        Declare.
13329
        * config/i386/winnt.c (ix86_handle_selectany_attribute): Define.
13330
        (i386_pe_asm_named_section): Handle sections generated by
13331
        selectany attribute.
13332
        * doc/extend.texi (selectany): Document attribute.
13333
 
13334
2005-04-01  Paolo Bonzini  
13335
            Jan Hubicka  
13336
 
13337
        * config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
13338
        to fix addresses involving EBP and ESP.
13339
        (aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
13340
        for SUBREGed registers.
13341
        (legitimate_address_p): Accept SUBREGed registers.
13342
 
13343
2005-04-01  Jakub Jelinek  
13344
 
13345
        PR c++/19406
13346
        * dwarf2out.c (gen_type_die_for_member): Handle FIELD_DECL.
13347
        (dwarf2out_imported_module_or_decl): Use gen_type_die_for_member
13348
        for FIELD_DECLs.
13349
 
13350
2005-04-01  Kazu Hirata  
13351
 
13352
        * doc/contrib.texi, doc/invoke.texi, doc/tm.texi: Fix typos.
13353
 
13354
2005-04-01  James E Wilson  
13355
 
13356
        PR c++/20505
13357
        * dwarf2out.c (rtl_for_decl_init): New function.
13358
        (rtl_for_decl_location): Extracted from here.
13359
        (tree_add_const_value_attribute): Call rtl_for_decl_init and
13360
        add_const_value_attribute.  Delete initializer_constant_valid_p call.
13361
 
13362
2005-04-01  Kazu Hirata  
13363
 
13364
        * cgraphunit.c, dbxout.c, flow.c, gcse.c, gimplify.c,
13365
        lambda-code.c, loop.c, machmode.def, mips-tfile.c,
13366
        modulo-sched.c, passes.c, postreload-gcse.c, tree-eh.c,
13367
        tree-ssa-ccp.c, varasm.c, config/frv/frv.c, config/frv/frv.h,
13368
        config/frv/frv.md, config/i386/i386.c, config/i386/i386.h,
13369
        config/i386/i386.md, config/rs6000/predicates.md,
13370
        config/rs6000/rs6000.c, config/s390/fixdfdi.h,
13371
        config/s390/s390.c, config/stormy16/stormy16.c,
13372
        config/stormy16/stormy16.md, config/vax/vax.md: Fix comment
13373
        typos.
13374
 
13375
2005-04-01  Joseph S. Myers  
13376
 
13377
        PR c/17855
13378
        * gimplify.c (gimplify_expr): Create a temporary for lvalue
13379
        COND_EXPR and CALL_EXPR.
13380
 
13381
2005-03-31  Vladimir Makarov  
13382
 
13383
        PR target/20632
13384
        * genautomata.c (first_cycle_unit_presence): Check all alternative
13385
        states for unit presence.
13386
 
13387
        * doc/md.texi: Remove remark about impossibility to query unit
13388
        presence in non nondeterministic automaton state.
13389
 
13390
        * config/ia64/ia64.c (get_template): Change order of unit querying.
13391
 
13392
2005-03-31  Kazu Hirata  
13393
 
13394
        * tree-ssa-dom.c (cprop_into_successor_phis): Remove an
13395
        obsolete comment.
13396
 
13397
2005-03-31  Zdenek Dvorak  
13398
 
13399
        * cfgloopanal.c (mark_loop_exit_edges): Clean EDGE_LOOP_EXIT
13400
        flag for edges outside any loops.
13401
 
13402
2005-03-31  Janis Johnson  
13403
 
13404
        * doc/sourcebuild.texi (Test Directives): Describe cleanup-* procs.
13405
 
13406
2005-03-31  Kazu Hirata  
13407
 
13408
        * tree-ssa-alias.c: Follow spelling conventions.
13409
        * doc/tree-ssa.texi: Fix a typo.
13410
 
13411
2005-03-31  J"orn Rennecke 
13412
 
13413
        * postreload-gcse.c: Include target.h.
13414
        (gcse_after_reload_main): Return early if we cannot modify jumps.
13415
        * Makefile.in (postreload-gcse.o): Depend on $(TARGET_H).
13416
 
13417
2005-03-31  David Edelsohn  
13418
 
13419
        * tree-ssa-loop-im.c (stmt_cost): Add RDIV_EXPR to list of
13420
        expensive operations.
13421
 
13422
2005-03-31  Ian Lance Taylor  
13423
 
13424
        * collect2.c (lderrout): New variable.
13425
        (collect_exit): Dump ldout to stdout.  Dump and unlink lderrout,
13426
        if it is set, to stderr.
13427
        (handler): Unlink lderrout if it is set.
13428
        (dump_file): Add "to" parameter.  Change all callers.
13429
        (main): Initialize lderrout.
13430
        (collect_execute): Add errname parameter.  Change all callers.
13431
        Rename redir parameter to outname.  Never pass
13432
        PEX_STDERR_TO_STDOUT to pex_run.
13433
        * collect2.h (collect_execute, dump_file): Update declarations.
13434
        * tlink.c (tlink_execute): Add errname parameter.  Change all
13435
        callers.
13436
        (do_tlink): Check lderrout as well as ldout.
13437
 
13438
2005-03-31  Caroline Tice  
13439
 
13440
        * Makefile.in (varasm.o): Add basic-block.h to list of requirements.
13441
        (bb-reorder.o): Add errors.h to list of requirements.
13442
        (STAGEFEEDBACK_FLAGS_TO_PASS): Add -freorder-blocks-and-partition to
13443
        profiledbootstrap flags.
13444
        * bb-reorder.c (errors.h): Add new include.
13445
        (struct bbro_basic_block_data_def): Add new field, in_trace.
13446
        (add_unlikely_executed_notes):  Remove function.
13447
        (mark_bb_for_unlikely_executed_section): Remove function.
13448
        (insert_section_boundary_note): New function.
13449
        (verify_hot_cold_block_grouping): New function.
13450
        (push_to_next_round_p): Remove variables and tests that push all
13451
        cold blocks to last round.
13452
        (find_traces): Remove code that added extra round of trace finding
13453
        when doing partitioning.
13454
        (find_traces_1_round) :  Remove variable last_round;  add code to
13455
        update new struct field, in_trace; correct trace_length where it was
13456
        incorrect before (after call to copy_bb); change code that pushed all
13457
        cold blocks to last round. Instead verify that all blocks going into
13458
        a trace belong in the same partition.
13459
        (connect_traces): Modify to connect the traces in two passes, if the
13460
        function contains both hot and cold blocks.  The first pass connects
13461
        all the traces for blocks in the partition that the first block in
13462
        the function belongs to; the second pass connnects all the traces
13463
        containing blocks that belong in the other partition.
13464
        (find_rarely_executed_basic_blocks_and_crossing_edges):  Remove
13465
        code that automatically put the first block in a function into the
13466
        hot partition if the function had any hot blocks.
13467
        (fix_crossing_unconditional_branches): Check number of succ edges
13468
        before attempting to get one.
13469
        (fix_edges_for_rarely_executed_code):  Update comment describing
13470
        function.
13471
        (reorder_basic_blocks):  Add code to initialize new field (in_trace);
13472
        remove call to add_unlikely_executed_notes; add call to
13473
        verify_hot_cold_block_grouping.
13474
        (duplicate_computed_gotos): Don't change computed goto if it's a
13475
        crossing edge.
13476
        (partition_hot_cold_basic_blocks):  Update function comment.
13477
        * cfgcleanup.c (try_simplify_condjump): Remove redundacy from
13478
        condition.
13479
        (try_forward_edges): Likewise.
13480
        (merge_blocks_move_predecessor_nojumps): Likewise.
13481
        (merge_blocks_move_successor_nojumps): Likewise.
13482
        (merge_blocks_move): Likewise.
13483
        (try_crossjump_bb): Likewise.
13484
        * cfglayout.c (update_unlikely_executed_notes): Remove function.
13485
        (fixup_reorder_chain): Remove code for adding UNLIKELY_EXECUTED_CODE
13486
        notes to cold bb's; remove call to update_unlikely_executed_notes.
13487
        (duplicate_insn_chain):  change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
13488
        NOTE_INSN_SWITCH_TEXT_SECTIONS.
13489
        * cfglayout.h (scan_ahead_for_unlikely_executed_note): Remove
13490
        function declaration.
13491
        * cfgrtl.c (can_delete_note_p): Remove UNLIKELY_EXECUTED_CODE note
13492
        from consideration.
13493
        (rtl_can_merge_blocks): Remove redundancy from condition.
13494
        (try_redirect_by_replacing_jump): Likewise.
13495
        (force_nonfallthru_and_redirect): Remove code for adding
13496
        UNLIKELY_EXECUTED_CODE notes to cold bb's.
13497
        (commit_one_edge_insertion): Likewise.
13498
        (cfg_layout_can_merge_blocks_p): Remove redundancy from condition.
13499
        * dbxout.c (FORCE_TEXT): Replace function_section with
13500
        current_function_section.
13501
        (struct dbx_debug_h): Add do_nothing function for new debug_hooks
13502
        function, switch_text_section.
13503
        (struct xcoff_debug): Likewise.
13504
        (dbxout_function_end): Add code to put out label diffs for both
13505
        hot and cold sections.
13506
        * debug.c (struct do_nothing_debug_hooks): Add do_nothing function
13507
        for new debug_hooks funciton, switch_text_section..
13508
        * debug.h (struct gcc_debug_hooks):  Add new function to debug_hooks,
13509
        switch_text_section.
13510
        * dwarf2out.c (struct dw_fde_struct):  Add five new fields:
13511
        dw_fde_hot_section_label, dw_fde_hot_section_end_label,
13512
        dw_fde_unlikely_section_label, dw_fde_unlikely_section_end_label and
13513
        dw_fde_switched_sections.
13514
        (output_call_frame_info):  Add test to see if function switches text
13515
        sections in the middle; if so, use appropriate extra hot and cold
13516
        section labels to compute size deltas for the hot and cold sections.
13517
        (dwarf2out_begin_prologue): Add code to initialize new fields in
13518
        dw_fde_struct.
13519
        (dwarf2out_switch_text_section): New function (invoked through
13520
        debug_hook); updates new fields in dw_fde_struct appropriately and
13521
        increments separate_line_info_table_in_use.
13522
        (dwarf2_debug_hooks): Initialize switch_text_section function to be
13523
        dwarf2out_switch_text_section.
13524
        (struct var_loc_node): Add new field, section_label.
13525
        (output_aranges): Add code to check whether in hot or cold section and
13526
        use the appropriate label in calculating deltas.
13527
        (output_ranges): Likewise.
13528
        (output_line_info): Add code to check which section we're in and
13529
        use appropriate hot/cold label.
13530
        (add_location_or_constant_value_attribute): Likewise.
13531
        (gen_subprogam_die): Modify arange attributes to use correct labels.
13532
        (dwarf2out_begin_block): Change call to function_section into call to
13533
        current_function_section.
13534
        (dwarf2out_end_block): Likewise.
13535
        (dwarf2out_source_line): Likewise.
13536
        (dwarf2out_var_location): Add code to check whether in hot or cold
13537
        section and use the appropriate label.
13538
        * except.c (output_function_exception_table): Change call to
13539
        function_section into call to current_function_section.
13540
        * final.c (profile_function): Likewise.
13541
        (scan_ahead_for_unlikely_executed_note): Remove function.
13542
        (final_scan_insn):  Remove calls to
13543
        scan_ahead_for_unlikely_executed_note, and related code for switching
13544
        to cold section, except for the single time
13545
        NOTE_INSN_SWITCH_TEXT_SECTIONS may be encountered;  add calls to
13546
        debug_hooks->switch_text_sections; replace appropriate calls to
13547
        function_section with calls to current_function_section.
13548
        * ifcvt.c (find_if_case_1): Remove redundancy from condition, add
13549
        test_bb to condition.
13550
        (find_if_case_2): Likewise.
13551
        * insn-notes.def: Change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
13552
        NOTE_INSN_SWITCH_TEXT_SECTIONS.  Update comment appropriately.
13553
        * opts.c (decode_options): Change warning about hot/cold partitioning
13554
        with exceptionss to inform (so as not to cause bootstrap failures);
13555
        remove warning about partitioning with DWARF debug info.
13556
        * output.h (current_function_section): Add new function decl.
13557
        (insert_section_boundary_note): Likewise.
13558
        (enum in_section): Move this declaration here from varasm.c.
13559
        (unlikely_section_label): Likewise.
13560
        (unlikely_text_section_name): Likewise.
13561
        (last_text_section_name): New global variable.
13562
        (last_text_section): Likewise.
13563
        (hot_section_label): Likewise.
13564
        (hot_section_end_label): Likewise.
13565
        (cold_section_end_label): Likewise.
13566
        * passes.c (rest_of_handle_final): Free unlikely_text_section_name.
13567
        * print-rtl.c (print_rtx): Change NOTE_INSN_UNLIKELY_EXECUTED_CODE
13568
        to NOTE_INSN_SWITCH_TEXT_SECTIONS.
13569
        * reg-stack.c (emit_swap_insn): Remove UNLIKELY_EXECUTED_CODE note
13570
        insn from consideration.
13571
        * sdbout.c (sdb_debug_hooks): Add do_nothing for new function,
13572
        switch_text_section.
13573
        * varasm.c (basic-block.h): Add new include.
13574
        (unlikely_section_label_printed): Remove global variable.
13575
        (unlikely_section_label): Make global variable not be static any more.
13576
        (unlikely_text_section_name): Likewise.
13577
        (hot_section_end_label): New global variable (not static)
13578
        (first_function_block_is_cold): Likewise.
13579
        (hot_section_label): Likewise.
13580
        (cold_section_end_label): Likewise..
13581
        (last_text_section): New global variable, not static.
13582
        (last_text_section_name): New global variable, not static.
13583
        (initialize_cold_section_name): New function.
13584
        (enum in_section): Move declaration to output.h.
13585
        (text_section): Update last_text_section.
13586
        (unlikely_text_section): Replace code to determine cold section name
13587
        with call to initialize_cold_section_name; Add code to update
13588
        last_text_section; remove code for printing out label.
13589
        (named_section_real): Add code to update last_text_section and
13590
        last_text_section_name as appropriate.
13591
        (function_section): Change test for 'unlikely' to depend on
13592
        first_function_block_is_cold (moved old test to
13593
        current_function_section).
13594
        (current_function_section): New function.
13595
        (assemble_start_function): Move code that frees
13596
        unlikely_text_section_name; initialize hot_section_end_label;
13597
        print hot and cold section labels at the start of the function;
13598
        set first_function_block_is_cold, if appropriate; initialize l
13599
        ast_text_section; add call to insert_section_boundary_note.
13600
        (assemble_end_function):  Add code to write out hot and cold section
13601
        end labels.
13602
        *vmsdbgout.c (vmsdbg_debug_hooks): Add do_nothing for new function,
13603
        switch_text_section.
13604
        * config/darwin.c (machopic_select_section): Replace incorrect
13605
        function in base_funs; update reloc for cold sections if necessary.
13606
        * config/darwin.h (SECTION_FUNCTION):  Add code to update
13607
        last_text_section if appropriate.
13608
        (text_unlikely_section): Remove.
13609
        * config/sparc/sparc.c (sparc_output_deferred_case_vectors): Likewise.
13610
        * config/stormy16/stormy16.c (stormy_16_output_addr_vec): Likewise.
13611
        * config/xtensa/xtensa.c (override_options): Turn off hot/cold
13612
        partitioning for this architecture.
13613
 
13614
2005-03-31  Olivier Hainque  
13615
 
13616
        * dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
13617
        defined and non-zero.
13618
 
13619
2005-03-31  Gabriel Dos Reis  
13620
 
13621
        PR c++/18644
13622
        * doc/invoke.texi (-Wsynth): Don't document, as it now is void of
13623
        semantics.
13624
 
13625
2005-03-31  Alan Modra  
13626
 
13627
        PR target/20611
13628
        * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
13629
        label operand.  Remove (use (unspec..)).  Don't emit a label on
13630
        the offset word.
13631
        * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
13632
        generate inline label for load_toc_v4_PIC_1b.
13633
        (rs6000_emit_load_toc_table): Likewise.
13634
 
13635
2005-03-31  Kazu Hirata  
13636
 
13637
        * config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
13638
        ns32k-*-netbsdelf*, and ns32k-*-netbsd*.
13639
 
13640
2005-03-29  Devang Patel  
13641
 
13642
        * tree-sra.c (decide_block_copy): Disable scalarization of
13643
        sub-elements.
13644
 
13645
2005-03-30  Stuart Hastings  
13646
            Dale Johannesen  
13647
 
13648
        * Makefile.in (print-tree.o):  Depend on tree-iterator.h.
13649
        * print-tree.c (print_node):  Add case STATEMENT_LIST.
13650
 
13651
2005-03-31  Alan Modra  
13652
 
13653
        * config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
13654
        (powerpc64-*-linux*): Use it.  Rearrange tm_file assignment.
13655
        (powerpc-*-linux*): Build a biarch compiler when --enable-targets
13656
        is given with "powerpc64*" or "all", or when --with-cpu chooses
13657
        a 64-bit cpu.
13658
 
13659
2005-03-30  James E. Wilson  
13660
 
13661
        PR debug/20268
13662
        * dwarf2out.c (add_high_low_attributes): New function, extracted from
13663
        gen_lexical_block_die.
13664
        (gen_lexical_block_die, gen_inlined_subroutine_die): Call it.
13665
 
13666
2005-03-31  Jan Hubicka  
13667
 
13668
        2004-11-02  Jan Hubicka  
13669
 
13670
        * cgraph.c (cgraph_varpool_node_name): New function.
13671
        (dump_cgraph_varpool_node): New function.
13672
        (dump_varpool): New function.
13673
        * cgraphunit.c (cgraph_optimize): Dump varpool.
13674
 
13675
        2004-10-16  Jan Hubicka  
13676
 
13677
        * cgraph.c (decide_is_variable_needed): New function.
13678
        (cgraph_varpool_finalize_decl): Use it.
13679
        * cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing
13680
        unit-at-a-time.
13681
        * final.c (output_addr_const): Do not call mark_referenced.
13682
        * passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack;
13683
        always go via cgraph.
13684
        * toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code.
13685
        (check_global_declarations): Ifdef out code clearing DECL_RTL.
13686
        * tree-optimize.c (execute_inline): Mark functions called.
13687
        * i386.c (output_pic_addr_const): Do not call mark_decl_referenced.
13688
 
13689
        2004-10-11  Jan Hubicka  
13690
 
13691
        * cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable
13692
        (cgraph_varpool_last_needed_node): New static variable.
13693
        (enqueue_needed_varpool_node): Break out from ...; add items to the
13694
        end of queue; update first pointers.
13695
        (cgraph_varpool_mark_needed_node): ... here.
13696
        (cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node.
13697
        (cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c
13698
        * cgraph.h (cgraph_varpool_node): Add analyzed field.
13699
        (cgraph_varpool_first_unanalyzed_node): Declare.
13700
        * cgraphunit.c: Include output.h.
13701
        (cgraph_varpool_analyze_pending_decls): New function.
13702
        (cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out
13703
        for errors, analyze pending decls.
13704
        (cgraph_finalize_compilation_unit): Only analyze decls.
13705
        (cgraph_optimize): Assemble the decls after expanding.
13706
 
13707
2005-03-30  Daniel Berlin  
13708
 
13709
        * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Make sure
13710
        subvars get marked properly in tags for grouping.
13711
        (add_pointed_to_var): Mark only actual pointed to
13712
        variables/subvars in addresses needed.
13713
        (create_overlap_variables_for): Clear call clobbered on original
13714
        variable.
13715
        * tree-ssa-operands.c (get_asm_expr_operands): Don't let regular
13716
        addresable vars with subvars into list.
13717
        * tree-ssa.c (verify_ssa_name): Verify original is not used where
13718
        subvar should be.
13719
 
13720
2005-03-30  Richard Henderson  
13721
 
13722
        * cgraph.h (struct cgraph_node): Add alias.
13723
        * varasm.c (assemble_alias): Set it.
13724
        * cgraphunit.c (cgraph_assemble_pending_functions): Check it and
13725
        avoid calling cgraph_expand_function.
13726
 
13727
2005-03-30  Tom Tromey  
13728
 
13729
        * tree.def (FILE_TYPE): Removed.
13730
        * typeclass.h (enum type_class): Removed file_type_class.
13731
        * dwarf2out.c (is_base_type): Updated.
13732
        (gen_type_die): Likewise.
13733
        * dbxout.c (dbxout_type): Updated.
13734
        * builtins.c (type_to_class): Updated.
13735
        * tree.c (type_contains_placeholder_1): Updated.
13736
        * config/sparc/sparc.c (sparc_type_code): Updated.
13737
        * config/ia64/ia64.c (hfa_element_mode): Updated.
13738
        * expr.c (count_type_elements): Updated.
13739
        * stor-layout.c (layout_type): Updated.
13740
        * tree-inline.c (remap_type): Updated.
13741
        * tree-pretty-print.c (dump_generic_node): Updated.
13742
 
13743
2005-03-30 Fariborz Jahanian 
13744
 
13745
        * builtins.c (expand_builtin_powi): Fix mode of
13746
        2nd argument to match int.
13747
        * libgcc2.h (__powisf2, __powidf2, __powixf2, __powitf2): Change
13748
        2nd argument type to int.
13749
        * libgcc2.c: Change prototype of __powi* functions to use
13750
        int.
13751
 
13752
2005-03-30  Dale Johannesen  
13753
 
13754
        PR middle-end/19225
13755
        * calls.c (expand_call):  Flush pending deferrals before
13756
        throwing call.
13757
 
13758
2005-03-30  Joseph S. Myers  
13759
 
13760
        PR c/772
13761
        PR c/17913
13762
        * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
13763
        C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
13764
        c_label_context, label_context_stack): New.
13765
        * c-decl.c (define_label): Check for jumps into statement
13766
        expressions.  Add label to list of defined labels.
13767
        (start_function): Push context on label_context_stack.
13768
        (finish_function): Pop context from label_context_stack.
13769
        * c-typeck.c (label_context_stack): New.
13770
        (c_finish_goto_label): Check for jumps into statement
13771
        expressions.  Add label to list of jumped to labels.
13772
        (struct c_switch): Add blocked_stmt_expr.
13773
        (c_start_case): Initialize it.
13774
        (do_case): Check it.
13775
        (c_finish_case): Verify !blocked_stmt_expr.
13776
        (c_begin_stmt_expr):  Push context on label_context_stack.
13777
        Increment blocked_stmt_expr.  Mark labels jumped to from outside
13778
        as undefinable.
13779
        (c_finish_stmt_expr): December blocked_stmt_expr.  Mark labels
13780
        defined in the statement expression and no longer jumpable to.
13781
        Mark labels jumped to from just outside the statement expression
13782
        as again definable.  Pop context from label_context_stack.
13783
        * doc/extend.texi (Statement Exprs): Update.
13784
 
13785
2005-03-30  Joseph S. Myers  
13786
 
13787
        PR c/20368
13788
        * c-decl.c (start_function): Check for old_decl being
13789
        error_mark_node.
13790
 
13791
2005-03-30  Ian Lance Taylor  
13792
 
13793
        * final.c (final): Remove prescan parameter.  Change all callers.
13794
        (final_scan_insn): Remove prescan parameter.  Change all callers.
13795
 
13796
2005-03-30  Kazu Hirata  
13797
 
13798
        * tree-vectorizer.c: Fix comment typos.
13799
 
13800
2005-03-30  Sebastian Pop  
13801
 
13802
        * tree-scalar-evolution.c (instantiate_parameters_1): Return
13803
        as soon as a chrec_dont_know is detected.
13804
 
13805
2005-03-31  Danny Smith  
13806
 
13807
        Merge from csl-arm-branch.
13808
        2004-02-12  Mark Mitchell  
13809
 
13810
        * tlink.c (recompile_files): Do not assume that "rename" can
13811
        overwrite an existing file.
13812
 
13813
2005-03-31  Paolo Bonzini  
13814
 
13815
        * gcc/configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
13816
        * gcc/configure: Regenerate.
13817
 
13818
2005-03-30  Alan Modra  
13819
 
13820
        * doc/install.texi: Update binutils requirement for powerpc*-linux.
13821
 
13822
        * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
13823
 
13824
        * calls.c (struct arg_data): Update "partial" comment.
13825
        (load_register_parameters): Update "nregs" comment.
13826
 
13827
2005-03-30  Richard Sandiford  
13828
 
13829
        * config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
13830
        (MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
13831
        (TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
13832
        (TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
13833
        (TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
13834
        (TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
13835
        than target_flags & 0.
13836
        * config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
13837
        (iq2000_arch, iq2000_parse_cpu): Delete.
13838
        (TARGET_HANDLE_OPTION): Override default.
13839
        (iq2000_handle_option): New function.
13840
        (override_options): Remove -march= and -mcpu= handling.
13841
        * config/iq2000/iq2000.opt: New file.
13842
 
13843
2005-03-30  Richard Sandiford  
13844
 
13845
        * config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
13846
        * config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
13847
        (RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
13848
        (RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
13849
        (LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
13850
        (PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
13851
        (C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
13852
        (TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
13853
        (TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
13854
        (TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
13855
        (TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
13856
        (TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
13857
        (c4x_rpts_cycles_string, c4x_cpu_version_string)
13858
        (TARGET_OPTIONS): Delete.
13859
        (c4x_rpts_cycles, c4x_cpu_version): Declare.
13860
        (TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
13861
        (TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
13862
        * config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
13863
        (c4x_cpu_version_string): Delete.
13864
        (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
13865
        (c4x_handle_option): New function.  Map -m3x and -m4x options to the
13866
        equivalent -mcpu= option.
13867
        (c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
13868
        Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
13869
        TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
13870
        or clearing the appropriate MASK_* bit.
13871
        (c4x_file_start): Use c4x_cpu_version.
13872
        * config/c4x/c4x.opt: New file.
13873
 
13874
2005-03-30  Richard Sandiford  
13875
 
13876
        * doc/options.texi: Document the new MaskExists flag.
13877
        * opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
13878
        if the option has the MaskExists flag.
13879
 
13880
2005-03-30  Richard Sandiford  
13881
 
13882
        * opt-functions.awk (flag_set_p, test_flag): New functions.
13883
        (switch_flags): Use them.
13884
        * opth-gen.awk: Use flag_set_p to check for flags.
13885
        * optc-gen.awk: Likewise.  Use opt_args to check for Init(...) flags.
13886
 
13887
2005-03-30  Ian Lance Taylor  
13888
 
13889
        * config.host (i[34567]86-*-mingw32*): Don't set
13890
        host_can_use_collect2 to no.
13891
 
13892
2005-03-30  Alan Modra  
13893
 
13894
        PR target/20203
13895
        * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
13896
        Remove convert_memory_address call duplicating that in memory_address.
13897
 
13898
2005-03-29  Richard Henderson  
13899
 
13900
        PR c/20519
13901
        * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
13902
        (build_compound_literal): Likewise.  Propagate decl type into the
13903
        initializer.
13904
        (finish_decl): Likewise.  Use new return value from complete_array_type
13905
        for zero sized arrays.
13906
        (complete_array_type): Move ...
13907
        * c-common.c (complete_array_type): ... here.  Change first argument
13908
        to pointer-to-type-node.  Consistently use sizetype for the index
13909
        except for zero sized arrays.  Detect zero sized arrays for pedantic
13910
        mode diagnostics.  Create a new type node instead of modifying the
13911
        old node in place.
13912
        * c-tree.h (complete_array_type): Move decl ...
13913
        * c-common.h (complete_array_type): ... here.
13914
 
13915
2005-03-29  Richard Henderson  
13916
 
13917
        PR tree-opt/19108
13918
        * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
13919
 
13920
2005-03-29  Kazu Hirata  
13921
 
13922
        * builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
13923
        debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
13924
        rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
13925
        tree-profile.c, tsystem.h, value-prof.h: Update copyright.
13926
 
13927
2005-03-29  Eric Christopher  
13928
 
13929
        * config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
13930
        truthvalue conversion removal.
13931
 
13932
2005-03-29  Ian Lance Taylor  
13933
 
13934
        PR bootstrap/14316
13935
        * collect2.c: Never include .
13936
        (VFORK_STRING, vfork): Don't define.
13937
        (pid): Remove global variable.
13938
        (handler): Call raise instead of kill (getpid(), ...).
13939
        (collect_wait): Add pex parameter.  Change all callers.  Use
13940
        pex_get_status rather than pwait.
13941
        (do_wait): Add pex parameter.  Change all callers.
13942
        (collect_execute): Return struct pex_obj * rather than void.  Use
13943
        pex routines rather than pexecute.
13944
        (fork_execute): Get pex_obj from collect_execute, and pass it to
13945
        do_wait.
13946
        (scan_prog_file): Use pex routines rather than pipe/vfork/exec.
13947
        Only declare quit_handler if SIGQUIT is defined.
13948
        (scan_libraries): Likewise.
13949
        * collect2.h (collect_execute): Update declaration.
13950
        (collect_wait): Update declaration.
13951
        * tlink.c (tlink_execute): Get pex_obj from collect_execute, and
13952
        pass it to collect_wait.
13953
 
13954
2005-03-29  Joseph S. Myers  
13955
 
13956
        PR c/20672
13957
        * c-parser.c (c_parser_compound_statement_nostart): Give error
13958
        message for EOF instead of just setting parser->error.
13959
 
13960
2005-03-29  Dorit Naishlos  
13961
 
13962
        * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
13963
        (slpeel_update_phi_nodes_for_guard1): New function.
13964
        (slpeel_update_phi_nodes_for_guard2): New function.
13965
        (slpeel_tree_peel_loop_to_edge): Call above new functions instead
13966
        of slpeel_update_phi_nodes_for_guard.
13967
        (vectorize_loops): Remove call to loop_closed_rewrite.
13968
        * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
13969
        assertion.
13970
 
13971
2005-03-29  Richard Sandiford  
13972
 
13973
        * config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
13974
        (TARGET_LITTLE_ENDIAN): New macro.
13975
        * config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
13976
        (TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
13977
        (TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
13978
        (TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
13979
        (TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
13980
        (TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
13981
        (TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
13982
        (TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
13983
        (m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
13984
        (TARGET_OPTIONS): Delete.
13985
        (M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
13986
        (CACHE_FLUSH_TRAP): Turn into an integer.
13987
        (TARGET_LITTLE_ENDIAN): Define to 0 by default.
13988
        (INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
13989
        -mflush-trap is in use.
13990
        * config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
13991
        (m32r_cache_flush_trap_string): Delete.
13992
        (m32r_model) Initialize to M32R_MODEL_DEFAULT.
13993
        (m32r_sdata): Likewise M32R_SDATA_DEFAULT.
13994
        (m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
13995
        (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
13996
        (m32r_handle_option): New function.  Move -mflush-trap=, -mflush-func=,
13997
        -mmodel= and -msdata= handling from...
13998
        (m32r_init): ...here.
13999
        * config/m32r/m32r.opt: New file.
14000
 
14001
2005-03-29  Keith Besaw  
14002
 
14003
        * tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
14004
        (duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
14005
        * tree-vect-analyze.c (vect_object_analysis): additional parm
14006
        pass back a "struct ptr_info_def *" with the points-to info.
14007
        (vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
14008
        statement using info returned from vect_object_analysis.
14009
        * tree-vect-transform.c (update_vuses_to_preheader): New function.
14010
        (vect_create_data_ref_ptr): Remove updates to vars_to_rename
14011
        for virtual uses and defs when creating a replacement vector
14012
        reference.  Call duplicate_ssa_name_ptr_info to define points-to
14013
        info for vector pointer replacement using STMT_VINFO_PTR_INFO.
14014
        (vectorizable_store): copy_virtual_operands and update
14015
        definition statements.
14016
        (vectorizable_load): copy_virtual_operands.  Remove call to
14017
        mark_call_clobbered_vars_to_rename for call to "const" builtin.
14018
        * tree-vectorizer.c (vectorize_loops): Remove calls to
14019
        rewrite_into_ssa and bitmap_clear (vars_to_rename).
14020
        (new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
14021
        * tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
14022
        define macro STMT_VINFO_PTR_INFO for use in accessing.
14023
        * tree.h add export of duplicate_ssa_name_ptr_info.
14024
        * rs6000.c (altivec_init_builtins): Declare builtin function
14025
        __builtin_altivec_mask_for_load to be "const".
14026
 
14027
2005-03-29  Jakub Jelinek  
14028
 
14029
        PR middle-end/20622
14030
        * cgraph.h (struct cgraph_varpool_node): Add alias field.
14031
        * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
14032
        assemble_variable on aliases.
14033
        * varasm.c (assemble_alias): Set node->alias.
14034
        * toplev.c (wrapup_global_declarations): Don't call
14035
        rest_of_decl_compilation on aliases again.
14036
 
14037
2005-03-29  Paul Brook  
14038
 
14039
        * config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
14040
        * config/arm/arm.c (arm_dbx_register_number): New function.
14041
        * config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
14042
 
14043
2005-03-29  Eric Botcazou  
14044
 
14045
        PR middle-end/20263
14046
        * varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
14047
        the DECL_NAME, not the DECL_ASSEMBLER_NAME.
14048
 
14049
2005-03-29  Dale Johannesen 
14050
 
14051
        * Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
14052
        $(TREE_H) and $(COVERAGE_H).
14053
        * coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
14054
        * opts.c (common_handle_option): Enable tree-based value transforms.
14055
        * toplev.c (process_options): Ditto.
14056
        * value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
14057
        refers to references to this type.
14058
        * tree-flow.h: (struct stmt_ann_d): Add histograms field.
14059
        * rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
14060
        for may_be_more, may_be_less.
14061
        (rtl_gen_pow2_profiler): Adjust.
14062
        (rtl_gen_one_value_profiler_no_edge_manip): Adjust.
14063
        (rtl_gen_one_value_profiler): Adjust.
14064
        (rtl_gen_const_delta_profiler): Adjust.
14065
        * tree-profile.c (tree_gen_interval_profiler): Implement.
14066
        (tree_gen_pow2_profiler): Ditto.
14067
        (tree_gen_one_value_profiler): Ditto.
14068
        (tree_profiling): New.
14069
        (pass_tree_profile): Reference it.
14070
        * value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
14071
        tree.h, gcov-io.h.
14072
        (insn_divmod_values_to_profile): Rename to
14073
        rtl_divmod_values_to_profile. Adjust.
14074
        (insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
14075
        (insn_prefetch_values_to_profile): Adjust.
14076
        (rtl_value_profile_transformations): Adjust.
14077
        (gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
14078
        (gen_mod_pow2): Rename to rtl_mod_pow2.
14079
        (gen_mod_subtract): Rename to rtl_mod_subtract.
14080
        (divmod_fixed_value_transform): Rename to
14081
        rtl_divmod_fixed_value_transform.
14082
        (mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
14083
        (mod_subtract_transform): Rename to rtl_mod_subtract_transform.
14084
        (rtl_find_values_to_profile): Adjust.
14085
        (tree_value_profile_transformations): Implement.
14086
        (tree_divmod_values_to_profile): New.
14087
        (tree_values_to_profile): New.
14088
        (tree_divmod_fixed_value): New.
14089
        (tree_mod_pow2): New.
14090
        (tree_mod_subtract): New.
14091
        (tree_divmod_fixed_value_transform): New.
14092
        (tree_mod_pow2_value_transform): New.
14093
        (tree_mod_subtract_transform): New.
14094
        (tree_find_values_to_profile): Implement.
14095
        * profile.c (instrument_values):  Free histograms.
14096
        (compute_value_histograms): Adjust. Implement tree version.
14097
 
14098
2005-03-29  Uros Bizjak  
14099
 
14100
        * reg-stack.c (subst_stack_regs_pat): Handle  case.
14101
        * config/i386/i386.c (output_fix_trunc): Add new round_mode
14102
        variable.  Output "fldcw" depending on round_mode.
14103
        * config/i386/i386.md (UNSPEC_FIST): New.
14104
        (fistdi2, fistdi2_with_temp, fist2, fist2_with_temp):
14105
        New isns patterns to implement lrint and llrint built-ins as x87
14106
        intrinsic function.
14107
        (fistdi2, fist2 splitters): New splitters.
14108
        (lrint2): New expanders.
14109
 
14110
2005-03-28  Ian Lance Taylor  
14111
 
14112
        * config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
14113
 
14114
 
14115
2005-03-28  Jan Hubicka  
14116
 
14117
        PR middle-end/20635
14118
        * varasm.c (mark_decl_referenced): Do not mark extern inline functions
14119
        as needed.
14120
 
14121
        * tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
14122
        types where possible.
14123
 
14124
2005-03-26  Per Bothner  
14125
 
14126
        Make -f[no-]show-column also control non-cpp diagnostics.
14127
        * c.opt (fshow-column): Move option from here ...
14128
        * common.opt (fshow-column): ... to here.
14129
        * diagnostic.c (diagnostic_build_prefix): Only print column number
14130
        if flag_show_column.
14131
 
14132
2005-03-27  Steven Bosscher  
14133
 
14134
        * vax-protos.h (vax_output_int_move, vax_output_int_add,
14135
        vax_output_conditional_branch): New prototypes.
14136
        * vax.c (vax_output_int_move, vax_output_int_add): New functions,
14137
        extracted from vax.md mov and add patterns.
14138
        (vax_output_conditional_branch): New function to output conditional
14139
        branch instructions.
14140
        * vax.md: Use mode macros for arithmetic and mov patterns.
14141
        Use code macros for the jump patterns.
14142
 
14143
2005-03-26  Andrew Pinski  
14144
 
14145
        * Makefile.in (libbackend.o): Depend on version files;
14146
        add custom generation command.
14147
 
14148
2005-03-26  Andrew Pinski  
14149
 
14150
        PR target/20636
14151
        * config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
14152
        sure that we have a REG before getting its REGNO.
14153
 
14154
2005-03-25  Kaveh R. Ghazi  
14155
 
14156
        * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
14157
        * builtins.def (BUILT_IN_STRNDUP): New.
14158
 
14159
2005-03-25  Pat Haugen  
14160
 
14161
        PR tree-optimization/20470
14162
        * fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
14163
        ABS(x-y).
14164
 
14165
2005-03-25  Mike Stump  
14166
 
14167
        * config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
14168
        sized objects.
14169
 
14170
2005-03-25  Geoffrey Keating  
14171
 
14172
        * config/rs6000/darwin-fallback.c: Don't include .
14173
        Use our own structure definitions.
14174
 
14175
        * config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
14176
        (fix_truncdfsi2): Allow registers or memory as destination.
14177
        When TARGET_PPC_GFXOPT, generate simplified pattern.
14178
        (fix_truncdfsi2_internal): Use define_insn_and_split.
14179
        (fix_truncdfsi2_internal_gfxopt): New.
14180
        (fctiwz): Don't confuse register allocation by giving it no choices.
14181
        (stfiwx): New.
14182
        * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
14183
        (EXTRA_MEMORY_CONSTRAINT): Likewise.
14184
        * config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
14185
        * config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
14186
 
14187
2005-03-25  Kazu Hirata  
14188
 
14189
        * dominance.c (free_dominance_info): Speed up by freeing et
14190
        data structures without maintaining other nodes.
14191
        * et-forest.c (et_free_tree_force): New.
14192
        * et-forest.h: Add a prototype for et_free_tree_force.
14193
 
14194
        * tree.c (get_set_constructor_bits,
14195
        get_set_constructor_bytes): Remove.
14196
        * tree.h: Remove the corresponding prototypes.
14197
 
14198
2005-03-25  John David Anglin  
14199
 
14200
        PR target/15491
14201
        * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
14202
        (vax_rtx_costs): Return false when passed unsupported rtx's.  Handle
14203
        FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE.  Fix costs for POST_INC,
14204
        PRE_DEC, NEG and NOT.
14205
 
14206
2005-03-25  Kazu Hirata  
14207
 
14208
        * fold-const.c: Convert uses of fold (build (...)) to
14209
        fold_buildN.
14210
 
14211
2005-03-25  Zdenek Dvorak  
14212
 
14213
        PR rtl-optimization/20249
14214
        * cse.c (insert_regs): Do not record equivalence of registers in
14215
        different modes.
14216
 
14217
2005-03-24  Kazu Hirata  
14218
 
14219
        * emit-rtl.c (reverse_comparison): Remove.
14220
        * rtl.h: Remove the corresponding prototype.
14221
 
14222
2005-03-24  James E Wilson  
14223
 
14224
        * doc/install.texi (--enable-altivec): Delete docs.
14225
 
14226
2005-03-24  David Edelsohn  
14227
 
14228
        * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
14229
        SFmode and DFmode before reload when
14230
        flag_unsafe_math_optimizations not enabled.
14231
 
14232
2005-03-24  Geoffrey Keating  
14233
 
14234
        * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
14235
 
14236
        * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
14237
        MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
14238
 
14239
2005-03-24  Nathan Sidwell  
14240
 
14241
        * configure.ac (enable-checking): Add 'runtime' option.
14242
        * doc/install.texi (enable-checking): Document 'runtime' checking.
14243
        * tsystem.h (gcc_assert, gcc_unreachable): Define.
14244
        * config.in: Regenerated.
14245
        * configure: Regenerated.
14246
 
14247
2005-03-23  Uros Bizjak  
14248
 
14249
        * optabs.h (enum optab_index): Remove OTI_llrint.
14250
        (llrint_optab): Remove macro.
14251
        * optabs.c (init_optabs): Remove llrint_optab initialization.
14252
        * genopinit.c (optabs): Remove llrint_optab implementation.
14253
        * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
14254
        using lrint_optab.
14255
 
14256
2005-03-24  Alexandre Oliva  
14257
 
14258
        PR rtl-optimization/20532
14259
        * simplify-rtx.c (simplify_binary_operation_1): Protect from
14260
        overflow when adding coefficients for PLUS or MINUS.
14261
        (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
14262
        two as multiplier.
14263
 
14264
2005-03-23  Joseph S. Myers  
14265
 
14266
        * langhooks.h (truthvalue_conversion): Remove.
14267
        * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
14268
        LANG_HOOKS_TRUTHVALUE_CONVERSION.
14269
        * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
14270
        * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
14271
        * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
14272
 
14273
2005-03-23  Kazu Hirata  
14274
 
14275
        * params.def: Fix a typo.
14276
        * config/mips/mips.c: Follow the spelling convensions.
14277
        * doc/invoke.texi: Fix typos.
14278
 
14279
2005-03-23  Daniel Berlin  
14280
 
14281
        Fix PR tree-optimization/20601
14282
 
14283
        * tree-ssa-pre.c (insert_aux): Add missing condition to
14284
        constification.
14285
 
14286
2005-03-23  Ian Lance Taylor  
14287
 
14288
        * final.c (final_scan_insn): Don't remove no-op instructions.
14289
        * reload1.c (reload): Remove simple no-op instructions even when
14290
        not optimizing.
14291
 
14292
2005-03-23  Dorit Naishlos  
14293
 
14294
        PR tree-optimization/20501
14295
        * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
14296
        reporting that peeling for alignment is applied moved to...
14297
        * (vect_analyze_data_refs_alignment): Here.
14298
 
14299
2005-03-23  Ian Lance Taylor  
14300
 
14301
        * reorg.c (dbr_schedule): Remove #if 0 code to call final.
14302
 
14303
2005-03-23  Rainer Orth  
14304
 
14305
        * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
14306
        Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
14307
 
14308
2005-03-23  Hans-Peter Nilsson  
14309
 
14310
        * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
14311
        imply that this is called once, independent of asms in code.
14312
        Adjust to now being pased output and input lists.  Mention helper
14313
        function decl_overlaps_hard_reg_set_p.
14314
        * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
14315
        hook_tree_tree_identity and to take three trees, returning third.
14316
        * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
14317
        prototype.
14318
        * stmt.c: include hard-reg-set.h before tree.h.
14319
        (decl_overlaps_hard_reg_set_p): New function, broken out from...
14320
        (decl_conflicts_with_clobbers_p): Call
14321
        decl_overlaps_hard_reg_set_p.
14322
        (expand_asm_operands): Pass output and input lists in call to
14323
        targetm.md_asm_clobbers.
14324
        * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
14325
        hook_tree_tree_tree_tree_3rd_identity.
14326
        * target.h (struct gcc_target.md_asm_clobbers): Take three tree
14327
        parameters.
14328
        * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
14329
        * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
14330
        parameters, first two unused.
14331
        * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
14332
        parameters.  Only add MOF to clobbers if there's no 'h' mentioned
14333
        in constraint letters and MOF is not mentioned as a asm-declared
14334
        register in neither of the input and output lists.
14335
 
14336
2005-03-23  DJ Delorie  
14337
 
14338
        * optabs.c (expand_binop): Make sure the first subword's result
14339
        gets stored.
14340
 
14341
2005-03-23  Joseph S. Myers  
14342
 
14343
        * c-common.c (c_common_truthvalue_conversion): Adjust comment.
14344
        Call c_common_truthvalue_conversion rather than
14345
        lang_hooks.truthvalue_conversion.
14346
        * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
14347
        * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
14348
        c-typeck.c.
14349
        * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
14350
        c_common_truthvalue_conversion.
14351
        * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
14352
        c_parser_conditional_expression, c_parser_binary_expression): Call
14353
        c_objc_common_truthvalue_conversion.
14354
        * c-typeck.c (build_unary_op): Call
14355
        c_objc_common_truthvalue_conversion.
14356
        (build_conditional_expr): Do not call
14357
        lang_hooks.truthvalue_conversion.
14358
        (build_binary_op): Call c_common_truthvalue_conversion.
14359
        (c_objc_common_truthvalue_conversion): Moved from
14360
        c-objc-common.c.  Call default_function_array_conversion instead
14361
        of default_conversion.
14362
 
14363
2005-03-23  Joseph S. Myers  
14364
 
14365
        * c-common.h (default_conversion): Remove.
14366
        (perform_integral_promotions): Add.
14367
        * c-tree.h (default_conversion): Add.
14368
        * c-typeck.c (perform_integral_promotions): New, split out from
14369
        default_conversion.
14370
        * c-common.c (check_case_value): Use perform_integral_promotions,
14371
        not default_conversion.
14372
        (c_add_case_label): Don't continue processing case label after
14373
        found to be pointer.
14374
 
14375
2005-03-23  Mark Mitchell  
14376
 
14377
        * gcc.c (do_spec_1): Do not add a -L path for a directory in
14378
        the prefix list if we have already added a multilib directory
14379
        based on that path.
14380
        (main): Do not add MD_EXEC_PREFIX to the list of directories to
14381
        search with -L.
14382
 
14383
2005-03-22  Kazu Hirata  
14384
 
14385
        * reload1.c (indirect_symref_ok, reload_obstack): Make them
14386
        static.
14387
        * reload.h: Remove the prototype for indirect_symref_ok.
14388
 
14389
        * reload1.c (indirect_symref_ok): Make it global.
14390
        * reload.h: Add a prototype for indirect_symref_ok.
14391
 
14392
2005-03-22  Kaz Kojima  
14393
 
14394
        * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
14395
        ashlhi3 expander.
14396
 
14397
2005-03-22  Tobias Schl"uter  
14398
 
14399
        * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
14400
 
14401
2005-03-22  Daniel Berlin  
14402
 
14403
        * c-opts.c (c_common_parse_file): Only start/end main source file
14404
        if debug hooks says the writer wants it.
14405
        * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
14406
        member.
14407
        (xcoff_debug_hooks): Ditto.
14408
        * debug.c (do_nothing_hooks): Ditto.
14409
        * debug.h (gcc_debug_hooks): Ditto.
14410
        * dwarf2out.c (dwarf2_debug_hooks): Ditto.
14411
        * sdbout.c (sdb_debug_hooks): Ditto.
14412
        * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
14413
 
14414
2005-03-22  Mark Mitchell  
14415
 
14416
        * doc/extend.texi: Deprecate C++ min/max operators.
14417
 
14418
2005-03-22  Zdenek Dvorak  
14419
 
14420
        * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
14421
        artificial original candidates.
14422
 
14423
2005-03-22  Richard Guenther 
14424
            Jan Hubicka  
14425
            Steven Bosscher 
14426
 
14427
        * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
14428
        call cost based on argument sizes.
14429
        (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
14430
        inlining.
14431
        * params.def: (max-inline-inssn-single): Set to 450.
14432
        (max-inline-insns-auto): Set to 90.
14433
        (max-inline-insns-recursive): Set to 450
14434
        (max-inline-insns-recursive-auto): Set to 450.
14435
        (large-function-insns): Set to 2700.
14436
        (inline-call-cost): New parameter.
14437
        * tree-inline.c (estimate_move_cost): New function.
14438
        (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
14439
        for non-gimple-regs, set cost to 0 for gimple-regs.  Compute call size
14440
        based on arguments.
14441
        * tree-inline.h (estimate_move_cost): Declare.
14442
        * invoke.texi: (max-inline-inssn-single): Change default to 450.
14443
        (max-inline-insns-auto): Change default to 90.
14444
        (max-inline-insns-recursive): Change default to 450
14445
        (max-inline-insns-recursive-auto): Change default to 450.
14446
        (large-function-insns): Change default to 2700.
14447
        (inline-call-cost): Document new parameter.
14448
 
14449
2005-03-22  Richard Sandiford  
14450
 
14451
        * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
14452
        (TARGET_DEFAULT): Delete.
14453
        * config/i860/i860.opt: New file.
14454
 
14455
2005-03-22  Richard Sandiford  
14456
 
14457
        * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
14458
        (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
14459
        (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
14460
        (frv_sched_lookahead): Delete.
14461
        * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
14462
        (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
14463
        (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
14464
        (MASK_LIBPIC, MASK_ACC_4,  MASK_PACK, MASK_LONG_CALLS)
14465
        (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
14466
        (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
14467
        (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
14468
        (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
14469
        (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
14470
        (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
14471
        (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
14472
        (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
14473
        (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
14474
        (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
14475
        (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
14476
        (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
14477
        (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
14478
        (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
14479
        (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
14480
        (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
14481
        (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
14482
        (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
14483
        * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
14484
        (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
14485
        (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
14486
        (frv_sched_lookahead): Delete.
14487
        (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
14488
        (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
14489
        (frv_handle_option): New function.  Move -mcpu= handling from...
14490
        (frv_override_options): ...here.  Remove handling of other
14491
        TARGET_OPTIONS.
14492
        (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
14493
        TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
14494
        (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
14495
        and TARGET_NO_MULTI_CE.
14496
        (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
14497
        !TARGET_VLIW_BRANCH.
14498
        * config/frv/frv.opt: New file.
14499
 
14500
2005-03-22  Kazu Hirata  
14501
 
14502
        * fold-const.c (fold_ternary): Take decomposed arguments of
14503
        CALL_EXPR.
14504
        (fold): Update a call to fold_ternary.
14505
 
14506
        * fold-const.c (fold_build1, fold_build2, fold_build3): New.
14507
        * tree.h: Add corresponding prototypes.
14508
 
14509
2005-03-22  Jakub Jelinek  
14510
 
14511
        PR target/20561
14512
        * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
14513
        between jump table and its label.
14514
        * final.c (shorten_branches): Handle notes in between ADDR_VEC
14515
        resp. ADDR_DIFF_VEC and the label preceeding it.
14516
        (final_scan_insn): Likewise.  Ensure ADDR_VEC resp. ADDR_DIFF_VEC
14517
        is emitted in the right section.
14518
 
14519
2005-03-22  Kazu Hirata  
14520
 
14521
        * fold-const.c (fold_unary, fold_binary): Update comments
14522
        about arguments.
14523
 
14524
2005-03-22  Hans-Peter Nilsson  
14525
 
14526
        PR rtl-optimization/20527
14527
        * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
14528
        REG_INC note, test that the register also isn't mentioned in PRED
14529
        or SUCC.
14530
 
14531
2005-03-22  Ben Elliston  
14532
 
14533
        * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
14534
        and definition.
14535
 
14536
2005-03-21  Mike Stump  
14537
 
14538
        * varasm.c (default_assemble_visibility): Remove extra ().
14539
 
14540
2005-03-21  Roger Sayle  
14541
 
14542
        PR middle-end/20557
14543
        * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
14544
        to determine whether a block can be duplicated, rather than test
14545
        whether the block contains noncopyable insns ourselves.
14546
 
14547
2005-03-21  Kazu Hirata  
14548
 
14549
        * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
14550
        predicates.
14551
 
14552
2005-03-21  Richard Sandiford  
14553
 
14554
        * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
14555
 
14556
2005-03-21  Richard Sandiford  
14557
 
14558
        * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
14559
        (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
14560
        * config/fr30/fr30.opt: New file.
14561
 
14562
2005-03-18  Daniel Berlin  
14563
 
14564
        Fix PR tree-optimization/20542
14565
 
14566
        * tree-flow-inline.h (overlap_subvar): Move to here.
14567
        * tree-ssa-operands.c: From here.
14568
        * tree-flow.h (overlap_subvar): Declare.
14569
        * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
14570
        * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
14571
        for variables with subvars.
14572
 
14573
2005-03-21 Mostafa Hagog 
14574
 
14575
        PR middle-end/20177
14576
        * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
14577
        * modulo-sched.c (const_iteration_count): Return on NULL
14578
        pre-header.
14579
        (print_node_sched_params): Return on NULL dump_file.
14580
        (generate_reg_moves): Handle reg-anti dependencies and disregard
14581
        closing branch when generating register moves.
14582
        (sms_schedule): Mark the SMSed block dirty.
14583
        * passes.c (rest_of_handle_sms): Call update_life_info for all
14584
        basic-blocks.
14585
        * testsuite/gcc.dg/20050321-1.c: New test.
14586
 
14587
2005-03-21  Bob Wilson  
14588
 
14589
        * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
14590
        * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
14591
        movqi_internal): Likewise.
14592
 
14593
2005-03-21  Bob Wilson  
14594
 
14595
        * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
14596
        xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
14597
        xtensa_b4const): Delete prototypes.
14598
        (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
14599
        xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
14600
        (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
14601
        xtensa_extra_constraint): New prototypes.
14602
        (add_operand, arith_operand, nonimmed_operand, mem_operand,
14603
        mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
14604
        lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
14605
        move_operand, const_float_1_operand, fpmem_offset_operand,
14606
        branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
14607
        * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
14608
        (xtensa_b4const_or_zero): ...this.  Change return type to bool and
14609
        argument type to HOST_WIDE_INT.
14610
        (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
14611
        xtensa_mask_immediate): Likewise.
14612
        (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
14613
        Likewise.  Also make these functions static.
14614
        (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
14615
        (xtensa_const_ok_for_letter_p): New.
14616
        (add_operand, arith_operand, nonimmed_operand, mem_operand,
14617
        mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
14618
        lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
14619
        move_operand, const_float_1_operand, fpmem_offset_operand,
14620
        branch_operator, ubranch_operator, boolean_operator): Move to
14621
        predicates.md.
14622
        (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
14623
        (xtensa_mem_offset): Change return type to bool.
14624
        (xtensa_extra_constraint): New.
14625
        (gen_int_relational): Update type of const_range_p function pointer.
14626
        Use xtensa_b4const_or_zero.
14627
        * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
14628
        xtensa_const_ok_for_letter_p.  Update comments.
14629
        (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
14630
        (PREDICATE_CODES): Delete.
14631
        * config/xtensa/xtensa.md: Include predicates.md.
14632
        * config/xtensa/predicates.md: New file.
14633
 
14634
2005-03-21  Kazu Hirata  
14635
 
14636
        * config/v850/v850-protos.h: Remove the prototypes for
14637
        reg_or_int9_operand, reg_or_const_operand,
14638
        pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
14639
        reg_or_0_operand, reg_or_int5_operand, call_address_operand,
14640
        movsi_source_operand, power_of_two_operand,
14641
        not_power_of_two_operand, special_symbolref_operand,
14642
        pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
14643
        register_is_ok_for_epilogue.
14644
        * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
14645
        reg_or_int9_operand, reg_or_const_operand,
14646
        call_address_operand, special_symbolref_operand,
14647
        movsi_source_operand, power_of_two_operand,
14648
        not_power_of_two_operand, register_is_ok_for_epilogue,
14649
        pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
14650
        pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
14651
        predicates.md.
14652
        * config/v850/v850.h (PREDICATE_CODES): Remove.
14653
        * config/v850/v850.md: Include predicates.md.
14654
        * config/v850/predicates.md: New.
14655
 
14656
2005-03-21  Zack Weinberg  
14657
 
14658
        * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
14659
        (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
14660
        (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
14661
        (itoolsdir, itoolsdatadir): Move definition above new first use.
14662
        (install-itoolsdirs): New rule.
14663
        (install-mkheaders): Depend on install-itoolsdirs, not
14664
        install-include-dir.
14665
 
14666
2005-03-21  Kazu Hirata  
14667
 
14668
        * tree-into-ssa.c: Remove obsolete comments.
14669
 
14670
2005-03-21  Richard Guenther  
14671
 
14672
        * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
14673
        unrolling if -fpeel-loops is specified, too.
14674
        * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
14675
        Remove superfluous check for flag_unroll_loops.
14676
 
14677
2005-03-21  Uros Bizjak  
14678
 
14679
        * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
14680
        (lrint_optab, llrint_optab): Define corresponding macros.
14681
        * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
14682
        * genopinit.c (optabs): Implement lrint_optab using lrintsi2
14683
        pattern and llrint_optab using llrintdi2 patterns.
14684
        * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
14685
        using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
14686
        (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
14687
        BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
14688
        flag_unsafe_math_optimizations is set.
14689
 
14690
2005-03-21  Paolo Bonzini  
14691
 
14692
        * combine.c (combine_simplify_rtx, simplify_if_then_else,
14693
        simplify_logical, if_then_else_cond, known_cond,
14694
        simplify_comparison): Adjust calls to reverse_comparison.
14695
        Don't use combine_reversed_comparison_code).
14696
        (combine_reversed_comparison_code): Remove.
14697
        (reversed_comparison): Using reversed_comparison_code, move it...
14698
        * jump.c (reversed_comparison): ... here.
14699
        * rtl.h (reversed_comparison): Add prototype.
14700
 
14701
2005-03-21  Kazu Hirata  
14702
 
14703
        * builtins.c (fold_builtin): Take decomposed arguments of
14704
        CALL_EXPR.
14705
        * fold-const.c (fold_ternary): Update a call to fold_builtin.
14706
        * gimplify.c (gimplify_call_expr): Likewise.
14707
        * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
14708
        * tree.h: Update the prototype of fold_builtin.
14709
 
14710
2005-03-21  Paolo Bonzini  
14711
 
14712
        * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
14713
        * rtlhooks.c (gen_lowpart_no_emit_general): New.
14714
        * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
14715
        (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
14716
        * simplify-rtx.c (simplify_binary_operation_1): Use it.
14717
 
14718
2005-03-21  Kazu Hirata  
14719
 
14720
        * builtins.c (fold_builtin_1): Take decomposed arguments of
14721
        CALL_EXPR.
14722
        (fold_builtin): Update a call to fold_builtin_1.
14723
 
14724
2005-03-21  Nathan Sidwell  
14725
 
14726
        PR other/20564
14727
        * gcov.c (output_lines): Only output function block summary when
14728
        outputting branch information.
14729
        * doc/gcov.texi: Document format of preamble and additional block
14730
        information lines.
14731
 
14732
2005-03-21  Richard Sandiford  
14733
 
14734
        * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
14735
        (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
14736
        the defaults false if BITS_PER_UNIT != 8.
14737
        (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
14738
        (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
14739
        than BITS_PER_UNIT != 8.
14740
        (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
14741
        (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
14742
        (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
14743
        #undefs.
14744
        * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
14745
        (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
14746
 
14747
2005-03-20  Roger Sayle  
14748
 
14749
        PR middle-end/20539
14750
        * fold-const.c (fold_binary): Fix type mismatch between
14751
        TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
14752
        (fold_binary) : Avoid calling invert_truthvalue
14753
        for non-truth-valued expressions.
14754
 
14755
        * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
14756
        and FUNCTION_DECL in the main switch.
14757
        
14758
        TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
14759
        we also need to convert their operands to match.
14760
        : Likewise.
14761
 
14762
2005-03-21  Joseph S. Myers  
14763
 
14764
        * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
14765
        diagnostic without checking whether an lvalue.
14766
        * c-common.h (lvalue_p): Remove.
14767
        (enum lvalue_use): Update comment.
14768
        (lvalue_or_else): Replace by lvalue_error.
14769
        * c-typeck.c (lvalue_p): Make static.
14770
        (lvalue_or_else): New.  Call lvalue_error.
14771
 
14772
2005-03-21  Alan Modra  
14773
 
14774
        * config/rs6000/rs6000.c (rs6000_parm_start): New function.
14775
        (function_arg_advance): Use rs6000_parm_start.
14776
        (function_arg, rs6000_arg_partial_bytes): Likewise.
14777
 
14778
2005-03-20  Joseph S. Myers  
14779
 
14780
        * c-common.c (check_case_value): Adjust comment about stripping
14781
        NOPs.
14782
        (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
14783
        * c-typeck.c (default_conversion, convert_arguments,
14784
        build_modify_expr, convert_for_assignment, store_init_value,
14785
        digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
14786
        manually.  Remove inaccurate comments.
14787
 
14788
2005-03-20  Roger Sayle  
14789
            Joseph S. Myers  
14790
 
14791
        * varasm.c (do_assemble_alias): Restore comment describing function.
14792
        Annotate the target parameter as potentially unused.
14793
 
14794
2005-03-20  Marek Michalkiewicz  
14795
 
14796
        PR target/18551
14797
        * config/avr/avr.c (avr_output_function_prologue): Do not use
14798
        current_function_name() in a label, use a local label instead.
14799
 
14800
2005-03-20  David Edelsohn  
14801
 
14802
        * config/rs6000/rs6000.c (rs6000_generate_compare): Test
14803
        flag_finite_math_only, not flag_unsafe_math_optimizations.
14804
 
14805
2005-03-20  Kazu Hirata  
14806
 
14807
        * builtins.c (fold_builtin_1): Update a call to
14808
        targetm.fold_builtin.
14809
        * hooks.c (hook_tree_tree_bool_null): Rename to
14810
        hook_tree_tree_tree_bool_null.  Take one more argument of type
14811
        tree.
14812
        * hooks.h: Update the prototype of hook_tree_tree_bool_null.
14813
        * target-def.h (TARGET_FOLD_BUILTIN): Define it as
14814
        hook_tree_tree_tree_bool_null.
14815
        * target.h (gcc_target): Update the prototype of fold_builtin.
14816
        * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
14817
        arguments of CALL_EXPR.
14818
        * doc/tm.texi (TARGET_FOLD_BUILTIN): Update.  Mention the
14819
        new prototype.
14820
 
14821
2005-03-20  Jan Hubicka  
14822
 
14823
        * cgraph.h (cgraph_node): Add prev_clone pointer.
14824
        * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
14825
        (cgraph_clone_node): Produce doubly linked chain.
14826
 
14827
2005-03-20  Joseph S. Myers  
14828
 
14829
        * c-common.c (handle_aligned_attribute, check_function_sentinel,
14830
        get_nonnull_operand, handle_sentinel_attribute,
14831
        check_function_arguments_recurse): Do not strip NOPS from
14832
        INTEGER_CSTs.
14833
        * c-decl.c (check_bitfield_type_and_width, build_enumerator):
14834
        Likewise.
14835
        * c-format.c (get_constant): Likewise.
14836
        * c-parser.c (c_parser_postfix_expression): Likewise.
14837
        * c-typeck.c (set_init_index): Likewise.
14838
        (convert_arguments): Don't check for NOP_EXPR containing integer
14839
        constant.
14840
 
14841
2005-03-20  Kazu Hirata  
14842
 
14843
        * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
14844
        fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
14845
        Take decomposed arguments of CALL_EXPR.
14846
        (fold_builtin_1): Update calls to the functions mentioned
14847
        above.
14848
 
14849
2005-03-20  Joseph S. Myers  
14850
 
14851
        * c-decl.c (check_bitfield_type_and_width): Require bit-field
14852
        width to have integer type.
14853
        (build_enumerator): Require enumerator value to have integer type.
14854
 
14855
2005-03-19  Joseph S. Myers  
14856
 
14857
        * doc/extend.texi (__builtin_inf): Move statement about INFINITY
14858
        to __builtin_inff.
14859
 
14860
2005-03-19  Joseph S. Myers  
14861
 
14862
        * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
14863
        std=iso9899:199x): Correct descriptions.
14864
 
14865
2005-03-19  Joseph S. Myers  
14866
 
14867
        * config.gcc: Consistently use solaris2.1[0-9]* instead of
14868
        solaris2.1[0-9].
14869
 
14870
2005-03-19  Kazu Hirata  
14871
 
14872
        * builtins.c (fold_builtin_memcpy): Take decomposed arguments
14873
        of CALL_EXPR.
14874
        (expand_builtin_memcpy, fold_builtin_1): Update calls to
14875
        fold_builtin_memcpy.
14876
 
14877
        * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
14878
        arguments of CALL_EXPR.
14879
        (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
14880
        fold_builtin_found, fold_builtin_1): Update calls to
14881
        fold_trunc_transparent_mathfn.
14882
 
14883
2005-03-19  John David Anglin  
14884
 
14885
        PR middle-end/20493
14886
        * fold-const.c (fold_widened_comparison): Don't optimize casts of
14887
        function pointers on targets that require function pointer
14888
        canonicalization.
14889
        (fold_sign_changed_comparison): Likewise.
14890
 
14891
2005-03-19  Bernd Schmidt  
14892
 
14893
        * combine.c (try_combine): When changing the mode of a hard reg, make
14894
        sure that doing so is valid.
14895
 
14896
2005-03-19  Richard Sandiford  
14897
 
14898
        * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
14899
        (TARGET_HANDLE_OPTION): Override default.
14900
        (avr_handle_option): New function.
14901
        * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
14902
        (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
14903
        (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
14904
        (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
14905
        (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
14906
        (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
14907
        (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
14908
        (TARGET_OPTIONS): Delete.
14909
        * config/avr/avr.opt: New file.
14910
 
14911
2005-03-18  2005-03-18  Kazu Hirata  
14912
 
14913
        * config/m32r/m32r-protos.h: Remove the prototypes for
14914
        call_address_operand, symbolic_operand, seth_add3_operand,
14915
        cmp_int16_operand, uint16_operand, reg_or_int16_operand,
14916
        reg_or_uint16_operand, reg_or_cmp_int16_operand,
14917
        two_insn_const_operand, move_src_operand,
14918
        move_double_src_operand, move_dest_operand,
14919
        eqne_comparison_operator, signed_comparison_operator,
14920
        large_insn_p, conditional_move_operand, carry_compare_operand,
14921
        m32r_block_immediate_operand, extend_operand,
14922
        reg_or_eq_int16_operand, int8_operand, and
14923
        reg_or_zero_operand.
14924
        * config/m32r/m32r.c (call_address_operand, symbolic_operand,
14925
        seth_add3_operand, int8_operand, cmp_int16_operand,
14926
        uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
14927
        reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
14928
        reg_or_zero_operand, two_insn_const_operand, move_src_operand,
14929
        move_double_src_operand, move_dest_operand,
14930
        eqne_comparison_operator, signed_comparison_operator,
14931
        extend_operand, small_insn_p, large_insn_p,
14932
        conditional_move_operand, carry_compare_operand,
14933
        m32r_block_immediate_operand): Move to predicates.md.
14934
        (MAX_MOVE_BYTES): Move to m32r.h.
14935
        * config/m32r/m32r.h (PREDICATE_CODES): Remove.
14936
        * config/m32r/m32r.md: Include predicates.md.
14937
        * config/m32r/predicates.md: New.
14938
 
14939
2005-03-18  James E Wilson  
14940
 
14941
        PR c++/19769
14942
        * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
14943
        origin.
14944
 
14945
2005-03-18  Kazu Hirata  
14946
 
14947
        * config/mn10300/mn10300-protos.h: Remove the prototypes for
14948
        call_address_operand, const_8bit_operand.
14949
        * config/mn10300/mn10300.c (call_address_operand,
14950
        const_8bit_operand, const_1f_operand): Move to predicates.md.
14951
        * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
14952
        * config/mn10300/mn10300.md: Include predicates.md.
14953
        * config/mn10300/predicates.md: New.
14954
 
14955
2005-03-18  Joseph S. Myers  
14956
 
14957
        * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
14958
        declarations in diagnostics and %E for identifiers, not %s.
14959
 
14960
2005-03-18  Jan Hubicka  
14961
            Dale Johannesen  
14962
 
14963
        * basic-block.h (scale_bbs_frequencies_int,
14964
        scale_bbs_frequencies_gcov_type): Declare.
14965
        * cfg.c (RDIV): New macro.
14966
        (update_bb_frequency_for_threading): Fix.
14967
        * basic-block.h (scale_bbs_frequencies_int,
14968
        scale_bbs_frequencies_gcov_type): New.
14969
        * cfgloopmanip.c (scale_bbs_frequencies): Kill.
14970
        (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
14971
        scale_bbs_frequencies_int.
14972
        * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
14973
 
14974
2005-03-18  Kazu Hirata  
14975
 
14976
        * config/m32r/m32r-protos.h: Remove the prototypes for
14977
        call_address_operand, symbolic_operand, seth_add3_operand,
14978
        cmp_int16_operand, uint16_operand, reg_or_int16_operand,
14979
        reg_or_uint16_operand, reg_or_cmp_int16_operand,
14980
        two_insn_const_operand, move_src_operand,
14981
        move_double_src_operand, move_dest_operand,
14982
        eqne_comparison_operator, signed_comparison_operator,
14983
        large_insn_p, conditional_move_operand, carry_compare_operand,
14984
        m32r_block_immediate_operand, extend_operand,
14985
        reg_or_eq_int16_operand, int8_operand, and
14986
        reg_or_zero_operand.
14987
        * config/m32r/m32r.c (call_address_operand, symbolic_operand,
14988
        seth_add3_operand, int8_operand, cmp_int16_operand,
14989
        uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
14990
        reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
14991
        reg_or_zero_operand, two_insn_const_operand, move_src_operand,
14992
        move_double_src_operand, move_dest_operand,
14993
        eqne_comparison_operator, signed_comparison_operator,
14994
        extend_operand, small_insn_p, large_insn_p,
14995
        conditional_move_operand, carry_compare_operand,
14996
        m32r_block_immediate_operand): Move to predicates.md.
14997
        (MAX_MOVE_BYTES): Move to m32r.h.
14998
        * config/m32r/m32r.h (PREDICATE_CODES): Remove.
14999
        * config/m32r/m32r.md: Include predicates.md.
15000
        * config/m32r/predicates.md: New.
15001
 
15002
        * config/pa/pa-protos.h: Add prototypes for magic_milli and
15003
        shadd_constant_p.
15004
        * config/pa/pa.c (reg_or_0_operand, call_operand_address,
15005
        symbolic_operand, symbolic_memory_operand,
15006
        reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
15007
        indexed_memory_operand, move_dest_operand, move_src_operand,
15008
        prefetch_cc_operand, prefetch_nocc_operand,
15009
        reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
15010
        arith_operand, arith11_operand, pre_cint_operand,
15011
        post_cint_operan, arith_double_operand, ireg_or_int5_operand,
15012
        ireg_operand, int5_operand, uint5_operand, int11_operand,
15013
        uint32_operand, arith5_operand, and_operand, ior_operand,
15014
        lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
15015
        pc_or_label_operand, div_operand, plus_xor_ior_operator,
15016
        shadd_operand, movb_comparison_operator,
15017
        cmpib_comparison_operator): Move to predicates.md.
15018
        (magic_milli, shadd_constant_p): Make it extern.
15019
        * config/pa/pa.h (PREDICATE_CODES): Remove.
15020
        * config/pa/pa.md: Include predicates.md.
15021
        * config/pa/predicates.md: New.
15022
 
15023
        * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
15024
        predicate.
15025
 
15026
2005-03-18  Kazu Hirata  
15027
 
15028
        * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
15029
        config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
15030
        config/alpha/freebsd.h, config/alpha/linux.h,
15031
        config/alpha/netbsd.h, config/alpha/osf5.h,
15032
        config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
15033
        config/h8300/h8300-protos.h, config/h8300/h8300.c,
15034
        config/h8300/h8300.h, config/ia64/unwind-ia64.c,
15035
        doc/cppopts.texi: Update copyright.
15036
 
15037
2005-03-18  Jan Hubicka  
15038
 
15039
        PR middle-end/20225
15040
        * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
15041
        too late.
15042
        * varasm.c (find_decl_and_mark_needed): Mark needed only when not
15043
        called too late.
15044
 
15045
2005-03-18  Kazu Hirata  
15046
 
15047
        * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
15048
        VEC_safe_push.
15049
 
15050
2005-03-18  Paolo Bonzini  
15051
 
15052
        * combine.c (gen_binary): Remove.
15053
        (known_cond, simplify_shift_const, find_split_point,
15054
        combine_simplify_rtx, simplify_if_then_else, simplify_set,
15055
        simplify_logical, expand_field_assignment, extract_left_shift,
15056
        force_to_mode, if_then_else_cond, apply_distributive_law,
15057
        simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
15058
        simplify_comparison, reversed_comparison): Replace with
15059
        simplify_gen_binary, simplify_gen_relational or
15060
        distribute_and_simplify_rtx.
15061
        (distribute_and_simplify_rtx): New function.
15062
 
15063
2005-03-18  Alexey Neyman  
15064
            Paolo Bonzini  
15065
 
15066
        * calls.c (setjmp_call_p, special_function_p): Update comments
15067
        at the head of the functions.
15068
 
15069
2005-03-18  Jan Hubicka  
15070
 
15071
        * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
15072
 
15073
        * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
15074
        function body should be released; do not proactively release function
15075
        bodies in non-unit-at-a-time mode.
15076
 
15077
2005-03-18  Ralf Corsepius  
15078
 
15079
        * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
15080
        mno-fp-ret-in-387 multilib variants.
15081
 
15082
2005-03-18  Richard Sandiford  
15083
 
15084
        * common.opt (m): Remove.
15085
        * opts.c (handle_option): Pass 'm' options to set_target_switch if
15086
        table lookup fails.
15087
        (common_handle_option): Remove OPT_m case.
15088
 
15089
2005-03-18  Kazu Hirata  
15090
 
15091
        * builtins.c (fold_builtin_bitop): Take decomposed arguments
15092
        of CALL_EXPR.
15093
        (fold_builtin_1): Update a call to fold_builtin_bitop.
15094
 
15095
        * builtins.c (fold_builtin_signbit): Take decomposed arguments
15096
        of CALL_EXPR.
15097
        (fold_builtin_1): Update a call to fold_builtin_signbit.
15098
 
15099
2005-03-17  Dorit Naishlos  
15100
 
15101
        PR tree-optimization/20474
15102
        * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
15103
        size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
15104
 
15105
2005-03-17  Kazu Hirata  
15106
 
15107
        * config/h8300/h8300-protos.h: Remove prototypes for
15108
        general_operand_src, general_operand_dst, single_one_operand,
15109
        single_zero_operand, call_insn_operand,
15110
        two_insn_adds_subs_operand, small_call_insn_operand,
15111
        jump_address_operand, bit_operand, bit_memory_operand,
15112
        stack_pointer_operand, const_int_gt_2_operand,
15113
        const_int_ge_8_operand, const_int_qi_operand,
15114
        const_int_hi_operand, incdec_operand, bit_operator,
15115
        nshift_operator, eqne_operator, gtle_operator,
15116
        gtuleu_operator, iorxor_operator.
15117
        Add prototypes for h8sx_shift_type h8sx_classify_shift and
15118
        h8300_ldm_stm_parallel.
15119
        * config/h8300/h8300.c (h8sx_shift_type,): Move to
15120
        h8300-protos.h.
15121
        (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
15122
        SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
15123
        (h8300_ldm_stm_parallel): Make it extern.
15124
        (h8300_ldm_parallel, h8300_stm_parallel,
15125
        h8300_return_parallel, general_operand_src,
15126
        general_operand_dst, h8300_dst_operand, h8300_src_operand,
15127
        nibble_operand, reg_or_nibble_operand, single_one_operand,
15128
        single_zero_operand, call_insn_operand,
15129
        two_insn_adds_subs_operand, small_call_insn_operand,
15130
        jump_address_operand, bit_operand, bit_memory_operand,
15131
        stack_pointer_operand, const_int_gt_2_operand,
15132
        const_int_ge_8_operand, const_int_qi_operand,
15133
        const_int_hi_operand, incdec_operand, eqne_operator,
15134
        gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
15135
        h8sx_binary_memory_operator, h8sx_unary_memory_operator,
15136
        h8sx_unary_shift_operator, h8sx_binary_shift_operator,
15137
        nshift_operator): Move to predicates.md.
15138
        * config/h8300/h8300.h (PREDICATE_CODES): Remove.
15139
        * config/h8300/h8300.md: Include predicates.md.
15140
        * config/h8300/predicates.md: New.
15141
 
15142
2005-03-17  Richard Henderson  
15143
 
15144
        * config.gcc (ia64*-*-hpux*): Add extra_options.
15145
        * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
15146
        (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
15147
        * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
15148
        (ia64_tls_size_string, ia64_tune_string): Remove.
15149
        (ia64_tune): Init to PROCESSOR_ITANIUM2.
15150
        (TARGET_DEFAULT_TARGET_FLAGS): New.
15151
        (TARGET_HANDLE_OPTION): New.
15152
        (ia64_override_options): Move options parsing ...
15153
        (ia64_handle_option): ... here.  New.
15154
        * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
15155
        MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
15156
        MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
15157
        MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
15158
        MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
15159
        MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
15160
        MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
15161
        TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
15162
        TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
15163
        TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
15164
        TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
15165
        TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
15166
        TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
15167
        TARGET_EARLY_STOP_BITS): Remove.
15168
        (TARGET_ILP32): Default false.
15169
        (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
15170
        (enum ia64_inline_type): New.
15171
        (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
15172
        * config/ia64/ia64.md: Update for new definitions of
15173
        TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
15174
        * config/ia64/ia64.opt: New file.
15175
        * config/ia64/ilp32.opt: New file.
15176
 
15177
2005-03-17  H.J. Lu  
15178
 
15179
        PR target/18380
15180
        * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
15181
 
15182
2005-03-17  Kazu Hirata  
15183
 
15184
        * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
15185
        instead of MASK_H8300S.
15186
        * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
15187
        MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
15188
        MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
15189
        MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
15190
        TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
15191
        TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
15192
        TARGET_SWITCHES): Remove.
15193
        (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
15194
        TARGET_H8300SX.
15195
        * config/h8300/h8300.opt: New.
15196
 
15197
        * config/alpha/alpha.opt, config/arc/arc.opt,
15198
        config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
15199
        notices.
15200
 
15201
2005-03-17  Ian Lance Taylor  
15202
 
15203
        * gmon.c: Remove.
15204
 
15205
2005-03-17  Richard Sandiford  
15206
 
15207
        * config/arc/arc.c (arc_cpu_string): Make static.  Default to "base"
15208
        (arc_text_string, arc_data_string, arc_rodata_string): Make static.
15209
        (TARGET_HANDLE_OPTION): Override default.
15210
        (arc_handle_option): New function.
15211
        (arc_init): Remove code to set arch_cpu_string.
15212
        * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
15213
        (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
15214
        (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
15215
        (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
15216
        (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
15217
        (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
15218
        (arc_rodata_string, TARGET_OPTIONS): Delete.
15219
        * config/arc/arc.opt: New file.
15220
 
15221
2005-03-17  Richard Henderson  
15222
 
15223
        * doc/extend.texi (Weak Pragmas): New section.
15224
        (attribute alias): Clarify that target must be in the same
15225
        translation unit.
15226
 
15227
2005-03-17  Richard Henderson  
15228
 
15229
        * config/alpha/alpha.opt: New file.
15230
        * config/alpha/alpha.c (alpha_tune): New.  Rename all existing uses
15231
        of alpha_cpu.
15232
        (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
15233
        alpha_fprm_string, alpha_fptm_string): Make static.
15234
        (alpha_tls_size_string): Remove.
15235
        (alpha_handle_option): New.
15236
        (override_options): Update for alpha_cpu/alpha_tune split.
15237
        (alpha_file_start): Likewise.
15238
        (TARGET_DEFAULT_TARGET_FLAGS): New.
15239
        (TARGET_HANDLE_OPTION): New.
15240
        * config/alpha/alpha.h (alpha_tune): Declare.
15241
        (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
15242
        MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
15243
        MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
15244
        TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
15245
        TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
15246
        TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
15247
        MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
15248
        MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
15249
        TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
15250
        TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
15251
        (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
15252
        (TARGET_DEFAULT): Remove MASK_FP.
15253
        (TARGET_FP): Redefined based on TARGET_SOFT_FP.
15254
        (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
15255
        (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
15256
        alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
15257
        alpha_tls_size_string): Remove.
15258
        * config/alpha/alpha.md (prefetch): Use alpha_cpu.
15259
        (attribute tune): Rename from attribute cpu.
15260
        * config/alpha/ev4.md: Update to match.
15261
        * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
15262
        * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
15263
        * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
15264
        * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
15265
        * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
15266
        * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
15267
 
15268
2005-03-16  James E. Wilson  
15269
 
15270
        * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
15271
        and return without creating new state if before_nops_num is nonzero.
15272
        * config/ia64/ia64.md (first_insn): New attribute.
15273
        (alloc): Set it to yes.
15274
 
15275
2005-03-16  Daniel Berlin  
15276
 
15277
        * tree-vectorizer.c (new_vec_stmt_info): Initialize
15278
        STMT_VINFO_SUBVARS to NULL.
15279
        * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
15280
 
15281
2005-03-16 Dale Johannesen  
15282
 
15283
        * rtlanal.c (find_first_parameter_load):  Rewrite to
15284
        return actual first param load or the call if none,
15285
        instead of first in block, when not all loads exist.
15286
 
15287
2005-03-16  Roger Sayle  
15288
 
15289
        * optabs.c (expand_copysign_absneg): Make static.
15290
        * optabs.h (expand_copysign_absneg): Delete prototype.
15291
        * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
15292
 
15293
2005-03-16  Richard Henderson  
15294
 
15295
        PR middle-end/15700
15296
        * varasm.c (struct alias_pair): Rename from struct output_def_pair.
15297
        (alias_pairs): Rename from output_defs.
15298
        (find_decl_and_mark_needed): Split out from assemble_alias.
15299
        (do_assemble_alias): New.
15300
        (assemble_output_def): Remove.
15301
        (finish_aliases_1, finish_aliases_2): New.
15302
        (process_pending_assemble_output_defs): Remove.
15303
        (assemble_alias): Defer aliases for which we don't yet have a
15304
        non-external decl for the target symbol.
15305
        * passes.c (rest_of_decl_compilation): Register variables with cgraph.
15306
        * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
15307
        * toplev.c (compile_file): Use finish_aliases_2 instead of
15308
        process_pending_assemble_output_defs.
15309
        * tree.h (finish_aliases_1, finish_aliases_2): Declare.
15310
        (process_pending_assemble_output_defs): Remove.
15311
 
15312
2005-03-16  Daniel Berlin  
15313
 
15314
        Fix PR tree-optimization/20489
15315
 
15316
        * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
15317
        for empty structures.
15318
 
15319
2005-03-16  Daniel Berlin  
15320
 
15321
        Fix PR tree-optimization/20490
15322
 
15323
        * tree-ssa-pre.c (create_expression_by_pieces): Use
15324
        force_gimple_operand on result of fold.
15325
 
15326
2005-03-16  Andrew Pinski  
15327
 
15328
        * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
15329
        of closing parenthesis.
15330
 
15331
2005-03-16  Kazu Hirata  
15332
 
15333
        * builtins.c (expand_movstr): Update a call to
15334
        fold_builtin_strcpy.
15335
        (expand_builtin_strncpy): Update a call to
15336
        fold_builtin_strncpy.
15337
        (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
15338
        arguments of CALL_EXPR.
15339
        (fold_builtin_1): Update calls to fold_builtin_strcpy and
15340
        fold_builtin_strncpy.
15341
        * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
15342
        * tree.h: Update the prototypes of fold_builtin_strcpy and
15343
        fold_builtin_strncpy.
15344
 
15345
2005-03-16  Steven Bosscher  
15346
            Dorit Naishlos  
15347
 
15348
        * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
15349
        UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
15350
        error.
15351
 
15352
2005-03-16  Steven Bosscher  
15353
 
15354
        * tree-inline.c (walk_type_fields, walk_tree,
15355
        walk_tree_without_duplicates): Move from here...
15356
        * tree.c: ...to here.
15357
 
15358
2005-03-15  Zack Weinberg  
15359
 
15360
        * BASE-VER, DATESTAMP, DEV-PHASE: New files.
15361
        * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
15362
        (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
15363
        (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
15364
        (version): Define using $(BASEVER_c).
15365
        (Makefile, config.status, build/gcov-iov.o): No longer depends on
15366
        version.c.
15367
        (version.o): Depend on version files; add custom generation command.
15368
        (prefix.o): Define BASEVER on command line.
15369
        (s-iov): Depend on version files; adjust command.
15370
        (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
15371
        Add gcc-vers.texi.
15372
        (gcc-vers.texi): New rule.
15373
        (doc/%.info, doc/%.dvi): Add -I . to command line.
15374
        (doc/gccinstall.dvi): Likewise.
15375
        (PACKAGE): Delete.  All uses replaced with "gcc".
15376
        * aclocal.m4: Do not include gcc-version.m4.
15377
        * configure.ac: Do not invoke TL_AC_GCC_VERSION.
15378
        Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
15379
        Set is_release based on contents of DEV-PHASE.
15380
        Set gcc_version based on contents of BASE-VER.
15381
        Define WIN32_REGISTRY_KEY only if the user overrode the default.
15382
        * config.in, configure: Regenerate.
15383
        * gccbug.in: Determine version of GCC in use at runtime.
15384
        * gcov-iov.c: Get version number and development phase from
15385
        command line, not by including version.c.
15386
        * intl.c: Replace all uses of PACKAGE with "gcc".
15387
        * libada-mk.in: Delete unused "gcc_version" variable.
15388
        * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
15389
        * version.c: (VERSUFFIX): New hook for redistributors; adjust
15390
        commentary to match.
15391
        (version_string): Put together from pieces.
15392
        * config/alpha/x-vms: Do not use $(gcc_version).
15393
        * config/i386/t-nwld: Likewise.
15394
        * doc/include/gcc-common.texi: Include gcc-vers.texi for
15395
        version-GCC and DEVELOPMENT.
15396
 
15397
2005-03-15  Roger Sayle  
15398
 
15399
        PR tree-optimization/17454
15400
        * tree.c (tree_size): Add case for TREE_BINFO.
15401
        * fold-const.c (fold_checksum_tree): Only clear the overloaded
15402
        field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
15403
 
15404
2005-03-15  Roger Sayle  
15405
 
15406
        * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
15407
        op1 whilst expanding the signed widenening multiply variant.
15408
 
15409
2005-03-15  Richard Sandiford  
15410
 
15411
        * toplev.c (display_target_options): Avoid unused variable warning if
15412
        TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
15413
        * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
15414
        (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
15415
        (mips_isa): Initialize to MIPS_ABI_DEFAULT.
15416
        (mips_isa_info): New variable.
15417
        (mips_parse_cpu): Remove the first argument and leave the caller
15418
        to report errors.
15419
        (TARGET_HANDLE_OPTION): Override default.
15420
        (mips_handle_option): New function.  Move option validation code from...
15421
        (override_options): ...here.  Update calls to mips_parse_cpu.
15422
        * config/mips/mips.h (mips_arch_string, mips_tune_string)
15423
        (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
15424
        (SUBTARGET_TARGET_OPTIONS): Delete.
15425
        * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
15426
        (mno-flush-func, mtune=): New options.
15427
 
15428
2005-03-15  Roger Sayle  
15429
            Richard Henderson  
15430
 
15431
        * real.c (c4x_single_format, c4x_extended_format): Provide values
15432
        for signbit_ro for c4x's single and extended floating point formats.
15433
        * optabs.c (expand_copysign): Use the floating point format's
15434
        signbit_ro for expanding via expand_copysign_absneg, and it's
15435
        signbit_rw field for expanding via expand_copysign_bit.
15436
 
15437
2005-03-15  Dorit Naishlos  
15438
 
15439
        * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
15440
        known_alignment_for_access_p.
15441
        (known_alignment_for_access_p): New.
15442
        (do_peeling_for_alignment): Field made int instead of bool and renamed
15443
        to peeling_for_alignment.
15444
        (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
15445
        * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
15446
        functionality used to be in vect_analyze_operations.
15447
        (vect_analyze_operations): Code to determine vectorization factor was
15448
        moved to vect_determine_vectorization_factor.
15449
        (vect_enhance_data_refs_alignment): Update to correct alignment when it
15450
        is known instead of -1.  Set LOOP_PEELING_FOR_ALIGNMENT to peeling
15451
        factor.
15452
        (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
15453
        be part of vect_analyze_operations).
15454
        * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
15455
        creating the guard condition, as the number of iterations may be
15456
        constant.
15457
        (slpeel_tree_peel_loop_to_edge): Use new name of
15458
        LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
15459
        * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
15460
        alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
15461
        (vect_do_peeling_for_alignment): Use fold.
15462
        (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
15463
 
15464
        (vect_update_inits_of_dr): Renamed to
15465
        vect_update_init_of_dr.
15466
        (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
15467
        (vectorizable_store): Fix assertion to use == instead of =.
15468
 
15469
2005-03-15  Daniel Jacobowitz  
15470
 
15471
        * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
15472
        call_used_regs for wCG registers.
15473
 
15474
2005-03-15  Ulrich Weigand  
15475
 
15476
        * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
15477
        for non-offsettable memory references to cope with outstanding reload
15478
        replacements, take 2.
15479
 
15480
2005-03-15  Uros Bizjak  
15481
 
15482
        PR target/18668
15483
        * config/i386/i386.h (x86_fisttp): New.
15484
        (TARGET_FISTTP): New macro.
15485
        * config/i386/i386.c (x86_fisttp): Set for NOCONA.
15486
        (output_fix_trunc): Add fisttp parameter.  Generate fisttp x87
15487
        instruction when fisttp flag is set.
15488
        * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
15489
 
15490
        * config/i386/i386.md (type attribute): Add fisttp.
15491
        (unit attribute): Set to i387 for fisttp type.
15492
        (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
15493
        (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
15494
        TARGET_FISTTP.
15495
        (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
15496
        Generate fisttp patterns for TARGET_FISTTP. Implement using mode
15497
        macros.
15498
        (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
15499
        patterns for TARGET_FISTTP.  Enable patterns for
15500
        (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
15501
        (fix_trunc_i387_fisttp_1, fix_trunc_i387_fisttp,
15502
        fix_trunc_i387_fisttp_with_temp): New instruction patterns to
15503
        implement fisttp x87 insn.
15504
        (fix_trunc*_i387_fisttp splitters): New patterns.
15505
        (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
15506
        Rename to *fix_trunc_i387_1.  Implement using mode macros.
15507
        Disable patterns for TARGET_FISTTP.  Add comment about FLAGS_REG
15508
        clobber.
15509
        (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
15510
        Rename to fix_trunc_i387 and fix_trunc_i387_with_temp.
15511
        Implement using mode macros. Disable patterns for TARGET_FISTTP.
15512
        (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
15513
        fix_trunchi_nomemory): Rename to fix_trunc_i387 and
15514
        fix_trunc_i387_with_temp. Implement using mode macros.
15515
        Disable patterns for TARGET_FISTTP.
15516
        (fix_trunc*_i387 splitters): Implement usign mode macros.
15517
        (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
15518
        fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
15519
        (fix_trunx*_sse peephole2s): Implement using mode macros.
15520
 
15521
2005-03-15  J"orn Rennecke 
15522
 
15523
        PR rtl-optimization/20291
15524
        * combine.c (try_combine): If splitting fails, re-try with
15525
        original combined pattern, i.e. before clobber stripping.
15526
 
15527
2005-03-14  Eric Christopher  
15528
 
15529
        * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
15530
        STACK_GROWS_DOWNWARD.
15531
 
15532
2005-03-14  Roger Sayle  
15533
 
15534
        * real.h (struct real_format): Split the signbit field into two
15535
        two fields, signbit_ro and signbit_rw.
15536
        * real.c (ieee_single_format, mips_single_format, ieee_double_format,
15537
        mips_double_format, ieee_extended_motorola_format,
15538
        ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
15539
        ieee_extended_intel_128_format, ibm_extended_format,
15540
        mips_extended_format, ieee_quad_format, mips_quad_format,
15541
        vax_f_format, vax_d_format, vax_g_format, i370_single_format,
15542
        i370_double_format, c4x_single_format, c4x_extended_format,
15543
        real_internal_format): Update initializers for new field.
15544
        * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
15545
        real_format structure.
15546
        * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
15547
        field of the real_format structure.
15548
 
15549
2005-03-14  Daniel Berlin 
15550
 
15551
        Fix PR tree-optimization/20458
15552
 
15553
        * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
15554
        DECL_EXTERNAL on STRUCT_FIELD tags.
15555
        (clear_call_clobbered): Ditto.
15556
        * tree-ssa-operands.c (note_addressable): Make sure the original
15557
        variable doesn't slip into the addressable list if we have
15558
        subvars.
15559
        * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
15560
        tags too.
15561
 
15562
2005-03-14  Geoffrey Keating  
15563
 
15564
        * doc/cppopts.texi (-fexec-charset): Add concept index entry.
15565
        (-fwide-exec-charset): Likewise.
15566
        (-finput-charset): Likewise.
15567
        * doc/invoke.texi (Warning Options): Document -Wnormalized=.
15568
        * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
15569
        * c.opt (Wnormalized): New.
15570
 
15571
2005-03-14  Devang Patel  
15572
 
15573
        * doc/invoke.texi: Add reference to Visibility document.
15574
 
15575
2005-03-14  Richard Sandiford  
15576
 
15577
        * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
15578
        MASK_SPLIT_ADDRESSES.
15579
        * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
15580
        (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
15581
        (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
15582
        (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
15583
        (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
15584
        (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
15585
        (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
15586
        (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
15587
        (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
15588
        (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
15589
        (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
15590
        (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
15591
        (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
15592
        (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
15593
        (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
15594
        (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
15595
        (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
15596
        (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
15597
        (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
15598
        (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
15599
        (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
15600
        (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
15601
        (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
15602
        (TARGET_EXPLICIT_RELOCS): Delete.
15603
        (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
15604
        (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
15605
        * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
15606
        (override_options): Set MASK_LONG64 if -mint64 is given and no
15607
        -mlongXX option is.  Complain about -mint64 -mlong32.
15608
        (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
15609
        MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
15610
        * config/mips/mips.opt: New file.
15611
 
15612
2005-03-14  Richard Sandiford  
15613
 
15614
        * config.gcc (extra_options): New variable for listing option files.
15615
        Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
15616
        * configure.ac (extra_opt_files): New AC_SUBST variable.
15617
        (tm_file_list, tm_include_list): Include options.h first.
15618
        * configure: Regenerate.
15619
        * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
15620
        (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
15621
        (s-options-h): New rule.
15622
        (options.h): Depend on it.
15623
        (TEXI_GCCINT_FILES): Add options.texi.
15624
        * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
15625
        * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
15626
        * target.h (gcc_target): Add default_target_flags and handle_option.
15627
        * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
15628
        (TARGET_HANDLE_OPTION): New macros.
15629
        (TARGET_INITIALIZER): Include them.
15630
        * opt-functions.awk (opt_args, nth_arg): New functions.
15631
        (switch_flags): Handle the "Target" flag.
15632
        (var_args): Delete.
15633
        (var_name): Use opt_args and nth_arg.
15634
        (var_set, var_ref): Likewise.  Handle "Mask" and "InverseMask".
15635
        * opth-gen.awk: Declare target_flags.  Declare MASK_* and TARGET_*
15636
        macros for the "Mask" and "InverseMask" options.
15637
        * opts.h (cl_var_cond): New enum.
15638
        (cl_option): Replace the "has_set_value" and "set_value" fields with
15639
        "var_cond" and "var_value".
15640
        (CL_TARGET): New macro.
15641
        (option_enabled, print_filtered_help): Declare.
15642
        (decode_options): Move definition.
15643
        * opts.c (handle_option): Search for the original option before
15644
        removing any "no-" prefix.  Handle CL_TARGET.  Adjust for the new
15645
        var_cond and var_value fields.  Use targetm.handle_option to handle
15646
        target options.
15647
        (decode_options): Set target_flags to targetm.default_target_flags.
15648
        (print_filtered_help): Make global.  Handle CL_TARGET.
15649
        (option_enabled): New function.
15650
        * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
15651
        (display_target_options, set_target_switch, print_switch_values)
15652
        (default_pch_valid_p): Guard uses of target_switches with
15653
        #ifdef TARGET_SWITCHES.  Also...
15654
        (display_target_options): Display the CL_TARGET entries in cl_options.
15655
        (set_target_option): Don't complain about the "" option when
15656
        TARGET_SWITCHES is undefined.
15657
        (print_switch_values): Use option_enabled.
15658
        (default_pch_valid_p): Check cl_options[] when looking for something
15659
        that has changed the value of target_flags.
15660
        * c.opt: Remove documentation from top of file.
15661
        * doc/gccint.texi: Add an "Options" chapter.  Include options.texi.
15662
        * doc/sourecebuild.texi: Refer to the new options documentation
15663
        instead of c.opt.  Document machine-specific .opt files.
15664
        * doc/tm.texi (target_flags): Say that this variable is declared
15665
        by options.h.
15666
        (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
15667
        (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
15668
        an alternative.
15669
        * doc/options.texi: New file.
15670
 
15671
2005-03-14  Alexandre Oliva  
15672
 
15673
        PR middle-end/18628
15674
        * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
15675
        register.
15676
 
15677
2005-03-14  Alexandre Oliva  
15678
 
15679
        PR c++/20280
15680
        * gimplify.c (gimplify_cond_expr): Add fallback argument.  Use a
15681
        temporary variable of pointer type if an lvalues is required.
15682
        (gimplify_modify_expr_rhs): Request an rvalue from it.
15683
        (gimplify_expr): Pass fallback on.
15684
 
15685
2005-03-14  Kazu Hirata  
15686
 
15687
        * cfgbuild.c: Update comments.
15688
 
15689
2005-03-14  Roger Sayle  
15690
 
15691
        PR rtl-optimization/17236
15692
        * optabs.c (expand_doubleword_mult): New helper function split out
15693
        from expand_binop.  Permute the order in which instructions are
15694
        emitted to minimize the number of simultaneously live registers.
15695
        (expand_binop): Call expand_doubleword_mult to synthesize a double
15696
        word multiplication.
15697
 
15698
2005-03-14  Kazu Hirata  
15699
 
15700
        * basic-block.h: Update the prototypes of cached_make_edge and
15701
        rtl_make_eh_edge.
15702
        * cfg.c (cached_make_edge): Take edge_cache representing one
15703
        row of the adjacency matrix of edges.
15704
        * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
15705
        (make_edges): Initialize edge_cache to represent one row of
15706
        the adjacency matrix of edges.
15707
 
15708
2005-03-14  Zdenek Dvorak  
15709
 
15710
        * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
15711
        New functions.
15712
        (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
15713
        Remove unused removed_phis variable.
15714
        (conditional_replacement): Use build1/build2.
15715
        (abs_replacement): Use last_and_only_stmt and build1/build2.
15716
 
15717
2005-03-14  Zdenek Dvorak  
15718
 
15719
        * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
15720
        ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
15721
        * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
15722
        (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
15723
        * c-common.c (handle_novops_attribute): New function.
15724
        (c_common_attribute_table): Add "no vops" entry.
15725
        * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
15726
        * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
15727
        * tree-ssa-operands.c (get_call_expr_operands): Do not
15728
        create virtual operands for calls with ECF_NOVOPS flag.
15729
        * tree.h (DECL_IS_NOVOPS): New macro.
15730
        (struct tree_decl): Add novops_flag.
15731
        (ECF_NOVOPS): New constant.
15732
 
15733
2005-03-14  Uros Bizjak  
15734
 
15735
        PR target/17688
15736
        * config/i386/i386.c (x86_use_himode_fiop): New.
15737
        (x86_use_simode_fiop): Rename from x86_use_fiop.
15738
        * config/i386/i386.h (x86_use_himode_fiop): Declare.
15739
        (TARGET_USE_HIMODE_FIOP): New.
15740
        (x86_use_simode_fiop): Rename from x86_use_fiop.
15741
        (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
15742
 
15743
        * config/i386/i386.md (X87MODEI12): New mode macro define.
15744
        (*cmpfp_): Rename from *cmpfp_si.  Use X87MODEI12 mode macro
15745
        to implement x87 FP compare with HImode input operands.
15746
        (*fp_jcc_8_387, splitter): Rename from *fp_jcc_8_387.
15747
        Use X87MODEI12 mode macro to handle HImode input operands.
15748
        (*fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
15749
        *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387):
15750
        Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
15751
        *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
15752
        macro to implement x87 operators with HImode input operands.
15753
        (fop splitters): Use X87MODEI12 mode macro to handle HImode
15754
        input operands.
15755
 
15756
2005-03-14  Zdenek Dvorak  
15757
 
15758
        * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
15759
        integer_zerop.
15760
        * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
15761
        constants invariant.
15762
 
15763
2005-03-14  Zdenek Dvorak  
15764
 
15765
        * basic-block.h (BB_VISITED): Removed.
15766
        * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
15767
 
15768
2005-03-14  Falk Hueffner  
15769
 
15770
        PR bootstrap/20424
15771
        * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
15772
 
15773
2005-03-14  Kazu Hirata  
15774
 
15775
        * ggc-zone.c: Fix comment typos.
15776
 
15777
        * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
15778
        stringpool.c, config/mips/mips-protos.h: Update copyright.
15779
 
15780
2005-03-14  Alan Modra  
15781
 
15782
        * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
15783
        throughout with its typedef, "rtx".
15784
        * config/rs6000/rs6000.c: Likewise.  Formatting fixes.
15785
        (rs6000_tls_symbol_ref_1): Remove inline keyword.
15786
        * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting.  Reorder
15787
        regs in comment to match code.
15788
 
15789
2005-03-14  Kazu Hirata  
15790
 
15791
        * except.c (check_handled): Make it static.
15792
        * except.h: Remove the corresponding prototype.
15793
 
15794
        * function.c (get_func_frame_size): Make it static.
15795
        * function.h: Remove the corresponding type.
15796
 
15797
        * regclass.c (reg_class_superclasses, reg_class_subclasses):
15798
        Make them static.
15799
        * hard-reg-set.h: Remove the corresponding declarations.
15800
 
15801
        * tree-cfg.c (verify_stmts): Check that
15802
        bb_for_stmt (stmt) == bb for every PHI node and statement.
15803
 
15804
2005-03-14  Alan Modra  
15805
 
15806
        * config.gcc: Remove excess indentation.
15807
        (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
15808
 
15809
2005-03-13  Roger Sayle  
15810
 
15811
        PR middle-end/19331
15812
        * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
15813
        * fold-const.c (fold_sign_changed_comparison): Likewise.
15814
        (fold_binary): Optimize comparisons against widened operands if
15815
        the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
15816
 
15817
2005-03-13  Eric Botcazou  
15818
 
15819
        * config/sparc/sparc.c (struct_value_alias_set): New global variable.
15820
        (sparc_override_options): Initialize it.
15821
        (sparc_struct_value_rtx): Set it on the MEM to be returned.
15822
 
15823
2005-03-13  David Edelsohn  
15824
 
15825
        * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
15826
        (reg_or_none500mem_operand): New predicate.
15827
        (zero_reg_mem_operand): New predicate.
15828
        * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
15829
        to reg_or_none500mem_operand.
15830
        (extendsfdf2_fpr): Add MEM alternative.
15831
        (extenddftf2_internal): Change operand2 predicate to
15832
        zero_reg_mem_operand.
15833
 
15834
2005-03-13  Daniel Jacobowitz  
15835
 
15836
        * ggc-zone.c: Rewritten.
15837
 
15838
        * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
15839
        if there are none.
15840
        * configure.ac: Define GGC_ZONE for --with-gc=zone.
15841
        * config.in: Regenerated.
15842
        * configure: Regenerated.
15843
        * gengtype.c (write_types_process_field, write_func_for_structure):
15844
        Pass new argument to gt_pch_note_object.
15845
        * ggc-common.c (struct ptr_data): Add TYPE.
15846
        (gt_pch_note_object): Take TYPE argument and save it.
15847
        (call_count): Update call to ggc_pch_count_object.
15848
        (call_alloc): Update call to ggc_pch_alloc_object.
15849
        (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
15850
        file.
15851
        * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
15852
        * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
15853
        (ggc_alloc_zone_stat): Delete.
15854
        (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
15855
        * ggc.h (gt_pch_note_object, ggc_pch_count_object)
15856
        (ggc_pch_alloc_object): Update prototypes.
15857
        (garbage_zone): Delete.
15858
        (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
15859
        GGC_ZONE conditional.  Update.  Change tree_zone and rtl_zone into
15860
        pointers.
15861
        (tree_id_zone): New variable.
15862
        (ggc_alloc_cleared_zone): Remove unused.
15863
        (ggc_alloc_zone): Define.
15864
        (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
15865
        * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
15866
        ggc_alloc_zone_stat.
15867
        * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
15868
        * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
15869
        (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
15870
        (make_node_stat): Likewise.  Use tree_id_zone.
15871
 
15872
2005-03-13  Daniel Jacobowitz  
15873
            Joseph S. Myers  
15874
 
15875
        * configure.ac: Check for MIPS TLS.
15876
        * configure: Regenerated.
15877
        * config/mips/mips-protos.h (enum mips_symbol_type): Add
15878
        SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
15879
        SYMBOL_GOTTPREL, and SYMBOL_TPREL.
15880
        * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
15881
        (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
15882
        (mips_classify_symbol, mips_symbolic_constant_p)
15883
        (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
15884
        (mips_tls_operand_p, mips_call_tls_get_addr)
15885
        (mips_legitimize_tls_address, mips_cannot_force_const_mem)
15886
        (mips_tls_symbol_ref_1): New functions.
15887
        (mips_legitimize_address, mips_legitimize_const_move): Call
15888
        mips_legitimize_tls_address.
15889
        (override_options): Handle V1_REG and TLS symbols.  Disable TLS
15890
        for MIPS16.
15891
        * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
15892
        (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
15893
        (mips_char_to_class): Document V1_REG.
15894
        (HAVE_AS_TLS): Provide default.
15895
        * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
15896
        constants.
15897
        (load_got): Renamed from *load_got.  Allow when
15898
        !TARGET_ABICALLS.
15899
        (tls_get_tp_): New instruction.
15900
 
15901
2005-03-13  Daniel Jacobowitz  
15902
 
15903
        * configure.ac: Update checks for target tools.
15904
        * configure: Regenerated.
15905
 
15906
2005-03-13  Daniel Jacobowitz  
15907
 
15908
        * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
15909
 
15910
2005-03-13  Roger Sayle  
15911
 
15912
        * expmed.c (expand_mult): Use synthetic multiplication sequences for
15913
        more classes of DImode multiplication by constant.  Allow both
15914
        multiplication by small negative constants (by performing a
15915
        multiplication by a positive constant and negating the result) and
15916
        multiplications by large powers of two, by using a left shift.
15917
 
15918
2005-03-13  Kazu Hirata  
15919
 
15920
        * tree-into-ssa.c (find_idf): Speed up by putting the indexes
15921
        of basic blocks into work_stack.
15922
 
15923
        * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
15924
        config/mips/vr.h: Update copyright.
15925
 
15926
        * c-decl.c (c_init_decl_processing): Remove useless calls to
15927
        build_function_type.
15928
 
15929
        * builtins.c (fold_trunc_transparent_mathfn,
15930
        fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
15931
        fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
15932
        fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
15933
        fold_builtin_strcpy, fold_builtin_strncpy,
15934
        fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
15935
        TREE_TYPE (exp).
15936
 
15937
        * builtins.c (expand_builtin_mathfn_3): Remove local variable
15938
        before_call.
15939
 
15940
        * lambda-code.c (lambda_compute_auxillary_space): Remove local
15941
        variable determinant.
15942
 
15943
        * tree-cfg.c (group_case_labels): Remove local variable type.
15944
 
15945
        * tree-ssa-live.c (build_tree_conflict_graph): Remove local
15946
        variable ann.
15947
 
15948
        * tree-ssa-phiopt.c (value_replacement): Remove local variable
15949
        result.
15950
 
15951
2005-03-13  Andy Hutchinson  
15952
 
15953
        PR target/18251
15954
        * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
15955
        (*movmemqi_insn): Delete.
15956
        (*movmemhi): Delete.
15957
 
15958
2005-03-13  Kazu Hirata  
15959
 
15960
        * builtins.c (fold_builtin_classify): Take decomposed
15961
        arguments of CALL_EXPR.
15962
        (fold_builtin_1): Update a call to fold_builtin_classify.
15963
 
15964
2005-03-13  Joseph S. Myers  
15965
 
15966
        PR c/20402
15967
        * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
15968
        through into call to parser_xref_tag after parse error.
15969
        (c_parser_struct_declaration): Consistently return NULL_TREE on
15970
        error.
15971
 
15972
2005-03-12  Daniel Berlin  
15973
 
15974
        * tree-flow-inline.h (ref_contains_array_ref): New function.
15975
        (lookup_subvars_for_var): Ditto.
15976
        (get_subvars_for_var): Ditto.
15977
        (var_can_have_subvars): Ditto.
15978
 
15979
        * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
15980
        (struct subvar): New type.
15981
 
15982
        * tree-dfa.c (okay_component_ref_for_subvars): New function.
15983
 
15984
        * tree-optimize.c (init_tree_optimization_passes): Call
15985
        pass_create_structure_vars.
15986
 
15987
        * tree-ssa-alias.c: Include vec.h.
15988
        (init_alias_info): Don't auto-clear call clobbered on struct-field
15989
        tags.
15990
        (compute_flow_insensitive_aliasing): Handle subvars.
15991
        (group_aliases): Handle STRUCT_FIELD aliases.
15992
        (setup_pointers_and_addressables): Ditto.
15993
        Don't mark variables non-addressable if they still have
15994
        addressable subvars.
15995
        Also mark subvars addressable when the real variable is marked
15996
        addressable.
15997
        (add_pointed_to_var): Try to prune the pointed-to set by only
15998
        pointing to subvars when possible.
15999
        Otherwise, make sure we set addresses_needed and pt_vars to
16000
        properly include subvars.
16001
        (bitpos_of_field): New function.
16002
        (push_fields_onto_fieldstack): Ditto.
16003
        (get_or_create_used_part_for): Ditto.
16004
        (create_overlap_variables_for): Ditto.
16005
        (find_used_portions): Ditto.
16006
        (create_structure_vars): Ditto.
16007
        (pass_create_structure_vars): New structure.
16008
 
16009
        * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
16010
        (get_expr_operands): Handle subvars.  Also try to turn
16011
        COMPONENT_REF accesses into must-defs now that we can accurately
16012
        portray it.
16013
        (note_addressable): Try to only mark as addressable those subvars
16014
        we know a COMPONENT_REF touches.
16015
        (overlap_subvar): New function.
16016
 
16017
        * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
16018
        Handle subvar storing.
16019
        (vect_address_analysis): Update caller of vect_object_analysis.
16020
 
16021
        * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
16022
 
16023
        * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
16024
        (STMT_VINFO_SUBVARS): New macro.
16025
 
16026
        * common.opts: add flag_tree_salias.
16027
 
16028
        * opts.c (decode_options): flag_tree_salias defaults to on.
16029
 
16030
        * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
16031
 
16032
        * doc/tree-ssa.texi: Document structural alias analysis.
16033
 
16034
2005-03-12  Steven Bosscher  
16035
 
16036
        * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
16037
        * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
16038
        * tree-ssa-operands.c (get_expr_operands): Likewise.
16039
        (get_expr_operands): Likewise for ERROR_MARK.
16040
 
16041
2005-03-12  Kazu Hirata  
16042
 
16043
        * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
16044
        var.
16045
 
16046
        * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
16047
        removed_phis.
16048
 
16049
        * tree-ssa-pre.c (compute_avail): Remove local variable val.
16050
        (mark_operand_necessary): Remove local variable ver.
16051
 
16052
        * tree-vect-transform.c (vect_get_new_vect_var): Remove local
16053
        variable prefix_len.
16054
 
16055
        * value-prof.c (mod_subtract_transform): Remove local variable
16056
        value.
16057
 
16058
        * builtins.c (fold_builtin_exponent): Take decomposed
16059
        arguments of CALL_EXPR.
16060
        (fold_builtin_1): Update a call to fold_builtin_exponent.
16061
 
16062
        * builtins.c (fold_builtin_logarithm): Take decomposed
16063
        arguments of CALL_EXPR.
16064
        (fold_builtin_1): Update a call to fold_builtin_logarithm.
16065
 
16066
        * c-decl.c (c_init_decl_processing): Remove local variables
16067
        ptr_ftype_void and ptr_ftype_ptr.
16068
 
16069
        * gimplify.c (gimplify_expr): Remove local variables r0 and
16070
        r1.
16071
 
16072
        * reg-stack.c (move_for_stack_reg): Remove local variable
16073
        push_insn.
16074
        (compare_for_stack_reg): Remove local variable flags_user.
16075
        (convert_regs_1): Remove local variable deleted.
16076
 
16077
        * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
16078
        variable new_cond.
16079
        (combine_blocks): Remove local variables exits and new_e.
16080
 
16081
        * tree-inline.c (expand_call_inline): Remove local variable
16082
        decl.
16083
 
16084
        * tree-ssa-live.c (create_ssa_var_map,
16085
        calculate_live_on_entry): Remove local variable snn.
16086
 
16087
2005-03-12  Geoffrey Keating  
16088
 
16089
        * c-lex.c (c_lex_with_flags): Add parameter to call to
16090
        cpp_spell_token.
16091
 
16092
2005-03-11  Per Bothner  
16093
 
16094
        * c-tree.h (struct c_declarator): New id_loc field.
16095
        * c-pragma.h (c_lex_with_flags): Take position reference.
16096
        * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
16097
        iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
16098
        (c_lex): Pass dummy location to c_lex_with_flags.
16099
        * c-parser.c (c_lex_one_token): Set c_token's location using
16100
        c_lex_with_flags, instead of input_location, which might be "ahead".
16101
        (c_parser_direct_declarator): Set declarator's id_loc from
16102
        c_token's id_loc.
16103
        * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
16104
        declarator's id_loc, rather than probably-imprecise input_location.
16105
        (build_id_declarator): Initialize c_declarator's id_loc field.
16106
 
16107
2005-03-11  Roger Sayle  
16108
 
16109
        PR middle-end/20419
16110
        * builtins.c (expand_builtin_signbit): Force the signbit's word
16111
        into an integer register to avoid SUBREGs of floating point modes.
16112
 
16113
2005-03-12  Kazu Hirata  
16114
 
16115
        * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
16116
        target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
16117
        tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
16118
        config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
16119
 
16120
2005-03-11  David Edelsohn  
16121
 
16122
        PR rtl-optimization/20306
16123
        * expr.c (emit_move_complex): Set try_int false if mode is
16124
        MODE_COMPLEX_FLOAT and mov_optab exists for inner mode.  Only try
16125
        emit_block_move if try_int is true.
16126
 
16127
2005-03-11  Richard Henderson  
16128
 
16129
        PR target/20415
16130
        * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
16131
        * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
16132
        to match.
16133
 
16134
2005-03-11  Richard Sandiford  
16135
 
16136
        * config/mips/mips.h (mips_fix_vr4130_string): Declare.
16137
        (TARGET_FIX_VR4130): New macro.
16138
        (TARGET_OPTIONS): Add -mfix-vr4130.
16139
        (ISA_HAS_MACCHI): New macro.
16140
        (ASM_SPEC): Add -mfix-vr4130.
16141
        * config/mips/mips.c (mips_fix_vr4130_string): New variable.
16142
        (override_options): Handle mips_fix_vr4130_string.
16143
        (mips_avoid_hazards): Clear all_noreorder_p
16144
        if we're working around VR4130 errata and the macc alternatives
16145
        are not available.
16146
        * config/mips/mips.md (mfhilo_): Turn into a define_expand.
16147
        (*mfhilo_, *mfhilo__macc): New insns.
16148
        * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
16149
        (MULTILIB_DEFAULTS): Remove leading "march=".
16150
        (DRIVER_SELF_SPECS): Likewise.  Make -mfix-vr4130 imply -march=vr4130
16151
        if no architecture option is given.
16152
        * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
16153
        VR4130 multilibs.
16154
        (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
16155
        * doc/invoke.texi: Document -mfix-vr4130.
16156
 
16157
2005-03-11  Richard Sandiford  
16158
 
16159
        * config/mips/mips.c (override_options): Only warn about -mint64
16160
        deprecation if TARGET_INT64.
16161
 
16162
2005-03-11  Kaveh R. Ghazi  
16163
 
16164
        * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
16165
        ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
16166
        ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
16167
        are non-specific regarding the nonnull parameter positions.
16168
        (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
16169
        ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
16170
        ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
16171
        ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
16172
 
16173
        * builtins.def: Use the non-specific "nonnull" attibute lists.
16174
 
16175
2005-03-11  Zdenek Dvorak  
16176
 
16177
        * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
16178
        single_pred_edge, single_succ, single_pred): Improve comments.
16179
 
16180
2005-03-11  Zdenek Dvorak  
16181
 
16182
        * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
16183
        single_pred_edge, single_succ, single_pred): New inline functions.
16184
        * bb-reorder.c (rotate_loop, find_traces_1_round,
16185
        add_labels_and_missing_jumps, fix_up_fall_thru_edges,
16186
        duplicate_computed_gotos): Use the single_succ/pred functions.
16187
        * cfganal.c (forwarder_block_p): Ditto.
16188
        * cfgbuild.c (compute_outgoing_frequencies): Ditto.
16189
        * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
16190
        outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
16191
        merge_seq_blocks): Ditto.
16192
        * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
16193
        * cfglayout.c (fixup_reorder_chain): Ditto.
16194
        * cfgloop.c (mark_single_exit_loops, update_latch_info,
16195
        canonicalize_loop_headers, verify_loop_structure): Ditto.
16196
        * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
16197
        mfb_update_loops, create_preheader, force_single_succ_latches,
16198
        create_loop_notes): Ditto.
16199
        * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
16200
        force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
16201
        commit_one_edge_insertion, purge_dead_edges,
16202
        cfg_layout_can_merge_blocks_p): Ditto.
16203
        * except.c (sjlj_emit_function_enter): Ditto.
16204
        * flow.c (init_propagate_block_info): Ditto.
16205
        * function.c (thread_prologue_and_epilogue_insns): Ditto.
16206
        * gcse.c (find_implicit_sets, bypass_conditional_jumps,
16207
        insert_insn_end_bb): Ditto.
16208
        * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
16209
        find_if_case_2): Ditto.
16210
        * lambda-code.c (perfect_nestify): Ditto.
16211
        * lcm.c (optimize_mode_switching): Ditto.
16212
        * loop-doloop.c (doloop_modify): Ditto.
16213
        * loop-init.c (loop_optimizer_init): Ditto.
16214
        * loop-iv.c (simplify_using_initial_values): Ditto.
16215
        * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
16216
        * loop-unswitch.c (unswitch_loop): Ditto.
16217
        * modulo-sched.c (generate_prolog_epilog): Ditto.
16218
        * predict.c (combine_predictions_for_insn, estimate_probability,
16219
        tree_estimate_probability, last_basic_block_p,
16220
        estimate_bb_frequencies): Ditto.
16221
        * profile.c (branch_prob): Ditto.
16222
        * regrename.c (copyprop_hardreg_forward): Ditto.
16223
        * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
16224
        * tracer.c (layout_superblocks): Ditto.
16225
        * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
16226
        cfg_remove_useless_stmts_bb, cleanup_control_flow,
16227
        cleanup_control_expr_graph, disband_implicit_edges,
16228
        tree_find_edge_insert_loc, bsi_commit_edge_inserts,
16229
        tree_verify_flow_info, tree_make_forwarder_block,
16230
        tree_forwarder_block_p, remove_forwarder_block,
16231
        remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
16232
        * tree-if-conv.c (tree_if_conversion): Ditto.
16233
        * tree-mudflap.c (mf_build_check_statement_for): Ditto.
16234
        * tree-ssa-dce.c (remove_dead_stmt): Ditto.
16235
        * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
16236
        * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
16237
        copy_loop_headers): Ditto.
16238
        * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
16239
        * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
16240
        * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
16241
        lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
16242
        * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
16243
        * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
16244
        * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
16245
        * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
16246
        * tree-ssa-threadupdate.c (redirect_edges): Ditto.
16247
        * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
16248
        eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
16249
        * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
16250
        * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
16251
        * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
16252
        slpeel_add_loop_guard): Ditto.
16253
 
16254
2005-03-11  James A. Morrison  
16255
 
16256
        PR tree-optimization/15784
16257
        * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
16258
        and -1 - A to ~A.
16259
 
16260
        * stmt.c (expand_case): Don't change index_type.  Convert minval
16261
        to the proper type.
16262
 
16263
        PR tree-optimization/20130
16264
        * fold-const.c (fold): Fold x * -1 into -x.
16265
 
16266
2005-03-11  Kaz Kojima  
16267
 
16268
        PR rtl-optimization/20331
16269
        * rtlanal.c (modified_between_p): Check its address first for MEM.
16270
        (modified_in_p): Likewise.
16271
 
16272
2005-03-11  Joseph S. Myers  
16273
 
16274
        * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
16275
 
16276
2005-03-10  Steven Bosscher  
16277
 
16278
        * expr.c (expand_expr_real_1): If possible, use a conditional
16279
        move for expanding MIN_EXPR and MAX_EXPR.
16280
        Use temp for moving around rtx-en.
16281
 
16282
2005-03-10  Andrew Pinski  
16283
 
16284
        PR rtl-opt/20412
16285
        * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
16286
        correct mode.
16287
 
16288
2005-03-10  Roger Sayle  
16289
 
16290
        * builtins.c (expand_builtin_signbit): Extend to handle floating
16291
        point modes wider than the largest integer type, using the
16292
        operand_subword_force function to obtain the signbit's word.
16293
 
16294
2005-03-10  Jakub Jelinek  
16295
 
16296
        PR target/20322
16297
        * combine.c (try_combine): If recog_for_combine added CLOBBERs
16298
        to NEWI2PAT, fail to combine if they are used by NEWPAT.
16299
 
16300
2005-03-10  Aldy Hernandez  
16301
 
16302
        * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
16303
 
16304
2005-03-10  Kazu Hirata  
16305
 
16306
        * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
16307
        type void.
16308
        (perform_edge_inserts): Unconditionally call
16309
        free_dominator_info.
16310
 
16311
        * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
16312
 
16313
2005-03-10  Bob Wilson  
16314
 
16315
        * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
16316
 
16317
2005-03-10  Nathan Sidwell  
16318
 
16319
        * bitmap.c (bitmap_copy): Remove manual loop unrolling.
16320
 
16321
        * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
16322
        gcc_unreachable.
16323
        (rtl_register_value_prof_hooks,
16324
        tree_value_profile_transformations,
16325
        tree_register_value_prof_hooks): Likewise.
16326
        * var-tracking.c (stack_adjust_offset_pre_post,
16327
        variable_htab_free, variable_union, dataflow_set_different_2,
16328
        count_uses, variable_was_changed, set_frame_base_location,
16329
        set_variable_part, emit_note_insn_var_location, vt_emit_notes,
16330
        vt_add_function_parameters): Likewise.
16331
        * varasm.c (named_section_real, named_section, make_decl_rtl,
16332
        asm_emit_uninitialised, assemble_integer, decode_addr_const,
16333
        const_hash_1, compare_constant, copy_constant, force_const_mem,
16334
        output_constant_pool_2, output_constant_pool_1, output_constant,
16335
        output_constructor, make_decl_one_only, decl_tls_model,
16336
        default_no_named_section, default_elf_select_section_1,
16337
        default_unique_section_1): Likewise.
16338
        * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
16339
        * vmsdbgout.c (addr_const_to_string): Likewise.
16340
 
16341
        PR c++/20375
16342
        * function.c (struct assign_parm_data_one): Remove last_named
16343
        field.
16344
        (assign_parm_find_data_types): Don't determine last_named.
16345
        Reorder named_parm determination.
16346
        (assign_parms): Only setup varargs on the last non-varadic
16347
        parameter.
16348
 
16349
2005-03-10  Kazuhiro Inaoka  
16350
 
16351
        * config/m32r/m32r.md (load_sda_base_32): New pattern.  Loads
16352
        sda base address on medium model.
16353
 
16354
2005-03-10  Zdenek Dvorak  
16355
 
16356
        * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
16357
        * cfgloop.c (flow_loop_nodes_find): Export.
16358
        * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
16359
        Declare.
16360
        * cfgloopmanip.c (fix_loop_structure): New function.
16361
        * predict.c (predict_loops): Clean up the loops information.
16362
        * tree-cfg.c (cleanup_tree_cfg_loop): New function.
16363
        (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
16364
        loop structure.
16365
        * tree-flow.h (cleanup_tree_cfg_loop): Declare.
16366
        (rewrite_into_loop_closed_ssa): Declaration changed.
16367
        * tree-loop-linear.c (linear_transform_loops): Add argument to
16368
        rewrite_into_loop_closed_ssa call.
16369
        * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
16370
        * tree-ssa-loop-im.c (move_computations): Ditto.
16371
        * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
16372
        * tree-vectorizer.c (vectorize_loops): Ditto.
16373
        * tree-optimize.c: Include cfgloop.h.
16374
        (execute_todo): Choose whether to call cleanup_tree_cfg or
16375
        cleanup_tree_cfg_loop.
16376
        * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
16377
        (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
16378
        * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
16379
        cleanup_tree_cfg_loop call.
16380
        * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
16381
        (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
16382
        work on part of cfg.
16383
 
16384
2005-03-10  Jakub Jelinek  
16385
 
16386
        PR inline-asm/20314
16387
        * gimplify.c (gimplify_asm_expr): Handle input/output constraints
16388
        with multiple alternatives.
16389
 
16390
        * stmt.c (parse_output_constraint): Fix a typo.
16391
 
16392
2005-03-09  Bob Wilson  
16393
 
16394
        * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
16395
        assembly directive instead of deprecated "no-generics".
16396
 
16397
2005-03-09  Ulrich Weigand  
16398
 
16399
        * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
16400
        for non-offsettable memory references to cope with outstanding reload
16401
        replacements.
16402
        * config/s390/s390.md ("reload_outti"): Call find_replacement to
16403
        avoid losing outstanding address reloads.
16404
        ("reload_outdi", "reload_outdf"): Likewise.
16405
 
16406
2005-03-09  Kaveh R. Ghazi  
16407
 
16408
        * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
16409
        code.  Add more cbrt transformations.
16410
 
16411
2005-03-09  Kaveh R. Ghazi  
16412
 
16413
        * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
16414
 
16415
2005-03-09  Kazu Hirata  
16416
 
16417
        * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
16418
        NULL_TREE when a given tree is not simplified.
16419
        (fold): Return the original tree when any of the functions
16420
        mentioned above NULL_TREE.
16421
 
16422
        * fold-const.c (fold_unary, fold_binary): Take decomposed
16423
        arguments, code, type, op0, and op1 in case of fold_binary.
16424
        (fold): Update calls to fold_unary and fold_binary.
16425
 
16426
2005-03-09  Roger Sayle  
16427
 
16428
        * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
16429
        a fndecl and an arglist instead of a CALL_EXPR, exp.
16430
 
16431
2005-03-09  Kazu Hirata  
16432
 
16433
        * cfglayout.c (fixup_reorder_chain): Remove old_bb.
16434
 
16435
        * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
16436
 
16437
        * expr.c (expand_assignment): Remove orig_to_rtx.
16438
 
16439
        * fold-const.c (int_const_binop): Remove no_overflow.
16440
 
16441
        * ifcvt.c (noce_emit_move_insn): Remove inmode.
16442
 
16443
        * loop-iv.c (get_biv_step_1): Remove lhs.
16444
 
16445
        * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
16446
 
16447
        * real.c (real_nan): Remove neg.
16448
 
16449
        * function.c (thread_prologue_and_epilogue_insns): Remove i
16450
        and newinsn.
16451
 
16452
        * tree-data-ref.c (array_base_name_differ_p): Remove ta and
16453
        tb.
16454
 
16455
        * tree-eh.c (tree_could_trap_p): Remove idx.
16456
 
16457
        * tree-into-ssa.c (ann): Remove ann.
16458
 
16459
        * tree-outof-ssa.c (num_nodes): Remove num_nodes.
16460
 
16461
        * tree-sra.c (decide_block_copy): Remove inst_count.
16462
 
16463
        * tree-ssa-alias.c (may_alias_p): Remove v_ann.
16464
 
16465
        * tree-ssa-loop-im.c (lhs): Remove.
16466
 
16467
        * cfgbuild.c (state, STATE, SET_STATE,
16468
        BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
16469
        make_edges.
16470
        (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
16471
        (find_basic_blocks): Set the state of each basic block to
16472
        BLOCK_NEW.
16473
 
16474
2005-03-08  Jeff Law  
16475
 
16476
        * tree-cfg.c (cleanup_control_flow): If removal of a computed
16477
        goto results in the removal of edges in the CFG, then we need
16478
        to recompute dominators.
16479
 
16480
2005-03-09  Ben Elliston  
16481
 
16482
        * c-common.c (c_do_switch_warnings): Comment fix.
16483
 
16484
2005-03-08  Julian Brown  
16485
 
16486
        * Patch from 2005-03-08 reverted for causing regressions and
16487
        ppc-darwin bootstrap failure.
16488
 
16489
2005-03-08  Fariborz Jahanian 
16490
 
16491
        * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
16492
        Define the real function for ppc-darwin.
16493
        * c-typeck.c (convert_arguments): Check for target-specific
16494
        invalid argument call to unprototyped function.
16495
        * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
16496
        New Macro.
16497
        * target.h (invalid_arg_for_unprototyped_fn): New field
16498
        in struct calls.
16499
        * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
16500
        default target hook.
16501
        * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
16502
        Declare.
16503
 
16504
2005-03-08  Kazu Hirata  
16505
 
16506
        * c-typeck.c (constructor_stack, constructor_range_stack,
16507
        initializer_stack): Make them static.
16508
 
16509
        * cfg.c (rbi_pool): Make it static.
16510
 
16511
        * gimple-low.c (lower_stmt_body): Make it static.
16512
        * tree-flow.h: Remove the corresponding prototype.  Don't
16513
        declare lower_data.
16514
 
16515
        * sched-deps.c (cache_size): Make it static.
16516
 
16517
        * stor-layout.c (lang_adjust_rli): Make it static.
16518
 
16519
2005-03-08  Julian Brown  
16520
 
16521
        * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
16522
        from being used for symbols with vague linkage when
16523
        HAVE_GAS_COMDAT_GROUP is true.
16524
 
16525
2005-03-08  J"orn Rennecke 
16526
 
16527
        * jump.c (invert_jump_1): Don't call redirect_jump_1 with
16528
        nlabel == JUMP_LABEL (jump).
16529
 
16530
2005-03-08  Kazu Hirata  
16531
 
16532
        * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
16533
        gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
16534
        tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
16535
        tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
16536
 
16537
2005-03-08  Alexey Neyman  
16538
 
16539
        PR c/14411
16540
        * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
16541
        * c-common.c (handle_returns_twice): New function.
16542
        (c_common_attribute_table): Declare eturns_twice' attribute.
16543
        * doc/extend.texi: Document eturns_twice' attribute.
16544
        * tree.h (DECL_IS_RETURNS_TWICE): New macro.
16545
        (struct tree_decl): Add returns_twice_flag.
16546
 
16547
2005-03-08  Kazu Hirata  
16548
 
16549
        * tree-ssa-phiopt.c: Fix a comment typo.
16550
 
16551
        * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
16552
        loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
16553
        config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
16554
        copyright.
16555
 
16556
2005-03-08  Richard Henderson  
16557
 
16558
        * config/alpha/alpha.c (code_for_builtin): Replace special-case
16559
        builtin codes with ctzdi2, clzdi2, popcountdi2.
16560
        (struct alpha_builtin_def): Add is_const.
16561
        (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
16562
        (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
16563
        (alpha_init_builtins): Init them.  Set nothrow and const attributes
16564
        on builtins.
16565
        (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
16566
        alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
16567
        alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
16568
        alpha_fold_vector_minmax, alpha_fold_builtin_perr,
16569
        alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
16570
        alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
16571
        alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
16572
        alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
16573
        (TARGET_FOLD_BUILTIN): New.
16574
        * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
16575
        (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
16576
        (ffsdi2): Use ctz.
16577
        (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
16578
 
16579
2005-03-08  Ira Rosen  
16580
 
16581
        PR tree-optimization/20122
16582
        * tree-vect-analyze.c (vect_object_analysis): Analyze initial
16583
        condition of access function instead of base.
16584
 
16585
2005-03-07  Jeff Law  
16586
            Steven Bosscher  
16587
 
16588
        * tree-cfg.c (find_taken_edge_computed_goto): New function.
16589
        (find_taken_edge): Call find_taken_edge_computed_goto as
16590
        appropriate.  Allow any gimple invariant rather than just
16591
        INTEGER_CST for VAL.
16592
        (cleanup_control_flow): Cleanup a computed goto which has turned
16593
        into a simple goto.
16594
        (tree_merge_blocks): If block B has any forced labels, move
16595
        them to the start of block A.
16596
        * tree-ssa-dom.c (thread_across_edge): Allow threading across
16597
        computed gotos as well.
16598
        * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
16599
        removal of unnecessary computed gotos too.
16600
        (lookup_redirection_data): Fix type of INSERT argument.  Callers
16601
        updated.
16602
 
16603
2005-03-08  Kazu Hirata  
16604
 
16605
        * tree-ssa-phiopt.c: Update copyright.  Fix indentations.
16606
        Remove trailing spaces.
16607
 
16608
        * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
16609
        unshare_all_trees): Make them static.
16610
        * tree-gimple.h: Remove the corresponding prototypes.
16611
 
16612
        * diagnostic.h: Remove unused prototype
16613
        debug_output_buffer.
16614
        * modulo-sched.c: Remove unused prototype
16615
        set_row_column_for_ps.
16616
 
16617
        * tree-ssa-phiopt.c (tree_ssa_phiopt,
16618
        replace_phi_edge_with_variable): Remove unused variable i.
16619
 
16620
2005-03-07  Per Bothner  
16621
 
16622
        * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
16623
 
16624
2005-03-06  Andrew Pinski  
16625
 
16626
        PR tree-opt/17671
16627
        * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
16628
        bbs on the COND_EXPR instead of the PHI_NODEs.
16629
        (candidate_bb_for_phi_optimization): Remove.
16630
        (replace_phi_with_stmt): Rename to ...
16631
        (replace_phi_edge_with_variable): this and change so that we
16632
        replace the phi argument instead of removing the PHI.
16633
        (conditional_replacement): Change so we deal with PHI with more
16634
        than two arguments.
16635
        (value_replacement): Likewise.
16636
        (abs_replacement): Likewise.
16637
 
16638
2005-03-07  Aldy Hernandez  
16639
 
16640
        * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
16641
        output_e500_flip_gt_bit.
16642
 
16643
        * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
16644
        as bit 31.
16645
        (rs6000_generate_compare): Fix logic to look at the correct bits.
16646
        (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
16647
        Look at GT bit.
16648
        (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
16649
        gen_e500_flip_gt_bit.  Rename gen_move_from_CR_eq_bit to
16650
        gen_move_from_CR_gt_bit.
16651
 
16652
        * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
16653
        ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
16654
        (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
16655
 
16656
        * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
16657
        (E500_CR_IOR_COMPARE): New constant.
16658
 
16659
2005-03-08  Earl Chew 
16660
            David Billinghurst 
16661
 
16662
        * config/i386/host-cygwin.c: New file to support precompiled
16663
        headers on cygwin
16664
        * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
16665
        * config.host: Use above files for cygwin host.
16666
 
16667
2005-03-07  David Edelsohn  
16668
 
16669
        * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
16670
        ordering ops from earlier change.
16671
 
16672
2005-03-07  Per Bothner  
16673
 
16674
        Various fixes to allow us to again build if --enable-mapped-location:
16675
        * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
16676
        unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
16677
        * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
16678
        local variable loc. Change logic appropriately.
16679
        * tree-vect-transform.c (vect_finish_stmt_generation): Use
16680
        EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
16681
        * c-parser.c (c_parser_for_statement): Initialize loc variable.
16682
        * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
16683
        DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
16684
 
16685
2005-03-07  Richard Sandiford  
16686
 
16687
        PR rtl-optimization/19683
16688
        * reload1.c (choose_reload_regs): Pass the number of bits, not the
16689
        number of bytes, to smallest_int_for_mode.  Fix arguments to
16690
        REG_CANNOT_CHANGE_MODE_P.
16691
 
16692
2005-03-07  Eric Botcazou  
16693
 
16694
        * reorg.c (relax_delay_slots): Check that the jump is
16695
        conditional before trying to invert it.
16696
 
16697
2005-03-07  Kazu Hirata  
16698
 
16699
        * bb-reorder.c (max_entry_frequency, max_entry_frequency):
16700
        Make them static.
16701
 
16702
        * calls (stack_arg_under_construction): Make it static.
16703
 
16704
        * flow.c (regs_live_at_setjmp): Make it static.
16705
        * flow.h: Remove the corresponding prototype.
16706
 
16707
        * reload1.c (reload_startobj, reload_firstobj,
16708
        something_needs_operands_changed, reload_inherited,
16709
        reload_inheritance_insn, reload_override_in,
16710
        reload_spill_index): Make them static.
16711
 
16712
        * recog.c (verify_changes): Make it static.
16713
        * recog.h: Remove the corresponding prototype.
16714
 
16715
        * cfgbuild.c (find_sub_basic_blocks): Remove.
16716
        * basic-block.h: Remove the corresponding prototype.
16717
        * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
16718
        in comments.
16719
        * doc/cfg.texi: Don't mention find_sub_basic_blocks.
16720
 
16721
        * tree-ssa-operands.c (check_build_stmt): Remove.
16722
 
16723
        * stor-layout.c (set_alignment): Remove.
16724
        * tree.h: Remove the corresponding prototype.
16725
 
16726
        * tree-ssa-pre.c (has_abnormal_preds): Make it static.
16727
 
16728
        * tree-ssa-dce.c (control_dependence_map,
16729
        visited_control_parents): Make them static.
16730
 
16731
        * cfghooks.c (verify_flow_info): Remove local variable
16732
        num_bb_notes.
16733
 
16734
        * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
16735
        last_bb_seen.
16736
 
16737
        * loop-unswitch.c (unswitch_loop): Remove local variable src.
16738
 
16739
2005-03-07  David Billinghurst 
16740
 
16741
        * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
16742
 
16743
2005-03-07  Joseph S. Myers  
16744
 
16745
        * config/ia64/hpux.h (LINK_SPEC): Add -z.
16746
        * config/ia64/ia64.c (ia64_function_value): Return a REG not a
16747
        PARALLEL for an empty structure.
16748
 
16749
2005-03-07  Kazu Hirata  
16750
 
16751
        * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
16752
 
16753
        * fold-const.c (fold_binary): Unroll the very first "for"
16754
        loop.
16755
 
16756
2005-03-06  David Edelsohn  
16757
 
16758
        * config/rs6000/predicates.md (branch_comparison_operator): Remove
16759
        redundant match_code test.
16760
        (scc_comparison_operator): Swap match_operand and match_code
16761
        tests.
16762
        (branch_positive_comparison_operator): Same.
16763
        (trap_comparison_operator): Use comparison_operator and swap with
16764
        match_code test.
16765
 
16766
2005-03-06  Marek Michalkiewicz  
16767
 
16768
        PR target/20288
16769
        * config/avr/avr.c (print_operand): Add 'p' and 'r'.
16770
        (out_movhi_r_mr): Read low byte of volatile MEM first.
16771
        (out_movhi_mr_r): Write high byte of volatile MEM first.
16772
 
16773
2005-03-05  Kazu Hirata  
16774
 
16775
        * cselib.c (reg_values, reg_values_size): Make them static.
16776
 
16777
        * cse.c (cse_reg_info_table): Make it static.
16778
 
16779
        * fold-const.c (fold_unary): Use build1 instead of copy_node.
16780
 
16781
2005-03-06  Zdenek Dvorak  
16782
 
16783
        * cse.c (find_best_addr): Use canon_for_address.
16784
 
16785
2005-03-06  Kazu Hirata  
16786
 
16787
        * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
16788
        (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
16789
        SUBREG and MEM, respectively.
16790
 
16791
        * fold-const.c (fold_binary): Use code instead of t.
16792
 
16793
        * fold-const.c (optimize_minmax_comparison): Take decomposed
16794
        arguments code, type, op0, and op1 instead of t.
16795
        (fold_binary): Update a call to optimize_minmax_comparison.
16796
 
16797
        * fold-const.c (fold_range_test): Take decomposed arguments
16798
        code, type, op0, and op1 instead of t.
16799
        (fold_binary): Update a call to fold_range_test.
16800
 
16801
        * fold-const.c (fold_binary_op_with_conditional_arg): Take
16802
        decomposed arguments code, type, op0, and op1 instead of t.
16803
        (fold_binary): Update a call to fold_range_test.
16804
 
16805
2005-03-06  Kazu Hirata  
16806
 
16807
        * fold-const.c (fold_binary): Avoid directly using the original
16808
        expression t as much as possible.
16809
 
16810
2005-03-05  Kazu Hirata  
16811
 
16812
        * c-semantics.c (build_stmt): Use TYPE_P instead of
16813
        IS_NON_TYPE_CODE_CLASS.
16814
        * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
16815
        (NON_TYPE_CHECK): Use TYPE_P instead of
16816
        IS_NON_TYPE_CODE_CLASS.
16817
 
16818
        * fold-const.c (fold): Remove handling of binary expressions.
16819
 
16820
2005-03-05  James A. Morrison  
16821
 
16822
        * doc/c-tree.texi: Wrap comments in @r{}.
16823
        * doc/cpp.texi: Likewise.
16824
        * doc/cppinternals.texi: Likewise.
16825
        * doc/extend.texi: Likewise.
16826
        * doc/md.texi: Likewise.
16827
        * doc/objc.texi: Likewise.
16828
        * doc/sourcebuild.texi: Likewise.
16829
        * doc/tm.texi: Likewise.
16830
        * doc/tree-ssa.texi
16831
 
16832
2005-03-05  Kazu Hirata  
16833
 
16834
        * predict.c (apply_return_prediction): Standardize PHI chain
16835
        walking.
16836
        * tree-ssa.c (ssa_redirect_edge): Likewise.
16837
 
16838
        * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
16839
        gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
16840
        Update copyright.
16841
 
16842
        * tree-phinodes.c (remove_phi_node): Drop the last argument.
16843
        * tree-flow.h: Adjust the prototype for remove_phi_node.
16844
        * lambda-code.c (perfect_nestify): Adjust a call to
16845
        remove_phi_node.
16846
        * tree-cfg.c
16847
        (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
16848
        * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
16849
        Likewise.
16850
        * tree-ssa-dce.c (remove_dead_phis): Likewise.
16851
        * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
16852
        * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
16853
        * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
16854
 
16855
        * combine.c (simplify_and_const_int): Use gen_int_mode instead
16856
        of GEN_INT (trunc_int_for_mode (...)).
16857
        * loop-iv.c (iv_number_of_iterations): Likewise.
16858
        * postreload.c (reload_cse_move2add): Likewise.
16859
        * simplify-rtx.c (simplify_const_unary_operation,
16860
        simplify_const_binary_operation): Likewise.
16861
        * stor-layout.c (get_mode_bounds): Likewise.
16862
 
16863
        * fold-const.c (fold_binary): New.
16864
        (fold): Call fold_binary on binary expressions.
16865
 
16866
2005-03-05  Richard Sandiford  
16867
 
16868
        * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
16869
        * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
16870
        (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
16871
        (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
16872
        (ASM_SPEC): Pass down -msym32 and -mno-sym32.
16873
 
16874
2005-03-04  Devang Patel  
16875
 
16876
        PR tree-optimization/18815
16877
        * tree-if-conv.c (combine_blocks): Adjust loop header edges for
16878
        loops with zero exit edges.
16879
 
16880
2005-03-04  Devang Patel  
16881
 
16882
        * doc/invoke.texi: Remove reference to webpage that does not exist.
16883
 
16884
2005-03-04  John David Anglin  
16885
            Joseph S. Myers  
16886
 
16887
        PR c++/19797
16888
        * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
16889
        (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
16890
        * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
16891
        * pa.c (get_plabel): Change argument to symbol_ref.  Call
16892
        maybe_get_identifier instead of get_identifier.
16893
        (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
16894
        (struct deferred_plabel): Replace name field with symbol field.
16895
        (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
16896
        ASM_OUTPUT_EXTERNAL_REAL is defined.
16897
        (output_global_address): Use output_addr_const for output of all
16898
        symbol_refs.
16899
        (output_deferred_plabels): Use symbol_ref instead of name for address
16900
        output.
16901
        * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
16902
        ASM_OUTPUT_SYMBOL_REF): New macros.
16903
        * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw.  Update
16904
        comment.
16905
        (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
16906
        label.
16907
 
16908
2005-03-05  Joseph S. Myers  
16909
 
16910
        * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
16911
        *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
16912
 
16913
2005-03-04  Jeff Law  
16914
 
16915
        * basic-block.h (rediscover_loops_after_threading): Declare.
16916
        * tree-ssa-dom.c: Include cfgloop.h.
16917
        (tree_ssa_dominator_optimize): Discover loops and some basic
16918
        properties.  Remove forwarder blocks recreated by loop header
16919
        canonicalization.  Also mark backedges in the CFG.
16920
        * tree-ssa-threadupdate.c: Include cfgloop.h
16921
        (rediscover_loops_after_threading): Define.
16922
        (struct local_info): New field, JUMP_THREADED.
16923
        (prune_undesirable_thread_requests): New function.
16924
        (redirect_edges): Clear EDGE_ABNORMAL.  If edges were threaded
16925
        then record that fact for the callers of redirct_edges.
16926
        (thread_block): If BB has incoming backedges, then call
16927
        prune_undesirable_thraed_requests.    Note when we are
16928
        going to have to rediscover loop information.  Return a
16929
        boolean indicating if any jumps were threaded.
16930
        (thread_through_all_blocks): Bubble up boolean indicating
16931
        if any jumps were threaded.
16932
        * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
16933
        (tree-ssa-threadupdate.o): Similarly.
16934
 
16935
2005-03-04  Kazu Hirata  
16936
 
16937
        * fold-const.c (fold_ternary): Unroll the "for" loop to
16938
        extract operands.
16939
 
16940
2005-03-04  Andrew Haley  
16941
 
16942
        * unwind-dw2-fde-glibc.c (struct
16943
        unw_eh_callback_data.check_cache): New field.
16944
        (frame_hdr_cache): New.
16945
        (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
16946
        Cache frame header info.
16947
 
16948
2005-03-04  Richard Sandiford  
16949
 
16950
        * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
16951
        (print_c_condition): Declare.
16952
        * read-rtl.c (ptr_loc): New structure.
16953
        (ptr_locs, ptr_loc_obstack, joined_conditions)
16954
        (joined_conditions_obstack): New variables.
16955
        (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
16956
        (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
16957
        (join_c_conditions, print_c_condition): New functions.
16958
        (apply_macro_to_string): Associate the new string with the same
16959
        source location as the old one.
16960
        (add_condition_to_string): Use join_c_conditions.
16961
        (read_string): Use set_rtx_ptr_loc to record a filename and line
16962
        number for the string.
16963
        (read_rtx): Initialize the new variables above.
16964
        * genattrtab.c (write_test_expr, write_attr_value): Use
16965
        print_c_condition.
16966
        * genconditions.c (write_header): Don't define MAYBE_EVAL.  Move its
16967
        comment above the GCC_VERSION check.
16968
        (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
16969
        Inline the definition of MAYBE_EVAL.
16970
        * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
16971
        * genoutput.c (process_template): Likewise.
16972
        * genpreds.c (write_predicate_subfunction): Likewise.
16973
        (write_predicate_expr): Use print_c_condition.
16974
        * genrecog.c (write_cond): Likewise.
16975
        * gensupport.c (process_rtx): Use join_c_conditions to join the
16976
        conditions of a define_insn_and_split.  Record a source location
16977
        for the string after the "&&".
16978
        (alter_test_for_insn): Use join_c_conditions.
16979
 
16980
2005-03-04  Andrew Pinski  
16981
 
16982
        Revert for now:
16983
        2005-03-03  James A. Morrison  
16984
        PR tree-optimization/15784
16985
        * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
16986
        and -1 - A to ~A.
16987
 
16988
2005-03-04  Ben Elliston  
16989
 
16990
        * gcc.c (option_map): Add --coverage.
16991
        (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
16992
        (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
16993
        * config/darwin.h: Pass -lgcov for `coverage'.
16994
        * doc/invoke.texi (Debugging Options): Document --coverage.
16995
 
16996
2005-03-04  Kazu Hirata  
16997
 
16998
        * gcse.c (bypass_block): Use find_edge wherever possible.
16999
 
17000
2005-03-03  Daniel Berlin 
17001
 
17002
        Fix PR debug/20253
17003
 
17004
        * c-opts.c (c_common_parse_file): Call start_source_file
17005
        and end_source_file at the approriate times.
17006
 
17007
        * dwarf2out.c (dwarf2out_finish): Don't auto-end
17008
        the main file, it will be done for us now.
17009
 
17010
2005-03-04  Kazu Hirata  
17011
 
17012
        * fold-const.c (fold_ternary): New.
17013
        (fold): Call fold_ternary on ternary expressions.  Remove
17014
        handling of ternary expressions.
17015
 
17016
2005-03-03  James A. Morrison  
17017
 
17018
        PR tree-optimization/15784
17019
        * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
17020
        and -1 - A to ~A.
17021
 
17022
2005-03-03  David Edelsohn  
17023
 
17024
        * config/rs6000/predicates.md (branch_comparison_operator):
17025
        Convert from C block to conditional format.
17026
 
17027
2005-03-03  Jan Hubicka  
17028
 
17029
        * tree-dfa.c (add_referenced_var): Don't walk initializer of external
17030
        and non-constant public variables.
17031
 
17032
2005-03-03  Kazu Hirata  
17033
 
17034
        * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
17035
        with LABEL_EXPR.
17036
 
17037
        * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
17038
        EDGE_I.
17039
 
17040
        * tree-phinodes.c (remove_phi_node): Clean up by factoring out
17041
        calls to release_ssa_name and release_phi_node.
17042
 
17043
        * fold-const.c (fold): Remove handling of unary expressions.
17044
 
17045
        * fold-const.c (fold_unary): Avoid directly using the original
17046
        expression t as much as possible.
17047
 
17048
2005-03-03  Roger Sayle  
17049
            Andrew Pinski  
17050
 
17051
        * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
17052
        RETURN rtx, and not a LABEL_REF containing a NULL pointer.
17053
 
17054
2005-03-03  Hans-Peter Nilsson  
17055
 
17056
        Describe special registers SRP and MOF as allocatable registers.
17057
        * config/cris/cris.c (cris_md_asm_clobbers): New function.
17058
        (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
17059
        (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
17060
        TARGET_HAS_MUL_INSNS.
17061
        (cris_print_operand) : New case.
17062
        : Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
17063
        * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
17064
        define.
17065
        (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
17066
        (REG_ALLOC_ORDER): Update for MOF.
17067
        (enum reg_class): New members MOF_REGS, GENERAL_REGS and
17068
        SPECIAL_REGS.
17069
        (GENERAL_REGS): No longer a define of ALL_REGS.
17070
        (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
17071
        (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
17072
        Adjust accordingly.
17073
        (CRIS_SPECIAL_REGS_CONTENTS): New macro.
17074
        (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
17075
        (SECONDARY_RELOAD_CLASS): Define.
17076
        (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
17077
        (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
17078
        (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
17079
        (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
17080
        (REGISTER_MOVE_COST): Define.
17081
        (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
17082
        * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
17083
        (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
17084
        (CRIS_MOF_REGNUM): New define_constants.
17085
        ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
17086
        special registers.
17087
        ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
17088
        New patterns.
17089
        ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
17090
        ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
17091
        Adjust for MOF being properly described as a register.
17092
        (indir_to_reg_split): Name this split.  Conditionalize on the
17093
        destination register being a general register.
17094
        (movei): Conditionalize on on operands 0 and 1 having the same
17095
        register class.
17096
 
17097
2005-03-03  Alan Modra  
17098
 
17099
        PR target/20277
17100
        * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
17101
        -mcpu to override any other explicitly given flags.
17102
 
17103
2005-03-02  J"orn Rennecke 
17104
 
17105
        * recog.c (verify_changes, confirm_change_group): New functions,
17106
        broken out of apply_change_group.
17107
        (apply_change_group): Use them.
17108
        * recog.h (verify_change, confirm_change_group): Declare.
17109
        * rtl.h (redirect_jump_2): Declare.
17110
        * jump.c (redirect_exp, invert_exp): Delete.
17111
        (invert_exp_1): Take second parameter.  Return value.  Changed caller.
17112
        (redirect_jump_2): New function, broken out of redirect_jump.
17113
        (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
17114
        (invert_jump): Use invert_jump_1 and redirect_jump_2.
17115
        * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
17116
 
17117
2005-03-02  Geoffrey Keating  
17118
 
17119
        * varasm.c (named_section): Use xstrdup rather than doing it by
17120
        hand.
17121
 
17122
        * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
17123
 
17124
2005-03-02  Devang Patel  
17125
 
17126
        Undo PR tree-optimization/18815 fix.
17127
 
17128
2005-03-02  Devang Patel  
17129
 
17130
        PR tree-optimization/18815
17131
        * tree-if-conv.c (combine_blocks): Adjust loop header edges for
17132
        loops with zero exit edges.
17133
 
17134
2005-03-02  Kazu Hirata  
17135
 
17136
        * cfg.c (connect_src, connect_dest, disconnect_src,
17137
        disconnct_dest): New.
17138
        (unchecked_make_edge, remove_edge, redirect_edge_succ,
17139
        redirect_edge_pred): Use the new functions.
17140
 
17141
        * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
17142
        free_dominance_info only when needed.
17143
 
17144
2005-03-02  David Edelsohn  
17145
 
17146
        PR target/20276
17147
        * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
17148
        (reg_or_sub_cint64_operand): Same.
17149
 
17150
2005-03-02  Jeff Law  
17151
 
17152
        * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
17153
        CFG_ALTERED in the main DOM iteration loop.
17154
 
17155
2005-03-02  Mark Mitchell  
17156
 
17157
        PR c++/19916
17158
        * varasm.c (initializer_constant_valid_p): Allow conversions
17159
        between OFFSET_TYPEs.  Tidy.
17160
 
17161
2005-03-02  Hans-Peter Nilsson  
17162
 
17163
        * config/cris/cris.md ("return"): Remove epilogue delay list
17164
        sanity check.
17165
 
17166
2005-03-02  Daniel Jacobowitz  
17167
 
17168
        * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
17169
        for Thumb.
17170
        * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
17171
 
17172
2005-03-02  Kazu Hirata  
17173
 
17174
        * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
17175
        loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
17176
        config/m68k/m68k.c, config/mips/mips.h,
17177
        config/rs6000/rs6000-protos.h, doc/contrib.texi,
17178
        doc/include/gcc-common.texi: Update copyright.
17179
 
17180
        PR middle-end/18029 and PR middle-end/18030
17181
        * expr.c (optimize_bitfield_assignment_op): Add a special case
17182
        to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
17183
 
17184
        * fold-const.c (fold_unary): New.
17185
        (fold): Call fold_unary on unary expressions.
17186
 
17187
2005-03-02  Richard Guenther  
17188
 
17189
        * cgraph.h (struct cgraph_edge): Add prev_caller and
17190
        prev_callee fields.
17191
        (cgraph_node_remove_callees): Export.
17192
        * cgraph.c (cgraph_create_edge): Initialize prev_caller
17193
        and prev_callee.
17194
        (cgraph_edge_remove_callee): New function.
17195
        (cgraph_edge_remove_caller): Likewise.
17196
        (cgraph_remove_edge): Use.
17197
        (cgraph_redirect_edge_callee): Likewise.
17198
        (cgraph_node_remove_callees): New function.
17199
        (cgraph_node_remove_callers): Likewise.
17200
        (cgraph_remove_node): Use.
17201
        * tree-optimize.c (tree_rest_of_compilation): Use
17202
        cgraph_node_remove_callees instead of manual loop.
17203
        * cgraphunit.c (cgraph_finalize_function): Likewise.
17204
        (cgraph_expand_function): Likewise.
17205
        (cgraph_remove_unreachable_nodes): Likewise.
17206
 
17207
2005-03-02  Joseph S. Myers  
17208
 
17209
        PR c/8927
17210
        * c-tree.h (undeclared_variable, build_external_ref): Add extra
17211
        argument.
17212
        * c-decl.c (undeclared_variable): Take location as argument.
17213
        * c-typeck.c (build_external_ref): Likewise.
17214
        * c-parser.c (c_parser_postfix_expression): Pass location of
17215
        identifier to build_external_ref.
17216
 
17217
2005-03-01  David Edelsohn  
17218
 
17219
        * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
17220
        CCEQ mode for branch_positive_comparison_operator test.
17221
        * config/rs6000/predicates (branch_comparison_operator): Revert to
17222
        define_predicate.
17223
        (scc_comparison_operator): Same.
17224
        (branch_positive_comparison_operator): Same.
17225
 
17226
2005-03-01  Hans-Peter Nilsson  
17227
 
17228
        * config/cris/cris.c (cris_eligible_for_epilogue_delay)
17229
        (cris_delay_slots_for_epilogue): Remove.
17230
        (save_last): Move into cris_target_asm_function_epilogue.
17231
        (cris_target_asm_function_epilogue): Remove tests for file being
17232
        NULL.
17233
        * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
17234
        (cris_delay_slots_for_epilogue): Remove prototypes.
17235
        * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
17236
        (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
17237
 
17238
2005-03-01  David Edelsohn  
17239
 
17240
        * config/rs6000/predicates.md (branch_comparison_operator): Change
17241
        to define_special_predicate.
17242
        (scc_comparison_operator): Same.
17243
        (branch_positive_comparison_operator): Same.
17244
 
17245
2005-03-01  Daniel Berlin 
17246
 
17247
        * Makefile.in (tree-ssa-sink.o): New.
17248
        (OBJS-common): Add tree-ssa-sink.o.
17249
        * common.opt: Add -ftree-sink
17250
        * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
17251
        * timevar.def (TV_TREE_SINK): new timevar.
17252
        * tree-flow.h (is_hidden_global_store): Prototype.
17253
        * tree-optimize.c (init_tree_optimization_passes): Add
17254
        pass_sink_code.
17255
        * tree-pass.h (pass_sink_code): New.
17256
        * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
17257
        for non-obvious global store store to is_hidden_global_store, and
17258
        call that new function.
17259
        * tree-ssa-sink.c: New file.
17260
        * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
17261
        * doc/passes.texi: Document forward store motion.
17262
        * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
17263
        * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
17264
        * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
17265
        * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
17266
 
17267
2005-03-01  Per Bothner  
17268
 
17269
        * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
17270
        and we have a non-zero column-number, add it to the message.
17271
        Also factor out the diagnostic_kind_text.
17272
 
17273
2005-03-01  Zdenek Dvorak  
17274
 
17275
        * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
17276
        flow_loop_pre_header_scan, flow_loop_pre_header_find,
17277
        flow_loop_scan): Removed.
17278
        (flow_loop_dump): Do not dump removed fields.
17279
        (flow_loop_free): Do not free removed fields.
17280
        (flow_loops_find): Flags argument removed.  Do not call flow_loop_scan.
17281
        (loop_exit_edge_p): New function.
17282
        * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
17283
        num_pre_header_edges, entry_edges, num_entries, exit_edges,
17284
        num_exits, exits_doms.
17285
        (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
17286
        LOOP_EDGES, LOOP_ALL): Removed.
17287
        (flow_loop_scan): Declaration removed.
17288
        (loop_exit_edge_p, mark_loop_exit_edges): Declare.
17289
        * cfgloopmanip.c (create_loop_notes): Do not pass flags to
17290
        flow_loops_find.
17291
        * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
17292
        (if_convert): Call flow_loops_find and flow_loops_free
17293
        when calling mark_loop_exit_edges.
17294
        * cfgloopanal.c (mark_loop_exit_edges): Moved from
17295
        ifcvt.c.  Removed the flow_loops_find, flow_loops_free and
17296
        free_dominance_info calls.
17297
        * loop-init.c (flow_loops_find): Ditto.
17298
        * passes.c (rest_of_handle_branch_prob): Ditto.
17299
        * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
17300
        * loop-unroll.c (analyze_insns_in_loop): Do not use
17301
        EDGE_LOOP_EXIT.
17302
        * predict.c (predict_loops): Do not call flow_loop_scan.
17303
        Use get_loop_exit_edges.
17304
        (tree_estimate_probability): Do not pass flags to flow_loops_find.
17305
        * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
17306
        Do not use EDGE_LOOP_EXIT.
17307
        (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
17308
        to bb_with_exit_edge_p.
17309
        (if_convertible_loop_p): Do not call flow_loop_scan.  Use
17310
        loop->single_exit.  Do not use EDGE_LOOP_EXIT.  Pass loop
17311
        to bb_with_exit_edge_p.
17312
        (combine_blocks): Pass loop to bb_with_exit_edge_p.  Do not use
17313
        EDGE_LOOP_EXIT.
17314
        * tree-loop-linear.c (linear_transform_loops): Do not call
17315
        flow_loop_scan.  Use loop->single_exit.
17316
        * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
17317
        (vect_analyze_loop_form): Do not call flow_loop_scan.
17318
        * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
17319
        loop->single_exit.
17320
        (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
17321
        loop->single_exit.
17322
        * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
17323
        slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
17324
        slpeel_tree_duplicate_loop_to_edge_cfg,
17325
        slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
17326
        Use loop_preheader_edge and loop->single_exit.  Do not call
17327
        flow_loop_scan.
17328
 
17329
2005-03-01  Nick Clifton  
17330
 
17331
        * config/arm/arm.c (thumb_find_work_register): Check all of the
17332
        argument registers to see if they are free, and a couple of
17333
        special cases where the last argument register but can be proved
17334
        to be available during the function's prologue.
17335
        (print_multi_reg, arm_compute_save_reg0_reg12_mask,
17336
        output_return_instruction, emit_multi_reg_push, thumb_pushpop,
17337
        thumb_unexpanded_epilogue): Use unsigned long as the type for the
17338
        register bit-mask.
17339
        (thumb_compute_save_reg_mask): Likewise.  Also use
17340
        thumb_find_work_register() to ensure that there is agreement about
17341
        which work register is going to be used in the prologue.
17342
        (thumb_output_function_prologue): Use unsigned long as the type
17343
        for the register bit-mask.  Also delay pushing the link register if
17344
        other high registers are going to be pushed.
17345
        (thumb_compute_save_reg_mask, emit_multi_reg_push,
17346
        print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
17347
        redundant prototypes.
17348
 
17349
2005-02-28  John David Anglin  
17350
 
17351
        PR target/19819
17352
        * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
17353
        and after reload in REG+REG indexed addresses without REG_POINTER
17354
        set in the base and not set in the index.
17355
 
17356
2005-02-28  Kaz Kojima  
17357
 
17358
        * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
17359
        Don't undefine here.
17360
        (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
17361
        (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
17362
        (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
17363
        (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
17364
        LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
17365
        Delete.
17366
        * config.gcc (sh*-*-linux*): Use config/linux.h.
17367
 
17368
2005-02-28  Dale Johannesen  
17369
            Stan Shebs  
17370
 
17371
        Rewrite of 64-bit Darwin structure-by-value pass/return.
17372
        * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
17373
        intoffset, use_stack, named.
17374
        * config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
17375
        (rs6000_darwin64_record_arg_advance_flush):  New.
17376
        (rs6000_darwin64_record_arg_advance_recurse): New.
17377
        (rs6000_darwin64_record_arg_flush):  New.
17378
        (rs6000_darwin64_record_arg_recurse):  New.
17379
        (rs6000_darwin64_record_arg):  New.
17380
        (rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
17381
        (function_arg_boundary):  Handle 128-bit aligned structs.
17382
        (function_arg_advance):  Rewrite darwin64 struct handling.
17383
        (function_arg):  Call rs6000_darwin64_record_arg.
17384
        (function_arg_partial_nregs):  Handle darwin64 structs.
17385
        (rs6000_darwin64_function_value):  Remove.
17386
        (rs6000_function_value):  Call rs6000_darwin64_record_arg.
17387
 
17388
2005-02-28  Roger Sayle  
17389
 
17390
        PR tree-optimization/20216
17391
        * tree-chrec.c (tree_fold_factorial): Delete.
17392
        (tree_fold_binomial): Change argument list to take a return type
17393
        and change the type of K to unsigned int.  Rewrite to avoid explicit
17394
        evaluation of factorials, and (recursively) calling fold to perform
17395
        compile-time arithmetic.  Return NULL on (internal) overflow.
17396
        (chrec_evaluate): Change type of K to an unsigned int.  Avoid
17397
        calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
17398
        if any intermediate calculation overflows.
17399
        (chrec_apply): Update call to chrec_evaluate.
17400
 
17401
2005-02-28  James E Wilson  
17402
 
17403
        * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
17404
 
17405
2005-02-28  Joseph S. Myers  
17406
 
17407
        PR c/20245
17408
        * c-parser.c (c_parser_compound_statement): Return error_mark_node
17409
        instead of NULL_TREE on error.
17410
 
17411
2005-02-28  David Edelsohn  
17412
 
17413
        * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
17414
        (EASY_VECTOR_15_ADD_SELF): Remove.
17415
        (num_insns_constant_wide): Not static.
17416
        (validate_condition_mode): Not static.
17417
        (toc_relative_expr_p): Not static.
17418
        (legitimate_indirect_address_p): Not static.
17419
        (macho_lo_sum_memory_operand): Not static.
17420
        (invalid_e500_subreg): Not static.
17421
        (easy_vector_same): Not static.
17422
        (easy_vector_splat_const): Not static.
17423
        (RS6000_SYMBOL_REF_TLS_P): Remove.
17424
        (any_operand): Delete.
17425
        (any_parallel_operand): Delete.
17426
        (count_register_operand): Delete.
17427
        (altivec_register_operand): Delete.
17428
        (xer_operand): Delete.
17429
        (s8bit_cint_operand): Delete.
17430
        (short_cint_operand): Delete.
17431
        (u_short_cint_operand): Delete.
17432
        (non_short_cint_operand): Delete.
17433
        (exact_log2_cint_operand): Delete.
17434
        (gpc_reg_operand): Delete.
17435
        (cc_reg_operand): Delete.
17436
        (cc_reg_not_cr0_operand): Delete.
17437
        (reg_or_short_operand): Delete.
17438
        (reg_or_neg_short_operand): Delete.
17439
        (reg_or_aligned_short_operand): Delete.
17440
        (reg_or_u_short_operand): Delete.
17441
        (reg_or_cint_operand): Delete.
17442
        (reg_or_arith_cint_operand): Delete.
17443
        (reg_or_add_cint64_operand): Delete.
17444
        (reg_or_sub_cint64_operand): Delete.
17445
        (reg_or_logical_cint_operand): Delete.
17446
        (got_operand): Delete.
17447
        (got_no_const_operand): Delete.
17448
        (easy_fp_constant): Delete.
17449
        (easy_vector_constant): Delete.
17450
        (easy_vector_constant_add_self): Delete.
17451
        (zero_constant): Delete.
17452
        (zero_fp_constant): Delete.
17453
        (volatile_mem_operand): Delete.
17454
        (offsettable_mem_operand): Delete.
17455
        (mem_or_easy_const_operand): Delete.
17456
        (add_operand): Delete.
17457
        (non_add_cint_operand): Delete.
17458
        (logical_operand): Delete.
17459
        (non_logical_cint_operand): Delete.
17460
        (mask_operand): Delete.
17461
        (mask_operand_wrap): Delete.
17462
        (mask64_operand): Delete.
17463
        (mask64_2_operand): Delete.
17464
        (and64_operand): Delete.
17465
        (and64_2_operand): Delete.
17466
        (and_operand): Delete.
17467
        (reg_or_mem_operand): Delete.
17468
        (lwa_operand): Delete.
17469
        (symbol_ref_operand): Delete.
17470
        (call_operand): Delete.
17471
        (current_file_function_operand): Delete.
17472
        (input_operand): Delete.
17473
        (rs6000_nonimmediate_operand): Delete.
17474
        (rs6000_tls_symbol_ref): Delete.
17475
        (save_world_operation): Delete.
17476
        (restore_world_operation): Delete.
17477
        (load_multiple_operation): Delete.
17478
        (store_multiple_operation): Delete.
17479
        (vrsave_operation): Delete.
17480
        (mfcr_operation): Delete.
17481
        (mtcrf_operation): Delete.
17482
        (lmw_operation): Delete.
17483
        (stmw_operation): Delete.
17484
        (branch_comparison_operator): Delete.
17485
        (branch_positive_comparison_operator): Delete.
17486
        (scc_comparison_operator): Delete.
17487
        (trap_comparison_operator): Delete.
17488
        (boolean_operator): Delete.
17489
        (boolean_or_operator): Delete.
17490
        (min_max_operator): Delete.
17491
        * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
17492
        (EASY_VECTOR_15): Moved to here.
17493
        (EASY_VECTOR_15_ADD_SELF): Move to here.
17494
        (PREDICATE_CODES): Delete.
17495
        * config/rs6000/rs6000-protos.h: Delete predicate functions.
17496
        Declare functions no longer static.
17497
        * config/rs6000/predicates.md: New.
17498
        * config/rs6000/rs6000.md: Include predicates.md
17499
 
17500
2005-02-28  Kazu Hirata  
17501
 
17502
        * calls.c (emit_call_1): Don't use  REG_ALWAYS_RETURN.
17503
        (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
17504
        REG_ALWAYS_RETURN.
17505
        * cfgrtl.c (need_fake_edge_p): Likewise.
17506
        * combine.c (distribute_notes): Likewise.
17507
        * emit-rtl.c (try_split): Likewise.
17508
        * recog.c (peephole2_opimize): Likewise.
17509
        * reg-notes.def (ALWAYS_RETURN): Remove.
17510
        * rtl.h (LCT_ALWAYS_RETURN): Remove.
17511
        * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
17512
        * tree.h (ECF_ALWAYS_RETURN): Remove.
17513
 
17514
2005-02-28  Roger Sayle  
17515
 
17516
        PR middle-end/19874
17517
        * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
17518
        between different machine modes is never a "useless" conversion.
17519
 
17520
2005-02-28  Geert Bosch  
17521
 
17522
        PR ada/15977
17523
        * doc/contrib.texi: List contributors for Ada front end
17524
 
17525
2005-02-28 Paolo Bonzini 
17526
 
17527
        * simplify-rtx.c (simplify_unary_operation_1,
17528
        simplify_const_unary_operation): New, extracted from...
17529
        (simplify_unary_operation): ... this one.
17530
        (simplify_binary_operation_1,
17531
        simplify_const_binary_operation): New, extracted from...
17532
        (simplify_binary_operation): ... this one.
17533
        * rtl.h (simplify_const_unary_operation,
17534
        simplify_const_binary_operation): Add prototypes.
17535
 
17536
2005-02-28  Julian Brown  
17537
 
17538
        * config/elfos.h: Revert my patch from 2005-02-25 since it broke
17539
        building libjava and caused PR regression/20228.
17540
 
17541
2005-02-28  Paolo Bonzini  
17542
 
17543
        PR bootstrap/17383
17544
        * Makefile.in (host_subdir): New.
17545
        (build_objdir): New.  Replace ../$(build_subdir) with it throughout.
17546
        * configure: Regenerate.
17547
 
17548
2005-02-27  Zack Weinberg  
17549
 
17550
        * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
17551
        * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
17552
        installation directory first.
17553
 
17554
2005-02-28  Hans-Peter Nilsson  
17555
 
17556
        PR target/19065.
17557
        * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
17558
        not including (reg). Do not check for reg being CRIS_PC_REGNUM.
17559
        (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
17560
        * config/cris/cris.md: Tweak comments referring to Q.
17561
        ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
17562
        ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
17563
        ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
17564
        ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
17565
        ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
17566
        Insert spaces in constraints to align alternatives vertically for
17567
        readability.
17568
        ("cmphi"): Ditto.  Add separate alternative for operand 0 "r",
17569
        operand 1: "M".
17570
 
17571
2005-02-27  John David Anglin  
17572
 
17573
        PR rtl-optimization/17728
17574
        * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
17575
        operand 0 from general_operand to move_dest_operand.
17576
 
17577
2005-02-26  John David Anglin  
17578
 
17579
        * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
17580
        instead of trying to save and restore TREE_SYMBOL_REFERENCED.
17581
        * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
17582
        (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
17583
 
17584
2005-02-26  Nathanael Nerode  
17585
 
17586
        * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
17587
        * configure: Regenerate.
17588
        * libada-mk.in: Remove CC; rename
17589
        cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
17590
 
17591
2005-02-26  Andrew Pinski  
17592
 
17593
        PR tree-opt/20188
17594
        * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
17595
        for the lhs, also walk over the tree.  Likewise for rhs.
17596
 
17597
2005-02-26  Zdenek Dvorak  
17598
 
17599
        * tree-ssa-dom.c (simple_iv_increment_p): New function.
17600
        (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
17601
        Do not propagate value of iv before increment over the increment.
17602
 
17603
2005-02-25  Joseph S. Myers  
17604
 
17605
        * c-parser.c: New file.
17606
        * c-parse.in: Remove.
17607
        * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
17608
        Remove.
17609
        (c-parser.o): Add dependencies.
17610
        (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
17611
        maintainer-clean, TAGS): Update.
17612
        * c-config-lang.in (gtfiles): Update.
17613
        * gengtype-lex.l: Don't handle "@@".
17614
        * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
17615
        objc_build_synchronized, objc_begin_try_stmt,
17616
        objc_begin_catch_clause, objc_finish_catch_clause,
17617
        objc_build_finally_clause, objc_finish_try_stmt): New.
17618
        * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
17619
        type_seen_p.
17620
        (c_parse_init): Update comment.
17621
        * c-decl.c (c_init_decl_processing): Update comment.
17622
        (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
17623
        declspecs_add_scspec, declspecs_add_attrs): Initialize and update
17624
        new c_declspecs members.
17625
 
17626
2005-02-25  Julian Brown  
17627
 
17628
        * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
17629
        from being used for symbols with vague linkage when
17630
        HAVE_GAS_COMDAT_GROUP is true.
17631
 
17632
2005-02-25  Mark Mitchell  
17633
 
17634
        * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
17635
 
17636
2005-02-25  Steve Ellcey  
17637
 
17638
        PR target/19930
17639
        * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
17640
        (LIBGCC2_HAS_DF_MODE): New.
17641
        (LIBGCC2_HAS_XF_MODE): New.
17642
        (LIBGCC2_HAS_TF_MODE): New.
17643
        * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
17644
        (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
17645
        * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
17646
        (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
17647
        (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
17648
        * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
17649
        and add _fixtfdi, _fixunstfdi, _floatditf
17650
        * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
17651
        L_fixunstfdi, L_floatditf.
17652
        * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
17653
        (LIBGCC2_HAS_TF_MODE): Define.
17654
 
17655
2005-02-25  Diego Novillo  
17656
 
17657
        PR tree-optimization/20204
17658
        * tree-into-ssa.c (insert_phi_nodes_for): Do not use
17659
        REWRITE_THIS_STMT markers on PHI nodes.
17660
        (rewrite_initialize_block): Likewise.
17661
 
17662
2005-02-25  Mark Mitchell  
17663
 
17664
        * version.c (version_string): Update to 4.1.
17665
 
17666
2005-02-25  Paolo Carlini  
17667
 
17668
        * doc/extend.texi (5.24 Declaring Attributes of Functions):
17669
        Clarify that the alternative way doesn't work in GNU C++.
17670
 
17671
2005-02-25  Zdenek Dvorak  
17672
 
17673
        PR tree-optimization/19937
17674
        * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
17675
        to the type of the induction variable.
17676
 
17677
2005-02-25  Kaz Kojima  
17678
 
17679
        PR rtl-optimization/20117
17680
        * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
17681
        the block including noncopyable insn.
17682
 
17683
2005-02-24  Kazu Hirata  
17684
 
17685
        * cse.c (delete_trivially_dead_insns): Speed up by minimizing
17686
        calls to find_reg_note.
17687
 
17688
2005-02-24  Richard Henderson  
17689
 
17690
        PR tree-opt/20127
17691
        * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
17692
        the type.
17693
 
17694
2005-02-24  Fariborz Jahanian 
17695
 
17696
        * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
17697
        vector types if to use base reg for misaligned non-word ld/std.
17698
 
17699
2005-02-24  Hans-Peter Nilsson  
17700
 
17701
        PR target/14619
17702
        * config/cris/cris.c (cris_target_asm_function_prologue): Create
17703
        dwarf2 label manually and put it after, not before the prologue.
17704
 
17705
2005-02-24  David Edelsohn  
17706
 
17707
        PR target/19019
17708
        * reload.c (operands_match_p): Only increment register number for
17709
        SCALAR_INT_MODE_P modes in multiple hard registers.
17710
 
17711
        * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
17712
        Fix formatting.
17713
 
17714
2005-02-24  Volker Reichelt  
17715
 
17716
        * ChangeLog.5: Fix log message typo(s).
17717
        * ChangeLog.7: Likewise.
17718
        * ChangeLog.tree-ssa: Likewise.
17719
        * cfgexpand.c: Fix comment typo(s).
17720
        * conflict.c: Likewise.
17721
        * defaults.h: Likewise.
17722
        * dwarf2out.c: Likewise.
17723
        * gcse.c: Likewise.
17724
        * ggc-page.c: Likewise.
17725
        * tree-eh.c: Likewise.
17726
        * tree-ssa-dom.c: Likewise.
17727
 
17728
2005-02-24  Jakub Jelinek  
17729
 
17730
        PR target/19019
17731
        * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
17732
        * config/rs6000/darwin-ldouble.c: Only use the .symver directives
17733
        if SHARED is defined.
17734
 
17735
        PR target/20196
17736
        * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
17737
        allow splitting only if operands 0 and 3 don't overlap.
17738
 
17739
2005-02-24  Richard Henderson  
17740
 
17741
        PR middle-end/19953
17742
        * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
17743
        (fold_builtin_1): Call them.
17744
        * fold-const.c (fold_complex_mult_parts): Split out from ...
17745
        (fold_complex_mult): ... here.  Fix typo in both imaginary case.
17746
        (fold_complex_div_parts, fold_complex_div): New.
17747
        (fold): Use them.
17748
        * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
17749
 
17750
2005-02-24  Richard Kenner  
17751
 
17752
        * tree-ssa-ccp.c (visit_assignment): Verify that result of
17753
        VIEW_CONVERT_EXPR is_gimple_min_invariant.
17754
 
17755
        * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
17756
        (print_node): Likewise.
17757
        Print TYPE_SIZES_GIMPLIFIED.
17758
 
17759
2005-02-24  Hans-Peter Nilsson  
17760
 
17761
        * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
17762
        ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
17763
        operands as commutative in constraints.
17764
 
17765
2005-02-24  Diego Novillo  
17766
 
17767
        * tree-into-ssa.c: Re-organize internal functions.
17768
 
17769
2005-02-24  Richard Henderson  
17770
 
17771
        PR middle-end/18902
17772
        * c-opts.c (c_common_post_options): Set flag_complex_method to 2
17773
        for c99.
17774
        * common.opt (fcx-limited-range): New.
17775
        * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
17776
        * toplev.c (flag_complex_method): Initialize to 1.
17777
        (process_options): Set flag_complex_method to 0 if
17778
        flag_cx_limited_range.
17779
        * doc/invoke.texi (-fcx-limited-range): New.
17780
 
17781
2005-02-24  Kazu Hirata  
17782
 
17783
        * cse.c (delete_trivially_dead_insns): Speed up by using
17784
        NEXT_INSN and PREV_INSN directly instead of next_real_insn and
17785
        prev_real_insn.
17786
 
17787
2005-02-24  Andrea Tarani  
17788
 
17789
        * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
17790
        functions when -mid-shared-library is being used.
17791
 
17792
2005-02-23  Daniel Jacobowitz  
17793
 
17794
        * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
17795
        (LINK_LIBGCC_SPECIAL_1): Don't mention it.
17796
        * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
17797
        * system.h: Poison LINK_LIBGCC_SPECIAL.
17798
 
17799
2005-02-23  James E Wilson  
17800
 
17801
        * gengtype.c (note_insn_name): Make 1 element larger.
17802
 
17803
2005-02-23  Roger Sayle  
17804
 
17805
        PR target/20018
17806
        PR rtl-optimization/20097
17807
        * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
17808
        BImode SUBREGs of SImode registers which confuse the ia64 backend.
17809
 
17810
2005-02-23  David Edelsohn  
17811
 
17812
        * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
17813
        * t-aix52 (SHLIB_INSTALL): Same.
17814
 
17815
2005-02-23  Kazu Hirata  
17816
 
17817
        * genpreds.c: Update copyright.
17818
 
17819
2005-02-23  Michael Beach  
17820
 
17821
        PR target/20159
17822
        * config/sparc/t-elf (startup files): Assemble with CPP.
17823
 
17824
2005-02-23  Paolo Bonzini  
17825
 
17826
        * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
17827
        (write_predicate_expr): Likewise.
17828
 
17829
2005-02-22  Diego Novillo  
17830
 
17831
        PR tree-optimization/20100
17832
        PR tree-optimization/20115
17833
        * tree-optimize.c (init_tree_optimization_passes): Remove
17834
        pass_maybe_create_global_var.
17835
        * tree-pass.h (pass_maybe_create_global_var): Remove.
17836
        * tree-ssa-alias.c (aliases_computed_p): Declare.
17837
        (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
17838
        (count_calls_and_maybe_create_global_var): Remove.
17839
        (pass_maybe_create_global_var): Remove.
17840
        (init_alias_info): Do not declare aliases_computed_p.
17841
        (maybe_create_global_var): If the function contains no
17842
        call-clobbered variables and a mix of pure/const and regular
17843
        function calls, create .GLOBAL_VAR.
17844
        Mark all call-clobbered variables for renaming.
17845
        (merge_pointed_to_info): Update comment.
17846
        (add_pointed_to_var): Likewise.
17847
        (is_escape_site): Likewise.
17848
        Accept struct alias_info * instead of size_t *.
17849
        Update all users.
17850
        Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
17851
        as necessary.
17852
        * tree-ssa-operands.c (get_call_expr_operands): If
17853
        ALIASES_COMPUTED_P is false, do not add call-clobbering
17854
        operands.
17855
        * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
17856
        (delete_tree_ssa): Likewise.
17857
 
17858
2005-02-22  James E Wilson  
17859
 
17860
        * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
17861
        (do_compile): Do call it here.
17862
 
17863
2005-02-22  Kazu Hirata  
17864
 
17865
        PR rtl-optimization/20017.
17866
        * passes.c (rest_of_handle_combine, rest_of_handle_cse,
17867
        rest_of_handle_cse2, rest_of_handle_gcse): Call
17868
        delete_dead_jumptables immediately before calling cleanup_cfg.
17869
 
17870
2005-02-22  Devang Patel  
17871
 
17872
        PR 19952
17873
        * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
17874
        all labels
17875
 
17876
2005-02-22  David Edelsohn  
17877
 
17878
        * config/rs6000/aix.h (WINT_TYPE): Define.
17879
 
17880
2005-02-22  Stan Shebs  
17881
 
17882
        * config/rs6000/rs6000.c (rs6000_override_options): Default to
17883
        natural alignment for 64-bit Darwin.
17884
        (rs6000_parse_alignment_option): Warn about uses of -malign-power
17885
        on 64-bit Darwin.
17886
        * doc/invoke.texi: Document this.
17887
 
17888
2005-02-22  DJ Delorie  
17889
 
17890
        * c-common.c (c_common_type_for_mode): Pass the mode's precision
17891
        to make_[un]signed_type, not the mode itself.
17892
 
17893
2005-02-22  Kazu Hirata  
17894
 
17895
        * cfg.c (cached_make_edge): Call make_edge if edge cache is
17896
        not available.  Use tail calls wherever possible.
17897
        (make_edge): Call unchecked_make_edge to create an edge.
17898
 
17899
        * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
17900
        (coalesce_ssa_name): Don't check for
17901
        SSANORM_USE_COALESCE_LIST.
17902
        (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
17903
 
17904
2005-02-22  Diego Novillo  
17905
 
17906
        * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
17907
        (rewrite_into_ssa): ... here.
17908
 
17909
2005-02-21  Alexandre Oliva  
17910
 
17911
        PR tree-optimization/19786
17912
        * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
17913
        tag to another's may-alias bitmap when adding to the other's list.
17914
 
17915
2005-02-21  DJ Delorie  
17916
 
17917
        * tree-ssa-loop-ivopts.c (computation_cost): Start register
17918
        numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
17919
        registers in unsupported ways.
17920
        * expmed.c (init_expmed): Likewise.
17921
 
17922
2005-02-21  Stan Cox  
17923
 
17924
        * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
17925
 
17926
2005-02-21  Kazu Hirata  
17927
 
17928
        * tree-cfg.c (fold_cond_expr_cond): New.
17929
        (make_edges): Call fold_cond_expr_cond.
17930
        (find_taken_edge): Accept nothing but INTEGER_CST.
17931
        (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
17932
        and 1.
17933
        (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
17934
 
17935
        * flow.c (delete_dead_jumptables): Speed up by scanning insns
17936
        that do not belong to any basic block.
17937
 
17938
2005-02-21  Jeff Law  
17939
 
17940
        * cfganal.c (find_unreachable_blocks): Manually CSE load of
17941
        e->dest.
17942
 
17943
2005-02-21  Kazu Hirata  
17944
 
17945
        * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
17946
        (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
17947
        Adjust their definitions.
17948
        (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
17949
        (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
17950
 
17951
        * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
17952
        genautomata.c, langhooks.c, langhooks.h, system.h,
17953
        config/arm/lib1funcs.asm: Update copyright.
17954
 
17955
2005-02-21  Ulrich Weigand  
17956
 
17957
        * dbxout.c (dbxout_function_end): Emit Lscope label always.
17958
 
17959
2005-02-21  Richard Guenther  
17960
 
17961
        PR bootstrap/13770
17962
        * doc/install.texi: Document --with-gc.
17963
 
17964
2005-02-21  Paolo Bonzini  
17965
 
17966
        * simplify-rtx.c (simplify_unary_operation): Add a missing
17967
        "break" statement.
17968
 
17969
2005-02-21  Eric Botcazou  
17970
 
17971
        PR tree-optimization/18663
17972
        * tree-ssa-dom.c (extract_range_from_cond): Return 0
17973
        if the type has variable bounds.
17974
 
17975
2005-02-20  Kazu Hirata  
17976
 
17977
        * gcse.c: Remove an obsolete comment.
17978
 
17979
        * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
17980
 
17981
2005-02-20  Hans-Peter Nilsson  
17982
 
17983
        * doc/extend.texi (Function Attributes) : The
17984
        attribute "pure" is below this text, not above.
17985
 
17986
2005-02-20  John David Anglin  
17987
 
17988
        * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
17989
        (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
17990
        * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
17991
 
17992
2005-02-20  Zack Weinberg  
17993
 
17994
        PR 18785
17995
        * langhooks.h (struct lang_hooks): Add to_target_charset.
17996
        * langhooks.c (lhd_to_target_charset): New function.
17997
        * langhooks-def.h: Declare lhd_to_target_charset.
17998
        (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
17999
        (LANG_HOOKS_INITIALIZER): Update.
18000
        * c-common.c (c_common_to_target_charset): New function.
18001
        * c-common.h: Declare it.
18002
        * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
18003
        c_common_to_target_charset.
18004
 
18005
        * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
18006
        (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
18007
        Delete definitions.
18008
        * system.h: Poison them.
18009
        * doc/tm.texi: Don't discuss them.
18010
        * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
18011
        * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
18012
        (pp_c_char): Do not attempt to generate letter escapes for
18013
        newline, tab, etc.
18014
        * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
18015
        * config/mips/mips.c (mips_output_ascii): Likewise.
18016
 
18017
2005-02-20  Dorit Naishlos  
18018
 
18019
        PR tree-optimization/19951
18020
        * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
18021
        is abnormal.
18022
 
18023
2005-02-19  Steven Bosscher  
18024
 
18025
        PR middle-end/19698
18026
        * function.h (struct function): New field `max_loop_depth'.
18027
        * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
18028
        (flow_loops_find): Reset the max loop depth count before finding loops.
18029
        * flow.c (MAX_LIVENESS_ROUNDS): New constant.
18030
        (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
18031
        (calculate_global_regs_live): Make sure the loop will terminate
18032
        when the initial sets are not empty.
18033
 
18034
2005-02-19  Zack Weinberg  
18035
 
18036
        * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
18037
        object inside.
18038
        * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
18039
 
18040
2005-02-19  Richard Sandiford  
18041
 
18042
        PR other/19525
18043
        * doc/invoke.texi: Remove documentation of %M spec.
18044
        * gcc.c: Likewise.
18045
        (init_spec): Remove %M suffix from -lgcc_s.
18046
        (do_spec_1): Remove 'M' case.
18047
        * mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
18048
        to put shared libraries in the multilib directory.  Remove the
18049
        shlib_so_soname substitution variable.  Don't add a multilib encoding
18050
        to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
18051
        reported by -print-multi-os-directory.  Pass @multilib_dir@ to
18052
        SHLIB_INSTALL as well as SHLIB_LINK.
18053
        * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
18054
        (SHLIB_NAME): Delete.
18055
        (SHLIB_DIR): New macro.
18056
        (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
18057
        (SHLIB_INSTALL): Adjust accordingly.
18058
        * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
18059
        * config/t-slibgcc-sld: Likewise.
18060
        * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
18061
        (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
18062
        (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
18063
        in $(SHLIB_DIR).
18064
        (SHLIBUNWIND_INSTALL): Adjust accordingly.
18065
        * config/i386/t-nwld (SHLIB_SONAME): Delete.
18066
        (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
18067
        Use @shlib_base_name@ instead of @shlib_so_name@.
18068
        * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
18069
        and @shlib_base_name@.so in @multilib_dir@.
18070
        (SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
18071
        to the install path.
18072
        * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
18073
        (SHLIB_LINK): Remove previous workaround.
18074
        * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
18075
        (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
18076
        (SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
18077
        the install path.
18078
        * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
18079
        @multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
18080
        (SHLIB_INSTALL): Adjust accordingly.
18081
        (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
18082
        * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
18083
        * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
18084
        config/t-slibgcc-elf-ver.
18085
 
18086
2005-02-19  Zdenek Dvorak  
18087
            Jakub Jelinek  
18088
 
18089
        PR tree-optimization/19828
18090
        * tree-ssa-loop-im.c: Add a TODO comment.
18091
        (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
18092
        without side-effects.
18093
 
18094
2005-02-18  James A. Morrison  
18095
 
18096
        * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
18097
        call fold_convert.
18098
 
18099
2005-02-18  James E. Wilson  
18100
 
18101
        * doc/invoke.texi (IA-64 Options): Delete -mb-step.
18102
        * config/ia64/ia64.c (last_group, group_idx): Delete variables.
18103
        (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
18104
        functions.
18105
        (ia64_reorg): Delete fixup_errata call.
18106
        * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
18107
        (TARGET_SWITCHES): Delete -mb-step entry.
18108
 
18109
2005-02-19  Jakub Jelinek  
18110
 
18111
        PR c/20043
18112
        * c-typeck.c (composite_type): Handle quals in transparent unions.
18113
        (type_lists_compatible_p): Likewise.
18114
 
18115
2005-02-18  Stan Shebs  
18116
 
18117
        * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
18118
        expressions in the .literal8 section.
18119
 
18120
2005-02-18  Geoffrey Keating  
18121
 
18122
        * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
18123
 
18124
2005-02-18  Roger Sayle  
18125
 
18126
        * fold-const.c (constant_boolean_node): Always create values of the
18127
        specified type, don't bother calling truthvalue_conversion.
18128
 
18129
2005-02-18  Joseph S. Myers  
18130
 
18131
        * except.c (output_function_exception_table): Call
18132
        assemble_external_libcall (eh_personality_libfunc).
18133
 
18134
2005-02-18  Joseph S. Myers  
18135
 
18136
        PR target/19886
18137
        * config/ia64/ia64.h (struct machine_function): Add state_num.
18138
        * config/ia64/ia64.c (process_epilogue,
18139
        process_for_unwind_directive): Use new unwind state numbers each
18140
        time rather than state 1.
18141
 
18142
2005-02-18  Ulrich Weigand  
18143
 
18144
        PR target/20054
18145
        * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
18146
        before the "*llgt_didi" pattern.
18147
 
18148
2005-02-18  Jason Merrill  
18149
 
18150
        * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
18151
 
18152
2005-02-18  Richard Earnshaw  
18153
 
18154
        * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
18155
        (div0): Use it in place of ARM_FUNC_ALIAS.
18156
        (lshrdi3, ashrdi3, ashlrdi3): Likewise.
18157
 
18158
2005-02-18  Andrew Pinski  
18159
 
18160
        PR middle-end/20030
18161
        * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
18162
        access, the lower bound of the array type if it exists.
18163
 
18164
2005-02-18  Alexandre Oliva  
18165
 
18166
        PR c++/20008
18167
        * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
18168
        cases that are out-of-range for the index type.
18169
 
18170
2005-02-18  James A. Morrison  
18171
 
18172
        * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
18173
        (estimate_case_costs): Don't call convert.
18174
        * expmed.c (expand_shift): Likewise.
18175
        (make_tree): Call fold_convert instead of convert.
18176
 
18177
2005-02-18  Jakub Jelinek  
18178
 
18179
        PR c++/19813
18180
        * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
18181
        that ref to be marked MEM_READONLY_P doesn't have base that needs
18182
        constructing.
18183
 
18184
2005-02-18  Joseph S. Myers  
18185
 
18186
        * genautomata.c (output_get_cpu_unit_code_func,
18187
        output_cpu_unit_reservation_p): Don't generate old-style function
18188
        definitions.
18189
 
18190
2005-02-18  Jakub Jelinek  
18191
 
18192
        PR c++/20023
18193
        PR tree-optimization/20009
18194
        * convert.c (convert_to_integer): Revert 2005-02-16 change.
18195
 
18196
        PR tree-optimization/18947
18197
        * cgraphunit.c (cgraph_finalize_function): When redefining an extern
18198
        inline, remove all nodes that are inlined into the extern inline
18199
        being redefined.
18200
 
18201
2005-02-17  Kazu Hirata  
18202
 
18203
        * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
18204
        loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
18205
        tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
18206
        config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
18207
        Update copyright.
18208
 
18209
2005-02-17  Roger Sayle  
18210
 
18211
        PR tree-optimization/19917
18212
        * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
18213
        to be potentially trapping.
18214
 
18215
2005-02-17  Kazu Hirata  
18216
 
18217
        * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
18218
 
18219
2005-02-17  Andreas Krebbel  
18220
 
18221
        * builtins.c (expand_builtin_return_addr): Remove tem parameter.
18222
        tem becomes a local variable which is set to the value of the
18223
        back end defined INITIAL_FRAME_ADDRESS macro.
18224
        (expand_builtin_frame_address): Omit the base parameter to
18225
        expand_builtin_return_addr.
18226
        (expand_builtin_profile_func): Likewise.
18227
        * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
18228
        (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
18229
        * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
18230
 
18231
2005-02-17  Jakub Jelinek  
18232
 
18233
        * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
18234
        s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
18235
        * config/frv/frv.c (frv_function_epilogue): Likewise.
18236
 
18237
2005-02-17  Daniel Berlin  
18238
 
18239
        * lambda-code (perfect_nestify): Remove mark/unmark
18240
        for rewriting hack.
18241
        * tree-loop-linear.c (linear_transform_loops): Add
18242
        rewrite_into_ssa call so that ssa is correct for
18243
        rewriting into loop closed.
18244
 
18245
2005-02-17  Nathan Sidwell  
18246
 
18247
        * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
18248
        * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
18249
        BITMAP_FREE.
18250
        * bt-load.c (btr_def_live_range, combine_btr_defs,
18251
        migrate_btr_def, migrate_btr_defs): Likewise.
18252
        * cfgcleanup.c (thread_jump): Likewise.
18253
        * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
18254
        * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
18255
        df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
18256
        df_rd_local_compute, df_reg_info_compute): Likewise.
18257
        * dominance.c (init_dom_info, free_dom_info): Likewise.
18258
        * flow.c (init_propagate_block_info,
18259
        free_propagate_block_info): Likewise.
18260
        * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
18261
        * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
18262
        modify_reg_pav): Likewise.
18263
        * loop-invariant.c (find_defs, find_invariant_insn,
18264
        find_invariants, free_inv_motion_data): Likewise.
18265
        * predict.c (tree_predict_by_opcode,
18266
        estimate_bb_frequencies): Likewise.
18267
        * stmt.c (expand_case): Likewise.
18268
        * tree-cfg.c (tree_duplicate_sese_region): Likewise.
18269
        * tree-dfa.c (mark_new_vars_to_rename): Likewise.
18270
        * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
18271
        * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
18272
        get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
18273
        rewrite_ssa_into_ssa): Likewise.
18274
        * tree-optimize.c (tree_rest_of_compilation): Likewise.
18275
        * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
18276
        analyze_edges_for_bb, perform_edge_inserts): Likewise.
18277
        * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
18278
        * tree-sra.c (tree_sra): Likewise.
18279
        * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
18280
        * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
18281
        * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
18282
        * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
18283
        * tree-ssa-dse.c (tree_ssa_dse): Likewise.
18284
        * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
18285
        Likewise.
18286
        * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
18287
        calculate_live_on_entry, calculate_live_on_exit,
18288
        build_tree_conflict_graph): Likewise.
18289
        * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
18290
        record_important_candidates, set_use_iv_cost, find_depends,
18291
        determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
18292
        tree_ssa_iv_optimize_finalize): Likewise.
18293
        * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
18294
        find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
18295
        tree_duplicate_loop_to_header_edge): Likewise.
18296
        * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
18297
        * tree-ssa.c (verify_flow_insensitive_alias_info,
18298
        verify_name_tags, verify_ssa, init_tree_ssa,
18299
        delete_tree_ssa): Likewise.
18300
        * tree-ssanames.c (marked_ssa_names, init_ssanames,
18301
        fini_ssanames): Likewise.
18302
        * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
18303
 
18304
2005-02-17  Ralf Corsepius  
18305
 
18306
        * config/rs6000/t-rtems: Completely reworked.
18307
 
18308
2005-02-17  Ira Rosen  
18309
 
18310
        * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
18311
 
18312
2005-02-17  Ira Rosen  
18313
 
18314
        * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
18315
        POINTER_TYPE_P when checking that type is a pointer.
18316
        (vect_get_memtag): Remove.
18317
        (vect_address_analysis): Use POINTER_TYPE_P. Call
18318
        vect_object_analysis with dummy parameter for memtag.
18319
        (vect_object_analysis): Extract memtag (functionality that
18320
        used to be in vect_get_memtag and moved here). Fix printings.
18321
        (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
18322
        with correct parameters. Remove call to vect_get_memtag.
18323
 
18324
2005-02-17  Dorit Naishlos  
18325
 
18326
        * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
18327
        (tree-vectorizer.o): Added missing dependencies.
18328
 
18329
        * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
18330
        decleration.
18331
        (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
18332
        declaration in tree-vectorizer.c, now has an extern declaration in
18333
        tree-vectorizer.h).
18334
        (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
18335
        slpeel_verify_cfg_after_peeling, vect_strip_conversion,
18336
        get_vectype_for_scalar_type, vect_is_simple_use,
18337
        vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
18338
        vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
18339
        new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
18340
        vectorizable_store, vectorizable_operation, vectorizable_assignment,
18341
        vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
18342
        find_loop_location): Likewise.
18343
 
18344
        * tree-vectorizer.c (langhooks.h): #include removed.
18345
        (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
18346
        moved to tree-vectorized.h.
18347
        (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
18348
        slpeel_verify_cfg_after_peeling, vect_strip_conversion,
18349
        get_vectype_for_scalar_type, vect_is_simple_use,
18350
        vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
18351
        vect_supportable_dr_alignment, new_loop_vec_info,
18352
        destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
18353
        vect_set_verbosity_level, find_loop_location): Likewise.
18354
 
18355
        (vect_analyze_loop): Function externalized. Declaration moved to
18356
        tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
18357
        (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
18358
        (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
18359
        vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
18360
        vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
18361
        vect_enhance_data_refs_alignment, vect_analyze_operations,
18362
        exist_non_indexing_operands_for_use_p, vect_mark_relevant,
18363
        vect_stmt_relevant_p, vect_get_loop_niters,
18364
        vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
18365
        vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
18366
        vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
18367
        vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
18368
        vect_get_memtag): Likewise.
18369
 
18370
        (vectorizable_load): Function externalized. Declaration moved to
18371
        tree-vectorized.h. Function definition moved to tree-vect-transform.c.
18372
        (vectorizable_store, vectorizable_operation, vectorizable_assignment,
18373
        vect_transform_loop): Likewise.
18374
        (vect_transform_stmt): Moved to tree-vect-transform.c.
18375
        (vect_align_data_ref, vect_create_destination_var,
18376
        vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
18377
        vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
18378
        vect_get_vec_def_for_operand, vect_init_vector,
18379
        vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
18380
        vect_build_loop_niters, vect_update_ivs_after_vectorizer,
18381
        vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
18382
        vect_update_inits_of_drs, vect_do_peeling_for_alignment,
18383
        vect_do_peeling_for_loop_bound): Likewise.
18384
 
18385
        * tree-vect-analyze.c: New file.
18386
        * tree-vect-transform.c: New file.
18387
 
18388
2005-02-17  Jason Merrill  
18389
 
18390
        PR mudflap/19319, c++/19317
18391
        * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
18392
        slot explicit.
18393
 
18394
2005-02-17  Gerald Pfeifer  
18395
 
18396
        * doc/install.texi (Specific): Update link for Darwin-specific
18397
        tool binary site.
18398
 
18399
2005-02-16  James A. Morrison  
18400
 
18401
        * fold-const.c (invert_truthvalue): : Call
18402
        constant_boolean_node.
18403
 
18404
2005-02-16  David Edelsohn  
18405
 
18406
        PR target/19019
18407
        * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
18408
        * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
18409
 
18410
2005-02-16  Richard Henderson  
18411
 
18412
        PR 19920
18413
        * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
18414
        with W_TYPE_SIZE.
18415
        (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
18416
        replace uses with Wtype_MAXp1_F.
18417
        (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
18418
        L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
18419
        L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
18420
        L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
18421
        and HAVE_TFMODE as appropriate.
18422
        (__fixunssfDI): Provide an implementation that doesn't need DFmode.
18423
        (__floatdisf): Likewise.
18424
        * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
18425
        (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
18426
        (Wtype_MAXp1_F): New.
18427
        (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
18428
        __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
18429
 
18430
2005-02-16  Richard Earnshaw  
18431
 
18432
        * PR target/19162
18433
        * arm.c (arm_apply_result_size): New function.
18434
        * arm.h (APPLY_RESULT_SIZE): Define.
18435
        * arm-protos.h (arm_apply_result_size): Add prototype.
18436
        * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
18437
        (movxf): New expand.
18438
        (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
18439
        (call_value_symbol): Remove predicate for operand 0.
18440
        (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
18441
        (untyped_call): Rework to correclty return values for any type.
18442
        (untyped_return): New expand.
18443
        * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
18444
 
18445
2005-02-16  Stan Shebs  
18446
 
18447
        * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
18448
        * config/rs6000/t-darwin8: New, for 64-bit multilib.
18449
 
18450
2005-02-16  Eric Botcazou  
18451
 
18452
        * doc/install.texi (sparc-sun-solaris2*): Document required GMP
18453
        configure settings on Solaris 7 and later.
18454
 
18455
2005-02-16  Diego Novillo  
18456
 
18457
        PR tree-optimization/19865
18458
        * tree-optimize.c (init_tree_optimization_passes): Run
18459
        pass_may_alias after pass_sra.
18460
 
18461
2005-02-16  Richard Henderson  
18462
            Stuart Hastings  
18463
 
18464
        PR debug/19521
18465
        * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
18466
        Do nothing if debug info suppressed for this function.
18467
        (dbxout_begin_function): Early exit if debug info suppressed for
18468
        this function.
18469
 
18470
2005-02-16  Kazu Hirata  
18471
 
18472
        PR target/20007
18473
        * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
18474
        find_basic_blocks.
18475
        * config/sh/sh.c (sh_output_mi_thunk): Likewise.
18476
 
18477
        PR tree-optimization/19967
18478
        * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
18479
        expand_builtin_strchr, expand_builtin_strrchr): Take a new
18480
        argument TYPE.  Adjust calls to fold_builtin_XXX.
18481
        (expand_builtin, fold_builtin_1): Adjust calls to
18482
        expand_builtin_XXX.
18483
        (fold_builtin_strchr, fold_builtin_strpbrk,
18484
        fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
18485
        result to a requested type TYPE.
18486
 
18487
2005-02-16  Jakub Jelinek  
18488
 
18489
        PR middle-end/19857
18490
        * fold-const.c (fold): Don't optimize (T)(x & cst) to
18491
        (T)x & (T)cst if (T)cst overflows.
18492
        * convert.c (convert_to_integer) : Pass
18493
        TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
18494
 
18495
2005-02-15  Jeff Law  
18496
 
18497
        * gcse.c (blocks_with_calls): New bitmap.
18498
        (alloc_gcse_mem): Allocate it.
18499
        (free_gcse_mem): Free it.
18500
        (clear_modifY_mem_tables): Clear it.
18501
        (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
18502
        when we encounter CALL_INSNs.
18503
        (compute_transp, case MEM): Handle blocks with calls separate
18504
        from blocks without calls.  Use bitmap iterators rather than
18505
        FOR_EACH_BB.
18506
 
18507
2005-02-15  Peter O'Gorman  
18508
 
18509
        PR bootstrap/18810
18510
        * mklibgcc.in (vis_hide): Use a temporary object file, not
18511
        -o /dev/null.
18512
 
18513
2005-02-15  Andy Hutchinson  
18514
 
18515
        PR target/19924
18516
        * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
18517
        access optimization.
18518
 
18519
2005-02-15  David Edelsohn  
18520
            Alan Modra  
18521
 
18522
        PR target/19019
18523
        * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
18524
        (_xlqsub): Rename to __gcc_qsub.
18525
        (_xlqmul): Rename to __gcc_qmul.
18526
        (_xlqdiv): Rename to __gcc_qdiv.
18527
        Provide versioned symbol aliases with old names.
18528
        * config/rs6000/libgcc-ppc64.ver: Rename symbols.
18529
        * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
18530
        * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
18531
        * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
18532
        * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
18533
 
18534
2005-02-15  James A. Morrison  
18535
 
18536
        * fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
18537
        Fold ~(A - 1) and ~(A + -1) to -A.
18538
 
18539
2005-02-15  James A. Morrison  
18540
 
18541
        PR pch/14940
18542
        PR target/19300
18543
        * config/host-linux.c (linux_gt_pch_use_address): Copy from
18544
        config/pa/pa-host.c:pa_gt_pch_use_address.
18545
 
18546
2005-02-15  Daniel Berlin  
18547
 
18548
        * tree-vn.c (get_value_handle): Make sure that given an
18549
        is_gimple_min_invariant expression, we always return it.
18550
 
18551
2005-02-15  Kazu Hirata  
18552
 
18553
        * passes.c (rest_of_handle_gcse): Fix a comment.
18554
 
18555
2005-02-15  Jeff Law  
18556
 
18557
        * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
18558
        bitmap.
18559
        (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
18560
        (canon_list_insert, record_last_mem_set_info): Similarly.
18561
        (clear_modify_mem_tables): Similarly.
18562
 
18563
2005-02-15  Kazu Hirata  
18564
 
18565
        * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
18566
        tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
18567
        config/mips/mips.md, config/rs6000/aix.h,
18568
        config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
18569
 
18570
2005-02-15  Richard Henderson  
18571
 
18572
        * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
18573
        call to be best_edge.
18574
 
18575
2005-02-14  Kazu Hirata  
18576
 
18577
        * basic-block.h: Adjust the prototype for find_basic_blocks.
18578
        * cfgbuild.c (find_basic_blocks): Remove unused arguments.
18579
        * passes.c (rest_of_handle_loop_optimize): Adjust the call to
18580
        find_basic_blocks.
18581
 
18582
        * flow.c (recompute_reg_usage): Remove all arguments.
18583
        * passes.c (rest_of_compilation): Adjust the call to
18584
        recompute_reg_usage.
18585
        * rtl.h: Adjust the prototype for recompute_reg_usage.
18586
 
18587
2005-02-14  Daniel Berlin  
18588
 
18589
        * tree-dump.c (dump_files): Update to reflect new member
18590
        of dump_file_info.
18591
        (dump_register): Add new argument.
18592
        Set glob name.
18593
        (dump_switch_p_1): Check against glob name if doglob was passed.
18594
        (dump_switch_p): Check against regular first, then glob if
18595
        we didn't have any hits on the dump name.
18596
        * tree-optimize.c (register_one_dump_file):
18597
        Pass in glob name as well.
18598
        * tree-pass.h (struct dump_file_info): Add glob
18599
        member.
18600
 
18601
2005-02-14  Joseph S. Myers  
18602
 
18603
        PR preprocessor/16323
18604
        * doc/invoke.texi: Document that -Wendif-labels is on by default.
18605
 
18606
2005-02-14  David Edelsohn  
18607
 
18608
        PR target/19019
18609
        * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
18610
        (trunctfdf2_internal1): New.
18611
        (trunctfdf2_internal2): Renamed from trunctfdf2.
18612
 
18613
2005-02-14  Diego Novillo  
18614
 
18615
        PR tree-optimization/19853
18616
        * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
18617
 
18618
2005-02-14  Kazu Hirata  
18619
 
18620
        * passes.c (rest_of_handle_loop_optimize): Remove calls to
18621
        delete_dead_jumptables and cleanup_cfg.
18622
 
18623
2005-02-14  Ulrich Weigand  
18624
 
18625
        * reload.c (find_reloads): Swap address_reloaded flags when
18626
        swapping commutative operands.
18627
 
18628
2005-02-14  Sebastian Pop  
18629
 
18630
        * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
18631
        Use standard_iv_increment_position for computing the bsi position
18632
        for create_iv.
18633
        * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
18634
        the bsi position.
18635
 
18636
2005-02-13  Zdenek Dvorak  
18637
 
18638
        PR target/17428
18639
        * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
18640
        life range of hard registers.
18641
        * value-prof.c (insn_prefetch_values_to_profile): Only
18642
        scan normal insns.
18643
 
18644
        * value-prof.c (rtl_find_values_to_profile): Do not look for values to
18645
        profile in libcalls.
18646
 
18647
2005-02-13  Nathan Sidwell  
18648
 
18649
        * bitmap.h (bitmap_and_compl_into): Return bool.
18650
        * bitmap.c (bitmap_and_compl_into): Return changed flag.
18651
 
18652
2005-02-13  James A. Morrison  
18653
 
18654
        PR tree-optimization/19944
18655
        * fold-const.c (fold): Re-add ABS_EXPR folding.
18656
 
18657
2005-02-13  David Edelsohn  
18658
 
18659
        PR target/19019
18660
        * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
18661
        {TARGET,MASK}_XL_COMPAT.
18662
        (SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
18663
        MASK_XL_COMPAT.
18664
        * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
18665
        * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
18666
        TARGET_XL_COMPAT.
18667
        (rs6000_arg_partial_bytes): Same.
18668
        (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
18669
        and XL compatibility enabled.
18670
        * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
18671
        * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
18672
        test to final condition.
18673
        (cmptf_internal2): New.
18674
        * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
18675
        xl-compat.  Add TFmode information to description.
18676
 
18677
2005-02-13  Kazu Hirata  
18678
 
18679
        * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
18680
 
18681
2005-02-13  Jason Merrill  
18682
 
18683
        PR c++/16405
18684
        * fold-const.c (fold_indirect_ref_1): Split out from...
18685
        (build_fold_indirect_ref): Here.
18686
        (fold_indirect_ref): New fn.
18687
        * tree.h: Declare it.
18688
        * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
18689
        (gimplify_modify_expr_rhs): Likewise.
18690
        (gimplify_expr): Likewise.
18691
 
18692
2005-02-13  James A. Morrison  
18693
 
18694
        PR tree-optimization/14303
18695
        PR tree-optimization/15784
18696
        * fold-const.c (fold): Fold ABS_EXPR >= 0 to true, when possible.
18697
        Fold ABS_EXPR < 0 to false.  Fold ABS_EXPR == 0 to x == 0 and
18698
        ABS_EXPR != 0 to x != 0.
18699
 
18700
2005-02-12  Kazu Hirata  
18701
 
18702
        * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
18703
        simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
18704
        spelling conventions.
18705
 
18706
        * passes.c (rest_of_handle_gcse): Don't run cse_main and
18707
        delete_trivially_dead_insns too many times.
18708
 
18709
        * passes.c (rest_of_handle_gcse): Remove dead assignments to
18710
        tem and tem2.
18711
 
18712
2005-02-12  Ira Rosen  
18713
 
18714
        * tree-vectorizer.c (vect_get_base_and_offset): Remove.
18715
        (vect_is_simple_iv_evolution): Remove redundant parameter
18716
        and step check.
18717
        (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
18718
        without last parameter.
18719
        (vect_analyze_pointer_ref_access): Get access_fn as parameter.
18720
        Return pointer step. Call vect_is_simple_iv_evolution without
18721
        last parameter. Check only that the step is multiple of size
18722
        type. Remove stmt_vinfo updates.
18723
        (vect_get_memtag_and_dr): Remove.
18724
        (vect_get_memtag): New function.
18725
        (vect_address_analysis): New function.
18726
        (vect_object_analysis): New function.
18727
        (vect_analyze_data_refs): Call vect_object_analysis and
18728
        vect_get_memtag. Update stmt_vinfo fields.
18729
 
18730
2005-02-12  Ira Rosen  
18731
 
18732
        * tree-data-ref.c (array_base_name_differ_p): Check that the bases
18733
        exist and are objects. Remove checks for pointer.
18734
        * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
18735
        STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
18736
        (vect_create_data_ref_ptr): Likewise.
18737
        (vect_base_addr_differ_p): New function.
18738
        (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
18739
        (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
18740
        Don't set the DR_BASE_NAME field of data-ref.
18741
        (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
18742
 
18743
2005-02-12  Uros Bizjak  
18744
 
18745
        * optabs.h (enum optab_index): Add new OTI_ldexp.
18746
        (ldexp_optab): Define corresponding macro.
18747
        * optabs.c (init_optabs): Initialize ldexp_optab.
18748
        * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
18749
        patterns.
18750
        * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
18751
        using ldexp_optab.
18752
        (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
18753
        expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
18754
 
18755
        * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
18756
        to implement ldexpf, ldexp and ldexpl built-ins as inline x87
18757
        intrinsics.
18758
 
18759
2005-02-12  Ira Rosen  
18760
 
18761
        * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
18762
        to base_address.
18763
        * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
18764
        stmt_vec_info.
18765
        (vect_get_base_and_offset): Always return an address.
18766
        (vect_create_addr_base_for_vector_ref): Remove treatment for
18767
        different data reference types.
18768
        (vect_compute_data_ref_alignment): Rename base to base_address in
18769
        stmt_vec_info. Get the object in order to force its alignment.
18770
        (vect_get_memtag_and_dr): Rename base to base_address in
18771
        stmt_vec_info. Extract the object for memtag analysis.
18772
 
18773
2005-02-12  Hans-Peter Nilsson  
18774
 
18775
        PR regression/19898.
18776
        * config/cris/cris.c (cris_notice_update_cc): When testing if insn
18777
        changes cc_status, use apply modified_in_p to part of cc_status
18778
        and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
18779
        body.
18780
 
18781
2005-02-11  Richard Henderson  
18782
 
18783
        * tree-complex.c (expand_complex_libcall): New.
18784
        (expand_complex_multiplication): Use it for c99 compliance.
18785
        (expand_complex_division): Likewise.
18786
        * fold-const.c (fold_complex_add, fold_complex_mult): New.
18787
        (fold): Call them.
18788
        * builtins.c (built_in_names): Remove const.
18789
        * tree.c (build_common_builtin_nodes): Build complex arithmetic
18790
        builtins.
18791
        * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
18792
        (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
18793
        (built_in_names): Remove const.
18794
        * c-common.c (c_common_type_for_mode): Handle complex modes.
18795
        * flags.h, toplev.c (flag_complex_method): Rename from
18796
        flag_complex_divide_method.
18797
        * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
18798
        __mulsc3, __muldc3, __mulxc3, __multc3): New.
18799
        * libgcc2.h: Declare them.
18800
        * libgcc-std.ver: Export them.
18801
        * mklibgcc.in (lib2funcs): Build them.
18802
 
18803
2005-02-11  Steven Bosscher  
18804
 
18805
        PR tree-optimization/19876
18806
        Partially revert my change from 2005-01-14
18807
        * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
18808
        (compute_antic): ...and remove the loop here.
18809
 
18810
2005-02-11  Jakub Jelinek  
18811
 
18812
        PR middle-end/19858
18813
        * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
18814
        is number of inner's bits, avoid creating a BIT_FIELD_REF.
18815
 
18816
        * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
18817
        crtend.o if -pie.  Use %{x:a;:b} spec syntax.
18818
 
18819
2005-02-11  Daniel Jacobowitz  
18820
 
18821
        * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
18822
        offsets for the big-endian 32-bit case.
18823
 
18824
2005-02-11  Joseph S. Myers  
18825
 
18826
        * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
18827
 
18828
2005-02-11  Dale Johannesen  
18829
 
18830
        * cselib.c (cselib_process_insn):  Clear out regs where
18831
        HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
18832
        * reload.c (find_equiv_reg): Ditto.
18833
 
18834
2005-02-11  Ian Lance Taylor  
18835
 
18836
        * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
18837
        with no elements.
18838
 
18839
        * tree.c (build_function_type_list): Work correctly if there are
18840
        no arguments.
18841
 
18842
2005-02-11  Ulrich Weigand  
18843
 
18844
        * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
18845
        "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
18846
        ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
18847
        TARGET_ZARCH instead of TARGET_64BIT.
18848
 
18849
2005-02-11  Ralf Corsepius  
18850
 
18851
        * config/rs6000/t-rtems:
18852
        (MULTILIB_OPTIONS): Remove mcpu=602.
18853
        (MUTLILIB_DIRNAMES): Remove m602.
18854
        (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
18855
        Let mcpu=602 match mcpu=603.
18856
        (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
18857
 
18858
2005-02-10  John David Anglin  
18859
 
18860
        * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
18861
        signal trampolines.
18862
 
18863
2005-02-10  David Daney  
18864
 
18865
        * config/alpha/linux-unwind.h: Add exception clause to copyright.
18866
        * config/i386/linux-unwind.h: Likewise.
18867
        * config/ia64/linux-unwind.h: Likewise.
18868
        * config/mips/linux-unwind.h: Likewise.
18869
        * config/pa/linux-unwind.h: Likewise.
18870
        * config/rs6000/linux-unwind.h: Likewise.
18871
        * config/s390/linux-unwind.h: Likewise.
18872
        * config/sh/linux-unwind.h: Likewise.
18873
        * config/sparc/linux-unwind.h: Likewise.
18874
 
18875
2005-02-10  Steven Bosscher  
18876
 
18877
        PR tree-optimization/17549
18878
        * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
18879
        TER to replace a DEF with its expression if the DEF and the
18880
        rhs of the expression we replace into have the same root
18881
        variable.
18882
 
18883
2005-02-10  Richard Sandiford  
18884
 
18885
        * config/mips/mips.md: Fix the placement of the match_scratch in the
18886
        lea64 peephole2.
18887
 
18888
2005-02-10  Kazu Hirata  
18889
 
18890
        * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
18891
        Fix comment typos.
18892
 
18893
2005-02-10  Zdenek Dvorak  
18894
 
18895
        * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
18896
        (strip_offset): Handle addresses.
18897
        (add_address_candidates): Use strip_offset.
18898
        (difference_cost): Reflect strip_offset change.
18899
        (force_var_cost, difference_cost): Strip nops.
18900
 
18901
2005-02-10  Kazu Hirata  
18902
 
18903
        * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
18904
 
18905
        * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
18906
        tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
18907
        config/cris/cris-protos.h, config/cris/cris.c: Update
18908
        copyright.
18909
 
18910
2005-02-10  Jeff Law  
18911
 
18912
        * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
18913
        (lookup_avail_expr): Similarly.
18914
 
18915
2005-02-10  Richard Guenther  
18916
 
18917
        * builtins.c (fold_builtin_powi): New function.
18918
        (fold_builtin_1): Call it.
18919
 
18920
2005-02-10  Steven Bosscher  
18921
 
18922
        PR documentation/19309
18923
        * doc/cpp.texi: The __GNUC__ and related predefined macros
18924
        are also defined for the "standalone" cpp.
18925
        Some non-GCC compilers may also define __GNUC__.
18926
 
18927
2005-02-10  Jakub Jelinek  
18928
 
18929
        PR c/19342
18930
        * c-typeck.c (common_type): New routine.  Old common_type renamed
18931
        to...
18932
        (c_common_type): ...this.
18933
        (build_conditional_expr, build_binary_op): Use c_common_type instead
18934
        of common_type.
18935
 
18936
2005-02-10  Steven Bosscher  
18937
 
18938
        * doc/md.texi: Replace @samp{length} with @code{length}.
18939
 
18940
2005-02-09  Zdenek Dvorak  
18941
 
18942
        PR tree-optimization/18687
18943
        * tree-flow.h (find_loop_niter): Declare.
18944
        * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
18945
        Try using scev even for loops with more than one exit.
18946
        * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
18947
        (struct ivopts_data): Added niters field.
18948
        (struct nfe_cache_elt): New.
18949
        (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
18950
        functions.
18951
        (tree_ssa_iv_optimize_init): Initialize niters cache.
18952
        (determine_number_of_iterations): Removed.
18953
        (find_induction_variables): Do not call determine_number_of_iterations.
18954
        Access niters for single exit through niter_for_single_dom_exit.
18955
        (add_iv_outer_candidates): Access niters for single exit through
18956
        niter_for_single_dom_exit.
18957
        (may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
18958
        number_of_iterations_cond.
18959
        (iv_period): New function.
18960
        (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
18961
        (may_replace_final_value): Take data argument.  Use
18962
        niter_for_single_dom_exit.
18963
        (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
18964
        (rewrite_use_compare): Pass data to may_eliminate_iv.
18965
        (rewrite_use_outer): Pass data to may_replace_final_value.
18966
        (free_loop_data): Clean up the niters cache.
18967
        (tree_ssa_iv_optimize_finalize): Free the niters cache.
18968
        (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
18969
        * tree-ssa-loop-niter.c (find_loop_niter): New function.
18970
        (find_loop_niter_by_eval): Use tree_int_cst_lt.
18971
        (num_ending_zeros): Moved to tree.c.
18972
        * tree.h (num_ending_zeros): Declare.
18973
        * tree.c (num_ending_zeros): Moved from tree.c.
18974
 
18975
2005-02-09  Richard Henderson  
18976
 
18977
        * builtins.c (DEF_BUILTIN): Add COND argument.
18978
        * tree.h (DEF_BUILTIN): Likewise.
18979
        * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
18980
        DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
18981
        match.
18982
        (DEF_BUILTIN_STUB): New.
18983
        (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
18984
        BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
18985
        BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
18986
        * c-common.c (DEF_BUILTIN): Add COND argument.
18987
        * tree.c (local_define_builtin): New.
18988
        (build_common_builtin_nodes): New.
18989
 
18990
2005-02-09  Roger Sayle  
18991
 
18992
        * fold-const.c (fold_strip_sign_ops): New function to simplify a
18993
        floating point expression ignoring the sign of the result.
18994
        (fold) : Use it to simplify fabs(x).
18995
        (fold) : Use it to simplify x*x.
18996
        * tree.h (fold_strip_sign_ops): Prototype here.
18997
        * builtins.c (fold_builtin_copysign): Take an additional FNDECL
18998
        argument.  Use fold_strip_sign_ops to simplify the first argument.
18999
        (fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
19000
        first argument when the second argument is an even integer
19001
        constant, but only with -funsafe_math_optimizations.
19002
        (fold_builtin_1): Update call to fold_builtin_copysign.
19003
 
19004
2005-02-09  Ian Lance Taylor  
19005
 
19006
        PR middle-end/19583
19007
        * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
19008
        just check whether EH_FILTER_FAILURE falls through.
19009
 
19010
2005-02-09  Andreas Krebbel  
19011
 
19012
        * gcc/haifa-sched.c (schedule_block): Make queued sched group
19013
        insns return to ready list in the next turn.
19014
 
19015
2005-02-09  Richard Guenther  
19016
 
19017
        PR middle-end/19402
19018
        * builtins.def: New __builtin_powi[lf].
19019
        * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
19020
        (expand_builtin_powi): New function.
19021
        (expand_builtin): Dispatch to expand_builtin_powi.
19022
        * libgcc2.h: Add prototypes for __builtin_powi[lf].
19023
        * libgcc2.c: Add __builtin_powi[lf] implementation.
19024
        * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
19025
        * optabs.h: Add powi_optab.
19026
        * optabs.c (init_optabs): Initialize powi_optab.
19027
        * doc/extend.texi: Document __builtin_powi[lf].
19028
 
19029
2005-02-09  Dorit Naishlos  
19030
 
19031
        * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
19032
        exists.
19033
 
19034
2005-02-09  Richard Guenther  
19035
 
19036
        PR middle-end/19854
19037
        * fold-const.c (try_move_mult_to_index): Remove redundant
19038
        type argument.  Create ADDR_EXPR with correct type.
19039
        (fold): Update callers of try_move_mult_to_index.  Convert
19040
        result to the appropriate type.
19041
 
19042
2005-02-09  Roger Sayle  
19043
 
19044
        PR target/19597
19045
        * config/avr/avr.c (default_rtx_costs): Delete.
19046
        (avr_operand_rtx_cost): New function.
19047
        (avr_rtx_costs): Completely rewrite.
19048
 
19049
2005-02-08  Hans-Peter Nilsson  
19050
 
19051
        PR target/19806
19052
        * config/cris/cris.c (in_code): New variable.
19053
        (cris_output_addr_const): Now a static function, a wrapper for
19054
        output_addr_const.
19055
        (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
19056
        case from old cris_output_addr_const.
19057
        (cris_asm_output_label_ref): Similar for LABEL_REF.
19058
        (cris_output_addr_const_extra): Similar for UNSPEC.
19059
        * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
19060
        (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
19061
        * config/cris/cris-protos.h (cris_output_addr_const): Remove
19062
        declaration.
19063
        (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
19064
        (cris_asm_output_label_ref): Declare.
19065
 
19066
2005-02-08  Paolo Bonzini  
19067
 
19068
        PR preprocessor/19801
19069
        * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
19070
        filenames that changed when libcpp was moved to the toplevel.
19071
 
19072
2005-02-07  Roger Sayle  
19073
 
19074
        * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
19075
        zero extensions of BImode operands.  Call lowpart_subreg instead
19076
        of gen_lowpart_common and gen_lowpart_SUBREG.
19077
 
19078
2005-02-07  Nathanael Nerode  
19079
 
19080
        PR ada/19489
19081
        * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
19082
        * configure.ac: Set cc_for_cross_gnattools.
19083
        * configure: Regenerate.
19084
 
19085
2005-02-08  Alan Modra  
19086
 
19087
        PR target/19803
19088
        * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
19089
 
19090
2005-02-07  Eric Botcazou  
19091
 
19092
        PR debug/19327
19093
        * dbxout.c (dbxout_symbol) : Skip inline instance
19094
        of nested functions.
19095
 
19096
2005-02-07  Jonathan Wakely  
19097
 
19098
        * doc/extend.texi: Document deprecated extensions allowing
19099
        static floating-point members to have initializers and allowing
19100
        floating-point literals in integral constant expressions.
19101
 
19102
2005-02-07  Kazu Hirata  
19103
 
19104
        * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
19105
        config/darwin7.h, config/mips/mips.c,
19106
        config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
19107
        Update copyright.
19108
 
19109
        * cse.c: Update comments.
19110
 
19111
2005-02-07  Richard Guenther  
19112
 
19113
        PR middle-end/19775
19114
        * builtins.c (fold_builtin_sqrt): Transform
19115
        sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
19116
        pow(x,y*0.5).
19117
 
19118
2005-02-07  Leehod Baruch  
19119
            Dorit Naishlos  
19120
 
19121
        * doc/invoke.texi (ftree-vectorizer-verbose): New.
19122
        * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
19123
        * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
19124
        was added.
19125
        * tree.h (vect_set_verbosity_level): New extern function declaration
19126
        added.
19127
        * tree-vectorizer.h (verbosity_levels): New enum type.
19128
        * tree-vectorizer.c (vect_debug_stats): Function removed.
19129
        (vect_debug_details): Likewise.
19130
        (vect_verbosity_level): Global variable was defined and initialized.
19131
        (vect_dump): Global variable definition.
19132
        (vect_print_dump_info): New function.
19133
        (vect_set_dump_settings): New function.
19134
        (vect_set_verbosity_level): New function.
19135
        (vectorize_loops): Add call to vect_set_dump_settings.
19136
 
19137
        (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
19138
        (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
19139
        (slpeel_tree_peel_loop_to_edge): Likewise.
19140
 
19141
        (vect_analyze_offset_expr): Call to vect_print_dump_info with
19142
        appropriate verbosity level instead of call to vect_debug_details
19143
        or vect_debug_stats.
19144
        (vect_get_base_and_offset):
19145
        (vect_create_addr_base_for_vector_ref):
19146
        (get_vectype_for_scalar_type):
19147
        (vect_create_data_ref_ptr):
19148
        (vect_init_vector):
19149
        (vect_get_vec_def_for_operand):
19150
        (vect_finish_stmt_generation):
19151
        (vectorizable_assignment):
19152
        (vectorizable_operation):
19153
        (vectorizable_store):
19154
        (vectorizable_load):
19155
        (vect_transform_stmt):
19156
        (vect_update_ivs_after_vectorizer):
19157
        (vect_do_peeling_for_loop_bound):
19158
        (vect_update_inits_of_drs):
19159
        (vect_do_peeling_for_alignment):
19160
        (vect_transform_loop):
19161
        (vect_is_simple_use):
19162
        (vect_analyze_operations):
19163
        (vect_is_simple_iv_evolution):
19164
        (vect_analyze_scalar_cycles):
19165
        (vect_analyze_data_ref_dependence):
19166
        (vect_analyze_data_ref_dependences):
19167
        (vect_compute_data_ref_alignment):
19168
        (vect_enhance_data_refs_alignment):
19169
        (vect_analyze_data_refs_alignment):
19170
        (vect_analyze_data_ref_access):
19171
        (vect_analyze_data_ref_accesses):
19172
        (vect_analyze_pointer_ref_access):
19173
        (vect_get_memtag_and_dr):
19174
        (vect_analyze_data_refs):
19175
        (vect_mark_relevant):
19176
        (vect_stmt_relevant_p):
19177
        (vect_mark_stmts_to_be_vectorized):
19178
        (vect_can_advance_ivs_p):
19179
        (vect_get_loop_niters):
19180
        (vect_analyze_loop_form):
19181
        (vect_analyze_loop):
19182
        (vectorize_loops): Likewise.
19183
 
19184
        (vect_do_peeling_for_loop_bound): Dump format slightly changed.
19185
        (vect_update_inits_of_drs):
19186
        (vect_do_peeling_for_alignment):
19187
        (vect_transform_loop):
19188
        (vect_analyze_operations):
19189
        (vect_analyze_scalar_cycles):
19190
        (vect_analyze_data_ref_dependences):
19191
        (vect_analyze_data_refs_alignment):
19192
        (vect_analyze_data_ref_accesses):
19193
        (vect_analyze_data_refs):
19194
        (vect_mark_stmts_to_be_vectorized):
19195
        (vect_get_loop_niters):
19196
        (vect_analyze_loop_form):
19197
        (vect_analyze_loop): Likewise.
19198
        (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
19199
 
19200
2005-02-07  Richard Sandiford  
19201
 
19202
        PR bootstrap/19796
19203
        Revert:
19204
        2005-01-26  Richard Sandiford  
19205
        * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
19206
        either -ffast-math or -funsafe-math-optimizations is in use.
19207
 
19208
        2005-01-24  Richard Sandiford  
19209
        * config/mips/irix-csr.c: New file.
19210
        * config/mips/t-iris6 (irix-csr.o): New rule to build it.
19211
        (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
19212
        * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
19213
        executables.
19214
 
19215
2005-02-07  Alexandre Oliva  
19216
 
19217
        * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
19218
        redundant, incorrect definitions.
19219
 
19220
        * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
19221
        expand.
19222
        ("*tls_indirect_call"): New, reference hard regs directly.
19223
        * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
19224
 
19225
2005-02-07  Ralf Corsepius  
19226
 
19227
        * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
19228
        Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
19229
 
19230
2005-02-06  Roger Sayle  
19231
 
19232
        PR rtl-optimization/19800
19233
        * simplify_rtx.c (simplify_relational_operation_1): Explicitly
19234
        call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
19235
        gen_lowpart.
19236
 
19237
2005-02-07  Ralf Corsepius  
19238
 
19239
        * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
19240
 
19241
2005-02-07  Joseph S. Myers  
19242
 
19243
        PR other/17135
19244
        * doc/invoke.texi: Correct documentation of -freorder-functions.
19245
 
19246
2005-02-06  Joseph S. Myers  
19247
 
19248
        PR other/14402
19249
        * doc/invoke.texi: Don't mention gccbug.
19250
 
19251
2005-02-06  Roger Sayle  
19252
            Andrew Pinski  
19253
            Paolo Bonzini  
19254
 
19255
        * simplify-rtx.c (simplify_relational_operation_1): Simplify
19256
        (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
19257
        into just (zero_extract:SI FOO (const_int 1) BAR).
19258
 
19259
2005-02-06  Joseph S. Myers  
19260
 
19261
        * doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
19262
        macro locally.  Don't give last revision date.  Use GCC version
19263
        number from gcc-common.texi.
19264
        * doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
19265
        revision date.  Use GCC version number from gcc-common.texi.
19266
        Describe being a library as current state rather than as 3.x
19267
        history.
19268
        * doc/gcc.texi: Remove last update date.
19269
        * doc/gccint.texi: Likewise.  Update copyright dates.
19270
        * doc/install.texi: Update copyright dates.
19271
 
19272
2005-02-06  Joseph S. Myers  
19273
 
19274
        PR other/7549
19275
        * doc/invoke.texi: Mention for each option included in -Wall that
19276
        it is included in -Wall.
19277
        * doc/gcc.texi: Update copyright and last modification date.
19278
 
19279
2005-02-06  Zdenek Dvorak  
19280
 
19281
        * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
19282
        unnecessary cast to original induction variable increments.
19283
 
19284
2005-02-06  Zdenek Dvorak  
19285
 
19286
        PR tree-optimization/18219
19287
        * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
19288
        in distributed form.
19289
 
19290
2005-02-06  Richard Sandiford  
19291
 
19292
        * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
19293
        Set bitpos and offset later in the function.  Do nothing if the
19294
        target is a register and if the bitfield lies completely outside
19295
        that register.
19296
        (extract_bit_field): Make the same SUBREG, bitpos and offset changes
19297
        here.  Return an uninitialised register if the source value is stored
19298
        in a register and the bitfield lies completely outside that register.
19299
 
19300
2005-02-06  Steven Bosscher  
19301
 
19302
        * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
19303
        not SET_DEST.
19304
 
19305
2005-02-06  Marcin Dalecki  
19306
 
19307
        * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
19308
 
19309
2005-02-06  Geoffrey Keating  
19310
 
19311
        * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
19312
        * config/darwin8.h: New.
19313
        * config/darwin7.h: Update comment.
19314
 
19315
2005-02-03  Leehod Baruch  
19316
            Dorit Naishlos  
19317
 
19318
        * tree-vectorizer.h (LOC): New type.
19319
        (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
19320
        (loop_line_number): New field in struct _loop_vec_info.
19321
        (LOOP_VINFO_LOC, LOOP_LOC): New macros.
19322
 
19323
        * tree-vectorizer.c (input.h): Included.
19324
        (find_loop_location): New function.
19325
        (vect_debug_stats): Argument changed from loop to LOC. Computation of
19326
        loop line number removed.
19327
        (vect_debug_details): Likewise.
19328
        (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
19329
 
19330
        (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
19331
        call to vect_debug_details/stats changed from loop to loop_loc.
19332
        (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
19333
        (slpeel_tree_peel_loop_to_edge): Likewise.
19334
 
19335
        (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
19336
        changed from NULL to UNKNOWN_LOC.
19337
        (vect_get_base_and_offset):
19338
        (vect_create_addr_base_for_vector_ref):
19339
        (get_vectype_for_scalar_type):
19340
        (vect_create_data_ref_ptr):
19341
        (vect_init_vector):
19342
        (vect_get_vec_def_for_operand):
19343
        (vect_finish_stmt_generation):
19344
        (vectorizable_assignment):
19345
        (vectorizable_operation):
19346
        (vectorizable_store):
19347
        (vectorizable_load):
19348
        (vect_transform_stmt):
19349
        (vect_update_ivs_after_vectorizer):
19350
        (vect_do_peeling_for_loop_bound):
19351
        (vect_do_peeling_for_alignment):
19352
        (vect_transform_loop):
19353
        (vect_is_simple_use):
19354
        (vect_analyze_operations):
19355
        (vect_is_simple_iv_evolution):
19356
        (vect_analyze_scalar_cycles):
19357
        (vect_analyze_data_ref_dependences):
19358
        (vect_compute_data_ref_alignment):
19359
        (vect_enhance_data_refs_alignment):
19360
        (vect_analyze_data_ref_access):
19361
        (vect_analyze_data_ref_accesses):
19362
        (vect_analyze_pointer_ref_access):
19363
        (vect_get_memtag_and_dr):
19364
        (vect_analyze_data_refs):
19365
        (vect_mark_relevant):
19366
        (vect_stmt_relevant_p):
19367
        (vect_mark_stmts_to_be_vectorized):
19368
        (vect_can_advance_ivs_p):
19369
        (vect_get_loop_niters):
19370
        (vect_analyze_loop):
19371
        (vectorize_loops): Likewise.
19372
 
19373
        (vectorizable_load): Argument in call to vect_debug_details/stats
19374
        changed from loop to LOOP_LOC (loop_vinfo).
19375
        (vect_transform_loop):
19376
        (vect_analyze_operations):
19377
        (vect_analyze_scalar_cycles):
19378
        (vect_analyze_data_ref_dependence):
19379
        (vect_enhance_data_refs_alignment):
19380
        (vect_analyze_data_ref_accesses):
19381
        (vect_analyze_pointer_ref_access):
19382
        (vect_analyze_data_refs):
19383
        (vect_analyze_loop): Likewise.
19384
 
19385
        (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
19386
        changed from loop to loop_loc.
19387
 
19388
        (vect_enhance_data_refs_alignment): Removed unused variable loop.
19389
 
19390
2005-02-03  Leehod Baruch  
19391
            Dorit Naishlos  
19392
 
19393
        * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
19394
        declaration added.
19395
        (vect_analyze_data_ref_dependences): Likewise.
19396
 
19397
        (vect_is_simple_use): Argument changed from loop structure to
19398
        loop_vect_info structure.
19399
        (vect_can_advance_ivs_p): Likewise.
19400
        (vect_create_index_for_vector_ref): Likewise.
19401
        (vect_update_ivs_after_vectorizer): Likewise.
19402
        (new_stmt_vec_info): Likewise.
19403
 
19404
        (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
19405
        changed from loop to loop_vinfo.
19406
        (vect_create_data_ref_ptr): First argument in call to
19407
        vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
19408
        (vectorizable_assignment): Second argument in call to vect_is_simple_use
19409
        was changed from loop to loop_vinfo.
19410
        (vectorizable_operation): Likewise.
19411
        (vectorizable_store): Likewise.
19412
        (vect_mark_stmts_to_be_vectorized): Likewise.
19413
        (vect_do_peeling_for_loop_bound): First argument in call to
19414
        vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
19415
        (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
19416
        was changed from loop to loop_vinfo.
19417
        (vect_analyze_data_ref_dependences): Third argument in call to
19418
        vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
19419
 
19420
        (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
19421
        (vect_create_data_ref_ptr): Likewise.
19422
        (vect_init_vector): Likewise.
19423
        (vect_get_vec_def_for_operand): Likewise.
19424
        (vectorizable_assignment): Likewise.
19425
        (vectorizable_operation): Likewise.
19426
        (vectorizable_store): Likewise.
19427
        (vectorizable_load): Likewise.
19428
        (vect_update_ivs_after_vectorizer): Likewise.
19429
        (vect_is_simple_use): Likewise.
19430
        (vect_analyze_data_ref_dependence): Likewise.
19431
        (vect_analyze_pointer_ref_access): Likewise.
19432
        (vect_can_advance_ivs_p): Likewise.
19433
 
19434
        * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
19435
        before _stmt_vec_info.
19436
        (_stmt_vec_info): Loop field replaced by loop_vec_info.
19437
        (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
19438
        (new_stmt_vec_info): Argument changed from loop structure to
19439
        loop_vect_info structure
19440
 
19441
        (vect_analyze_data_ref_dependences): Unnecessary line was removed.
19442
        (vect_analyze_offset_expr): Avoid 80 columns overflow.
19443
        (vect_create_addr_base_for_vector_ref): Likewise.
19444
        (vect_analyze_pointer_ref_access): Likewise.
19445
 
19446
2005-02-03  Andrew Pinski  
19447
 
19448
        PR tree-opt/19768
19449
        * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
19450
        phi flag if the phi is abnormal.
19451
 
19452
2005-02-03  Andrew Pinski  
19453
 
19454
        PR tree-opt/19736
19455
        * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
19456
        information for the new statement.
19457
 
19458
2005-02-03  Joseph S. Myers  
19459
 
19460
        PR driver/19117
19461
        * gcc.c (main): Include the target in -v output.
19462
 
19463
2005-02-03  Alexandre Oliva  
19464
 
19465
        * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
19466
        Do not drop the extend if we'd have to add a paradoxical subreg
19467
        later.  Include optabs.h and insn-codes.h.
19468
        * Makefile.in (combine.o): Depend on $(OPTABS_H).
19469
 
19470
2005-02-02  Roger Sayle  
19471
 
19472
        PR middle-end/19405
19473
        * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
19474
        * fold-const.c (const_binop): Avoid constant folding floating
19475
        point operations in modes that use composite representations.
19476
        * simplify-rtx.c (simplify_binary_operation): Likewise.
19477
 
19478
2005-02-02  Geoffrey Keating  
19479
 
19480
        * config/rs6000/altivec.md (altivec_dst): Make the first operand
19481
        a REG, not a MEM.
19482
        (altivec_dstt): Likewise.
19483
        (altivec_dstst): Likewise.
19484
        (altivec_dststt): Likewise.
19485
        * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
19486
        of first operand.
19487
 
19488
2005-02-03  Dorit Naishlos  
19489
 
19490
        * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
19491
        EXPR_LOCUS from orig_cond to the new cond_stmt.
19492
        (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
19493
        the new vec_stmt.
19494
 
19495
2005-02-03  Dorit Naishlos  
19496
 
19497
        * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
19498
        standard_iv_increment_position. Remove call to bsi_next
19499
        (no need to bump the iterator anymore).
19500
        (vect_create_index_for_vector_ref): Call
19501
        standard_iv_increment_position. Remove second function argument.
19502
        (vect_finish_stmt_generation): Remove call to bsi_next
19503
        (no need to bump the iterator anymore).
19504
        (vect_create_data_ref_ptr): Remove second argument (bsi) in call
19505
        to vect_create_index_for_vector_ref.
19506
 
19507
2005-02-03  Dorit Naishlos  
19508
 
19509
        * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
19510
        phis are used out of the loop.
19511
 
19512
2005-02-03  Joseph S. Myers  
19513
 
19514
        PR c/17807
19515
        * c-decl.c (undef_nested_function): New variable.
19516
        (pop_scope): Diagnose undefined nested functions.
19517
        (finish_function): Don't attempt cgraph processing or genericizing
19518
        if current top-level function contained an undefined nested
19519
        function.  Reset undef_nested_function at the end of a top-level
19520
        function.
19521
 
19522
2005-02-02  Zdenek Dvorak  
19523
 
19524
        * tree.c (build_int_cst_type): Take sign of the value into account
19525
        when deciding whether sign extend the value.
19526
 
19527
2005-02-02  Joseph S. Myers  
19528
 
19529
        PR c/18502
19530
        * gcc.c (cpp_unique_options): Remove %{trigraphs}.
19531
        (cpp_options, cc1_options): Change %{std*&ansi} to
19532
        %{std*&ansi&trigraphs}.
19533
 
19534
2005-02-02  Kazu Hirata  
19535
 
19536
        * cse.c: Update comments.
19537
 
19538
2005-02-02  Aldy Hernandez  
19539
 
19540
        * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
19541
        arguments go on the stack.  Do not put complex doubles in odd/even
19542
        pairs.
19543
 
19544
2005-02-02  Steven Bosscher  
19545
 
19546
        * doc/invoke.texi: Update the options enabled at -O1, -O2,
19547
        and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
19548
        -ftree-pre, and -fthread-jumps.
19549
 
19550
2005-02-02  Richard Sandiford  
19551
 
19552
        PR tree-optimization/19578
19553
        * tree-flow.h (modified_noreturn_calls): Declare.
19554
        (noreturn_call_p): Declare.
19555
        * tree-flow-inline.h (noreturn_call_p): New function.
19556
        (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
19557
        * tree-cfg.c (modified_noreturn_calls): New variable.
19558
        (cleanup_control_flow): Use noreturn_call_p.  Split basic blocks
19559
        that contain a mid-block noreturn call.
19560
        * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
19561
 
19562
2005-02-02  Kazu Hirata  
19563
 
19564
        * df.c (df_def_record_1, df_uses_record): Don't use
19565
        DF_FOR_REGALLOC.
19566
        * df.h (DF_FOR_REGALLOC): Remove.
19567
 
19568
2005-02-02  Joseph S. Myers  
19569
 
19570
        PR c/19435
19571
        * c-typeck.c (really_start_incremental_init): Reset
19572
        constructor_max_index for arrays of incomplete type.
19573
 
19574
2005-02-02  Jeff Law  
19575
 
19576
        * gcse.c (struct reg_set): Store the block index where the register
19577
        was set rather than the setting insn.
19578
        (record_one_set, compute_transp): Corresponding changes.
19579
        (pre_insert_copy_insn): Do not call replace_one_set.
19580
        (replace_one_set): Remove.
19581
 
19582
2005-02-02  Joseph S. Myers  
19583
 
19584
        PR other/15514
19585
        * doc/gcov.texi: Fix typo.
19586
 
19587
2005-02-01  Richard Henderson  
19588
 
19589
        PR target/19680
19590
        * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
19591
        * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
19592
        type to bool.
19593
        (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
19594
        * config/i386/i386-protos.h: Update.
19595
 
19596
2005-02-01  Steven Bosscher  
19597
 
19598
        PR tree-optimization/19217
19599
        * tree-cfg.c (verify_expr): Use the data field to see if TP was
19600
        seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
19601
        (verify_stmts): Pass (void*)1 as data to verify_expr to signal
19602
        that it is walking a PHI node.
19603
 
19604
2005-02-01  Joseph S. Myers  
19605
 
19606
        * doc/extend.texi (Nested Functions): Update.
19607
 
19608
2005-02-01  Richard Henderson  
19609
 
19610
        PR 19696
19611
        * optabs.c (expand_copysign_absneg): Export.
19612
        * optabs.h (expand_copysign_absneg): Declare.
19613
        * config/rs6000/rs6000.md (copysigntf3): New.
19614
 
19615
2005-02-01  Diego Novillo  
19616
 
19617
        PR tree-optimization/19633
19618
        * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
19619
        * tree-ssa-alias.c (init_alias_info): Initialize.
19620
        (merge_pointed_to_info): Set.
19621
        (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
19622
        (dump_points_to_info_for): Show value of pt_null.
19623
        (struct count_ptr_d): Declare.
19624
        (find_ptr_dereference): Remove.
19625
        (ptr_is_dereferenced_by): Remove.
19626
        (count_ptr_derefs): New local function.
19627
        (count_uses_and_derefs): New local function.
19628
        (compute_points_to_and_addr_escape): Call it.  If the number
19629
        of dereferences is greater than zero, mark the pointer as
19630
        dereferenced.  If there are fewer dereferences than uses of
19631
        the pointer, the pointer's value escapes.
19632
 
19633
2005-02-01  Diego Novillo  
19634
 
19635
        PR tree-optimization/19670
19636
        * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
19637
        here...
19638
        (verify_use): ... set it here, instead.
19639
 
19640
2005-02-01  Janis Johnson  
19641
 
19642
        * doc/sourcebuild.texi (Test directives): Fix formatting.
19643
 
19644
        * doc/sourcebuild.texi (Test directives): Describe selector
19645
        expressions.
19646
 
19647
2005-02-01  Segher Boessenkool  
19648
 
19649
        * config.gcc (powerpc64-*-linux*): Default to -m64 also for
19650
        specific 64-bit CPUs.
19651
 
19652
2005-02-01  Richard Earnshaw  
19653
 
19654
        PR target/16201
19655
        * arm.c (arm_eliminable_register): New function.
19656
        (adjacent_mem_locations): Don't allow eliminable registers.  Use
19657
        HOST_WIDE_INT for address offsets.
19658
        * arm-protos.h (arm_eliminable_register): Add prototype.
19659
 
19660
2005-02-01  Steven Bosscher  
19661
 
19662
        PR optimization/15242
19663
        * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
19664
        * basic-block.h (duplicate_computed_gotos): Add prototype.
19665
        * bb-reorder.c (duplicate_computed_gotos): New function to
19666
        duplicate sufficiently small blocks ending in a computed jump.
19667
        * passes.c (rest_of_compilation): Call duplicate_computed_gotos
19668
        if not optimizing for size.
19669
        * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
19670
        never do tail merging for blocks ending in a computed jump.
19671
        * doc/invoke.texi: Document the max-goto-duplication-insns param.
19672
 
19673
2005-02-01  Eric Botcazou  
19674
 
19675
        Patch from Richard Sandiford 
19676
        * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
19677
        from inheriting a subreg equivalence with a non-spill register.
19678
 
19679
        * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
19680
 
19681
2005-02-01  Alexandre Oliva  
19682
 
19683
        * config/frv/frv.c (movcc_fp_destination_operand): New.
19684
        (gpr_or_memory_operand): Fix typo in comment.
19685
        (gpr_or_memory_operand_with_scratch): New.
19686
        * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
19687
        * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
19688
        movcc_fp_destination_operand.
19689
        (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
19690
        Legitimize memory addresses using a scratch register.
19691
 
19692
2005-01-31  Jeff Law  
19693
 
19694
        * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
19695
        bitmap a sparse bitmap instead of a simple bitmap.
19696
        (mark_def_sites_initialize_block):  Corresponding changes.
19697
        (ssa_mark_def_sites_initialize_block): Likewise.
19698
        (ssa_mark_phi_uses): Likewise.
19699
        (mark_def_site, ssa_mark_def_sites): Likewise.
19700
        (mark_def_site_blocks): Likewise.
19701
        (rewrite_ssa_into_ssa): Likewise.
19702
 
19703
        * tree-ssa-dom.c (record_cond): Pass correct variable type
19704
        for last argument to htab_find_slot_with_hash.
19705
 
19706
        * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
19707
        effects when optimizing 0 % X.  Do not try to optimize X % 0.
19708
 
19709
2005-01-31  James E. Wilson  
19710
 
19711
        * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
19712
        1_mmalua.
19713
 
19714
2005-02-01  Eric Christopher  
19715
 
19716
        * config/mips/mips.c (override_options): Warn if -mint64
19717
        is used.
19718
        * doc/invoke.texi (MIPS Options): Document that -mint64 is
19719
        deprecated.
19720
 
19721
2005-02-01  Kazu Hirata  
19722
 
19723
        * cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
19724
        timestamp.
19725
        (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
19726
        REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
19727
        cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
19728
        (cached_regno): Initialize to INVALID_REGNUM.
19729
        (cse_reg_info_table_size,
19730
        cse_reg_info_table_first_uninitialized,
19731
        cse_reg_info_timestamp): New.
19732
        (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
19733
        get_cse_reg_info.
19734
        (init_cse_reg_info, get_cse_reg_info_1): New.
19735
        (get_cse_reg_info): Cache the last look-up.
19736
        (new_basic_block): Update the code to clear mappings from
19737
        registers to cse_reg_info entries.
19738
        (cse_main): Call init_cse_reg_info.
19739
 
19740
        * cse.c (get_cse_reg_info): Update a comment.
19741
 
19742
2005-01-31  Steven Bosscher  
19743
 
19744
        PR c/19333
19745
        * c-decl.c (start_decl): Do not warn about arrays of elements with
19746
        an incomplete type here.
19747
        (grokdeclarator): Do it here by making a pedwarn an error.
19748
        * c-typeck.c (push_init_level): If there were previous errors with
19749
        the constructor type, do not warn about braces for initializers.
19750
        (process_init_element): Likewise for excess initializer elements.
19751
 
19752
2005-01-31  Kazu Hirata  
19753
 
19754
        * cse.c (delete_trivially_dead_insn): Don't iterate.
19755
 
19756
2005-01-31  Andrew Pinski  
19757
 
19758
        * config/rs6000/rs6000.md (copysignsf3): New expand.
19759
        (copysigndf3): Likewise.
19760
 
19761
2005-01-31  Steven Bosscher  
19762
 
19763
        * recog.c (constrain_operands): Only look for earlyclobber operand
19764
        conflicts if an '&' constraint was seen.
19765
 
19766
2005-01-31  Marc Espie 
19767
 
19768
        * config.gcc: Don't include embedded systems fragment, switches default
19769
        debugging format to ELF.
19770
        * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
19771
        longer pick it up there.
19772
 
19773
2005-01-31  Dale Johannesen  
19774
 
19775
        * doc/extend.texi (nested functions): Fix linkage description.
19776
        Clarify that static is not allowed.
19777
 
19778
2005-01-31  Dale Johannesen  
19779
 
19780
        * config/rs6000/darwin.md (movsf_low_di):  Make work.
19781
        (movdf_low_di):  Make work.
19782
 
19783
2005-01-31  Dale Johannesen  
19784
 
19785
        * config/rs6000/darwin-tramp.asm (__trampoline_setup):
19786
        Make work for 64 bit.
19787
 
19788
2005-01-31  Roger Sayle  
19789
            Dale Johannesen  
19790
 
19791
        PR middle-end/19650
19792
        * fold-const.c (fold_binary_op_with_conditional_arg):
19793
        Make types match original operands, before STRIP_NOPS.
19794
 
19795
2005-01-31  Alan Modra  
19796
 
19797
        * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
19798
        (struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
19799
        (struct gcc_sigcontext): Delete.  Merge contents to..
19800
        (struct gcc_ucontext): ..here.
19801
        (get_sigcontext): Delete.
19802
        (get_regs): New function, like get_sigcontext but return regs ptr.
19803
        64-bit version finds regs from r1 to support vdso.
19804
        (ppc_linux_aux_vector): New function.
19805
        (ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
19806
        and vector regs.
19807
 
19808
2005-01-31  Ira Rosen  
19809
 
19810
        * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
19811
        sizetype.
19812
        (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
19813
        redundant fold. Fix misalignment for MINUS_EXPR.
19814
        (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
19815
        (vect_analyze_pointer_ref_access): Likewise.
19816
        (vect_get_memtag_and_dr): Likewise.
19817
 
19818
2005-01-31  Richard Henderson  
19819
 
19820
        * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
19821
        (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
19822
        absnegdf2_i387, absnegxf2_i387): Likewise.
19823
 
19824
2005-01-31  Richard Henderson  
19825
 
19826
        PR 19696
19827
        * optabs.c (expand_copysign_absneg): New.
19828
        (expand_copysign_bit): Split out from ...
19829
        (expand_copysign): ... here.  Use expand_copysign_absneg.
19830
 
19831
2005-01-30  Roger Sayle  
19832
 
19833
        PR middle-end/19697
19834
        * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
19835
        constant as the second operand and a register as the third.
19836
 
19837
2005-01-31  Danny Smith  
19838
 
19839
        PR target/19704
19840
        * config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
19841
        that dllimport'd functions do not use all call-clobbered registers
19842
        to pass parameters.
19843
 
19844
2005-01-30  Richard Henderson  
19845
 
19846
        PR 19696
19847
        * optabs.c (expand_absneg_bit): Split out from expand_unop and
19848
        expand_abs_nojump and generalize.  Use operand_subword and
19849
        emit_no_conflict_block.  Support large modes.
19850
        (expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
19851
        back to maximum.
19852
        (expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
19853
        negation to subtraction.
19854
        (expand_copysign): Check that the format has signed zeros.
19855
        Use operand_subword and emit_no_conflict_block.  Support large modes.
19856
 
19857
2005-01-30  Daniel Berlin  
19858
 
19859
        Fix PR tree-optimization/19624
19860
 
19861
        * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
19862
        * tree-ssa-pre.c: Add cfgloop.h.
19863
        Update comment.
19864
        (pre_stats): New member, constified.
19865
        (inserted_exprs): New static variable.
19866
        (NECESSARY): New macro.
19867
        (create_expression_by_pieces): Fold the expression, and
19868
        mark it as defaulting to not necessary. Also put in
19869
        inserted_exprs.
19870
        (fully_constant_expression): New function.
19871
        (insert_into_preds_of_block): Modify to not insert phis when we
19872
        are playing with induction variables.
19873
        Push phis onto the inserted_exprs vector, and mark them as not
19874
        necessary by default.
19875
        (insert_aux): Call fully_constant_expression on eprime.
19876
        If all edges produce the same value, mark it constant.
19877
        (mark_operand_necessary): New function.
19878
        (remove_dead_inserted_code): New function.
19879
        (init_pre): Init loop optimizer to get loop info.
19880
        (fini_pre): Free loop_optimizer, and inserted_exprs vec.
19881
        (execute_pre): Commit edge inserts, then remove dead code.
19882
 
19883
2005-01-30  Richard Henderson  
19884
 
19885
        * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
19886
        * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
19887
 
19888
2005-01-30  Richard Henderson  
19889
 
19890
        PR target/19700
19891
        * config/i386/i386.c (ix86_expand_copysign): New.
19892
        (ix86_split_copysign_const): New.
19893
        (ix86_split_copysign_var): Rename from ix86_split_copysign,
19894
        rearrange op1/nmask operands.
19895
        * config/i386/i386-protos.h: Update.
19896
        * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
19897
        (copysigndf3): Likewise.
19898
        (copysignsf3_const, copysigndf3_const): New.
19899
        (copysignsf3_var): Rename from copysignsf3, split out splitter
19900
        and fix split predicate for X constraint.
19901
        (copysigndf3_var): Similarly.
19902
 
19903
2005-01-30  Kazu Hirata  
19904
 
19905
        * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
19906
        doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
19907
        doc/tm.texi, doc/tree-ssa.texi: Update copyright.
19908
 
19909
2005-01-29  Richard Henderson  
19910
 
19911
        PR target/19690
19912
        * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
19913
        of # and * in constraints.
19914
 
19915
2005-01-29  Richard Henderson  
19916
 
19917
        PR middle-end/19689
19918
        * expr.c (store_field): Don't strip sub-mode cast when the input
19919
        data is even smaller.
19920
 
19921
2005-01-29  Richard Henderson  
19922
 
19923
        PR middle-end/19687
19924
        * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
19925
        union being empty.
19926
 
19927
2005-01-29  Richard Henderson  
19928
 
19929
        * combine.c (make_field_assignment): Fix argument order
19930
        to gen_int_mode.
19931
 
19932
2005-01-29  Richard Guenther 
19933
 
19934
        PR tree-optimization/15791
19935
        * fold-const.c (extract_array_ref): New function.
19936
        (fold): Fold comparisons between &a[i] and &a[j] or
19937
        semantically equivalent trees.
19938
 
19939
2005-01-29  Jeff Law  
19940
 
19941
        * gcse.c (insert_expr_in_table): Revamp handling of available
19942
        and anticipatable occurrence lists to avoid unnecessary list
19943
        walking.
19944
        (insert_set_in_table): Similarly.
19945
 
19946
2005-01-29  Joseph S. Myers  
19947
 
19948
        * c-common.c (fix_string_type): Just use c_build_qualified_type to
19949
        build string type.
19950
        (c_build_qualified_type): Build qualified array types with
19951
        TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
19952
        * c-decl.c (c_make_fname_decl): Build unqualified array type
19953
        before qualified type.
19954
        (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
19955
        type is qualified, not just if type itself is.  Don't apply
19956
        qualifiers to array type when declarator is processed.  Apply
19957
        qualifiers to field type whether or not it is an array type.
19958
        Don't handle array types specially for applying qualifiers to
19959
        variables.
19960
        * c-typeck.c (composite_type): Build unqualified element type and
19961
        array type when forming composite of array types.
19962
        (common_pointer_type, comptypes, comp_target_types,
19963
        type_lists_compatible_p, build_indirect_ref, build_array_ref,
19964
        convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
19965
        types.
19966
        (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
19967
        (args2) in variables a1 and a2.
19968
 
19969
2005-01-29  Kazu Hirata  
19970
 
19971
        * cse.c (n_elements_made, max_elements_made): Remove.
19972
        (insert): Don't touch n_elements_made.
19973
        (cse_main): Don't touch n_elements_made or max_elements_made.
19974
 
19975
2005-01-28  Stephane Carrez  
19976
 
19977
        PR target/15384
19978
        * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
19979
        configuration part of dp-bit.c to be lost.
19980
 
19981
2005-01-28  Roger Sayle  
19982
 
19983
        * expmed.c (expand_mult_highpart_optab): When attempting to use
19984
        a non-widening multiplication in a wider mode, the operands need
19985
        to be converted (zero or sign extended) to that mode.
19986
 
19987
2005-01-28  Ian Lance Taylor  
19988
 
19989
        PR middle-end/16558
19990
        PR middle-end/19583
19991
        * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
19992
        through if both operands fall through.
19993
 
19994
2005-01-28  Kazu Hirata  
19995
 
19996
        * cse.c (fold_rtx) : Don't optimize.
19997
 
19998
2005-01-28  Jeff Law  
19999
 
20000
        * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
20001
        (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
20002
 
20003
2005-01-28  Kazu Hirata  
20004
 
20005
        * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
20006
        cse_reg_info_used_list_end): Remove.
20007
        (cse_reg_info_list, cse_reg_info_list_free): New.
20008
        (get_cse_reg_info): When allocating an instance of
20009
        cse_reg_info, add it to the beginning of the cse_reg_info_list
20010
        list.  Remove code to maintain cse_reg_info_used_list.
20011
        (new_basic_block): Reset the free list to the beginning of
20012
        cse_reg_info_list.
20013
 
20014
2005-01-28  Richard Sandiford  
20015
 
20016
        * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
20017
        (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
20018
        (frv_expand_mdpackh_builtin): New function.
20019
        (frv_expand_builtin): Use it to expand __MDPACKH.
20020
        * doc/extend.texi (__MDPACKH): Update documentation.
20021
 
20022
2005-01-28  Uros Bizjak  
20023
 
20024
        * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
20025
        SSE_FLOAT_MODE_P for use_sse computation.
20026
 
20027
2005-01-28  Ralf Corsepius  
20028
 
20029
        PR target/19663
20030
        * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
20031
 
20032
2005-01-27  Richard Henderson  
20033
 
20034
        * builtins.c (expand_builtin_copysign): New.
20035
        (expand_builtin): Call it.
20036
        * genopinit.c (optabs): Add copysign_optab.
20037
        * optabs.c (init_optabs): Initialize it.
20038
        (expand_copysign): New.
20039
        * optabs.h (OTI_copysign, copysign_optab): New.
20040
        (expand_copysign): Declare.
20041
 
20042
        * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
20043
        (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
20044
 
20045
        * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
20046
        (ix86_expand_fp_absneg_operator): ... here.
20047
        (ix86_split_copysign): New.
20048
        * config/i386/i386-protos.h: Update.
20049
        * config/i386/i386.md (UNSPEC_COPYSIGN): New.
20050
        (copysignsf3, copysigndf3): New.
20051
 
20052
        * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
20053
        (copysignsf3, ncopysignsf3): New.
20054
        (copysigndf3, ncopysigndf3): New.
20055
        (copysignxf3, ncopysignxf3): New.
20056
        * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
20057
 
20058
2005-01-27  Arend Bayer  
20059
            Kazu Hirata  
20060
 
20061
        * cse.c: (find_best_addr): Don't call copy_rtx before calling
20062
        fold_rtx.  Save cost recomputation if fold_rtx did nothing.
20063
        (fold_rtx) : Don't do anything if INSN is
20064
        NULL_RTX.
20065
 
20066
2005-01-27  Jeff Law  
20067
 
20068
        * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
20069
        definitions of SSA_NAMEs which are not being rewritten.
20070
        (rewrite_ssa_into_ssa): Only initialize the current definition
20071
        of an SSA_NAME if that SSA_NAME has been marked for rewriting.
20072
        If checking is enabled, assert that SSA_NAME_AUX is clear for all
20073
        SSA_NAMEs before returning.
20074
 
20075
2005-01-27  Kazu Hirata  
20076
 
20077
        * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
20078
        cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
20079
        tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
20080
        config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
20081
        config/mips/iris6.h, config/sh/sh.c: Update copyright.
20082
 
20083
2005-01-27  Steven Bosscher  
20084
 
20085
        PR middle-end/17278
20086
        * opts.c (decode_options): Move flag_thread_jumps from -O1 and
20087
        higher to -O2 and higher.  Likewise for tree PRE.
20088
        * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
20089
        and better.
20090
 
20091
2005-01-27  Ian Lance Taylor  
20092
 
20093
        PR middle-end/19583
20094
        * gimple-low.c (try_catch_may_fallthru): New static function.
20095
        (block_may_fallthru): Handle TRY_CATCH_EXPR.
20096
        * tree-inline.c (expand_call_inline): Don't warn about reaching
20097
        the end of a non-void function being inlined if the function uses
20098
        a return slot.
20099
 
20100
2005-01-27  Jakub Jelinek  
20101
 
20102
        * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
20103
 
20104
        PR c/18946
20105
        * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
20106
        (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
20107
        (implicitly_declare): Handle error_mark_node.
20108
 
20109
2005-01-27  Richard Henderson  
20110
 
20111
        PR tree-opt/14329
20112
        * tree.h (struct tree_decl): Add debug_expr_is_from.
20113
        (DECL_DEBUG_EXPR_IS_FROM): New.
20114
        (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
20115
        * dwarf2out.c (dwarf2out_var_location): Update to match.
20116
        * tree-outof-ssa.c (create_temp): Likewise.
20117
        * var-tracking.c (track_expr_p): Likewise.
20118
        * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
20119
        * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
20120
        * toplev.c (default_tree_printer): Likewise.
20121
 
20122
2005-01-27  Alexandre Oliva  
20123
 
20124
        * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
20125
        GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
20126
 
20127
2005-01-27  Steven Bosscher  
20128
 
20129
        * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
20130
        CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
20131
        ASM_CLOBBERS): Add tree checks.
20132
 
20133
        * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
20134
        (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
20135
        * c-common.def (SWITCH_STMT): Update to match.
20136
        * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
20137
        macros instead of SWITCH_EXPR ones.
20138
        * c-dump.c (c_dump_tree): Likewise.
20139
        * c-gimplify.c (gimplify_switch_stmt): Likewise.
20140
        * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
20141
 
20142
        * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
20143
 
20144
2005-01-27  Alan Modra  
20145
 
20146
        * unwind-dw2.c (execute_stack_op): Add missing cases for
20147
        DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
20148
 
20149
2005-01-27  Eric Botcazou  
20150
 
20151
        * config.gcc (Obsolete configurations): Remove 'dummy', add
20152
        sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
20153
        sparc-*-openbsd*.
20154
 
20155
2005-01-26  Diego Novillo  
20156
 
20157
        PR tree-optimization/19633
20158
        * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
20159
        CALL_EXPRs.
20160
        (maybe_create_global_var): Do not create .GLOBAL_VAR if there
20161
        are no call-clobbered variables.
20162
        * tree-outof-ssa.c (check_replaceable): Return false for calls
20163
        with side-effects.
20164
 
20165
2005-01-26  Ulrich Weigand  
20166
 
20167
        * dbxout.c (dbxout_symbol_location): Resolve constant pool references
20168
        even for variables with NULL DECL_INITIAL.
20169
 
20170
2005-01-26  Stuart Hastings  
20171
 
20172
        * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
20173
 
20174
2005-01-26  Richard Henderson  
20175
 
20176
        PR middle-end/18008
20177
        * c-decl.c (finish_struct): Set DECL_MODE after resetting a
20178
        field's type.
20179
        * expr.c (store_field): Strip conversions to odd-bit-sized types
20180
        if the destination field width matches.
20181
 
20182
2005-01-26  Richard Henderson  
20183
 
20184
        * c-decl.c, expmed.c, expr.c: Revert last change.
20185
 
20186
2005-01-26  Richard Henderson  
20187
 
20188
        PR middle-end/18008
20189
        * c-decl.c (finish_struct): Set DECL_MODE after resetting a
20190
        field's type.
20191
        * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
20192
        if we don't need the bits above those present in the current mode.
20193
        * expr.c (store_field): Strip conversions to odd-bit-sized types
20194
        if the destination field width matches.
20195
 
20196
2005-01-26  Richard Sandiford  
20197
 
20198
        * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
20199
        either -ffast-math or -funsafe-math-optimizations is in use.
20200
 
20201
2005-01-26  Marek Michalkiewicz  
20202
 
20203
        PR target/19293
20204
        PR target/19329
20205
        * config/avr/avr.c (notice_update_cc): Only set condition code for
20206
        ashrqi3 if shift count > 0.
20207
        (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
20208
        (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
20209
        ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
20210
        count <= 0 as a no-op, and shift count >= width by copying zero
20211
        or sign bit to all bits of the result.
20212
        * config/avr/avr.md (all shifts): Add alternatives for zero shift
20213
        count, with attribute "length" set to 0 and "cc" set to "none".
20214
 
20215
2005-01-26  Aldy Hernandez  
20216
 
20217
        * doc/invoke.texi: Document -mTLS.
20218
 
20219
        * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
20220
        * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
20221
        * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
20222
        * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
20223
        * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
20224
        * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
20225
        * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
20226
        * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
20227
 
20228
        * configure.ac: Check for a TLS capable gas.
20229
 
20230
        * configure: Regenerate.
20231
 
20232
2005-01-26  Richard Henderson  
20233
 
20234
        PR middle-end/18008
20235
        * combine.c (make_field_assignment): Simplify store to zero_extract
20236
        from a source with an overlapping mask.
20237
 
20238
2005-01-26  Aldy Hernandez  
20239
 
20240
        2004-11-11  Eric Christopher  
20241
 
20242
        * config/frv/frv.md: Add fr400_integer automaton. Don't
20243
        allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
20244
        to TYPE_MACC.
20245
 
20246
2005-01-26  Steven Bosscher  
20247
 
20248
        PR middle-end/16585
20249
        * cfgbuild.c (make_edges): Do not clear or set
20250
        current_function_has_computed_jump.
20251
        * function.h (struct function): Remove the has_computed_jump field.
20252
        (current_function_has_computed_jump): Do not define.
20253
        * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
20254
        in a computed jump.  Ignore current_function_has_computed_jump.
20255
 
20256
2005-01-26  Richard Henderson  
20257
 
20258
        PR middle-end/19515
20259
        * expr.c (categorize_ctor_elements): New argument p_must_clear.
20260
        (categorize_ctor_elements_1): Likewise.  Detect a union that isn't
20261
        fully initialized.
20262
        (mostly_zeros_p): Update for new categorize_ctor_elements argument.
20263
        * gimplify.c (gimplify_init_constructor): Likewise.  Only shove
20264
        objects into static storage if they have more than one non-zero value.
20265
        * tree.h (categorize_ctor_elements): Update decl.
20266
 
20267
2005-01-26  Steven Bosscher  
20268
 
20269
        PR middle-end/19616
20270
        * tree.h (CALL_EXPR_TAILCALL): Add comment.
20271
        * calls.c (check_sibcall_argument_overlap_1): Revert the change
20272
        to this function from 2004-07-10.
20273
        * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
20274
        the current function for tail call optimizations if the address
20275
        of one of it its arguments is taken.
20276
 
20277
2005-01-26  Kazu Hirata  
20278
 
20279
        * cse.c (fold_rtx): Call equiv_constant only when necessary.
20280
 
20281
2005-01-26  Bernd Schmidt  
20282
 
20283
        * function.c (expand_function_end): If current_function_calls_alloca,
20284
        emit stack restore in a place that is reached when the function falls
20285
        through at the end.
20286
 
20287
2005-01-26  Alexandre Oliva  
20288
 
20289
        * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
20290
        rule to avoid matching inappropriate suffix rule.
20291
 
20292
2005-01-26  Jan Hubicka  
20293
 
20294
        PR tree-optimization/19241
20295
        * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
20296
 
20297
2005-01-26  Hans-Peter Nilsson  
20298
 
20299
        * config/cris/cris.h (LIB_SPEC) : Use -lsyslinux, not
20300
        -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
20301
        of doubling.
20302
        (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
20303
        : Always use crt1.o, regardless of N in simN.
20304
        : Drop support for -pg and -p variants; always use crt0.o.
20305
        (ENDFILE_SPEC): Add crtn.o, after crtend.o.
20306
        (CRT_CALL_STATIC_FUNCTION): Remove.
20307
        * config/cris/aout.h (STARTFILE_SPEC): : Always
20308
        use crt1.o, regardless of N in simN.
20309
        : Drop support for -pg and -p variants; always use crt0.o.
20310
        (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
20311
        (CRIS_CPP_SUBTARGET_SPEC) : Remove special
20312
        case isystem setting.
20313
        (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
20314
 
20315
2005-01-25  Ian Lance Taylor  
20316
 
20317
        * gimple-low.c (block_may_fallthru): Correct handling of
20318
        SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
20319
 
20320
2005-01-26  Hans-Peter Nilsson  
20321
 
20322
        * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
20323
        handlers to match indentation; nested under the mtune=* handler.
20324
        Similar for mcpu= and march=.
20325
 
20326
2005-01-25  Daniel Jacobowitz  
20327
 
20328
        * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
20329
        * config/mips/linux64.h (LIB_SPEC): Likewise.
20330
        * config/mn10300/linux.h (LIB_SPEC): Likewise.
20331
        * config/sh/linux.h (LIB_SPEC): Likewise.
20332
 
20333
2005-01-25  Aldy Hernandez  
20334
 
20335
        * config/frv/frv.c (frv_legitimize_tls_address): New.
20336
        (TARGET_HAVE_TLS): Define.
20337
        (FRV_SYMBOL_REF_TLS_P): Define.
20338
        (frv_override_options): Handle new register classes.
20339
        (frv_legitimate_address_p): Reject tls addresses.
20340
        (frv_legitimize_address): Handle TLS addresses.
20341
        (gen_inlined_tls_plt): New.
20342
        (gen_tlsmoff): New.
20343
        (frv_legitimize_tls_address): New.
20344
        (unspec_got_name): Add TLS entries.
20345
        (got12_operand): Add R_FRV_TLSMOFF12 case.
20346
        (frv_emit_move): Fixup TLS addresses.
20347
        (frv_emit_movsi): Legitimize TLS addresses.
20348
 
20349
        * config/frv/frv.h (MASK_BIG_TLS): New.
20350
        (TARGET_BIG_TLS): New.
20351
        (HAVE_AS_TLS): Define.
20352
        (TARGET_SWITCHES): Add -mTLS and -mtls options.
20353
        (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
20354
        (REG_CLASS_NAMES): Same.
20355
        (REG_CLASS_CONTENTS): Same.
20356
        (CONSTRAINT_LEN): New.
20357
        (REG_CLASS_FROM_CONSTRAINT): New.
20358
        (PREDICATE_CODES): Add symbolic_operand.
20359
 
20360
        * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
20361
        UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
20362
        UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
20363
        UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
20364
        R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
20365
        R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
20366
        R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
20367
        GR9_REG, GR14_REG, LRREG.
20368
        (type): Add load_or_call attribute.
20369
        ("load_or_call"): New reservation.
20370
        ("call_gettlsoff"): New.
20371
        ("tls_indirect_call"): New.
20372
        ("tls_load_gottlsoff12"): New.
20373
        ("tlsoff_hilo"): New.
20374
        ("tls_tlsdesc_ldd"): New.
20375
        ("tls_tlsoff_ld"): New.
20376
        ("tls_lddi"): New.
20377
 
20378
        * config/frv/frv-protos.h (symbolic_operand): Protoize.
20379
 
20380
        2005-01-25  Alexandre Oliva  
20381
 
20382
        * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
20383
        * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
20384
        * config/frv/frv.c (TLS_BIAS): Define.
20385
        (frv_output_dwarf_dtprel): New.
20386
 
20387
2005-01-26  Jakub Jelinek  
20388
 
20389
        PR rtl-optimization/19579
20390
        * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
20391
        both A and B, see if they don't clobber registers the other expr uses.
20392
 
20393
2005-01-25  J"orn Rennecke 
20394
 
20395
        * real.c (do_add): Initialize signalling and canonical members.
20396
 
20397
        * real.c (real_from_integer): Zero out destination.
20398
 
20399
2005-01-18  Jan Hubicka  
20400
 
20401
        PR tree-optimize/19337
20402
        * tree-inline.c (initialize_inlined_parameters): Copy
20403
        saved_static_chain_decl only.
20404
 
20405
2005-01-25  Richard Henderson  
20406
 
20407
        PR target/19556
20408
        PR target/19584
20409
        * config/i386/i386.c (x86_inter_unit_moves): Zero.
20410
        (ix86_preferred_reload_class): Rewrite fp-constant section, with
20411
        80387 enabled, to return a proper subclass.  Return the subset that
20412
        overlaps with GENERAL_REGS for PLUS.
20413
        * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
20414
 
20415
2005-01-25  Richard Henderson  
20416
 
20417
        PR middle-end/19609
20418
        * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
20419
 
20420
2005-01-25  Roger Sayle  
20421
 
20422
        * expmed.c (choose_multiplier): Change interface to return the
20423
        multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
20424
        (expand_divmod): Update calls to choose_multiplier.
20425
 
20426
2005-01-24  John David Anglin  
20427
 
20428
        PR middle-end/19330
20429
        * expmed.c (extract_bit_field): Use adjust_address instead of
20430
        gen_lowpart when op0 is a MEM.
20431
 
20432
2005-01-24  Steven Bosscher  
20433
 
20434
        * cfgexpand.c (expand_gimple_tailcall): Fix typo.
20435
 
20436
2005-01-24  Richard Sandiford  
20437
 
20438
        * config/mips/irix-csr.c: New file.
20439
        * config/mips/t-iris6 (irix-csr.o): New rule to build it.
20440
        (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
20441
        * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
20442
        executables.
20443
 
20444
2005-01-24  Eric Botcazou  
20445
 
20446
        PR bootstrap/19364
20447
        * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
20448
        sparc/elf.h, add sparc/sp-elf.h.
20449
        (sparc-*-rtems*): Likewise.
20450
        (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
20451
        tm-dwarf2.h, add sparc/sp-elf.h.
20452
        (sparc86x-*-elf): Likewise.
20453
        (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
20454
        * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
20455
        TARGET_OS_CPP_BUILTINS.
20456
        * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
20457
        * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
20458
        Undefine it.
20459
        * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
20460
        * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
20461
        (SWITCH_TAKES_ARG): Likewise.
20462
        (LOCAL_LABEL_PREFIX): Likewise.
20463
        (ASM_GENERATE_INTERNAL_LABEL): Likewise.
20464
        (TARGET_N_FORMAT_TYPES): Delete.
20465
        (TARGET_FORMAT_TYPES): Likewise.
20466
        (ASM_DECLARE_FUNCTION_SIZE): Likewise.
20467
        * config/sparc/elf.h: Delete.
20468
        * config/sparc/sp-elf.h: New file.
20469
 
20470
2005-01-24  Kazu Hirata  
20471
 
20472
        * tree-flow-inline.h (phi_arg_from_edge): Remove.
20473
        * tree-flow.h: Remove the corresponding prototype.
20474
        * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
20475
        tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
20476
 
20477
2005-01-24  Jakub Jelinek  
20478
 
20479
        PR target/17751
20480
        * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
20481
        for AIX ABI or ELF -fPIC.
20482
        (rs6000_emit_load_toc_table): Don't create toc_section here.
20483
        (rs6000_xcoff_file_start): Nor here.
20484
 
20485
2005-01-24  J"orn Rennecke 
20486
 
20487
        * sh.c (ra.h): Don't #include.
20488
        (hard_regs_intersect_p): New function, resurrected from ra.c.
20489
 
20490
        * sh.c: Fix 1996 Copyright.
20491
 
20492
2005-01-24  Richard Henderson  
20493
            Aldy Hernandez  
20494
 
20495
        * regrename.c (note_sets): Handle subregs.
20496
 
20497
2005-01-24  Joseph S. Myers  
20498
 
20499
        PR bootstrap/18058
20500
        * genconditions.c (write_header, write_conditions): Elide file if
20501
        not GCC >= 3.0.1.
20502
 
20503
2005-01-24  Kazu Hirata  
20504
 
20505
        * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
20506
        config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
20507
        Update copyright.
20508
 
20509
2005-01-24  Jakub Jelinek  
20510
 
20511
        * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
20512
        expand_builtin_printf, expand_builtin_fprintf,
20513
        expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
20514
        checking against POINTER_TYPE.
20515
        (validate_arglist): Handle POINTER_TYPE code by checking
20516
        POINTER_TYPE_P.
20517
 
20518
2005-01-24  Paolo Bonzini  
20519
 
20520
        * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
20521
        init_rtlanal): New.
20522
        (for_each_rtx): Call for_each_rtx_1.
20523
        * rtl.h (init_rtlanal): Declare.
20524
        * toplev.c (backend_init): Call init_rtlanal.
20525
 
20526
2005-01-24  Jakub Jelinek  
20527
 
20528
        * flow.c (propagate_one_insn): Formatting.
20529
 
20530
        PR middle-end/19551
20531
        * flow.c (libcall_dead_p): Be more conservative if unsure.
20532
        If there are any instructions between insn and call, see if they are
20533
        all dead before saying the libcall is dead.
20534
 
20535
2005-01-24  Uros Bizjak  
20536
 
20537
        * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
20538
        operand constraint for operand 0.
20539
 
20540
2005-01-23  Richard Henderson  
20541
 
20542
        PR 19486
20543
        * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
20544
        edges leading to join block.
20545
 
20546
2005-01-23  Roger Sayle  
20547
 
20548
        * expmed.c (expand_mult_highpart): Make static.  Change type of
20549
        constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
20550
        (expand_divmod): Updates calls to expand_mult_highpart by using
20551
        gen_int_mode to pass a CONST_INT rtx.
20552
        * rtl.h (expand_mult_highpart): Remove prototype.
20553
 
20554
2005-01-23  Kazu Hirata  
20555
 
20556
        * flow.c (regset_bytes, regset_size): Remove.
20557
 
20558
        * cfganal.c: Fix a reference to Harvey's paper.
20559
 
20560
2005-01-23  Steven Bosscher  
20561
 
20562
        PR rtl-optimization/19464
20563
        * tree-optimize.c (init_tree_optimization_passes): Add one more
20564
        copyrename pass just before out-of-ssa.
20565
 
20566
2005-01-23  Joseph S. Myers  
20567
 
20568
        PR bootstrap/18058
20569
        * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
20570
        * ggc-none.c (ggc_free): Define.
20571
 
20572
2005-01-23  Kazu Hirata  
20573
 
20574
        * cse.c (max_reg, max_insn_uid): Remove.
20575
        (cse_main): Don't access max_reg or max_insn_uid.
20576
 
20577
        * c-common.c (explicit_flag_signed_bitfields,
20578
        lang_statement_code_p, lang_expand_function_end): Remove.
20579
        * c-common.h: Remove the corresponding declarations.
20580
        * c-opts.c (c_common_handle_option): Remove all write access
20581
        to explicit_flag_signed_bitfields.
20582
 
20583
        * cgraph.c (cgraph_varpool_n_nodes): Remove.
20584
        (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
20585
        * cgraph.h: Remove the corresponding declaration.
20586
 
20587
        * gcse.c (null_pointer_info): Remove.
20588
 
20589
2005-01-23  Roger Sayle  
20590
            Eric Botcazou  
20591
 
20592
        * combine.c (simplify_logical): Only simplify logical expressions
20593
        of the form ior(and(x,y),z) by the inverse distributive law if the
20594
        result is cheaper than the original.
20595
 
20596
2005-01-23  Kazu Hirata  
20597
 
20598
        * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
20599
        fold-const.c, gimplify.c, params.h, tree-data-ref.c,
20600
        tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
20601
        tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
20602
        config/freebsd-spec.h, config/arm/arm.h,
20603
        config/h8300/h8300.md, config/i386/i386.md,
20604
        config/i386/predicates.md, config/i386/sse.md,
20605
        config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
20606
        config/vax/vax.md: Fix comment typos.  Follow spelling
20607
        conventions.
20608
 
20609
2005-01-23  Steven Bosscher  
20610
 
20611
        * gengtype.c (walk_type): Produce `not equal to' compares for loop
20612
        tests, instead of `less than'.
20613
 
20614
2005-01-23  Richard Sandiford  
20615
 
20616
        * function.c (assign_parm_setup_block): When creating a new stack slot
20617
        for a parameter, get its alignment from the parameter's DECL_ALIGN
20618
        rather than the type's TYPE_ALIGN.  Make sure that the parameter
20619
        is at least word aligned.
20620
 
20621
2005-01-22  Roger Sayle  
20622
 
20623
        PR middle-end/19378
20624
        * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
20625
 
20626
2005-01-22  Richard Henderson  
20627
 
20628
        PR target/19506
20629
        * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
20630
        in both compare operands.
20631
        (movdfcc_1_sse_max): Likewise.
20632
        (movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
20633
        (movdfcc_1_sse): Likewise.
20634
        * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
20635
        scratch register as needed.
20636
 
20637
2005-01-22  Richard Henderson  
20638
 
20639
        * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
20640
 
20641
        * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
20642
 
20643
2005-01-22  Richard Henderson  
20644
 
20645
        * genopinit.c (optabs): Use smin/smax for floating point too.
20646
        * doc/md.texi: Update to match.  Clarify that floating point
20647
        results are undefined for +0/-0 and NaN.
20648
        * doc/rtl.texi: Likewise.
20649
        * rtl.def (SMIN, SMAX): Likewise
20650
        * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
20651
 
20652
        * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
20653
        leading 's' to the name.
20654
        * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
20655
        smaxxf3, sminxf3): Likewise.
20656
        * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
20657
        Likewise.
20658
 
20659
2005-01-22  Paul Brook  
20660
 
20661
        * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
20662
 
20663
2005-01-21  Mark Dettinger  
20664
 
20665
        * config/s390/s390.c (struct processor_costs): New fields
20666
        dlgr, dlr, dr, dsgfr, dsgr.
20667
        (z900_cost, z990_cost): Values for new fields.
20668
        (s390_rtx_costs): New cases MEM und COMPARE in switch
20669
        statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
20670
        DIV, MOD, UDIV, UMOD.
20671
 
20672
2005-01-21  Ulrich Weigand  
20673
 
20674
        * config/s390/s390.md ("doloop_si64"): Reload input value directly
20675
        into the register being decremented.
20676
        ("doloop_si31", "doloop_di"): Likewise.
20677
        ("*doloop_si_long"): Adapt pattern.
20678
 
20679
2005-01-21  Ulrich Weigand  
20680
 
20681
        * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
20682
        access registers.
20683
        (CLASS_MAX_NREGS): Likewise.
20684
 
20685
2005-01-21  Daniel Berlin  
20686
 
20687
        * doc/tree-ssa.texi (Statement Operands): Add example for new
20688
        must-def macro. Note deprecation of old operands interface.
20689
 
20690
2005-01-22  Richard Sandiford  
20691
 
20692
        PR tree-optimization/19484
20693
        * tree-cfg.c (remove_fallthru_edge): New function.
20694
        (cleanup_control_flow): Remove fallthru edges from calls that are
20695
        now known not to return.
20696
 
20697
2005-01-20  Daniel Berlin  
20698
 
20699
        Fix PR tree-optimization/19038
20700
        * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
20701
        copies with loop variant ones.
20702
 
20703
2005-01-22  Kazu Hirata  
20704
 
20705
        * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
20706
        config/alpha/alpha-protos.h, config/alpha/alpha.h,
20707
        config/alpha/alpha.md, config/alpha/predicates.md,
20708
        config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
20709
        config/sparc/sol2.h: Update copyright.
20710
 
20711
        * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
20712
        first label to see if it is a nonlocal label.
20713
 
20714
2005-01-22  David Edelsohn  
20715
            Andrew Pinski  
20716
 
20717
        PR target/19491
20718
        * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
20719
        maximum number of GPRs.  Saturate n_fpr at maximum number of FPRs.
20720
 
20721
2005-01-22  Ralf Corsepius  
20722
 
20723
        * config/rs6000/rtems.h: Update copyright.
20724
 
20725
2005-01-22  Ralf Corsepius  
20726
 
20727
        PR target/19548
20728
        * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
20729
        (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
20730
        (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
20731
 
20732
2005-01-22  Volker Reichelt  
20733
 
20734
        PR c/18809
20735
        * c-typeck.c (convert_arguments): Check for error_mark_node.
20736
 
20737
2005-01-21  Ian Lance Taylor  
20738
 
20739
        PR tree-optimization/13000
20740
        * tree-inline.c: Include "tree-flow.h".
20741
        (expand_call_inline): If warn_return_type, warn if non-void inline
20742
        function falls through.
20743
        * tree-cfg.c (execute_warn_function_return): Don't warn about
20744
        control reaching end if TREE_NO_WARNING is set.  Set
20745
        TREE_NO_WARNING.
20746
        * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
20747
        has been lowered.
20748
        * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
20749
        branch if we don't need one.
20750
        * c-typeck.c: Include "tree-flow.h"
20751
        (c_finish_bc_stmt): Don't add a goto if the current statement
20752
        list doesn't fall through to the current point.
20753
 
20754
2005-01-21  Roger Sayle  
20755
 
20756
        PR rtl-optimization/576
20757
        * real.c (real_arithmetic): Change return type from void to bool
20758
        to return an indication that the result may be inexact.
20759
        * real.h (real_arithmeric): Update prototype.
20760
        * fold-const.c (const_binop):  Don't constant fold floating
20761
        point expressions when the user specifies -frounding-math and
20762
        the result may depend upon the run-time rounding mode.
20763
        (fold_convert_const_real_from_real): Clean-up.
20764
        (fold_initializer): Ignore flag_rounding_math for initializers.
20765
        * simplify-rtx.c (simplify_binary_operation): Likewise, don't
20766
        constant fold FP operations with flag_rounding_math if the
20767
        result may depend upon the run-time rounding mode.
20768
 
20769
2005-01-21  Tom Tromey  
20770
 
20771
        * c-cppbuiltin.c (define__GNUC__): Correct assertion.
20772
 
20773
2005-01-21  Kazu Hirata  
20774
 
20775
        * tree-cfg.c: Fix comment typos.
20776
 
20777
2005-01-21  J"orn Rennecke 
20778
 
20779
        * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
20780
        around the call to rest_of_handle_branch_target_load_optimize.
20781
 
20782
2005-01-21  Eric Botcazou  
20783
 
20784
        * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
20785
        (sparc64-*-openbsd*): Likewise.
20786
        (sparclite-*-elf*): Include tm-dwarf2.h.
20787
        (sparc86x-*-elf*): Likewise.
20788
        (sparc64-*-elf*): Likewise.
20789
        * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
20790
        (DBX_DEBUGGING_INFO): Likewise.
20791
        * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
20792
        (PREFERRED_DEBUGGING_TYPE): Likewise.
20793
        * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
20794
        * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
20795
        (PREFERRED_DEBUGGING_TYPE): Likewise.
20796
        * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
20797
        (PREFERRED_DEBUGGING_TYPE): Likewise.
20798
        * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
20799
 
20800
2005-01-21  Hans-Peter Nilsson  
20801
 
20802
        PR target/18701
20803
        * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
20804
 
20805
2005-01-20  Paul Brook  
20806
 
20807
        * doc/rtl.texi: Document value extension requirements for CONST_INT.
20808
 
20809
2005-01-20  Kazu Hirata  
20810
 
20811
        * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
20812
        label is first in a sequence of labels.
20813
 
20814
        * tree-cfg.c (tree_verify_flow_info): Fix a typo.
20815
 
20816
2005-01-20  Janis Johnson  
20817
            Giovanni Bajo  
20818
 
20819
        * doc/sourcebuild.texi (Test Directives): New.
20820
 
20821
2005-01-20  Roger Sayle  
20822
 
20823
        * real.c (real_floor): Don't leave the result uninitialized when
20824
        mode is VOIDMode, but return the unrounded intermediate value.
20825
        (real_ceil): Likewise.
20826
 
20827
2005-01-20  Paul Brook  
20828
 
20829
        * config/arm/arm.md (insv): Use gen_int_mode.
20830
 
20831
2005-01-20  Eric Botcazou  
20832
 
20833
        * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
20834
        * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
20835
        * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
20836
        * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
20837
        * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
20838
 
20839
2005-01-20  Daniel Berlin  
20840
 
20841
        Fix PR debug/19124
20842
        * dwarf2out.c (concat_loc_descriptor): We don't know we can use
20843
        fbreg, so we have to assume we can't.
20844
        (loc_descriptor_from_tree_1): Ditto.
20845
        (containing_function_has_frame_base): New function.
20846
        (add_location_or_const_value_attribute): Use it.
20847
        Also try to generate a frame_base from a single element location
20848
        list.
20849
 
20850
2005-01-20  Kazu Hirata  
20851
 
20852
        PR tree-optimization/15349
20853
        * timevar.def (TV_TREE_MERGE_PHI): New.
20854
        * tree-cfg.c (tree_forwarder_block_p): Add a new argument
20855
        PHI_WANTED.
20856
        (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
20857
        calls to tree_forwarder_block_p.
20858
        (remove_forwarder_block_with_phi, merge_phi_nodes,
20859
        gate_merge_phi, pass_merge_phi): New.
20860
        * tree-optimize.c (init_tree_optimization_passes): Add
20861
        pass_merge_phi.
20862
        * tree-pass.h: Add an extern for pass_merge_phi;
20863
 
20864
2005-01-20  Richard Henderson  
20865
 
20866
        PR target/19418
20867
        * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
20868
        (_mm_castps_pd, _mm_castps_si128): New.
20869
        (_mm_castsi128_ps, _mm_castsi128_pd): New.
20870
 
20871
2005-01-20  Richard Henderson  
20872
 
20873
        PR target/19530
20874
        * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
20875
        __builtin_ia32_vec_init_v2si.
20876
        (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
20877
        * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
20878
        (ix86_init_mmx_sse_builtins): Create it.
20879
        (ix86_expand_builtin): Expand it.
20880
        (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
20881
        * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
20882
        (vec_extractv2si_0, vec_extractv2si_1): New.
20883
 
20884
2005-01-20  Richard Henderson  
20885
 
20886
        PR target/16533
20887
        * config/i386/i386.c (ix86_expand_push): New.
20888
        * config/i386/mmx.md (push1): New.
20889
        * config/i386/sse.md (push1): New.
20890
        * config/i386/i386-protos.h: Update.
20891
 
20892
2005-01-20  Kazu Hirata  
20893
 
20894
        * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
20895
        copyright.
20896
 
20897
2005-01-20  Richard Henderson  
20898
 
20899
        * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
20900
        * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
20901
 
20902
2005-01-19  Richard Henderson  
20903
 
20904
        PR target/19350
20905
        * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
20906
        to V4SFmode in SSE1 fallback load path.
20907
 
20908
2005-01-19  Richard Henderson  
20909
 
20910
        * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
20911
        in QImode expansion to ix86_expand_vector_set.
20912
        (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
20913
 
20914
2005-01-19  Richard Henderson  
20915
 
20916
        PR target/19511
20917
        * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
20918
        subclass of the input class.
20919
        (ix86_secondary_memory_needed): Always true for cross-MMX classes.
20920
        Always true for cross-SSE1 classes.  Rationalize conditionals.
20921
        * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
20922
        * config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
20923
        for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
20924
        (movdi_2): Add MMX/SSE zeros.
20925
        (movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
20926
        (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
20927
        (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
20928
        (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
20929
        (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
20930
        (zero_extendsidi2_rex64_1): Remove.
20931
        (MOV0 peephole): Check GENERAL_REG_P.
20932
 
20933
2005-01-19  Richard Henderson  
20934
 
20935
        PR target/19427
20936
        * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
20937
        shufps elements.
20938
        (ix86_expand_vector_extract): Likewise.
20939
 
20940
2005-01-19  Richard Henderson  
20941
 
20942
        PR middle-end/19304
20943
        * expr.c (emit_move_change_mode): New argument force; use
20944
        simplify_gen_subreg if true.
20945
        (emit_move_via_alt_mode): Merge into ...
20946
        (emit_move_via_integer): ... here.
20947
        (emit_move_ccmode): Use emit_move_change_mode directly.
20948
 
20949
2005-01-19  Richard Henderson  
20950
 
20951
        PR target/19518
20952
        * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
20953
        (alpha_preferred_reload_class): Handle CONST_VECTOR.
20954
        (alpha_emit_set_const_1): Add no_output parameter; don't emit
20955
        rtl if true.
20956
        (alpha_emit_set_const): Likewise.  Make static.
20957
        (alpha_emit_set_long_const): Make static.
20958
        (alpha_extract_integer): Split out from alpha_expand_mov.
20959
        (alpha_split_const_mov): Likewise.
20960
        (alpha_expand_mov): Use them.  Handle CONST_VECTOR.
20961
        (alpha_legitimate_constant_p): New.
20962
        * config/alpha/alpha-protos.h: Update.
20963
        * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
20964
        (LEGITIMATE_CONSTANT_P): Re-implement with a function.
20965
        * config/alpha/alpha.md (movsi): Add n alternative.
20966
        (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
20967
        (mov_fix, mov_nofix): Add i alternative.
20968
        (splitters for all of the above): Use alpha_split_const_mov.
20969
        * config/alpha/predicates.md (non_add_const_operand): New.
20970
        (non_zero_const_operand): New.
20971
        (input_operand): Use alpha_legitimate_constant_p after reload.
20972
 
20973
2005-01-19  Zdenek Dvorak  
20974
 
20975
        PR tree-optimization/19038
20976
        * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
20977
        (add_candidate): Add ivs with increment in latch only if
20978
        allow_ip_end_pos_p is true.
20979
        (determine_iv_cost): Use empty_block_p.
20980
 
20981
2005-01-19  Daniel Berlin  
20982
 
20983
        * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
20984
        (compute_dominance_frontiers): Ditto.
20985
 
20986
2005-01-19  Ralf Corsepius  
20987
 
20988
        PR target/19529
20989
        * config/sh/t-rtems: New.
20990
        * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
20991
 
20992
2005-01-19  Zdenek Dvorak  
20993
 
20994
        * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
20995
        the offset of the selected field.
20996
 
20997
2005-01-19  Kazu Hirata  
20998
 
20999
        * tree-cfg.c (remove_forwarder_block): Fix the check to
21000
        prevent a nonlocal label from appearing in the middle of a
21001
        basic block.
21002
 
21003
2005-01-19  Hans-Peter Nilsson  
21004
 
21005
        PR rtl-optimization/19462
21006
        * reorg.c (find_end_label): Create return insn only if
21007
        current_function_epilogue_delay_list is empty.
21008
 
21009
2005-01-19  Paolo Bonzini  
21010
 
21011
        * doc/passes.texi: Remove paragraph mentioning new-ra.
21012
 
21013
2005-01-19  Jakub Jelinek  
21014
 
21015
        PR rtl-optimization/15139
21016
        * combine.c: Include params.h.
21017
        (count_rtxs): New function.
21018
        (record_value_for_reg): If replace_rtx would replace at least
21019
        2 occurrences of REG in VALUE and TEM is really large, replace REG with
21020
        (clobber (const_int 0)) instead of TEM.
21021
        * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
21022
        * params.h (MAX_LAST_VALUE_RTL): New.
21023
        * Makefile.in (combine.o): Depend on $(PARAMS_H).
21024
        * doc/invoke.texi (--param max-last-value-rtl=N): Document.
21025
 
21026
        PR c/17297
21027
        * c-typeck.c (digest_init): Only call build_vector if all constructor
21028
        elements are *_CST nodes.
21029
        * gimplify.c (gimplify_init_constructor): Likewise.
21030
 
21031
        PR middle-end/19164
21032
        * c-typeck.c (digest_init): Only call build_vector if inside_init
21033
        is a CONSTRUCTOR.
21034
 
21035
2005-01-18  Tobias Schl"uter  
21036
 
21037
        * toplev.c (init_asm_output): Remove dead #ifdef.
21038
 
21039
2005-01-18  Kaz Kojima  
21040
 
21041
        * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
21042
 
21043
2005-01-18  Eric Botcazou  
21044
 
21045
        * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
21046
        accessing DECL_FUNCTION_CODE.
21047
        * dojump.c (do_jump): Likewise.
21048
        * gimplify.c (gimplify_call_expr): Likewise.
21049
        * predict.c (expr_expected_value): Likewise.
21050
        (strip_builtin_expect): Likewise.
21051
        * tree-inline.c (estimate_num_insns_1): Likewise.
21052
        * tree-ssa-loop-im.c (stmt_cost): Likewise
21053
        * fold-const.c (fold): Test for BUILT_IN_NORMAL.
21054
        (tree_expr_nonnegative_p): Likewise.
21055
 
21056
2005-01-18  Eric Botcazou  
21057
 
21058
        * config/sparc/sparc.c (load_pic_register): Emit the appropriate
21059
        variant of the load_pcrel_sym pattern.
21060
        * config/sparc/sparc.md (P macro): Move to the top.
21061
        (load_pcrel_sym): Macroize using P.
21062
        (save_register_window): Likewise.
21063
 
21064
2005-01-18  Aldy Hernandez  
21065
 
21066
        * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
21067
        ("sordered"): Same.
21068
 
21069
2005-01-18  Andrew Pinski  
21070
 
21071
        PR C/19472
21072
        * c-typeck.c (build_asm_expr): Strip nops off
21073
        input memory operands.
21074
 
21075
2005-01-18  David Edelsohn  
21076
 
21077
        * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
21078
        _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
21079
        * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
21080
        * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
21081
 
21082
2005-01-18  Joel Sherrill 
21083
 
21084
        PR target/19379
21085
        * config/i386/i386.c (override_options): If the 80387 is disabled,
21086
        then do not return FP values using FP registers.
21087
 
21088
2005-01-18  Kazu Hirata  
21089
 
21090
        * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
21091
        c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
21092
        combine.c, config.gcc, coverage.h, cse.c, cselib.c,
21093
        defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
21094
        flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
21095
        gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
21096
        output.h, postreload-gcse.c, postreload.c, recog.c,
21097
        resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
21098
        targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
21099
        tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
21100
        tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
21101
        tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
21102
        tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
21103
        tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
21104
        unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
21105
 
21106
        * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
21107
        config/alpha/alpha.c, config/arm/vfp.md,
21108
        config/i386/emmintrin.h, config/i386/i386-modes.def,
21109
        config/i386/i386-protos.h, config/i386/i386.h,
21110
        config/i386/pmmintrin.h, config/i386/ppro.md,
21111
        config/i386/predicates.md, config/i386/xmmintrin.h,
21112
        config/i860/i860.c, config/ia64/ia64-modes.def,
21113
        config/ia64/ia64-protos.h, config/ia64/ia64.h,
21114
        config/ia64/ia64.md, config/ia64/itanium1.md,
21115
        config/ia64/itanium2.md, config/ia64/predicates.md,
21116
        config/iq2000/iq2000.h, config/mips/linux64.h,
21117
        config/rs6000/aix41.h, config/rs6000/aix43.h,
21118
        config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
21119
        config/rs6000/rs6000.c, config/rs6000/rs6000.h,
21120
        config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
21121
        config/sparc/linux64.h, config/sparc/litecoff.h,
21122
        config/sparc/sp64-elf.h, config/sparc/sparc.c,
21123
        config/sparc/sparc.h, config/sparc/sparc.md,
21124
        config/sparc/sysv4-only.h: Update copyright.
21125
 
21126
2005-01-18  Richard Henderson  
21127
 
21128
        PR target/19496
21129
        * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
21130
 
21131
2005-01-18  Marc Espie  
21132
        * config/i386/openbsdelf.h: Typo.
21133
 
21134
2005-01-18  Richard Henderson  
21135
 
21136
        * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
21137
        special case for sse.
21138
        * config/i386/predicates.md (sse_comparison_operator): Likewise.
21139
 
21140
2005-01-18  Dorit Naishlos  
21141
 
21142
        * tree-inline.c (estimate_num_insns_1): Added cases for
21143
        ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
21144
 
21145
2005-01-18  Eric Botcazou  
21146
 
21147
        PR rtl-optimization/19296
21148
        * combine.c (simplify_comparison): Rewrite the condition under
21149
        which a non-paradoxical SUBREG of a PLUS can be lifted when
21150
        compared against a constant.
21151
 
21152
2005-01-18  Andi Kleen 
21153
 
21154
        * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
21155
        * c.opt (-Wpointer-sign): Add.
21156
        * doc/invoke.texi: (-Wpointer-sign): Add.
21157
 
21158
2005-01-18  Uros Bizjak  
21159
 
21160
        * config/i386/i386.c (override_options): Revert 2004-11-24 change.
21161
        * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
21162
        *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
21163
        logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
21164
        exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
21165
        nearbyintsf2): Disable for TARGET_SSE_MATH.  Leave patterns enabled
21166
        for TARGET_MIX_SSE_I387.
21167
        (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
21168
        sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
21169
        atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
21170
        log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
21171
        floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
21172
        (TARGET_SSE2 && TARGET_SSE_MATH).  Leave patterns enabled for
21173
        TARGET_MIX_SSE_I387.
21174
        (atan2sf3, atan2df3, atan2xf3): Remove register constraints
21175
        from expander.
21176
 
21177
2005-01-18  Uros Bizjak  
21178
 
21179
        PR target/19424
21180
        * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
21181
        Add movaps alternative for xmm reg->reg move.
21182
 
21183
2005-01-17  Jeff Law  
21184
 
21185
        * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
21186
        at the end of the main DOM loop rather than just before DOM exits.
21187
 
21188
2005-01-17  Diego Novillo  
21189
 
21190
        PR tree-optimization/19121
21191
        * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
21192
        adding aliases to a name tag, also add them to the pointer's
21193
        type tag.
21194
        * tree-ssa-copy.c (merge_alias_info): Do not merge flow
21195
        sensitive alias info at all.  Only check that the two pointers
21196
        have compatible pointed-to sets.
21197
        * tree-ssa.c (verify_name_tags): Verify that the alias set of
21198
        a pointer's type tag is a superset of the alias set of the
21199
        pointer's name tag.
21200
 
21201
2005-01-17  James E Wilson  
21202
 
21203
        PR target/19357
21204
        * config/ia64/ia64.md (movxf): Handle general register source.  Adjust
21205
        comment to document why.
21206
 
21207
2005-01-17  Richard Henderson  
21208
 
21209
        * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
21210
        sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
21211
        sse2_vmsmaxv2df3_finite, sminv2df3_finite,
21212
        sse2_vmsminv2df3_finite): New.
21213
        (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
21214
        sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
21215
        Force op1 into register.
21216
 
21217
2005-01-17  Kelley Cook  
21218
 
21219
        * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
21220
        bubblestrap from always rebuilding build directory.
21221
 
21222
2005-01-17  Ulrich Weigand  
21223
 
21224
        * config/s390/s390.md ("*clc"): Remove incorrect '='.
21225
        ("*cmpmem_short"): Likewise.
21226
 
21227
2005-01-17  Steven Bosscher  
21228
 
21229
        * basic-block.h: Document BB_* flags.
21230
        * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
21231
        use an sbitmap instead.
21232
        * sched-rgn.c (compute_trg_info): Likewise.
21233
 
21234
2005-01-17  Richard Sandiford  
21235
 
21236
        * config.gcc (mips64*-*-linux*): Set the default abi to n32.  Remove
21237
        redundant target_cpu_default and extra_parts lines.  Use the default
21238
        "from-abi" ISA.
21239
        * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
21240
        (SUBTARGET_EXTRA_SPECS): Delete.
21241
        (DRIVER_SELF_SPECS): Remove architecture lines.  Set the ABI directly.
21242
        (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
21243
        * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
21244
        and "n32" for -mabi=n32.
21245
 
21246
2005-01-17  Ian Lance Taylor  
21247
 
21248
        PR c/5675
21249
        * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
21250
        fold constant variables into initial values.
21251
 
21252
2005-01-17  Kazu Hirata  
21253
 
21254
        * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
21255
 
21256
        * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
21257
        through the statements backward.
21258
 
21259
2005-01-17  Ian Lance Taylor  
21260
 
21261
        PR middle-end/13127:
21262
        * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
21263
        a variable set to the return value of the inlined function.
21264
 
21265
2005-01-17  Mark Dettinger  
21266
 
21267
        * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
21268
        when modes are tieable.
21269
 
21270
2005-01-17  Ranjit Mathew  
21271
 
21272
        * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
21273
        of pthread_create to find out if threads are enabled.
21274
        * gthr-posix95.h (__gthread_active_p): Likewise.
21275
 
21276
2005-01-17  Paolo Bonzini  
21277
 
21278
        * common.opt (-fnew-ra): Remove.
21279
        * ra*.*: Remove.
21280
        * toplev.h (flag_new_regalloc): Remove.
21281
        * Makefile.in (ra*.*): Don't mention.
21282
        * passes.c (rest_of_handle_new_regalloc): Remove.
21283
        (rest_of_handle_combine, rest_of_compilation): Always consider
21284
        flag_new_regalloc as false.
21285
        * doc/invoke.texi: Don't document -fnew-ra.
21286
 
21287
2005-01-17  Paolo Bonzini 
21288
 
21289
        * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
21290
        last parameter to reg_scan.
21291
        * loop.c (loop_optimize): Likewise.
21292
        * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
21293
        rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
21294
        rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
21295
        rest_of_handle_gcse, rest_of_handle_loop_optimize,
21296
        rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
21297
        * regclass.c (reg_scan): Likewise, for the declaration.
21298
        * rtl.h (reg_scan): Likewise, for the prototype.
21299
 
21300
2005-01-17  Kazu Hirata  
21301
 
21302
        * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
21303
        mark_dfs_back_edges.
21304
 
21305
2005-01-16  Daniel Berlin  
21306
 
21307
        * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
21308
        (compute_avail): Uses don't go in tmp_gen.
21309
 
21310
2005-01-16  Steven Bosscher  
21311
 
21312
        * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
21313
        loop to look for a free slot in a page entry.
21314
 
21315
2005-01-16  John David Anglin  
21316
 
21317
        PR target/16304
21318
        * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
21319
        * toplev.c (compile_file): Call process_pending_assemble_output_defs
21320
        just before targetm.asm_out.file_end.
21321
        * tree.h (process_pending_assemble_output_defs): Declare.
21322
        * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
21323
        New functions.
21324
        (assemble_alias): Defer generation of assembly code for defines when
21325
        TARGET_DEFERRED_OUTPUT_DEFS is true.
21326
        * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
21327
        * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
21328
        * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
21329
 
21330
2005-01-15  John David Anglin  
21331
 
21332
        PR target/19336
21333
        * pa.c (pa_scalar_mode_supported_p): New function.
21334
        (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
21335
        * pa.h (MIN_UNITS_PER_WORD): Add comment.
21336
 
21337
        * pa-protos.h (prefetch_operand): Delete.
21338
        (prefetch_cc_operand, prefetch_nocc_operand): New declations.
21339
        * pa.c (prefetch_operand): Delete.
21340
        (prefetch_cc_operand, prefetch_nocc_operand): New functions.
21341
        * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
21342
        (PREDICATE_CODES): Delete prefetch_operand.  Add prefetch_cc_operand
21343
        and prefetch_nocc_operand.
21344
        * pa.md (prefetch): Rework to avoid reload problems handling short
21345
        displacements when a cache control completer needs to be provided.
21346
        (prefetch_32, prefetch_64): Delete.
21347
        (prefetch_cc, prefetch_nocc): New patterns.
21348
 
21349
2005-01-15  David Edelsohn  
21350
 
21351
        * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
21352
 
21353
2005-01-15  John David Anglin  
21354
 
21355
        PR ada/19388
21356
        * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
21357
        exceeds maximum alignment for global common data.
21358
        * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
21359
        * som.h (MAX_OFILE_ALIGNMENT): Likewise.
21360
 
21361
2004-01-15  Roger Sayle  
21362
 
21363
        * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
21364
 
21365
2004-01-15  Roger Sayle  
21366
 
21367
        * harg-reg-set.h (reg_class_names): Prototype global array.
21368
        * regclass.c (reg_class_names): Declare here and initialize to
21369
        REG_CLASS_NAMES.
21370
        (dump_regclass): Remove local declaration of reg_class_names.
21371
        (regclass): Likewise.
21372
        * cfg.c (dump_flow_info): Likewise.
21373
        * ra-debug.c (reg_class_names): Likewise.
21374
        * regrename.c (reg_class_names): Likewise.
21375
        * reload.c (reg_class_names): Likewise.
21376
        * reload1.c (spill_failure): Likewise.
21377
        * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
21378
 
21379
2005-01-15  Ulrich Weigand  
21380
 
21381
        * config/s390/s390.md ("reload_outti"): Remove predicate for
21382
        output operand.  Abort if operand is not a MEM.
21383
        ("reload_outdi", "reload_outdf"): Likewise.
21384
 
21385
2005-01-15  Marc Espie  
21386
 
21387
        * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
21388
        (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
21389
        * config/openbsd.h:  Fix C++ includes for native configurations.
21390
        Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
21391
        Add trampoline support.
21392
        * config/i386/openbsdelf.h: New.
21393
 
21394
2005-01-15  Marc Espie  
21395
 
21396
        * collect2.c (main): Explicitly parse -dynamic-linker option.
21397
 
21398
2005-01-15  Jakub Jelinek  
21399
 
21400
        PR tree-optimization/19060
21401
        * tree-ssa-dom.c (extract_range_from_cond) :
21402
        Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
21403
        (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
21404
        and handle extract_range_from_cond returning false.
21405
        * fold-const.c (fold): Optimize comparisons with min/max even for
21406
        width > HOST_BITS_PER_WIDE_INT.
21407
 
21408
2005-01-15  Ralf Corsepius  
21409
 
21410
        * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
21411
        * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
21412
        Remove little endian multilib variants.
21413
        Add mips32 multilib variant.
21414
 
21415
2005-01-15  Kazu Hirata  
21416
 
21417
        * explow.c (copy_all_reg, stabilize): Remove.
21418
        * expr.h: Remove the corresponding prototypes.
21419
 
21420
        * rtlanal.c (regs_set_between_p): Remove.
21421
        * rtl.h: Remove the corresponding prototype.
21422
 
21423
2005-01-14  David Edelsohn  
21424
 
21425
        * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
21426
        to rs6000_nonimmediate_operand.
21427
        * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
21428
        rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
21429
        * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
21430
        rs6000_nonimmediate_operand.
21431
        * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
21432
        rs6000_nonimmediate_operand.
21433
 
21434
2005-01-14  Andrew Pinski  
21435
 
21436
        * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
21437
 
21438
2005-01-14  Aldy Hernandez  
21439
 
21440
        * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
21441
        on e500v2.
21442
        (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
21443
        (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
21444
 
21445
        * config/rs6000/rs6000.c (invalid_e500_subreg): New.
21446
        (rs6k_nonimmediate_operand): New.
21447
        (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
21448
        correctly.
21449
        (legitimate_lo_sum_address_p): Same.
21450
        (rs6000_legitimize_address): Same.
21451
        (rs6000_legitimize_reload_address): Same.
21452
        (rs6000_legitimate_address): Same.
21453
        (spe_build_register_parallel): Pass DF and DC modes in a DI
21454
        register.
21455
 
21456
        * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
21457
        to rs6k_nonimmediate_operand.
21458
 
21459
        * config/rs6000/spe.md ("*frob_df_di"): New.
21460
        ("*frob_di_df"): New.
21461
        ("*frob_di_df_2"): New.
21462
        ("*mov_sidf_e500_subreg0"): New.
21463
        ("*mov_sidf_e500_subreg4"): New.
21464
        ("*movdf_e500_double"): Change predicate to
21465
        rs6k_nonimmediate_operand.
21466
 
21467
2005-01-14  Aldy Hernandez  
21468
 
21469
        * postreload.c (move2add_note_store): Only call
21470
        trunc_int_for_mode on scalar integers.
21471
 
21472
2005-01-14  Steven Bosscher  
21473
 
21474
        * tree-ssa-dce.c (visited_control_parents): New sbitmap to
21475
        replace BB_VISITED uses.
21476
        (find_obviously_necessary_stmts): Don't clear BB_VISITED.
21477
        (propagate_necessity): Check the bitmap instead of BB_VISITED.
21478
        (tree_dce_done): Free visited_control_parents.
21479
        (perform_tree_ssa_dce): Allocate and clear it.
21480
        * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
21481
        (compute_antic): Iterate from here using a DFS.  Use an sbitmap
21482
        instead of BB_VISITED.
21483
 
21484
2005-01-14  Kazu Hirata  
21485
 
21486
        * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
21487
        rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
21488
        Remove unused prototypes.
21489
 
21490
2005-01-14  Aldy Hernandez  
21491
 
21492
        * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
21493
        64-bit register usage.
21494
        (spe_func_has_64bit_regs_p): Add FIXME note.
21495
 
21496
2005-01-14  Aldy Hernandez  
21497
 
21498
        * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
21499
        flag_finite_math_only with flag_unsafe_math_optimizations.
21500
 
21501
2005-01-14  J. D. Johnston  
21502
 
21503
        * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
21504
        end-of-stack check.
21505
        (__tpf_eh_return): Copy TPF private stack area from the module
21506
        boundary stack frame.  Add check for when module addresses are
21507
        equal, but no stub address is found.
21508
 
21509
2005-01-14  Richard Earnshaw  
21510
 
21511
        PR target/7525
21512
        * arm.h (struct machine_function): Add call_via field.
21513
        (thumb_call_via_label): Declare.
21514
        * arm.c (thumb_call_via_label): New variable.
21515
        (thumb_call_reg_needed): New variable.
21516
        (arm_output_function_epilogue): For Thumb code, output any per-function
21517
        call-indirect trampolines.
21518
        (thumb_call_via_reg): New function.
21519
        (arm_file_end): New function.
21520
        (TARGET_ASM_FILE_END): Call arm_file_end.
21521
        (aof_file_end): Likewise.
21522
        * arm-protos.h (thumb_call_via_reg): Declare.
21523
        * arm.md (call_reg_thumb, call_value_reg_thumb): Call
21524
        thumb_call_via_reg in normal case.
21525
 
21526
2005-01-14  Jakub Jelinek  
21527
 
21528
        PR middle-end/19084
21529
        PR rtl-optimization/19348
21530
        * recog.c (peephole2_optimize): Do global life update if some peephole
21531
        decides it doesn't need at least one of its inputs and that change
21532
        influences liveness at the start of the basic block.
21533
 
21534
        * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
21535
        arguments instead of 1.
21536
 
21537
2005-01-14  Eric Botcazou  
21538
 
21539
        PR middle-end/18820
21540
        * varasm.c (initializer_constant_valid_p) : Return
21541
        zero for nested functions needing a static chain or functions
21542
        with a non-constant address.
21543
 
21544
2005-01-13  Roger Sayle  
21545
 
21546
        * simplify-rtx.c (simplify_binary_operation) : Optimize
21547
        (and (sign_extend X) C) into (zero_extend (and X C)).
21548
 
21549
2005-01-13  David O'Brien  
21550
 
21551
        * config/freebsd-spec.h:  Make KSE pthread lib logic the default.
21552
 
21553
2005-01-13  Richard Henderson  
21554
 
21555
        PR target/19009
21556
        PR target/19250
21557
        PR target/19252
21558
        * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
21559
        bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
21560
        not just TARGET_SSE.
21561
        (cmpfp_i_387): Rename from cmpfp_i.  Move after sse patterns.
21562
        (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
21563
        (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
21564
        (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
21565
        (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
21566
        (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
21567
        (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
21568
        fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
21569
        (movdicc_c_rex64): Rename with '*'.
21570
        (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
21571
        (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
21572
        (movsfcc_1_387): Rename from movsfcc_1.
21573
        (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
21574
        (movdfcc_1, movdfcc_1_rex64): Add check for 387.
21575
        (sminsf3, smaxsf3, smindf3, smaxdf3): New.
21576
        (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
21577
        mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
21578
        maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
21579
        sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
21580
        sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
21581
        sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
21582
        sse_movdfcc_const0_4): Remove.
21583
        * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
21584
        recognize min/max early.  Update for changed sse cmove patterns.
21585
        (ix86_split_sse_movcc): New.
21586
        * config/i386/i386-protos.h: Update.
21587
 
21588
2005-01-13  Steven Bosscher  
21589
 
21590
        * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
21591
        (fix_stmt_v_may_defs): Likewise.
21592
 
21593
2005-01-13  Richard Henderson  
21594
 
21595
        * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
21596
        for converting the mask.
21597
 
21598
2005-01-13  David Edelsohn  
21599
 
21600
        * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
21601
        definition to 600.
21602
 
21603
2005-01-13  Richard Henderson  
21604
 
21605
        * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
21606
        IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
21607
        IX86_BUILTIN_MOVDQ2Q): Remove.
21608
        (IX86_BUILTIN_VEC_EXT_V4SI): New.
21609
        (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
21610
        (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
21611
        shuffling.
21612
        * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
21613
        (sse2_pextrw): Fix immediate constraint.
21614
        (sse2_loadq, sse2_loadq_rex64): Remove.
21615
        * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
21616
        Use __builtin_ia32_vec_ext_.
21617
        (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi.
21618
 
21619
2005-01-13  Aldy Hernandez  
21620
 
21621
        * function.c (assign_parm_setup_block): Look inside original
21622
        entry_parm when inspecting PARALLEL.
21623
 
21624
2005-01-13  Ralf Corsepius  
21625
            Joel Sherrill  
21626
 
21627
        PR target/19399
21628
        * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
21629
        (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
21630
        rtems_gxx_recursive_mutex_init.
21631
        (__gthread_recursive_mutex_lock): New function.
21632
        (__gthread_recursive_mutex_trylock): Likewise.
21633
        (__gthread_recursive_mutex_unlock): Likewise.
21634
 
21635
2005-01-13  Ralf Corsepius 
21636
 
21637
        * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
21638
 
21639
2005-01-13  Jan Beulich  
21640
 
21641
        * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
21642
        (ashrti3_internal): Indicate output is early clobber. Generate result
21643
        into output rather than first input. Use move for low word of output
21644
        if shift count is exactly 64.
21645
        (lshrti3_internal): Likewise.
21646
 
21647
2005-01-13  Hans-Peter Nilsson  
21648
 
21649
        PR target/18329
21650
        PR target/18330
21651
        * reload1.c (delete_output_reload): Don't delete an output reload
21652
        if the pseudo lives longer than a single basic block.  Adjust and
21653
        improve wording of comment.
21654
 
21655
2005-01-12  Andrew Pinski  
21656
 
21657
        PR target/19334
21658
        * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
21659
        of TYPE_SIZE where we mean the number of bytes.
21660
 
21661
2005-01-12  Aldy Hernandez  
21662
 
21663
        * function.c (assign_parm_setup_block): Relax condition on
21664
        multi-register optimization.
21665
 
21666
2005-01-12  Nick Clifton  
21667
 
21668
        * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
21669
        an "in_delay_slot" attribute of "no" to prevent them being used in
21670
        delay slots.  This is forbidden because they might generate
21671
        exceptions.
21672
 
21673
2005-01-12  Alan Modra  
21674
 
21675
        PR target/19389
21676
        * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
21677
        with r->Y and Y->r.
21678
 
21679
2005-01-12  Nick Clifton  
21680
 
21681
        * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
21682
        passed on to GAS) but do not define, as GAS no longer supports or
21683
        needs the -m2000 option.
21684
 
21685
2005-01-11  Roger Sayle  
21686
 
21687
        * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
21688
        type as args of unprototyped builtins aren't automatically promoted.
21689
        (fold_builtin_abs): Likewise.
21690
 
21691
2005-01-11  Kaveh R. Ghazi  
21692
 
21693
        * Makefile.in: Set a `build-warn' variable.
21694
 
21695
2005-01-11  Zdenek Dvorak  
21696
 
21697
        PR tree-optimization/17949
21698
        * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
21699
        (find_interesting_uses_address): Use it.
21700
 
21701
2005-01-11  Aldy Hernandez  
21702
 
21703
        * regrename.c (kill_value): Handle subreg's that won't simplify.
21704
 
21705
2005-01-11  Richard Henderson  
21706
 
21707
        PR target/13366
21708
        * config/i386/i386.h (enum ix86_builtins): Move ...
21709
        * config/i386/i386.c: ... here.
21710
        (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
21711
        IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
21712
        IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
21713
        IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
21714
        IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD,  IX86_BUILTIN_STOREHPD,
21715
        IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
21716
        IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
21717
        IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
21718
        IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
21719
        IX86_BUILTIN_LOADDDUP): Remove.
21720
        (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
21721
        IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
21722
        IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
21723
        IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
21724
        IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
21725
        (ix86_init_builtins): Make static.
21726
        (ix86_init_mmx_sse_builtins): Update for changed builtins.
21727
        (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
21728
        if all the modes match.  Otherwise, fake it.
21729
        (get_element_number, ix86_expand_vec_init_builtin,
21730
        ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
21731
        (ix86_expand_builtin): Make static.  Update for changed builtins.
21732
        (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
21733
        operand instead of sse2_loadsd.  Cast sse1 fallback to V4SFmode.
21734
        (ix86_expand_vector_init_duplicate): New.
21735
        (ix86_expand_vector_init_low_nonzero): New.
21736
        (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
21737
        Split out from ix86_expand_vector_init; handle integer modes.
21738
        (ix86_expand_vector_init): Use them.
21739
        (ix86_expand_vector_set, ix86_expand_vector_extract): New.
21740
        * config/i386/i386-protos.h: Update.
21741
        * config/i386/predicates.md (reg_or_0_operand): New.
21742
        * config/i386/mmx.md (mov_internal): Add 'r' variants.
21743
        (movv2sf_internal): Likewise.  And a splitter to match them all.
21744
        (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
21745
        vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
21746
        vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
21747
        vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
21748
        (mmx_pinsrw): Fix operand ordering.
21749
        * config/i386/sse.md (movv4sf splitter): Use direct pattern,
21750
        rather than sse_loadss expander.
21751
        (movv2df splitter): Similarly.
21752
        (sse_loadss, sse_loadlss): Remove.
21753
        (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
21754
        (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
21755
        (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
21756
        (sse3_movddup): Rename with '*'.
21757
        (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
21758
        (sse2_loadsd): Remove.
21759
        (vec_dupv2df_sse3): Rename from sse3_loadddup.
21760
        (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
21761
        (sse2_pinsrw): Fix argument ordering.
21762
        (sse2_loadld, sse2_loadq): Add sse1 alternatives.
21763
        (sse2_stored): Remove 'r' destination.
21764
        (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
21765
        vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
21766
        vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
21767
        vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
21768
        vec_extractv16qi, vec_initv16qi): New.
21769
 
21770
        * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
21771
        (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
21772
        _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
21773
        constructor form.
21774
        (_mm_load_pd, _mm_store_pd): Use plain dereference.
21775
        (_mm_load_si128, _mm_store_si128): Likewise.
21776
        (_mm_load1_pd): Use _mm_set1_pd.
21777
        (_mm_load_sd): Use _mm_set_sd.
21778
        (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
21779
        (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
21780
        (_mm_set_epi64): Use _mm_set_epi64x.
21781
        (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
21782
        _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
21783
        _mm_setr_epi8): Use _mm_set_foo form.
21784
        (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
21785
        (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
21786
        (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
21787
        (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
21788
        * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
21789
        (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
21790
        (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
21791
        (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
21792
        (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
21793
        * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
21794
        (_mm_movedup_pd): Use _mm_shuffle_pd.
21795
        * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
21796
        _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
21797
        (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
21798
        _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
21799
        Use _mm_setzero_ps.
21800
        (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
21801
        (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
21802
        (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
21803
        (_mm_store_ps): Use raw dereference.
21804
        (_mm_store1_ps): Use _mm_storeu_ps.
21805
        (_mm_storer_ps): Use _mm_store_ps.
21806
        (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
21807
        (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
21808
 
21809
2005-01-11  Stan Shebs  
21810
 
21811
        * config/rs6000/rs6000.c (machopic_output_stub): Issue
21812
        ldu instead of lwzu if 64-bit -mdynamic-no-pic.
21813
 
21814
2005-01-11  Andrew Pinski  
21815
 
21816
        PR target/18761
21817
        * config/rs6000/rs6000.c (rs6000_special_round_type_align):
21818
        Skip all DECLs except for FIELD_DECLs.
21819
 
21820
2005-01-11  Andreas Krebbel  
21821
 
21822
        * config/s390/s390.c (override_options): Return error if
21823
        -mbackchain, -mpacked-stack and -mhard-float are used together.
21824
        (s390_va_start): Remove the backchain && packed-stack special case.
21825
        (s390_gimplify_va_arg): Likewise.
21826
        * doc/invoke.texi: Remove the ABI incompatibility note.
21827
 
21828
2005-01-11  Andreas Krebbel  
21829
 
21830
        * config/s390/s390.c (struct s390_frame_layout): Remove
21831
        save_backchain_p.
21832
        (s390_frame_info, s390_emit_prologue): Replace occurrences of
21833
        save_backchain_p with TARGET_BACKCHAIN.
21834
 
21835
2005-01-11  Alan Modra  
21836
 
21837
        PR target/18916
21838
        * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
21839
        * expr.h (struct locate_and_pad_arg_data): Add "boundary".
21840
        * function.c (locate_and_pad_parm): Set new field.
21841
        (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
21842
        Tweak where_pad test to include "none".  Always set mem align for
21843
        stack_parm.
21844
        (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
21845
        not sufficient for type.
21846
        (assign_parm_setup_block): If stack_parm is zero on entry, always
21847
        make a new stack local.  Block move old stack parm if necessary
21848
        to new aligned stack local.
21849
        (assign_parm_setup_stack): Use a block move to handle
21850
        potentially misaligned entry_parm.
21851
        (assign_parms_unsplit_complex): Specify required alignment when
21852
        creating stack local.
21853
        * calls.c (compute_argument_addresses): Override alignment of stack
21854
        arg calculated from its type with the alignment given by
21855
        FUNCTION_ARG_BOUNDARY.
21856
        (store_one_arg): Likewise.
21857
 
21858
2005-01-11  Jan Beulich  
21859
 
21860
        * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
21861
        Change respective itanium_class attribute to ialu.
21862
        (shladdp4_internal): New.
21863
        * config/ia64/predicates.md (shladd_log2_operand): New.
21864
 
21865
2005-01-11  Richard Henderson  
21866
 
21867
        * expr.c (store_constructor): Use rtvec_alloc instead of
21868
        alloca+gen_rtvec_v, and an incorrect number passed to alloca.
21869
 
21870
2005-01-11  Kazu Hirata  
21871
 
21872
        * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
21873
 
21874
2005-01-11  Alan Modra  
21875
 
21876
        * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
21877
        * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
21878
        (TARGET_RWRELOC): Define.
21879
        (ia64_rwreloc_section_type_flags): Delete.
21880
        (ia64_section_type_flags): New function.
21881
        * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
21882
        (TARGET_RWRELOC): Define.
21883
 
21884
2005-01-10  David Mosberger  
21885
 
21886
        PR target/18987
21887
        * config/ia64/ia64.c (process_set): For alloc insn, only call
21888
        process_epilogue is !frame_pointer_needed.
21889
 
21890
2005-01-10  Roger Sayle  
21891
 
21892
        PR c++/19355
21893
        * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
21894
        unary operator and can't be treated as a binary/comparison operator.
21895
 
21896
2005-01-10  Richard Henderson  
21897
 
21898
        * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
21899
        (ix86_return_in_memory): Likewise.
21900
        (function_arg_advance):  Likewise.  Mirror structure in function_arg
21901
        for choosing register to advance.
21902
 
21903
2005-01-10  Kazu Hirata  
21904
 
21905
        * tree-vectorizer.c, tree.def: Fix comment typos.
21906
 
21907
2005-01-10  Mark Dettinger  
21908
 
21909
        * config/s390/s390.c (struct processor_costs): 4 new fields:
21910
        ddbr, ddr, debr, der.
21911
        (s390_rtx_costs): More precise handling of divide instructions.
21912
 
21913
2005-01-10  David Edelsohn  
21914
 
21915
        * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
21916
 
21917
2005-01-10  Jan Beulich  
21918
 
21919
        * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
21920
        names resulting from -ffunction-sections/-fdata-sections and linkonce
21921
        ones.
21922
        * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
21923
        based on the section name. Rearrange the section name comparison logic
21924
        slightly so that each section name is compared against at most once.
21925
 
21926
2005-01-10  Ben Elliston  
21927
 
21928
        * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
21929
        targets for which -fPIC reduces limitations on the GOT size.
21930
 
21931
2005-01-09  Falk Hueffner  
21932
 
21933
        * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
21934
        X/C1 cmpop C2.
21935
 
21936
2005-01-09  David Edelsohn  
21937
 
21938
        PR target/18720
21939
        * collect2.c (main): Set aixrtl_flag for -brtl option.
21940
        (resolve_lib_name): Search for .so file extension before .a
21941
        if aixrtl_flag set.
21942
 
21943
2005-01-09  Dorit Naishlos  
21944
 
21945
        * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
21946
        (vect_analyze_data_refs_alignment): Add dump prints.
21947
 
21948
2005-01-09  Ira Rosen  
21949
 
21950
        * tree-vectorizer.c (vect_analyze_offset_expr): Use
21951
        expr_invariant_in_loop_p.
21952
        Initialize outputs first thing in the function.
21953
        (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
21954
        (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
21955
        (vect_analyze_pointer_ref_access): Check that the initial condition of
21956
        the access function is loop invariant.
21957
 
21958
2005-01-09  Richard Henderson  
21959
 
21960
        * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
21961
        (ix86_expand_builtin): Likewise.  Frob MASKMOVQ wrt the input mem
21962
        just like MASKMOVDQU.  Return plain zero for MMX_ZERO.
21963
        * config/i386/i386.md (MMXMODEI, mov,
21964
        mov_internal_rex64, mov_internal, movv2sf,
21965
        movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
21966
        movmisalign, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
21967
        sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
21968
        ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
21969
        mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
21970
        mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
21971
        sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
21972
        mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
21973
        mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
21974
        gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
21975
        ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
21976
        mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
21977
        mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
21978
        mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
21979
        eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
21980
        pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
21981
        pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
21982
        pswapdv2sf2): Move to mmx.md; rename as necessary with leading
21983
        mmx_ prefix.
21984
        (mmx_clrdi, pavgusb): Remove.
21985
        (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
21986
        with leading sse_ prefix.
21987
        * config/i386/sse.md: Receive them.
21988
        * config/i386/mmx.md: New file.
21989
        (MMXMODE12, MMXMODE24, mmxvecsize): New.
21990
        (subrv2sf3): Turn into expander for normal subtraction.
21991
        (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
21992
        mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
21993
        mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
21994
        mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
21995
        commutative; use ix86_binary_operator_ok.
21996
        (mmx_add3, mmx_ssadd3, mmx_usadd3,
21997
        mmx_sub3, mmx_sssub3, mmx_ussub3
21998
        mmx_ashr3, mmx_lshr3, mmx_ashl3
21999
        mmx_eq3, mmx_gt3, mmx_and3,
22000
        mmx_nand3, mmx_ior3, mmx_xor3):
22001
        Macroize from existing patterns; use ix86_binary_operator_ok.
22002
        (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
22003
        (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
22004
        mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise.  Model
22005
        with vec_select+vec_concat.
22006
        (mmx_pshufw, mmx_pshufw_1): Likewise.
22007
        (mmx_uavgv8qi3): Merge pavgusb.  Model correcty.
22008
        (mmx_uavgv4hi3): Model correctly.
22009
        * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
22010
        _mm_xor_si64): Remove casts.
22011
 
22012
2005-01-09  Zdenek Dvorak  
22013
 
22014
        PR tree-optimization/19224
22015
        * tree-scalar-evolution.c (get_instantiated_value,
22016
        set_instantiated_value): New functions.
22017
        (instantiate_parameters_1): Cache the results.
22018
        (instantiate_parameters, resolve_mixers): Initialize and free
22019
        the cache.
22020
 
22021
2005-01-08  David Edelsohn  
22022
 
22023
        * config/i386/i386.md (addhi_4): Correct reference in comment.
22024
        (addqi_4): Same.
22025
 
22026
2005-01-08  Richard Henderson  
22027
 
22028
        * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
22029
        (_mm_cvtsi128_si64x): Likewise.
22030
        (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
22031
        _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
22032
        the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
22033
        * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
22034
        * config/i386/i386-protos.h: Update.
22035
        * config/i386/i386.c (print_operand): Add 'H'.
22036
        (ix86_fixup_binary_operands): Split out from ...
22037
        (ix86_expand_binary_operator): ... here.
22038
        (ix86_fixup_binary_operands_no_copy): New.
22039
        (ix86_expand_fp_absneg_operator): Handle vector mode results.
22040
        (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
22041
        (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
22042
        (safe_vector_operand): Use CONST0_RTX.
22043
        (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
22044
        (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
22045
        CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
22046
        expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
22047
        special cases.
22048
        * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
22049
        (IX86_BUILTIN_CMPNGESS): New.
22050
        * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
22051
        (attr type): Add sselog1.
22052
        (attr unit, attr memory): Handle it.
22053
        (movti, movti_internal, movti_rex64): Move near other integer moves.
22054
        (movtf, movtf_internal): Move near other fp moves.
22055
        (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
22056
        vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
22057
        movv2df, movv2df_internal, mov, mov_internal,
22058
        movmisalign, sse_movups_1, sse_movmskps, sse_movntv4sf,
22059
        sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
22060
        sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
22061
        sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
22062
        mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
22063
        rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
22064
        sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
22065
        sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
22066
        sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
22067
        vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
22068
        smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
22069
        cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
22070
        cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
22071
        vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
22072
        vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
22073
        sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
22074
        sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
22075
        cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
22076
        cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
22077
        cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
22078
        cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
22079
        ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
22080
        subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
22081
        smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
22082
        sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
22083
        sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
22084
        sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
22085
        gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
22086
        ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
22087
        ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
22088
        sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
22089
        sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
22090
        sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
22091
        sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
22092
        sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
22093
        sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
22094
        sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
22095
        mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
22096
        addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
22097
        movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
22098
        non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
22099
        same time.
22100
        (SSEPUSH, push): Remove.
22101
        (MMXPUSH, push): Remove.
22102
        (sse_movaps, sse_movaps_1, sse_movups): Remove.
22103
        (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
22104
        (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
22105
        (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
22106
        (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
22107
        (maskncmpv2df3, vmmaskncmpv2df3): Remove.
22108
        (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
22109
        (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
22110
        * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
22111
        (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
22112
        * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
22113
        (ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
22114
        (ppro_sse_log_V4SF): Handle sselog1.
22115
        * config/i386/predicates.md (const_0_to_1_operand): New.
22116
        (const_0_to_255_mul_8_operand): New.
22117
        (const_1_to_31_operand): Rename from const_int_1_31_operand.
22118
        (const_2_to_3_operand, const_4_to_7_operand): New.
22119
        * config/i386/sse.md: New file.
22120
        (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
22121
        (sse_movups): Rename from sse_movups_1.
22122
        (sse_loadlss): Rename from sse_loadss_1.
22123
        (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
22124
        from the name.
22125
        (negv4sf2): Use ix86_expand_fp_absneg_operator.
22126
        (absv4sf2, negv2df, absv2df): New.
22127
        (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
22128
        (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
22129
        iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
22130
        smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
22131
        umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
22132
        (sse3_addsubv4sf3): Model correctly.
22133
        sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
22134
        sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
22135
        (sse_movhlps): Model with vec_select+vec_concat.
22136
        (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
22137
        sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
22138
        sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
22139
        sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
22140
        sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
22141
        sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
22142
        sse2_pshufhw_1): Likewise.
22143
        (neg2, one_cmpl2): New.
22144
        (add3, sse2_ssadd3, sse2_usadd3,
22145
        sub3, sse2_sssub3, sse2_ussub3,
22146
        ashr3, lshr3, sse2_eq3,
22147
        sse2_gt3, and3, sse_nand3,
22148
        ior3, xor3): Macroize from existing patterns.
22149
        (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
22150
        sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
22151
        mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
22152
        sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
22153
        sminv8hi3): Mark commutative
22154
        operands.  Use ix86_binary_operator_ok.
22155
        (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
22156
        sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
22157
        sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
22158
        sse2_punpcklqdq): Allow operand2 in memory.
22159
        (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
22160
        sse2_movsd): Add memory alternatives.
22161
        (sse_storelps): Turn expander into an insn; split after reload.
22162
        (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
22163
        (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
22164
 
22165
2005-01-08  Eric Botcazou  
22166
 
22167
        * configure.ac (DWARF-2 debug_line): Use objdump.
22168
        * configure: Regenerate.
22169
 
22170
2005-01-08  Jeff Law  
22171
            Diego Novillo  
22172
 
22173
        PR tree-optimization/18241
22174
        * tree-nrv.c (tree_nrv): Ignore volatile return values.
22175
        * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
22176
        statements with volatile operands.
22177
        * tree-ssa-operands.c (add_stmt_operand): Do add volatile
22178
        operands after marking a statement with has_volatile_ops.
22179
 
22180
2005-01-08  Roger Sayle  
22181
 
22182
        * tree.c (int_fits_type_p): Always honor integer constant
22183
        TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
22184
 
22185
2005-01-08  Roger Sayle  
22186
 
22187
        * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
22188
        the latent bug in rtl_delete_block has been resolved.
22189
 
22190
2005-01-08  Richard Sandiford  
22191
 
22192
        * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
22193
        (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
22194
 
22195
2005-01-08  Richard Sandiford  
22196
 
22197
        * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
22198
        library as @multilib_dir@/$(SHLIB_SONAME).
22199
 
22200
2005-01-07  Eric Botcazou  
22201
 
22202
        * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
22203
        * configure: Regenerate.
22204
 
22205
2005-01-07  Jakub Jelinek  
22206
 
22207
        * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
22208
        TYPE_MODE.
22209
 
22210
2005-01-07  David Edelsohn  
22211
 
22212
        PR target/13674
22213
        * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
22214
        Convert non-word aligned offset address using ld/std into
22215
        indirect address.
22216
 
22217
2005-01-07  Richard Henderson  
22218
 
22219
        * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
22220
 
22221
2005-01-07  Richard SAndiford  
22222
 
22223
        * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
22224
 
22225
2005-01-07  Jakub Jelinek  
22226
 
22227
        PR tree-optimization/19283
22228
        * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
22229
        is not shorter than the original type.
22230
 
22231
        PR rtl-optimization/19012
22232
        * config/i386/i386.md (addqi_1_slp): Set memory attribute.
22233
 
22234
        PR rtl-optimization/18861
22235
        * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
22236
        (FULL_STATE): Define.
22237
        (mark_tablejump_edge): New function.
22238
        (purge_dead_tablejump_edges): New function.
22239
        (find_bb_boundaries): Use it.
22240
 
22241
        PR tree-optimization/18828
22242
        * builtins.c (expand_builtin_next_arg): Remove argument and all
22243
        the argument checking.
22244
        (expand_builtin): Adjust caller.
22245
        (expand_builtin_va_start): Likewise.  Remove error for too many
22246
        arguments.
22247
        (fold_builtin_next_arg): Issue error for too many arguments.
22248
        After checking arguments, replace them with magic arguments that
22249
        prevent further checking of the args.
22250
 
22251
2005-01-06  John David Anglin  
22252
 
22253
        * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
22254
 
22255
2005-01-06  Roger Sayle  
22256
 
22257
        PR target/6077
22258
        * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
22259
        and %{.S:...} (and their negative variants) to test whether the
22260
        input file is assembler or pre-processed-assembler independent of
22261
        the actual filename extension.
22262
 
22263
2005-01-06  Roger Sayle  
22264
 
22265
        * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
22266
        of sign or zero extended values.
22267
 
22268
2005-01-06  Geoffrey Keating  
22269
 
22270
        * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
22271
        for IBM long double format correctly.
22272
 
22273
2005-01-06  Daniel Berlin 
22274
 
22275
        Fix PR tree-optimization/18792
22276
 
22277
        * tree-data-ref.c (build_classic_dist_vector): Change first_loop
22278
        to first_loop_depth, and use loop depth instead of loop number.
22279
        (build_classic_dir_vector): Ditto.
22280
        (compute_data_dependences_for_loop): Use depth, not loop number.
22281
        * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
22282
        number. Pass in loops, instead of loop numbers.
22283
        (gather_interchange_stats): Ditto.
22284
        (linear_transform_loops): Ditto.
22285
 
22286
2005-01-06  Richard Sandiford  
22287
 
22288
        PR rtl-opt/13299
22289
        * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
22290
        biv_fits_mode_p, extension_within_bounds_p): New functions.
22291
        (check_ext_dependent_givs): Use them.
22292
 
22293
2005-01-06  Roger Sayle  
22294
 
22295
        * cfgrtl.c (rtl_delete_block): A basic block may be followed by
22296
        more than one barrier, in which case we should delete them all.
22297
 
22298
2005-01-06  Tobias Schlueter  
22299
 
22300
        * gcc.c (process_command): Change year in 'gcc --version' to 2005.
22301
 
22302
2005-01-05  Daniel Berlin  
22303
 
22304
        Fix PR middle-end/19286
22305
        Fix PR debug/19267
22306
        * dwarf2out.c (gen_subprogram_die): If we've already tried to
22307
        output this subprogram, simply ignore this attempt to do it again.
22308
        (add_abstract_origin_attribute): Don't abort trying to add the abstract
22309
        origin attribute if it's not possible.
22310
        (gen_block_die): Don't ignore subblocks of "unused" blocks.
22311
        (decls_for_scope): Ditto.
22312
        * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
22313
        (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
22314
 
22315
2005-01-05  Richard Henderson  
22316
 
22317
        PR target/11327
22318
        * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
22319
        (bdesc_2arg): Use it.
22320
        (ix86_expand_binop_builtin): Force operands into registers
22321
        when optimizing.
22322
        (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
22323
        ix86_expand_sse_compare, ix86_expand_sse_comi,
22324
        ix86_expand_builtin): Likewise.
22325
 
22326
2005-01-05  Richard Henderson  
22327
 
22328
        * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
22329
        and VEC_SELECT.
22330
        * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
22331
        (mulv4hi3): Set itanium_class mmmul.
22332
        (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
22333
        (fpack): Rename from fpack_sfsf.
22334
 
22335
2005-01-05  Richard Henderson  
22336
 
22337
        PR rtl-opt/10692
22338
        * reload1.c (do_input_reload): Restrict the optimization deleteing
22339
        a previous output reload to RELOAD_FOR_INPUT.
22340
 
22341
2005-01-05  Steven Bosscher  
22342
 
22343
        * combine.c (expand_compound_operation)  : Add
22344
        comment that we fall through after case.
22345
        (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
22346
        (distribute_links): Likewise.
22347
        * cse.c (cse_insn): Likewise.
22348
        * cselib.c (cselib_invalidate_mem): Likewise.
22349
        * df.c: Update comments at the top of the file.
22350
        (read_modify_subreg_p): Update comments here too.
22351
        (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
22352
        * flow.c (mark_set_1): Likewise.
22353
        (mark_used_regs): Likewise.
22354
        * gcse.c (mems_conflict_for_gcse_p): Likewise.
22355
        (canon_list_insert): Likewise.
22356
        (mark_set): Likewise.
22357
        (try_replace_reg): Likewise.
22358
        (store_killed_in_insn): Likewise.
22359
        * loop.c (count_one_set): Likewise.
22360
        (basic_induction_var): Likewise.
22361
        * postreload-gcse.c (find_mem_conflicts): Likewise.
22362
        * postreload.c (reload_combine_note_store): Likewise.
22363
        (move2add_note_store): Likewise.
22364
        * reload.c (find_equiv_reg): Likewise.
22365
        (mark_referenced_resources): Likewise.
22366
        * rtlanal.c (set_noop_p): Likewise.
22367
        (note_stores): Likewise.
22368
        (note_uses): Likewise.
22369
        * sched-deps.c (sched_analyze_1): Likewise.
22370
        * sched-rgn.c (check_live_1): Likewise.
22371
        (update_live_1): Likewise.
22372
        * config/i860/i860.c: Likewise.
22373
 
22374
        * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
22375
        an lvalue.
22376
        (ZERO_EXTRACT): Mention that this one can be an lvalue.
22377
 
22378
        * doc/rtl.texi: Update documentation for bit-fields and SET.
22379
 
22380
2005-01-05  Roger Sayle  
22381
 
22382
        * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
22383
 
22384
2005-01-05  Jan Hubicka  
22385
            Richard Henderson  
22386
 
22387
        PR target/18910
22388
        * config/i386/i386.c (ix86_expand_move): Handle tls symbols
22389
        with an offset.
22390
 
22391
2005-01-05  Richard Henderson  
22392
 
22393
        PR target/12902
22394
        * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
22395
        (sse_shufps): Change operand 3 to const_int_operand.
22396
        (sse2_storelps): Fix typo in template.
22397
        (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
22398
        * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
22399
        (ix86_expand_builtin): Likewise.
22400
 
22401
2005-01-05  Julian Brown  
22402
 
22403
        * config/arm/arm.c (arm_return_in_memory): Treat complex types
22404
        as aggregates for AAPCS ABIs.
22405
 
22406
2005-01-05  Stan Shebs  
22407
 
22408
        * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
22409
        Mach-O getters if ppc64.
22410
        * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
22411
        size argument.
22412
        * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
22413
        signed four-byte field for global code case.
22414
        (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
22415
 
22416
2005-01-05  Roger Sayle  
22417
 
22418
        PR middle-end/19100
22419
        * c-common.c: Include real.h.
22420
        (c_common_truthvalue_conversion): Avoid destructively modifying expr.
22421
        Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
22422
        Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
22423
        * Makefile.in (c-common.o): Update dependencies.
22424
 
22425
2005-01-05  Joseph S. Myers  
22426
 
22427
        * c-parse.in (asm_string): Add trailing semicolon.
22428
 
22429
2005-01-05  Joseph S. Myers  
22430
 
22431
        * c-parse.in (asm_string): New.  Don't allow wide strings in
22432
        'asm'.
22433
        (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
22434
        asm_string instead of STRING.
22435
 
22436
2005-01-05  Joseph S. Myers  
22437
 
22438
        * c-typeck.c (constructor_no_implicit): Remove.
22439
        (set_designator, process_init_element): Don't check
22440
        constructor_no_implicit.
22441
 
22442
2005-01-05  J"orn Rennecke 
22443
            Kaz Kojima  
22444
 
22445
        PR target/16482
22446
        * lcm.c (create_pre_exit): New.
22447
        (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
22448
        ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
22449
 
22450
2004-01-05  Richard Earnshaw  
22451
 
22452
        * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
22453
        -msoft-float in target_float_switch.
22454
        * arm.c (arm_override_options): Fix processing of target_float_switch.
22455
 
22456
2004-01-05  Richard Earnshaw  
22457
 
22458
        * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
22459
        preferencing.
22460
 
22461
2004-01-05  Uros Bizjak  
22462
 
22463
        * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
22464
        Replace i387 with 'i386 compiler' in -mfpmath=sse option.
22465
 
22466
2005-01-04  Roger Sayle  
22467
 
22468
        * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
22469
        if deleting the then-block allows the test-block to fallthru to the
22470
        else-block.
22471
 
22472
2005-01-04  Andrew Pinski  
22473
 
22474
        PR c/19152
22475
        * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
22476
        after the full declaration if the are in two different TUs.
22477
 
22478
2005-01-04  Richard Henderson  
22479
 
22480
        PR tree-opt/19158
22481
        * tree-sra.c (generate_one_element_init): Just
22482
        call gimplify_and_add.
22483
        (generate_element_init): Record the
22484
        new referenced variables and mark them for renaming
22485
        and split out to ...
22486
        (generate_element_init_1): This.
22487
        (scalarize_init): Don't call push_gimplify_context/
22488
        pop_gimplify_context.
22489
 
22490
2005-01-04  Geoffrey Keating  
22491
 
22492
        * toplev.c (get_src_pwd): Handle failure of getpwd().
22493
 
22494
2005-01-04  Roger Sayle  
22495
 
22496
        * fold-const.c (fold_single_bit_test): Delete unreachable handling
22497
        of TRUTH_NOT_EXPR.
22498
        (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
22499
        all the cases handled by it are inverted by invert_truthvalue.
22500
 
22501
2005-01-04  Eric Botcazou  
22502
 
22503
        * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
22504
        (save_register_windowsi): Likewise.
22505
 
22506
2005-01-04  Richard Henderson  
22507
 
22508
        * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
22509
 
22510
2005-01-04  Uros Bizjak  
22511
 
22512
        PR middle-end/17767
22513
        * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
22514
        any simplifications of vector mode comparison operators.
22515
        * simplify-rtx.c (simplify_relational_operation): Fix variable name.
22516
 
22517
2005-01-04  Paolo Bonzini  
22518
            Devang Patel  
22519
 
22520
        PR tree-optimization/18308
22521
        * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
22522
        the operands before creating a new expression.
22523
        * dojump.c (do_jump): Make drop_through_label available
22524
        for all cases.  Add expansion of COND_EXPR.
22525
 
22526
2005-01-04  Ira Rosen  
22527
 
22528
        * tree-vectorizer.c (vect_analyze_offset_expr): Test for
22529
        INTEGER_CST instead of TREE_CONSTANT.
22530
        (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
22531
        instead of TREE_CONSTANT.
22532
        (vect_analyze_pointer_ref_access): Test for INTEGER_CST
22533
        instead of TREE_CONSTANT.
22534
 
22535
2005-01-04  Eric Botcazou  
22536
 
22537
        * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
22538
 
22539
2005-01-04  Uros Bizjak  
22540
 
22541
        PR target/19240
22542
        * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
22543
        (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
22544
 
22545
2005-01-03  Richard Henderson  
22546
 
22547
        * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
22548
        (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
22549
        fold_convert_const_real_from_real): Split out from ...
22550
        (fold_convert_const): ... here.
22551
 
22552
2005-01-03  Richard Henderson  
22553
 
22554
        PR target/19235
22555
        * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
22556
        (mov_internal): Likewise.
22557
        (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
22558
        Add V2SF case; use it for SSE1; don't use TI.
22559
        (movdf_integer): Likewise.
22560
        (mov_internal, movti_internal): Force V4SF for SSE1.
22561
 
22562
2005-01-03  Ira Rosen  
22563
 
22564
        * tree-vectorizer.c (vect_strip_conversions): New function.
22565
        (vect_analyze_offset_expr): Call vect_strip_conversions. Add
22566
        check for binary class.
22567
 
22568
2005-01-03  Daniel Berlin  
22569
 
22570
        Fix PR debug/17924
22571
        Fix PR debug/19191
22572
        * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
22573
        is a decl.
22574
        * gimple-low.c (mark_blocks_with_used_vars): New function.
22575
        (mark_blocks_with_used_subblocks): Ditto.
22576
        (mark_used_blocks): Ditto.
22577
        (pass_mark_used_blocks): New pass.
22578
        * tree-inline.c: Include debug.h.
22579
        (expand_call_inline): Call outlining_inline_function here.
22580
        * tree-optimize.c (init_tree_optimization_passes): Add
22581
        pass_mark_used_blocks.
22582
        * tree-pass.h (pass_mark_used_blocks): New.
22583
        * Makefile.in (tree-inline.o): Add debug.h dependency.
22584
 
22585
2005-01-03  Geoffrey Keating  
22586
 
22587
        * config/darwin.c (darwin_handle_weak_import_attribute): Permit
22588
        VAR_DECLs to have weak_import attribute.
22589
 
22590
        * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
22591
        'struct ucontext'.
22592
 
22593
2004-01-03  Steven Bosscher  
22594
 
22595
        * passes.c (rest_of_compilation): Don't run regmove if only
22596
        flag_expensive_optimizations, require flag_regmove instead.
22597
 
22598
2005-01-03  Eric Botcazou  
22599
 
22600
        * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
22601
        register "sparc".
22602
        * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
22603
        * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
22604
        * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
22605
        * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
22606
 
22607
2005-01-03  Richard Henderson  
22608
 
22609
        * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
22610
        (ia64_const_ok_for_letter_p): New.
22611
        (ia64_const_double_ok_for_letter_p): New.
22612
        (ia64_extra_constraint): New.
22613
        (ia64_expand_vecint_compare): New.
22614
        (ia64_expand_vcondu_v2si): New.
22615
        (ia64_expand_vecint_cmov): New.
22616
        (ia64_expand_vecint_minmax): New.
22617
        (ia64_print_operand): Add 'v'.
22618
        (ia64_preferred_reload_class): New.
22619
        (ia64_vector_mode_supported_p): New.
22620
        * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
22621
        (PREFERRED_RELOAD_CLASS): Move to function.
22622
        (CONST_OK_FOR_LETTER_P): Move to function.
22623
        (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
22624
        (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
22625
        (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
22626
        (EXTRA_CONSTRAINT): Move to function.
22627
        * config/ia64/ia64.md: Include vect.md.
22628
        (itanium_class): Add mmalua.
22629
        (type): Handle it.
22630
        * config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
22631
        (1b_mmalua): New.
22632
        * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
22633
        * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
22634
        CONST0_RTX.
22635
        (const_int_2bit_operand): New.
22636
        (fr_reg_or_0_operand): New.
22637
        * config/ia64/ia64-modes.def: Add vector modes.
22638
        * config/ia64/ia64-protos.h: Update.
22639
        * config/ia64/vect.md: New file.
22640
 
22641
2005-01-03  Richard Henderson  
22642
 
22643
        * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
22644
 
22645
2005-01-03  Uros Bizjak  
22646
 
22647
        PR target/19236
22648
        * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
22649
        to SFmode.
22650
        (log1pdf2): Change mode of operands[0,1] to DFmode.
22651
 
22652
2005-01-03  Eric Botcazou  
22653
 
22654
        * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
22655
        * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
22656
        * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
22657
        * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
22658
        SPARC_RELAXED_ORDERING.
22659
 
22660
2005-01-03  Richard Henderson  
22661
            Uros Bizjak  
22662
 
22663
        PR target/14631
22664
        * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
22665
        IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
22666
        * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
22667
        handling.
22668
        (*mmx_pinsrw, *sse2_pinsrw): New patterns.
22669
        * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
22670
        const_pow2_1_to_128_operand): New predicates.
22671
 
22672
2005-01-02  Greg McGary  
22673
 
22674
        * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
22675
        anonymous decls.
22676
        (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
22677
        object.  [ptr_type]: Remove unused variable.
22678
        Remember nearest addressable array-element or record-component
22679
        when checking bitfield components.  Tolerate empty BIND_EXPR.
22680
 
22681
2005-01-01  Richard Henderson  
22682
 
22683
        * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
22684
        that don't narrow the value.  Fail for other conversions.
22685
 
22686
2005-01-01  Richard Henderson  
22687
 
22688
        PR c/19031
22689
        * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
22690
        * c-lang.c (finish_file): Don't do it here.
22691
        * objc/objc-act.c (objc_finish_file): Likewise.
22692
 
22693
        * cgraph.c (decl_assembler_name_equal): New.
22694
        (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
22695
        (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
22696
        * cgraph.h (struct cgraph_varpool_node): Add next.
22697
        (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
22698
        * varasm.c (assemble_alias): Mark the target as needed.
22699
 
22700
2005-01-01  Andrew Pinski  
22701
 
22702
        PR middle-end/19221
22703
        * function.c (get_arg_pointer_save_area): Use entry_of_function
22704
        instead of get_insns.
22705
 
22706
2005-01-01  Roger Sayle  
22707
            Andrew Pinski  
22708
            James E. Wilson  
22709
 
22710
        PR rtl-optimization/12092
22711
        * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
22712
        is zero.
22713
 
22714
2005-01-01  Roger Sayle  
22715
            Olivier Hainque  
22716
 
22717
        * tree.c (int_fits_type_p): A narrower type always fits in a
22718
        wider one, except for negative values into unsigned types.
22719
 
22720
2005-01-01  Roger Sayle  
22721
 
22722
        * tree.c (int_fits_type_p): Compare the result of force_fit_type
22723
        with the original constant rather than require TREE_OVERFLOW.
22724
 
22725
2005-01-01  Steven Bosscher  
22726
 
22727
        PR middle-end/17544
22728
        * c-decl.c (finish_function): If compiling C99, annotate the
22729
        compiler generated return with the current file name and line 0.
22730
        * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
22731
        the source line is greater than 0.
22732
        (remove_bb): Likewise.

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.