]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
configure.ac (TLS assembler check): Do not enable TLS by default on SPARC/Solaris...
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
7935dc1b
EB
12006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2
3 * configure.ac (TLS assembler check): Do not enable TLS by
4 default on SPARC/Solaris before version 10.
5 * configure: Regenerate.
6
8fbe3bb2
DE
72006-02-07 David Edelsohn <edelsohn@gnu.org>
8
9 * doc/invoke.texi (xl-compat): Document conversion and support
10 routine names.
11
2090d6a0
JL
122006-02-07 Jeff Law <law@redhat.com>
13
14 * tree-vrp.c (find_conditional_asserts): Update comments.
15 (simplify_stmt_for_jump_threading): New.
16 (identify_jump_threads, finalize_jump_threads): New.
17 (vrp_finalize): Call identify_jump_threads.
18 (execute_vrp): Call finalize_jump_threads.
19 * tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field.
20 (vrp_element, vrp_data, vrp_element_p): Remove.
21 (vrp_hash_elt, vrp_variables_stack): Remove.
22 (vrp_hash, vrp_eq, record_range): Remove.
23 (simplify_cond_and_lookup_avail_expr): Remove.
24 (extract_range_from_cond): Remove.
25 (thread_across_edge): Relocated into tree-ssa-threadedge.c.
26 (simplify_stmt_for_jump_threading): New.
27 (dom_thread_across_edge): New wrapper.
28 (tree_ssa_dominator_optimize): No longer initialize or
29 finalize any of the VRP datastructures. Remove iteration
30 step and simplify as a result of removal of iteration step.
31 (pass_dominator): Perform a cfg cleanup after DOM.
32 (dom_opt_finalize_block): Use the new common routines
33 for threading jumps. Simplify stack management slightly.
34 No longer need to unwind VRP state.
35 (record_equivalences_from_incoming_edge): No longer record
36 VRP information.
37 (eliminate_redundant_computations): No longer call
38 simplify_cond_and_lookup_avail_expr.
39 * tree-flow.h (potentially_threadable_block): Prototype.
40 (thread_across_edge): Likewise.
41 * Makefile.in (OBJS-common): Add tree-ssa-threadedge.o
42 (tree-ssa-threadedge.o): Add dependencies.
43 * tree-ssa-threadedge.c: New file.
44 * passes.c (init_optimization_passes): Merge PHIs before
45 calling VRP. Run VRP again late in the SSA optimization pipeline.
46
7935dc1b
EB
472006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
48
49 * df-core.c (df_set_blocks): Do not dereference function pointers.
50 (df_finish1): Likewise.
51 (df_hybrid_search_forward): Likewise.
52 (df_hybrid_search_backward): Likewise.
53 (df_iterative_dataflow): Likewise.
54 (df_analyze_problem): Likewise.
55 (df_compact_blocks): Likewise.
56 (df_dump): Likewise.
57 * df-scan.c (df_rescan_blocks): Likewise.
58 (df_record_entry_block_defs): Likewise.
59
60 * genconditions.c (write_conditions): Guard the definition of
61 'insn_conditions' with the check on GCC version.
62 (write_writer): Guard the traversal 'insn_conditions' with
63 the check on GCC version.
64
328654cc
RG
652006-02-07 Richard Guenther <rguenther@suse.de>
66
67 PR c++/26140
68 Revert
69 2006-01-30 Richard Guenther <rguenther@suse.de>
70 PR c++/23372
71 * gimplify.c (gimplify_target_expr): Handle easy cases
72 without creating a temporary.
73
36968131
PS
742006-02-07 Pete Steinmetz <steinmtz@us.ibm.com>
75
76 * sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate
77 use of float in probability computations. Use edge probabilities
78 in place of statically computed probabilities.
79 (min_spec_prob): New static variable.
80 (schedule_insns): Initialize it.
81 (GET_SRC_PROB): Removed.
82 * doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob.
83
a58b0342
AO
842006-02-07 Alexandre Oliva <aoliva@redhat.com>
85
86 PR debug/24444
87 * config/ia64/unwind-ia64.c: Revert last change.
88 * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed.
89 (INCOMING_FRAME_SP_OFFSET): Define.
90
0cc8f5c5
RS
912006-02-06 Roger Sayle <roger@eyesopen.com>
92
93 * config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE.
94
a81083b2
BE
952006-02-07 Ben Elliston <bje@au.ibm.com>
96
97 * config/i386/i386.c (ix86_scalar_mode_supported_p): New.
98 (TARGET_SCALAR_MODE_SUPPORTED_P): Define hook.
99 (classify_argument): Handle SDmode, DDmode, TDmode for 64-bit.
100 (ix86_return_in_memory): Handle TDmode.
101 (ix86_libcall_value): Handle SDmode, DDmode, TDmode.
102 (ix86_value_regno): Return non-TDmode decimal float modes in %eax.
103
1d60e59e
RS
1042006-02-06 Richard Sandiford <richard@codesourcery.com>
105
106 * reorg.c (dbr_schedule): Use dump_file instead of file.
107
5d48891e
SE
1082006-02-06 Steve Ellcey <sje@cup.hp.com>
109
110 PR target/25917
111 * config/ia64/predicates.md (extr_len_operand): New predicate.
112 * config/ia64/ia64.md (extv): Tighten constraints.
113 (extzv): Ditto.
114 (*tbit_and_2): Ditto.
115 (*tbit_and_3): Ditto.
116 (*tbit_or_2): Ditto.
117 (*tbit_or_3): Ditto.
118 (*bit_zero): Ditto.
119 (*bit_one): Ditto.
120
45050557
AP
1212006-02-06 Andrew Pinski <pinskia@physics.uc.edu>
122
123 PR target/23359
124 * config/i386/i386.md (trap): Use ASM_SHORT instead of .word.
125
10d22567
ZD
1262006-02-06 Zdenek Dvorak <dvorakz@suse.cz>
127
128 * tree-vrp.c (execute_vrp): Do not pass dump argument to.
129 loop_optimizer_init and loop_optimizer_finalize
130 * tree-ssa-sink.c (execute_sink_code): Ditto.
131 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
132 * tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init,
133 tree_ssa_loop_done): Ditto.
134 * tree-ssa-pre.c (init_pre, fini_pre): Ditto.
135 * sched-ebb.c: Include output.h.
136 (schedule_ebbs): Do not use dump argument.
137 * value-prof.h (struct profile_hooks): Remove profile_dump_file.
138 * loop.c (loop_dump_stream): Removed.
139 (loop_optimize, rest_of_handle_loop_optimize): Do not use dump
140 argument.
141 (scan_loop, move_movables, find_and_verify_loops, mark_loop_jump,
142 emit_prefetch_instructions, loop_bivs_find, loop_bivs_check,
143 final_biv_value, loop_biv_eliminable_p, loop_givs_rescan,
144 loop_iterations, strength_reduce, record_biv, record_giv,
145 final_giv_value, check_final_value, check_ext_dependent_givs,
146 combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems,
147 try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use
148 dump_file instead of loop_dump_stream.
149 * ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call
150 argument dump_file.
151 * reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use
152 dump argument.
153 * flow.c (life_analysis, rest_of_handle_life): Ditto.
154 * haifa-sched.c: Include output.h
155 (schedule_insns, sched_init): Do not use dump argument.
156 * mode-switching.c (optimize_mode_switching): Ditto.
157 * modulo-sched.c (stats_file): Removed.
158 (print_node_sched_params): Do not call argument dump_file.
159 (sms_schedule_by_order, loop_canon_p, sms_schedule,
160 rest_of_handle_sms): Do not use dump argument. Use dump_file instead
161 of stats_file.
162 * cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not
163 use dump argument.
164 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize,
165 rtl_loop_init, rtl_loop_done): Ditto.
166 * global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
167 * predict.c (combine_predictions_for_bb, tree_estimate_probability):
168 Ditto.
169 * recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto.
170 * lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto.
171 * regmove.c (fixup_match_1, fixup_match_2, regmove_optimize,
172 rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto.
173 * emit-rtl.c (renumber_insns): Ditto.
174 * cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr,
175 expand_gimple_basic_block, tree_expand_cfg): Ditto.
176 * regclass.c (regclass): Ditto.
177 * tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts,
178 remove_ssa_form, rewrite_out_of_ssa): Ditto.
179 * reg-stack.c (compensate_edge, compensate_edges, convert_regs_1,
180 convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs):
181 Ditto.
182 * sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto.
183 * local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file
184 to regclass.
185 * gcse.c (gcse_file, debug_stderr): Removed.
186 (gcse_main, bypass_jumps, rest_of_handle_jump_bypass,
187 rest_of_handle_gcse): Do not use dump argument.
188 (cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets,
189 one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb,
190 pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass,
191 compute_code_hoist_vbeinout, compute_code_hoist_data,
192 one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores,
193 compute_store_table, build_store_vectors, insert_insn_start_bb,
194 insert_store, remove_reachable_equiv_notes, replace_store_insn,
195 store_motion): Use dump_file instead of gcse_file.
196 * ipa-type-escape.c (type_escape_execute): Remove debugging comments.
197 * profile.c (profile_dump_file): Removed.
198 (branch_prob): Use dump_file instead of profile_dump_file.
199 * ipa.c (cgraph_remove_unreachable_nodes): Do not call argument
200 dump_file.
201 * tree-ssa-copy.c (dump_copy_of): Ditto.
202 * rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass
203 dump file to life_analysis.
204 * bt-load.c (branch_target_load_optimize): Ditto.
205 * cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to
206 renumber_insns.
207 * rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs,
208 regclass, dbr_schedule): Declaration changed.
209 * sched-int.h (sched_init): Declaration changed.
210 * tree-profile.c (tree_profile_dump_file): Removed.
211 (tree_profile_hooks): Removed profile_dump_file hook.
212 * rtl-profile (rtl_profile_dump_file): Removed.
213 (rtl_profile_hooks): emoved profile_dump_file hook.
214 * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration
215 changed.
216 * c-gimplify.c (c_genericize): Do not call local variable dump_file.
217 * tree-cfg.c (build_tree_cfg): Ditto.
218 * Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency.
219 * basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm):
220 Declaration changed.
221 * config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to
222 life_analysis and schedule_insns.
223 * config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to
224 life_analysis.
225 * config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to
226 dbr_schedule.
227 * config/mips/mips.c (mips_reorg): Ditto.
228 * config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to
229 schedule_ebbs.
230
7269aee7
AH
2312006-02-06 Aldy Hernandez <aldyh@redhat.com>
232
233 * config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
234 (s390_mangle_fundamental_type): New.
235 * config/s390/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
236 Define.
237
238 * config/alpha/alpha.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
239 (alpha_mangle_fundamental_type): New.
240 * config/alpha/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
241 Define.
242
243 * config/sparc/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
244 Define.
245 * config/sparc/linux64.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
246 Define.
247 * config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
248 (sparc_mangle_fundamental_type): New.
249
da8c4a55
JJ
2502006-02-06 Jakub Jelinek <jakub@redhat.com>
251
252 * config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file.
253 (s390x-*-linux*): Likewise.
254 * config/s390/t-linux64 (SHLIB_MAPFILES): Removed.
255 * config/s390/t-linux: New file.
256
2cea5e8c
BS
2572006-02-02 Bernd Schmidt <bernd.schmidt@analog.com>
258
259 * config/i386/sync.md (sync_add<mode>, sync_sub<mode>, sync_ior<mode>,
260 sync_and<mode>, sync_xor<mode>): Operand 0 is in-out.
261
85300b46
DB
2622006-02-06 Daniel Berlin <dberlin@dberlin.org>
263
264 * tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
265 (ANTIC_SAFE_LOADS): New macro.
266 (find_or_generate_expression): Add prototype.
267 (set_contains_value): Allow null set for sake of not always having
268 to allocate ANTIC_SAFE_LOADS.
269 (phi_translate): Move placement of AGGREGATE_TYPE_P check.
270 Allow COMPONENT_REF too.
271 (valid_in_set): Allow COMPONENT_REF.
272 Check ANTIC_SAFE_LOADS too.
273 (compute_antic_aux): Print out ANTIC_SAFE_LOADS.
274 (compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and
275 rename.
276 (can_PRE_operation): Add COMPONENT_REF.
277 (create_component_ref_by_pieces): New function.
278 (create_expression_by_pieces): Use create_component_ref_by_pieces.
279 (insert_aux): Move AGGREGATE_TYPE_P check here.
280 (compute_avail): Set bb local stmt uids.
281 (pass_pre): Use TODO_update_ssa_only_virtuals.
282
a4a9df5f
BE
2832006-02-06 Ben Elliston <bje@au.ibm.com>
284
285 * configure.ac: Unconditionally disable decimal float by default.
286 * configure: Regenerate.
287
b84d6ae9
BE
2882006-02-06 Ben Elliston <bje@au.ibm.com>
289
290 * read-rtl.c (read_name): Terminate reading on EOF.
291
2922006-02-06 Ben Elliston <bje@au.ibm.com>
0b59f49d
BE
293
294 * dfp.c (decimal_real_arithmetic): Change second argument type
295 from int to enum tree_code. Do not always return true, but now
296 return result of any call to decimal_do helper functions.
297 * dfp.h (decimal_real_arithmetic): Update prototype.
298
71ab8de8
EB
2992006-02-05 Eric Botcazou <ebotcazou@libertysurf.fr>
300
301 * config/sparc/sol2-bi.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDMID.
302
cea0f4f1
AP
3032006-02-05 Andrew Pinski <pinskia@physics.uc.edu>
304
305 PR tree-opt/25251
306 * tree-cfg.c (cleanup_dead_labels): Also don't remove
307 forced labels.
308
d78f3f78
ZD
3092006-02-04 Zdenek Dvorak <dvorakz@suse.cz>
310
311 * tree-vrp.c (cfg_loops): Removed.
312 (adjust_range_with_scev, vrp_visit_assignment, execute_vrp):
313 Use current_loops instead of cfg_loops. Pass flags to
314 loop_optimizer_init.
315 * cfgloopmanip.c (fix_loop_structure): Update only available
316 information.
317 * tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to
318 loop_optimizer_init.
319 * modulo-sched.c (build_loops_structure): Removed.
320 (sms_schedule): Use loop_optimizer_init.
321 * loop-init.c (loop_optimizer_init): Use flags to determine
322 which properties of loops to prepare.
323 (rtl_loop_init): Pass flags to loop_optimizer_init.
324 * tree-ssa-sink.c (execute_sink_code): Ditto.
325 * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
326 * tree-ssa-pre.c (init_pre): Ditto.
327 * cfgloop.h (LOOPS_NORMAL): New.
328 (loop_optimizer_init): Declaration changed.
329
5a1a4450
JDA
3302006-02-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
331
332 * pa/x-ada-hpux10, pa/t-pa-hpux10, pa/t-pa-hpux11: New files.
333 * config.gcc (hppa[12]*-*-hpux10*): Use pa/t-pa-hpux10 instead of
334 pa/t-pa.
335 * config.gcc (hppa[12]*-*-hpux11*): Use pa/t-pa-hpux11 instead of
336 pa/t-pa.
337 * config.host (hppa*-*-hpux10*): Use pa/x-ada-hpux10 instead of
338 pa/x-ada.
339 * pa/t-pa-hpux: Add lib2funcs.asm and quadlib.c rules.
340 * pa/t-pa64: Delete quadlib.c rule.
341 * pa/x-ada: Revert last change.
342 * pa/t-pa: Revert last change. Delete quadlib.c rule.
343
569f8d98
ZD
3442006-02-04 Zdenek Dvorak <dvorakz@suse.cz>
345
346 PR rtl-optimization/26087
347 * rtlanal.c (canonicalize_condition): Do not cross basic block
348 boundaries.
349
658f32fd
AO
3502006-02-04 Alexandre Oliva <aoliva@redhat.com>
351
352 PR debug/24444
353 * config/ia64/ia64.c: Include debug.h.
354 (MAX_ARTIFICIAL_LABEL_BYTES): New.
355 (ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New.
356 (IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0.
357 (process_epilogue, process_set, process_for_unwind_directive):
358 Output unwind info only if requested. Add CFA info if requested.
359 Add new arguments as needed. Adjust callers.
360 * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override
361 incorrect default.
362 (DWARF2_FRAME_INFO): Define to zero.
363 * config/ia64/unwind-ia64.c: Remove code that compensated for
364 the CFA offset error fixed above.
365 * config/ia64/t-ia64 (ia64.o): Depend on debug.h.
366 * dwarf2out.c (DWARF2_FRAME_INFO): Define default.
367 (dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for
368 -funwind-tables and -fexceptions to enable frame info.
369 (dwarf2out_frame_init): Define initial CFA even if
370 DWARF2_UNWIND_INFO is disabled. Call initial_return_save if
371 DWARF2_UNWIND_INFO is nonzero, not just defined.
372 (dwarf2out_frame_finish): Output non-EH call frame info only
373 if DWARF2_FRAME_INFO is nonzero.
374 (convert_cfa_to_loc_list,
375 compute_frame_pointer_to_cfa_displacement): Define even if
376 unwind info is not supported.
377 (gen_subprogram_die): Use the above unconditionally. Remove
378 legacy alternate code.
379 * toplev.c (compile_file): Compile in call to
380 dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined.
381 (lang_dependent_init): Ditto for dwarf2out_frame_init.
382
337bde91
DE
3832006-02-04 David Edelsohn <edelsohn@gnu.org>
384 Jakub Jelinek <jakub@redhat.com>
385
386 * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle
387 IBM extended float format long double as "g" on powerpc*-linux.
388
3df6582b
JDA
3892006-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
390
391 PR target/25926
392 * pa/x-ada (X_ADA_CFLAGS): Define _X_HPUX10 on HP-UX 10.
393 * pa/t-pa (TARGET_LIBGCC2_CFLAGS): Define _T_HPUX10 on HP-UX 10.
394
9b43c474
JM
3952006-02-03 Jason Merrill <jason@redhat.com>
396
397 PR c++/25979
398 * gimplify.c (gimplify_modify_expr_rhs): Disable *& optimization for now.
399
400 PR middle-end/25977
401 * gimplify.c (gimplify_modify_expr_rhs): It's not always safe to do RVO
402 on the return slot if it's an NRV.
403
50cc9802
ZD
4042006-02-03 Zdenek Dvorak <dvorakz@suse.cz>
405
406 * tree-ssa-loop-ivopts.c (enum use_type): Remove USE_OUTER.
407 (dump_use, add_derived_ivs_candidates, determine_use_iv_cost,
408 rewrite_use): Do not handle USE_OUTER.
409 (find_interesting_uses_outer_or_nonlin, find_interesting_uses_outer,
410 add_iv_outer_candidates, may_replace_final_value,
411 determine_use_iv_cost_outer, rewrite_use_outer): Removed.
412 (find_interesting_uses_op): Functionality of
413 find_interesting_uses_outer_or_nonlin moved here.
414 (find_interesting_uses_outside): Use find_interesting_uses_op.
415
4a6c754b
AM
4162006-02-03 Alan Modra <amodra@bigpond.net.au>
417
418 PR target/25960
419 * config/rs6000/darwin-ldouble.c (__gcc_qadd): Preserve -0.0 result.
420
f61a2c7d 4212006-02-03 Andreas Krebbel <krebbel1@de.ibm.com>
50cc9802 422 Ulrich Weigand <uweigand@de.ibm.com>
f61a2c7d
AK
423
424 PR target/25864
425 * config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
426 "x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
427 * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
428 * config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
429 and dxr fields.
430 (z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
431 (s390_rtx_costs): Use the new fields to calculate rtx costs.
432 (s390_secondary_input_reload_class, s390_secondary_output_reload_class):
433 Define secondary reloads for TFmode moves.
434 (constant_modes): Add TFmode.
435 (NR_C_MODES): Set to 8.
436 * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
437 builtin define.
438 (LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
439 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
440 (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
441 CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
442 * config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
443 fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
444 (FPR mode macro): Add TFmode.
445 (DSF mode macro): New.
446 (<de>, <dee> mode attributes): Removed.
447 (<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
448 ("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
449 "*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
450 "floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
451 "*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
452 "*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
453 "*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
454 "*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
455 "*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
456 "*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
457 "*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
458 "*negabs<mode>2", "sqrt<mode>2"):
459 Changed <de> to <xde>. R constraint replaced by <Rf>.
460 ("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
461 <Rf>.
462 ("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
463 ("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
464 ("*movtf_64", "*movtf_31"): New insn definitions followed by 5
465 splitters.
466 ("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
467 "extenddftf2", "extendsftf2"): New expanders.
468 ("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
469 "*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
470 "*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
471 * config/s390/s390.opt (mlong-double-128, mlong-double-64):
472 New options.
473 * config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
474 * config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
475 __fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
476 __floatditf): Add a GCC_4.1.0 symbol version tag.
477 * doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
478 the new options.
479
010ef110
AP
4802006-02-02 Andrew Pinski <pinskia@physics.uc.edu>
481
482 PR target/25377
483 * config/i386/i386.c (ix86_function_ok_for_sibcall):
484 Use targetm.binds_local_p instead of TREE_PUBLIC.
485
05fa7d54
RS
4862006-02-02 Roger Sayle <roger@eyesopen.com>
487
488 * tree.h (TYPE_STRING_FLAG): Document that this field may be used
489 on INTEGER_TYPEs to indicate that it denotes a character type.
490 * tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on
491 signed_char_type_node, unsigned_char_type_node and char_type_node.
492 * dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to
493 INTEGER_TYPE. Use TYPE_STRING_FLAG to decide whether to emit
494 a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed.
495
016925bc
ZD
4962006-02-02 Zdenek Dvorak <dvorakz@suse.cz>
497 Daniel Berlin <dberlin@dberlin.org>
498
499 * tree-tailcall.c (arg_needs_copy_p): New function.
500 (eliminate_tail_call): Use arg_needs_copy_p.
501 (tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis.
502 (add_virtual_phis): New function.
503
392e5756
JJ
5042006-02-02 Jakub Jelinek <jakub@redhat.com>
505
506 * config/sparc/sparc.c (sparc_output_scratch_registers): Use
507 #ignore instead of #scratch for %g7 .register directive.
508
f767d794
AT
5092006-02-02 Andreas Tobler <a.tobler@schweiz.ch>
510
511 * config/sparc/freebsd.h (ENDFILE_SPEC): Add space to separate
512 object files.
513
14b9dd55
BS
5142006-02-02 Bernd Schmidt <bernd.schmidt@analog.com>
515
516 * flow.c (calculate_global_regs_live): Assert that there aren't any
517 EDGE_FAKE edges.
518
35771d34
PB
5192006-02-02 Paolo Bonzini <bonzini@gnu.org>
520
521 * tree-flow-inline.h (bsi_after_labels): Rewrite, return
522 what its name says.
523 * lambda-code.c (perfect_nestify): Use bsi_insert_before on
524 bsi_after_labels iterator.
525 * tree-if-conv.c (find_phi_replacement_condition,
526 replace_phi_with_cond_modify_expr): Likewise.
527 * tree-scalar-evolution.c (scev_const_prop): Likewise.
528 * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Likewise.
529
8843c120
DN
5302006-02-02 Diego Novillo <dnovillo@redhat.com>
531
532 * tree-inline.c (copy_tree_r): Also copy OMP_CLAUSE nodes.
533
728b26bb
DN
5342006-02-02 Diego Novillo <dnovillo@redhat.com>
535
536 PR 25990
537 * tree-cfg.c (move_block_to_fn): Clear out the basic block
538 array after growing it.
539
3f7f53c7
SE
5402006-02-01 Steve Ellcey <sje@cup.hp.com>
541
542 PR middle-end/24901
543 * fold-const.c (fold_checksum_tree): Change type of buf.
544
65b4c337
BS
5452006-02-01 Bernd Schmidt <bernd.schmidt@analog.com>
546
547 * reload.c (push_secondary_reload): Initialize t_icode.
548
ca7242fc
JJ
5492006-02-01 Jakub Jelinek <jakub@redhat.com>
550
551 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For
552 -msoft-float -mlong-double-128 only issue a warning, but don't
553 swich to DFmode long double.
554
08678f51
HPN
5552006-02-01 Hans-Peter Nilsson <hp@axis.com>
556
557 * cse.c (fold_rtx) <case RTX_COMM_COMPARE, RTX_COMPARE>: When arg1
558 has a constant equivalent, iterate over equivalents for arg0,
559 calling simplify_relational_operation and if there's a result
560 cheaper than X, apply fold_rtx and return the result.
561
46fd0f8c
JH
5622006-02-01 Jan Hubicka <jh@suse.cz>
563
564 * opts.c (no_unit_at_a_time_default): New global variable.
565 (decode_options): Use it.
566 * opts.h (no_unit_at_a_time_default): Declare.
567
3f9e6aed
PB
5682006-02-01 Paul Brook <paul@codesourcery.com>
569
570 * function.c (assign_parm_setup_reg): Use function argument promotion
571 rules.
572 * expr.c (expand_expr_real_1): Use function argument promotion rules
573 for PARM_DECLs.
574
1832d326
SE
5752006-02-01 Steve Ellcey <sje@cup.hp.com>
576
577 * gcc.c (process_command): Change j to 'unsigned int'.
578
f51a281b
AP
5792006-01-31 Andrew Pinski <pinskia@physics.uc.edu>
580
581 PR middle-end/26001
582 * expr.c (expand_expr_real_1) <case ARRAY_REF>:
583 Use the corrected index for the character
584 out of the string constant.
585
60ec1aa4
AP
5862006-01-31 Andrew Pinski <pinskia@physics.uc.edu>
587
588 * mode-switching.c (optimize_mode_switching): Fix size
589 allocated for bb_info[n_entities].
590
d900f77d
AP
5912006-01-31 Andrew Pinski <pinskia@physics.uc.edu>
592
593 * gcc.c (main): Correct type that is allocated for
594 explicit_link_files.
595
44d64274
JJ
5962006-01-31 Jakub Jelinek <jakub@redhat.com>
597
598 * config/s390/s390.c (init_alignment_context): Set
599 ALIAS_SET_MEMORY_BARRIER on the MEM.
600 * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Likewise.
601
b6cdba27
UP
6022006-01-31 Uttam Pawar <uttamp@us.ibm.com>
603
604 PR middle-end/25933
605 * loop-unroll.c (unroll_loop_runtime_iterations): Free
606 dom_bbs pointer.
607 * tree-ssa-live.c (type_var_init): Allocate bitmap after
608 call to tpa_init.
609
5ed6ace5
MD
6102006-01-31 Marcin Dalecki <martin@dalecki.de>
611
612 * tree-vrp.c: Use XNEW/XCNEW allocation wrappers.
613 * regrename.c: Ditto.
614 * tree-ssa-loop-im.c: Ditto.
615 * tree-dump.c: Ditto.
616 * tree-complex.c: Ditto.
617 * genrecog.c: Ditto.
618 * tree-ssa-threadupdate.c: Ditto.
619 * tracer.c: Ditto.
620 * java/class.c: Ditto.
621 * java/jcf-parse.c: Ditto.
622 * java/resource.c: Ditto.
623 * java/except.c: Ditto.
624 * java/jvspec.c: Ditto.
625 * java/jcf-write.c: Ditto.
626 * java/jcf-path.c: Ditto.
627 * java/gjavah.c: Ditto.
628 * java/zextract.c: Ditto.
629 * java/jcf-io.c: Ditto.
630 * java/jcf.h: Ditto.
631 * java/buffer.c: Ditto.
632 * java/lang.c: Ditto.
633 * java/parse-scan.y: Ditto.
634 * java/lex.c: Ditto.
635 * java/lex.h: Ditto.
636 * cfgloopmanip.c: Ditto.
637 * postreload-gcse.c: Ditto.
638 * tree-ssa-loop-manip.c: Ditto.
639 * postreload.c: Ditto.
640 * tree-ssa-loop-ch.c: Ditto.
641 * loop.c: Ditto.
642 * ipa-cp.c: Ditto.
643 * cppspec.c: Ditto.
644 * diagnostic.c: Ditto.
645 * final.c: Ditto.
646 * genoutput.c: Ditto.
647 * gcc.c: Ditto.
648 * cfghooks.c: Ditto.
649 * cfgloopanal.c: Ditto.
650 * objc/objc-act.c: Ditto.
651 * gcov.c: Ditto.
652 * genextract.c: Ditto.
653 * genautomata.c: Ditto.
654 * pretty-print.c: Ditto.
655 * genemit.c: Ditto.
656 * cgraphunit.c: Ditto.
657 * flow.c: Ditto.
658 * df-scan.c: Ditto.
659 * haifa-sched.c: Ditto.
660 * dominance.c: Ditto.
661 * dbxout.c: Ditto.
662 * tree-ssa-loop-ivopts.c: Ditto.
663 * df-core.c: Ditto.
664 * mode-switching.c: Ditto.
665 * modulo-sched.c: Ditto.
666 * graph.c: Ditto.
667 * ipa-pure-const.c: Ditto.
668 * cse.c: Ditto.
669 * fix-header.c: Ditto.
670 * web.c: Ditto.
671 * tree-stdarg.c: Ditto.
672 * ipa-utils.c: Ditto.
673 * loop-init.c: Ditto.
674 * ipa-inline.c: Ditto.
675 * cfganal.c: Ditto.
676 * global.c: Ditto.
677 * alloc-pool.c: Ditto.
678 * dwarf2out.c: Ditto.
679 * opts.c: Ditto.
680 * genattrtab.c: Ditto.
681 * tree-ssa-loop-ivcanon.c: Ditto.
682 * predict.c: Ditto.
683 * timevar.c: Ditto.
684 * lcm.c: Ditto.
685 * fortran/gfortranspec.c: Ditto.
686 * regmove.c: Ditto.
687 * local-alloc.c: Ditto.
688 * langhooks.c: Ditto.
689 * function.c: Ditto.
690 * tree-vectorizer.c: Ditto.
691 * gcse.c: Ditto.
692 * ipa-type-escape.c: Ditto.
693 * alias.c: Ditto.
694 * tree-if-conv.c: Ditto.
695 * profile.c: Ditto.
696 * ipa.c: Ditto.
697 * tree-data-ref.c: Ditto.
698 * loop-unroll.c: Ditto.
699 * treelang/treetree.c: Ditto.
700 * calls.c: Ditto.
701 * bt-load.c: Ditto.
702 * ggc-common.c: Ditto.
703 * except.c: Ditto.
704 * coverage.c: Ditto.
705 * cselib.c: Ditto.
706 * tree-cfgcleanup.c: Ditto.
707 * tree-ssa-pre.c: Ditto.
708 * cfgcleanup.c: Ditto.
709 * loop-invariant.c: Ditto.
710 * loop-iv.c: Ditto.
711 * ipa-prop.c: Ditto.
712 * print-tree.c: Ditto.
713 * conflict.c: Ditto.
714 * ggc-page.c: Ditto.
715 * sched-deps.c: Ditto.
716 * regclass.c: Ditto.
717 * tree-object-size.c: Ditto.
718 * combine.c: Ditto.
719 * bb-reorder.c: Ditto.
720 * resource.c: Ditto.
721 * var-tracking.c: Ditto.
722 * cfgloop.c: Ditto.
723 * df-problems.c: Ditto.
724 * reg-stack.c: Ditto.
725 * tlink.c: Ditto.
726 * gccspec.c: Ditto.
727 * sched-rgn.c: Ditto.
728 * tree-ssa-structalias.c: Ditto.
729 * tree-ssa-reassoc.c: Ditto.
730 * config/darwin-c.c: Ditto.
731 * config/darwin.c: Ditto.
732 * config/arm/arm.c: Ditto.
733 * cfgrtl.c: Ditto.
734 * collect2.c: Ditto.
735 * reload1.c: Ditto.
736
0cb381f0
NP
7372006-01-31 Nicolas Pitre <nico@cam.org>
738
739 * arm.md (smaxsi3): Make aware of smax_m1.
740 (smax_m1): New.
741
aa2192f8
NS
7422006-01-31 Nathan Sidwell <nathan@codesourcery.com>
743
744 * gcc/config/m68k/lb1sf68.asm: Use moveq to load small constants.
745
ee963181
RG
7462006-01-31 Richard Guenther <rguenther@suse.de>
747
748 * doc/invoke.texi (-msselibm): Document.
749 * target.h (expand_library_builtin): New target hook.
750 * builtins.c (expand_builtin): Use expand_library_builtin.
751 (default_expand_library_builtin): New function.
752 * gcc.c (LINK_GCC_MATH_SPEC): Define.
753 (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
754 (link_gcc_math_spec): Declare.
755 (static_specs): Add link_gcc_math_spec.
756 * expr.h (default_expand_library_builtin): Declare.
757 * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
758 (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
759 * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
760 * config/i386/i386.opt (msselibm): New target option.
761 * config/i386/i386.c (ix86_builtin_function_variants): New array.
762 (ix86_init_sse_abi_builtins): New function.
763 (ix86_expand_library_builtin): Likewise.
764 (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
765 (override_options): Handle error conditions wrt -msselibm.
766 (ix86_builtins): Add function codes for SSE2 ABI builtins.
767 (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
768 * doc/extend.texi (__builtin_sse2_*): Document new target specific
769 builtins.
770
0058967b
RG
7712006-01-31 Richard Guenther <rguenther@suse.de>
772 Paolo Bonzini <bonzini@gnu.org>
773
774 * doc/install.texi (--disable-libgcc-math): Document.
775
84217346
MD
7762006-01-30 Marcin Dalecki <martin@dalecki.de>
777
778 * expr.h (expand_normal): new inline function.
779 * builtins.c: use it, use EXPAND_NORMAL explicitely.
780 * dojump.c: use it.
781 * dwarf2out.c: use it.
782 * expr.c: use it.
783 * calls.c: use it.
784 * expmed.c: use it.
785 * except.c: use it.
786 * config/sparc/sparc.c: use it.
787 * config/i386/i386.c: use it.
788 * config/rs6000/rs6000.c: use it.
789 * config/arm/arm.c: use it.
790 * config/mips/mips.c: use it.
791 * stmt.c: use it, use EXPAND_NORMAL explicitely.
792
4536bcac
RS
7932006-01-30 Roger Sayle <roger@eyesopen.com>
794
795 * config/i386/cygwin.h (GCC_DRIVER_HOST_INITIALIZATION): Cast
796 argv to the appropriate type.
797
b729952b
ZD
7982006-01-30 Zdenek Dvorak <dvorakz@suse.cz>
799
800 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove
801 unreachable code.
802
3cd045d1
UW
8032006-01-30 Ulrich Weigand <uweigand@de.ibm.com>
804
805 PR target/26018
806 * config/s390/s390.c (struct machine_function): New flag
807 decomposed_literal_pool_addresses_ok_p.
808 (s390_reorg): Set it before final stage of literal pool transforms.
809 (s390_decompose_address): Only accept displacements of the form
810 (minus (label_ref ...) (label_ref ...)) if that flag is set.
811
f34312c2
CD
8122006-01-30 Carlos O'Donell <carlos@codesourcery.com>
813
814 * optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias
815 the comparison routine return.
816
b39f98f9
MM
8172006-01-30 Michael Matz <matz@suse.de>
818
819 * global.c (find_reg): Only evict for global regs.
820 Take n_refs into account and dump more info.
821
a6ab9fc0
R
8222006-01-30 J"orn Rennecke <joern.rennecke@st.com>
823
824 PR target/14798:
825 * sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
826 (pragma_trap, pragma_nosave_low_regs): Likewise.
827 (current_function_anonymous_args): Likewise.
828 (sh_deferred_function_attributes): New variable.
829 (sh_deferred_function_attributes_tail): Likewise.
830 (print_operand): For '@', look up trap_exit attribute.
831 (calc_live_regs): Look up trapa_handler attribute. For trapa
832 handlers, save/restore fpscr, but don't do any other
833 interrupt-specific saves.
834 Don't save r0..r7 if the nosave_low_regs attribute is in effect.
835 Fix check for partially saved registers to check for SHmedia.
836 (sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
837 (sh_output_function_epilogue): Don't clear any of the removed
838 variables.
839 (sh_insert_attributes): Don't check pragma_interrupt.
840 Insert deferred attributes. Check that interrupt attribute is
841 present for other attributes that require its presence.
842 (sh_attribute_table): Add new attributes trapa_handler and
843 nosave_low_regs.
844 (sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
845 Don't check for pragma_interrupt. Don't store argument.
846 * sh.h (pragma_interrupt, sp_switch): Don't declare.
847 (sh_deferred_function_attributes): Declare.
848 (sh_deferred_function_attributes_tail): Likewise.
849 * sh.md (sp_switch_1): Add operand. Change generator caller.
850 (sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
851 (*return_i): Don't use when trap_exit attribute is in effect.
852 (*return_trapa): New insn pattern.
853 * sh-c.c: New file.
854 * config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
855 setting c_target_objs and cxx_target_objs.
856 * t-sh: Add rule for sh-c.o.
857
eb73a69a
RG
8582006-01-30 Richard Guenther <rguenther@suse.de>
859
860 PR c++/23372
861 * gimplify.c (gimplify_target_expr): Handle easy cases
862 without creating a temporary.
863
4e852d1f
NS
8642006-01-30 Nathan Sidwell <nathan@codesourcery.com>
865
866 * vec.h (safe_grow): Remove duplicated line.
867
8d9c1aec
DN
8682006-01-29 Diego Novillo <dnovillo@redhat.com>
869
870 PR 25874
871 * omp-low.c (execute_expand_omp): Move CFG cleanup code ...
872 (expand_omp): ... here.
873 (expand_omp_parallel): Only remove barriers for combined
874 parallel+workshare constructs.
875
3f0dc66b
EB
8762006-01-29 Eric Botcazou <ebotcazou@adacore.com>
877
878 Revert
879
880 2005-11-09 Eric Botcazou <ebotcazou@adacore.com>
881 * tree.c (build_qualified_type): Chain the new type to the original
882 type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
883 a POINTER_TYPE or a REFERENCE_TYPE respectively.
884 (build_pointer_type_for_mode): Only return unqualified types.
885 (build_reference_type_for_mode): Likewise.
886
373477bb
GDR
8872006-01-29 Gabriel Dos Reis <gdr@integgrable-solutions.net>
888
889 * configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported.
890 * Makefile.in (CXX_COMPAT_WARN): Define.
891 * configure: Regenerate.
892
b3130586
DN
8932006-01-29 Dorit Nuzman <dorit@il.ibm.com>
894
895 PR tree-opt/25911
896 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert
897 to an if check.
898
aa994333
GDR
8992006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
900
901 * toplev.c: Fix thinko.
902
a8a4fe0c
GDR
9032006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
904 Marcin Dalecki <martin@dalecki.de>
905
906 * toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
907 (push_srcloc): Use XNEW.
908 (init_asm_output, default_get_pch_validity): Use XNEWVEC.
909
2cc9c3a0
KZ
9102006-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
911
912 * df-core.c (df_set_blocks): Deleted all variable.
913
21c4a6a7
ILT
9142006-01-28 Ian Lance Taylor <ian@airs.com>
915
916 * cgraphunit.c (cgraph_assemble_pending_functions): Call
917 cgraph_output_pending_asms.
918
89a42ac8
ZW
9192006-01-28 Zack Weinberg <zackw@panix.com>
920
921 * c.opt: Add -W(no-)overlength-strings.
922 * doc/invoke.texi: Document it.
923 * c-opts.c (c_common_handle_option): -pedantic implies
924 -Woverlength-strings, if not explicitly disabled already.
925 (c_common_post_options): -Woverlength-strings defaults to off, and
926 is always off for C++.
927 * c-common.c (fix_string_type): Issue warning about strings longer
928 than is portable only if warn_overlength_strings. Rearrange code
929 a little for clarity.
930 * configure.in: Check for -Wno-overlength-strings as well before
931 enabling -pedantic in stage 1.
932 * Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
933 (gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
934
935 * genconditions.c (write_header, write_one_condition)
936 (write_conditions, write_writer): Consolidate very long strings
937 that were broken up to fit in C89 portable limit. Don't use
938 printf when fputs will do.
939
1e84b34e
AN
9402006-01-28 Adam Nemet <anemet@caviumnetworks.com>
941
942 * combine.c (simplify_comparison <AND>): Check
943 TRULY_NOOP_TRUNCATION before start using a subreg.
89a42ac8
ZW
944
945 * config/mips/mips.md (*branch_zero<mode>,
946 *branch_zero<mode>_inverted, *branch_equality<mode>,
947 *branch_equality<mode>_inverted, *branch_equality<mode>_mips16):
948 Remove mode check from comparisons.
1e84b34e 949
3dcf4d30
KZ
9502006-01-28 Kenneth Zadeck <zadeck@naturalbridge.com>
951
952 * config/mips/mips-protos.h (mips_set_live_on_entry): Deleted.
953
b79de014
KH
9542006-01-28 Kazu Hirata <kazu@codesourcery.com>
955
956 * expmed.c (const_mult_add_overflow_p): Remove.
957 * expr.h: Remove the prototype for const_mult_add_overflow_p.
958
4b5ddfbe
KH
959 * recog.c (validate_replace_rtx_subexp): Remove.
960 * recog.h: Remove the prototype for
961 validate_replace_rtx_subexp.
962
3e9ba9d6
KH
963 * integrate.h: Remove the prototype for
964 copy_decl_for_inlining.
965 * rtl.h: Remove the prototype for mark_constant_function.
966 * tree-vectorizer.h: Remove the prototype for
967 vect_strip_conversion.
968
5f1f4746
KH
969 * modulo-sched.c (create_partial_schedule,
970 free_partial_schedule, reset_partial_schedule): Make them
971 static.
972
7b2352d9
KH
973 * hooks.c (hook_bool_rtx_int_false): Remove.
974 * hooks.h: Remove the prototype for hook_bool_rtx_int_false.
975
3d538bae
DE
9762006-01-28 David Edelsohn <edelsohn@gnu.org>
977
978 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
979 and -mlong-double-128 are incompatible.
980 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
981 * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
982 (TARGET_LIBGCC2_CFLAGS): Define.
983 * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same.
984 (TARGET_LIBGCC2_CFLAGS): Same.
985 * config/rs6000/ppc64-fp.c: Compile for 64-bit AIX.
986
e6620e86
KH
9872006-01-28 Kazu Hirata <kazu@codesourcery.com>
988
989 PR c/19606.
990 * c-typeck.c (build_binary_op): Perform implicit casts of
991 operands before shortening them.
992
17a4fdaa
KH
993 * cfgloopmanip.c (split_loop_bb): Remove.
994 * cfgloop.h: Remove the prototype for split_loop_bb.
995
b214288d
KH
996 * cfgloop.c (flow_loop_outside_edge_p): Remove.
997 * cfgloop.h: Remove the prototype for
998 flow_loop_outside_edge_p.
999
2bbdec73
KH
1000 * emit-rtl.c (init_virtual_regs): Make it static.
1001 * function.h: Remove the prototype for init_virtual_regs.
1002
e94aab95
KH
1003 * recog.c (peephole2_optimize): Make it static.
1004 * recog.h: Remove the prototype for peephole2_optimize.
1005
dadd8a3f
L
10062006-01-27 H.J. Lu <hongjiu.lu@intel.com>
1007
1008 * df-scan.c (df_record_entry_block_defs): Check if
1009 INCOMING_RETURN_ADDR_RTX is defined.
1010
912f2dac
DB
10112006-01-27 Daniel Berlin <dberlin@dberlin.org>
1012 Kenneth Zadeck <zadeck@naturalbridge.com>
1013
89a42ac8 1014 PR rtl-optimization/24762
912f2dac
DB
1015 * doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
1016 * targhooks.c (hook_void_bitmap): New hook prototype.
1017 * targhoohs.h (hook_void_bitmap): Ditto.
1018 * bitmap.h (bitmap_head_def): Moved to coretypes.h.
1019 * coretypes.h (bitmap_head_def): Moved from bitmap.h.
1020 * target.h (live_on_entry): New function pointer.
1021 * df-scan.c (df_all_hard_regs): Removed.
1022 (df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
1023 (df_scan_free_internal): Added df->entry_block_defs.
1024 (df_scan_alloc): Ditto.
1025 (df_scan_dump): Ditto.
1026 (df_uses_record): Plumbed flag field properly thru calls.
1027 Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
1028 This part fixes PR24762.
1029 (df_bb_refs_record): Added code to make the frame and arg
1030 pointers live in EH blocks.
1031 (df_refs_record): Added call to df_record_entry_block_defs.
1032 (df_record_entry_block_defs): New function.
1033 * df-core.c: Added comments to describe new artifical defs.
1034 * df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags.
1035 (entry_block_defs): New field in struct df.
1036 (df_all_hard_regs): Deleted.
1037 * target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY.
1038 * df-problems.c (df_ru_bb_local_compute_process_def):
1039 Added code to handle artifical defs in the entry to a function.
1040 (df_ru_bb_local_compute): Ditto.
1041 (df_rd_bb_local_compute_process_def): Ditto.
1042 (df_rd_bb_local_compute): Ditto.
1043 (df_lr_bb_local_compute): Ditto.
1044 (df_ur_bb_local_compute): Ditto.
1045 (df_urec_bb_local_compute): Ditto.
1046 (df_chain_create_bb): Ditto.
1047 (df_ur_local_finalize): Removed entry.
1048 (df_urec_init): Ditto.
1049 (df_urec_local_finalize): Ditto.
1050 (df_ri_bb_compute): Added detection of last use of pseudos.
1051 * Makefile.in (df-scan.o): Updated dependencies.
1052 * config/mips/mips-protos.h (mips_set_live_on_entry): Added.
1053 * config/mips/mips.c (mips_set_live_on_entry): Added.
1054 * config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value
1055 for target hook.
1056 * dce.c (marked_insn_p): Added code to handle artifical defs.
1057
7744bbe3
L
10582006-01-27 H.J. Lu <hongjiu.lu@intel.com>
1059
1060 * config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel
1061 intrinsic.
1062 (_mm_cvtsi128_si64): Likewise.
1063 (_mm_cvtsd_si64): Likewise.
1064 (_mm_cvttsd_si64): Likewise.
1065 (_mm_cvtsi64_sd): Likewise.
1066 (_mm_cvtsi64_si128): Likewise.
1067 * config/i386/mmintrin.h (_m_from_int64): Likewise.
1068 (_mm_cvtsi64_m64): Likewise.
1069 (_m_to_int64): Likewise.
1070 (_mm_cvtm64_si64): Likewise.
1071 * config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise.
1072 (_mm_cvttss_si64): Likewise.
1073 (_mm_cvtsi64_ss): Likewise.
1074 (_mm_cvtss_f32): Likewise.
1075
9e21c3b8
CD
10762006-01-27 Carlos O'Donell <carlos@codesourcery.com>
1077
1078 * c-pragma.c (init_pragma) : Call c_register_pragma_with_expansion
1079 for pragma redefine_extname.
1080
602ea4d3
JJ
10812006-01-27 Jakub Jelinek <jakub@redhat.com>
1082
1083 PR target/25864
1084 * libgcc-std.ver: Add GCC_4.1.0 symbol version.
1085 * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append
1086 -mno-minimal-toc to previous content.
1087 (bispecs): Remove goal.
1088 * config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h.
1089 * config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4
1090 compatibility aliases on powerpc-*-*gnu*.
1091 * config/rs6000/libgcc-ppc-glibc.ver: New file.
1092 * config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append
1093 libgcc-ppc-glibc.ver on powerpc*-*-*gnu*.
1094 (TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs.
1095 (ldblspecs): New goal.
1096 * config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed.
1097 * mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and
1098 _df_to_tf.
1099 * config/fp-bit.h (TMODES): Don't define if none of TFLOAT,
1100 L_sf_to_tf or L_df_to_tf is defined.
1101
11022006-01-27 David Edelsohn <edelsohn@gnu.org>
1103 Alan Modra <amodra@bigpond.net.au>
1104
1105 PR target/25864
1106 * config/rs6000/linux.h (POWERPC_LINUX): Define.
1107 * config/rs6000/linux64.h (POWERPC_LINUX): Define.
1108 * config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC.
1109 * config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero.
1110 * config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero.
1111 * config/rs6000/rs6000.c (rs6000_ieeequad): New variable.
1112 (rs6000_override_options): Initialize rs6000_ieeequad.
1113 Initialize TFmode format to ibm_extended_format if not
1114 TARGET_IEEEQUAD.
1115 (rs6000_handle_option): Accept -mabi= ibmlongdouble and
1116 ieeelongdouble.
1117 (rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts.
1118 (rs6000_return_in_memory): Only return IEEEQUAD in memory.
1119 (function_arg_advance): IBM long double passed in two FPRs, not
1120 split.
1121 (function_arg): IBM long double passed in FPRs.
1122 (rs6000_pass_by_reference): Only IEEEQUAD passed by reference.
1123 (rs6000_gimplify_va_arg): IBM long double passed in two FPRs.
1124 Only multireg GPR aligned.
1125 (rs6000_init_libfuncs): Enable IBM long double functions if not
1126 IEEEQUAD.
1127 (rs6000_generate_compare): Use IBM long double compare if not
1128 TARGET_IEEEQUAD.
1129 * config/rs6000/rs6000.h (rs6000_ieeequad): Declare.
1130 (TARGET_IEEEQUAD): Define.
1131 (CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if
1132 not TARGET_IEEEQUAD.
1133 * config/rs6000/rs6000.md: Enable TFmode patterns if
1134 !TARGET_IEEEQUAD.
1135 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
1136 * config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
1137 and -mlong-double-128 are incompatible.
1138 * doc/invoke.texi (-mabi): Collect options together. Add
1139 ibmlongdouble and ieeelongdouble.
1140
929e5e5b
RS
11412006-01-27 Richard Sandiford <richard@codesourcery.com>
1142
1143 * doc/rtl.texi (SYMBOL_REF_DATA): Adjust documentation for new
1144 opaque type.
1145 * optabs.c (init_one_libfunc): Use SET_SYMBOL_REF_DECL.
1146 * varasm.c (make_decl_rtl, build_constant_desc): Likewise.
1147 (force_const_mem): Use SET_SYMBOL_REF_CONSTANT.
1148 * rtl.h (rtunion_def): Remove rt_ptr.
1149 (X0PTR): Delete.
1150 (SYMBOL_REF_DATA): Use X0ANY instead of X0PTR.
1151 (SET_SYMBOL_REF_DECL, SET_SYMBOL_REF_CONSTANT): New macros.
1152 * config/i386/winnt.c (i386_pe_mark_dllexport)
1153 (i386_pe_mark_dllimport): Use SET_SYMBOL_REF_DECL.
1154
dccb60e9
GL
11552006-01-27 Gabor Loki <loki@gcc.gnu.org>
1156
1157 * cfgcleanup.c (try_crossjump_to_edge): Fix comment typo.
1158
72b16773
AO
11592006-01-26 Alexandre Oliva <aoliva@redhat.com>
1160
1161 PR other/24829
1162 PR target/24831
1163 * gthr-dce.h: Do not gthrw-ify pthread_once_init,
1164 pthread_key_delete. From John David Anglin. gthrw-ify
1165 pthread_getunique_np only if it it's not a macro. Delete
1166 UNUSED macro.
1167 (__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate,
1168 __gthread_objc_condition_wait, __gthread_objc_condition_broadcast,
1169 __gthread_objc_condition_signal, __gthread_key_delete): Add
1170 "__attribute__ ((__unused__))" to unused arguments.
1171 (__gthread_recursive_mutex_init_function): Add missing return.
1172 * gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h,
1173 gthr-posix95.h: Use macro-based approach for name redirection
1174 on targets missing weakref.
1175
f7c8e4fc
ZW
11762006-01-26 Zack Weinberg <zackw@panix.com>
1177
1178 * genconditions.c (write_header): In generated code, #ifdef out
1179 all includes and fake declarations, except includes of bconfig.h
1180 and system.h, unless GCC_VERSION >= 3001. Do not include
1181 gensupport.h in any case.
1182 (write_conditions): Generate a definition of struct c_test. Add
1183 a comment to the generated #endif.
1184 (write_one_condition): Escape backslashes in string too.
1185 (write_writer): Generated code must escape backslashes and quote
1186 marks (but not newlines) in the strings it writes.
1187 * Makefile.in (build/gencondmd.o): Update dependencies.
1188
63622a81
SE
11892006-01-26 Steve Ellcey <sje@cup.hp.com>
1190
1191 PR target/25961
1192 * Makefile.in (insn-automata.o): Add header file dependencies.
1193 * genautomata.c: Add includes.
1194
461d30b2
SE
11952006-01-26 Steve Ellcey <sje@cup.hp.com>
1196
1197 PR target/25961
1198 * Makefile.in (insn-automata.o): Add -Wno-error flag.
1199
e8b05380
PB
12002006-01-26 Paolo Bonzini <bonzini@gnu.org>
1201
1202 * configure.ac: Expect target tools paths to be passed from the toplevel
1203 and wrap the detection into AS_SET_VAR_IF. Extract side-effects out of
1204 AS_SET_VAR_IF.
1205 * acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove.
1206
f4e9414e
AO
12072006-01-26 Alexandre Oliva <aoliva@redhat.com>
1208
1209 PR c/25892
1210 * c.opt (Wpointer-sign): Init to -1.
1211 * c-opts.c (c_common_handle_option): Set to 1 on OPT_Wall and
1212 OPT_pedantic, to 0 otherwise.
1213 * doc/invoke.texi: Update.
1214
e046a30a
PB
12152006-01-26 Paolo Bonzini <bonzini@gnu.org>
1216
1217 * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit
1218 constants provided by 80387 instructions in the destination mode.
1219
7cc92f92 12202006-01-26 Richard Guenther <rguenther@suse.de>
f7c8e4fc 1221 Andrew Pinski <pinskia@physics.uc.edu>
7cc92f92 1222
9cee8116
AP
1223 PR tree-opt/21470
1224 partial PR tree-opt/17064
7cc92f92
RG
1225 * tree-ssa-structalias.c (intra_create_variable_infos):
1226 Create heap variables for incoming parameters if
1227 flag_argument_noalias > 1.
1228 (find_what_p_points_to): Look through default defs of
1229 parameter decls.
1230
4f67dfcf
JL
12312006-01-26 Jeff Law <law@redhat.com>
1232
1233 PR ada/25900
1234 * tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE
0b59f49d 1235 with a VR_ANTI_RANGE and the VR_ANTI_RANGE is completely contained
4f67dfcf
JL
1236 within the VR_RANGE, use the VR_RANGE as the result, not the
1237 VR_ANTI_RANGE.
0b59f49d
BE
1238 (adjust_range_with_scev): Reject ranges from SCEV which are out of
1239 bounds for the type.
4f67dfcf 1240
e046a30a 12412006-01-26 Daniel Berlin <dberlin@dberlin.org>
8a105328
DB
1242
1243 * tree-ssa-alias.c (maybe_create_global_var): Change
1244 subvar walking to an assertion that we don't have subvar'd variables.
1245
f6f08360
AP
12462006-01-26 Andrew Pinski <pinskia@physics.uc.edu>
1247
1248 PR C/25861
1249 * c-common.c (c_common_truthvalue_conversion) <case ADDR_EXPR>:
1250 Use a new variable, inner. PARM_DECLs are always non-weak.
1251
62f3e894
SS
12522006-01-26 Shantonu Sen <ssen@opendarwin.org>
1253
1254 * tree.h (OMP_CLAUSE_SUBCODE_CHECK): Add definition for
1255 --disable-checking.
1256
5e922d66
AN
12572006-01-26 Adam Nemet <anemet@caviumnetworks.com>
1258
1259 * config/mips/mips.md (*clear_upper32): New combiner pattern.
1260
0a484e3e
RE
12612006-01-26 Richard Earnshaw <richard.earnshaw@arm.com>
1262
1263 * arm.md (smaxsi3, sminsi3): Convert to define_expand.
1264 (smax_insn, smin_insn, smax_0, smin_0): New.
1265
7faa3eb8
HPN
12662006-01-26 Hans-Peter Nilsson <hp@axis.com>
1267
1268 PR target/25947
1269 * config/cris/cris.c (cris_order_for_addsi3): New function.
1270 * config/cris/cris-protos.h: Prototype it.
1271 * config/cris/cris.md (split for "move.S1 [rx=rx+i],ry")
1272 (split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]")
1273 (split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry")
1274 (split for "op.S1 [rx=rx+i],ry (swapped)")
1275 (split for "op(s|u).S1 [rx=rx+i],ry")
1276 (split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"):
1277 Apply cris_order_for_addsi3 when generating addsi3 insns.
1278
aaf46ef9
DN
12792006-01-25 Diego Novillo <dnovillo@redhat.com>
1280
1281 * tree.h (TREE_RANGE_CHECK): Fix range predicate.
1282 (TREE_BLOCK): Add call to EXPR_CHECK.
1283
12842006-01-25 Diego Novillo <dnovillo@redhat.com>
1285
1286 PR 25886
1287 * tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE.
1288 * tree-pretty-print.c (dump_omp_clause): Extract from ...
1289 (dump_omp_clauses): ... here.
1290 (dump_generic_node): Handle OMP_CLAUSE.
1291 * tree.c (omp_clause_num_ops): New.
1292 (omp_clause_code_name): New.
1293 (tree_code_size): Handle OMP_CLAUSE.
1294 (tree_size): Likewise.
1295 (make_node): Document handling of OMP_CLAUSE.
1296 (tree_node_structure): Handle OMP_CLAUSE.
1297 (omp_clause_check_failed): New.
1298 (omp_clause_range_check_failed): New.
1299 (omp_clause_operand_check_failed): New.
1300 (build_omp_clause): New.
1301 (walk_tree): Adjust handling of OMP_CLAUSE_* nodes.
1302 * tree.h (enum omp_clause_code): Declare.
62f3e894 1303 (OMP_CLAUSE_SUBCODE_CHECK): Define.
aaf46ef9
DN
1304 (OMP_CLAUSE_RANGE_CHECK): Define.
1305 (OMP_CLAUSE_ELT_CHECK): Define.
1306 (omp_clause_check_failed): Declare.
1307 (omp_clause_operand_check_failed): Declare.
1308 (omp_clause_range_check_failed): Declare.
1309 (OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK.
1310 (OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK.
1311 (OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK.
1312 (OMP_CLAUSE_LASTPRIVATE): Likewise.
1313 (OMP_CLAUSE_IF_EXPR): Likewise.
1314 (OMP_CLAUSE_NUM_THREADS_EXPR): Likewise.
1315 (OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise.
1316 (OMP_CLAUSE_REDUCTION_CODE): Likewise.
1317 (OMP_CLAUSE_REDUCTION_INIT): Likewise.
1318 (OMP_CLAUSE_REDUCTION_MERGE): Likewise.
1319 (OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise.
1320 Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY.
1321 (OMP_CLAUSE_SCHEDULE_KIND): Likewise.
1322 (OMP_CLAUSE_DEFAULT_KIND): Likewise.
1323 (OMP_CLAUSE_CODE): Define.
1324 (OMP_CLAUSE_SET_CODE): Define.
1325 (OMP_CLAUSE_CODE): Define.
1326 (OMP_CLAUSE_OPERAND): Define.
1327 (struct tree_omp_clause): Declare.
1328 (union tree_node): Add field 'omp_clause'.
1329 * treestruct.def (TS_OMP_CLAUSE): Define.
1330 * tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED
1331 OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
1332 OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN,
1333 OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF,
1334 OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE,
1335 OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove.
1336 (OMP_CLAUSE): Define.
1337 * print-tree.c (print_node): Handle OMP_CLAUSE.
1338 * omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes.
1339 * c-typeck.c: Likewise.
1340 * gimplify.c: Likewise.
1341 * c-omp.c: Likewise.
1342 * tree-nested.c: Likewise.
1343 * tree-inline.c: Likewise.
1344 * c-parser.c: Likewise.
1345 * gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on
1346 clauses.
1347
d89b36e1
RS
13482006-01-25 Roger Sayle <roger@eyesopen.com>
1349
1350 PR rtl-optimization/25703
1351 * combine.c (try_combine): Handle zero_extract and strict_low_part
1352 of non-lowpart SUBREGs for constant reg_subword_p set optimization.
1353
f0852ed0
PB
13542006-01-25 Peter Bergner <bergner@vnet.ibm.com>
1355
1356 * global.c: Fix comment typos.
1357
b8795edd
AP
13582006-01-25 Andrew Pinski <pinskia@physics.uc.edu>
1359
1360 PR target/25758
1361 * config/i386/i386.c (output_pic_addr_const) <case SYMBOL_REF>:
1362 Use output_addr_const instead of assemble_name.
1363
a68e7e6c
PB
13642006-01-25 Paolo Bonzini <bonzini@gnu.org>
1365
1366 * Makefile.in (sched-vis.o): Update dependencies.
1367 * haifa-sched.c (sched_finish): Clear current_sched_info.
1368 * cfg.c (dump_bb_info): New, split from dump_flow_info.
1369 (dump_flow_info): Call it.
1370 * passes.c (execute_todo): Call print_rtl_slim_with_bb to make
1371 a slim RTL dump.
1372 * basic-block.h (dump_bb_info): Declare.
1373 * tree-dump.c (dump_enable_all): OR the flags of a -fdump-tree-all
1374 option, and apply options only for dump files whose TDF_RTL,
1375 TDF_TREE, or TDF_IPA bits match.
1376 * rtl.h: Declare new functions exported from sched-vis.c.
1377 * sched-vis.c: Enable also if scheduling is not used.
1378 (print_value): Print the mode of registers if not inside scheduling.
1379 (print_insn): Make it work outside the scheduler. Beautify the output
1380 a bit.
1381 (dump_insn_slim, debug_insn_slim, print_rtl_slim_with_bb): New.
1382
14c1a9d7
RS
13832006-01-25 Richard Sandiford <richard@codesourcery.com>
1384
1385 * doc/rtl.texi (SYMBOL_REF_CONSTANT, SYMBOL_REF_DATA): Document.
1386 * gengtype.c (adjust_field_rtx_def): Garbage-collect field 2 of
1387 a SYMBOL_REF as either a tree or a constant_descriptor_rtx,
1388 depending on the value of CONSTANT_POOL_ADDRESS_P.
1389 * optabs.c (init_one_libfunc): Nullify SYMBOL_REF_DATA rather than
1390 SYMBOL_REF_DECL.
1391 * varasm.c (make_decl_rtl, build_constant_desc): Set SYMBOL_REF_DATA
1392 rather than SYMBOL_REF_DECL.
1393 (rtx_constant_pool): Remove const_rtx_sym_htab.
1394 (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): Delete.
1395 (init_varasm_status): Don't initialize const_rtx_sym_htab.
1396 (force_const_mem): Point SYMBOL_REF_DATA to the constant pool entry.
1397 Remove handling of const_rtx_sym_htab.
1398 (find_pool_constant): Delete.
1399 (get_pool_constant, get_pool_constant_mark): Use SYMBOL_REF_CONSTANT
1400 rather than find_pool_constant.
1401 (get_pool_constant_for_function): Delete.
1402 (get_pool_mode, mark_constant): Use SYMBOL_REF_CONSTANT rather than
f7c8e4fc 1403 find_pool_constant.
14c1a9d7
RS
1404 * rtl.h (rtunion_def): Add rt_constant and rt_ptr fields.
1405 (X0CONSTANT, X0PTR, SYMBOL_REF_DATA): New macros.
1406 (SYMBOL_REF_DECL): Return NULL if CONSTANT_POOL_ADDRESS_P.
1407 (SYMBOL_REF_CONSTANT): New macro.
1408 (get_pool_constant_for_function): Delete.
1409 * config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DATA
1410 rather than SYMBOL_REF_DECL.
1411 (i386_pe_mark_dllimport): Likewise.
1412 * config/rs6000/rs6000.c (rs6000_emit_move): Copy SYMBOL_REF_DATA
1413 rather than SYMBOL_REF_DECL.
1414 * config/darwin.c (machopic_indirect_data_reference): Likewise.
1415 (machopic_indirect_call_target): Likewise.
1416
916b9d4b
EB
14172006-01-25 Eric Botcazou <ebotcazou@adacore.com>
1418
1419 * flow.c (delete_noop_moves): Add missing EOL to dump message.
1420
b9aa59fb
RS
14212006-01-25 Richard Sandiford <richard@codesourcery.com>
1422
1423 * genattrtab.c (gen_bypass): Allow bypasses to contain whitespace.
1424
ac42ec79
KK
14252006-01-25 Kaz Kojima <kkojima@gcc.gnu.org>
1426
1427 * config/sh/predicates.md (sh_register_operand): Accept CONST_DOUBLE.
1428
8dea1cca
DD
14292006-01-24 David Daney <ddaney@avtrex.com>
1430
1431 PR java/25816
1432 * configure.ac (enable_tls): New enable option.
1433 (HAVE_AS_TLS): Don't do assembler check if enable_tls set.
1434 * configure: Regenerate.
1435 * doc/install.texi (--enable-tls): Document new option.
1436 (--disable-tls): Ditto.
1437
9cd9e512
RH
14382006-01-24 Richard Henderson <rth@redehat.com>
1439
1440 * alias.h (ALIAS_SET_MEMORY_BARRIER): New.
1441 * alias.c (true_dependence): Respect it.
1442 (canon_true_dependence, write_dependence_p): Likewise.
1443 * builtins.c (get_builtin_sync_mem): Set it.
1444
7faaba28
ZD
14452006-01-25 Zdenek Dvorak <dvorakz@suse.cz>
1446
1447 * loop-iv.c (iv_analysis_loop_init): Use df analysis in a more
1448 efficient way.
1449
1bb8d49c
DD
14502006-01-24 DJ Delorie <dj@redhat.com>
1451
1452 * expmed.c (store_bit_field): Don't arbitrarily deny using insv
1453 for storing constants in single-bit bitfields.
1454
7af1a035
BE
14552006-01-25 Ben Elliston <bje@au.ibm.com>
1456
1457 * dfp.c (dfp_byte_swap): Use uint32_t and not unsigned long.
1458
0b63b112
AP
14592006-01-24 Andrew Pinski <pinskia@physics.uc.edu>
1460
1461 PR tree-opt/25860
1462 * tree-ssa-pre.c (phi_translate): Return NULL
1463 for AGGREGATE_TYPE's.
1464
68486bb3
ZW
14652006-01-24 Zack Weinberg <zackw@panix.com>
1466
1467 * genautomata.c (process_state_for_insn_equiv_partition):
1468 Use xcalloc for insn_arcs_array.
1469 * vec.h (DEF_VEC_ALLOC_FUNC_I): New set of templates.
1470 (DEF_VEC_ALLOC_I): Use it, not DEF_VEC_ALLOC_FUNC_P.
1471
11daaf60
RH
14722006-01-24 Richard Henderson <rth@redhat.com>
1473
1474 * genextract.c (VEC_safe_set_locstr): Take VEC by reference;
1475 update all callers.
1476
81162f97
PB
14772006-01-23 Paolo Bonzini <bonzini@gnu.org>
1478
f7c8e4fc
ZW
1479 PR rtl-optimization/25890
1480 PR rtl-optimization/25905
1481 * combine.c (expand_compound_operation, expand_field_assignment):
1482 Fail if the bitfield's final position is out of bounds.
81162f97 1483
e7b9eb2c
ILT
14842006-01-24 Ian Lance Taylor <ian@airs.com>
1485
1486 PR middle-end/25930
1487 * cgraphunit.c (cgraph_output_in_order): Don't clear
1488 cgraph_asm_nodes until after asm strings have been output.
1489
b933c7fe
AN
14902006-01-23 Adam Nemet <anemet@caviumnetworks.com>
1491
f7c8e4fc 1492 * fix-header.c (read_scan_file): Add new parameter imultilib when
b933c7fe
AN
1493 calling register_include_chains.
1494
7ebaeab5
DN
14952006-01-23 Diego Novillo <dnovillo@redhat.com>
1496
1497 * omp-low.c: Update documentation.
1498
e9901f8b 14992006-01-23 Andrew Pinski <pinskia@physics.uc.edu>
7ebaeab5 1500 Daniel Berlin <dberlin@dberlin.org>
e9901f8b
AP
1501
1502 PR tree-opt/25315
1503 PR tree-opt/25857
f7c8e4fc 1504 * tree-ssa-pre.c (insert_extra_phis): If an incomming edge is abnormal
e9901f8b
AP
1505 return from the function.
1506
6e7a4706
ZW
15072006-01-22 Zack Weinberg <zackw@panix.com>
1508
1509 * rtl.def (match_code): Add second argument.
1510 * genpreds.c (write_extract_subexp): New function.
1511 (write_match_code): Add path argument. Use write_extract_subexp.
1512 (write_predicate_expr): Pass path to write_match_code.
1513 (mark_mode_tests): MATCH_CODE applied to a subexpression does
1514 not perform a mode test.
1515 * genrecog.c (compute_predicate_codes): MATCH_CODE applied to
1516 a subexpression does not constrain the top-level code set.
1517 * read-rtl.c (read_rtx_variadic): New function.
1518 (read_rtx_1): Use it; allow AND and IOR to be variadic.
1519 * doc/md.texi: Document new notation.
1520 * config/i386/predicates.md (cmpsi_operand_1): Fold into ...
1521 (cmpsi_operand): ... here, using new notation.
1522
6ff09968
ZW
15232006-01-22 Zack Weinberg <zackw@panix.com>
1524
1525 * varray.c: Remove GENERATOR_FILE #ifdefs.
1526
63e2552f
ZW
15272006-01-22 Zack Weinberg <zackw@panix.com>
1528
1529 * genautomata.c (output_reserved_units_table): Emit nothing if
1530 description->query_units_num is zero. Remove extra blank line.
1531 (output_cpu_unit_reservation_p): Short circuit
1532 if description->query_units_num is zero.
1533
8c94f366
ZW
15342006-01-22 Zack Weinberg <zackw@panix.com>
1535
1536 * genattrtab.c: Don't include genattrtab.h. Define ATTR_NONE
1537 and ATTR_SPECIAL (from genattrtab.h). Don't define num_dfa_decls
1538 nor any of the random handful of variables that used to be necessary
1539 when this program was linked with rtlanal.o. Prune set of forward
1540 function declarations.
1541 (struct attr_desc): Remove static_p field.
1542 (hash_obstack, temp_obstack, attr_hash_table, attr_printf)
1543 (check_attr_test, make_internal_attr, make_numeric_value): Make static.
1544 (attr_string): Do not read the character one past the length of
1545 the string.
1546 (write_attr_get, find_attr, make_internal_attr): Don't touch static_p.
1547 (struct insn_reserv, all_insn_reservs, last_insn_reserv_p)
1548 (n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses)
1549 (n_bypasses, gen_bypass_1, gen_bypass, process_bypasses)
1550 (make_automaton_attrs): New.
1551 (main): Do not call into genautomata. Call local gen_bypass
1552 and gen_insn_reserv as appropriate. Call make_automaton_attrs.
1553 Remove special case for insn_alts.
1554 * genautomata.c: Include gensupport.h; not genattrtab.h nor
1555 varray.h (leftover from previous change). Prune set of forward
1556 function declarations. Remove state_alts fields from all
1557 structures. Remove state_alts_table from struct automaton.
1558 Make everything except main static. Do not maintain num_dfa_decls.
1559 Do not maintain state_alts fields of various structures.
1560 (process_decls): Don't validate condexp for dm_insn_reserv decls.
1561 (add_arc): Remove state_alts argument. All callers updated.
1562 (output_reserved_units_table): Emit #ifdef here...
1563 (output_tables): ...not here. Don't generate state_alts tables.
1564 (expand_automata): Don't generate attributes.
1565 (write_automata): Don't generate state_alts functions.
1566 (main): New function.
1567 (it_is_empty_reserv_sets, output_state_alts_full_vect_name)
1568 (output_state_alts_comb_vect_name, output_state_alts_check_vect_name)
1569 (AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME)
1570 (STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME)
1571 (BYPASS_P_FUNC_NAME, output_state_alts_table)
1572 (output_automata_list_state_alts_code, output_internal_state_alts_func)
1573 (output_state_alts_func, make_insn_alts_attr, make_bypass_attr)
1574 (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr):
1575 Delete.
1576 * genattr.c: Declare internal_dfa_insn_code in insn-attr.h.
1577 * genattrtab.h: Delete file.
1578 * Makefile.in (OBJS-common): Add insn-automata.o.
1579 (insn-automata.o): New rule.
1580 (simple_generated_c): Add insn-automata.c.
1581 (build/genattrtab.o, build/genautomata.o): Update dependencies.
1582 (genprogmd): Add automata.
1583 (build/genattrtab): Needs no extra objects nor libraries.
1584 (build/genautomata): Needs build/vec.o and -lm.
1585
5f2f0edd
ZW
15862006-01-22 Zack Weinberg <zackw@panix.com>
1587
1588 * genautomata.c (process_state_longest_path, max_dfa_issue_rate)
1589 (output_dfa_max_issue_rate, locked_states_num): Delete.
1590 (struct automaton): Add locked_states field.
1591 (output_dead_lock_vect): Save number of locked states in
1592 automaton->locked_states. If it is zero, don't print anything.
1593 (output_max_insn_queue_index_def): Define max_insn_queue_index const.
1594 (output_internal_dead_lock_func): Only test the dead_lock_vect
1595 for automata that have locked states.
1596 (output_statistics): Always print the number of locked states for
1597 each automaton. Calculate total number of locked states here.
1598 (write_automata): Don't call output_dfa_max_issue_rate.
1599 * genattrtab.c: Define length_unit_log as a const variable.
1600 * genattr.c: Don't emit MAX_DFA_ISSUE_RATE. Declare
1601 max_insn_queue_index const.
1602 * final.c (length_unit_log): Declare const.
1603 * doc/tm.texi: Remove all references to MAX_DFA_ISSUE_RATE.
1604
1fb49ce7
ZW
16052006-01-22 Zack Weinberg <zackw@panix.com>
1606
1607 * genautomata.c: Include vec.h, not varray.h.
1608 Delete vla_ptr_t, all of the VLA_PTR_ macros, and all of the
1609 VLA_HWINT_ macros. Change vla_hwint_t to a typedef for
1610 VEC(vect_el_t,heap) *. Convert all uses of VLA_* macros to
1611 VEC_* macros operating on appropriately typed vectors, or to
1612 malloced arrays when the size is known in advance. Const-ify
1613 many char* variables and function arguments. No functional changes.
1614 * Makefile.in (build/varray.o): Delete rule.
1615 (build/genattrtab): Depend on build/vec.o instead of build/varray.o.
1616 (build/genautomata.o): Depend on vec.h instead of $(VARRAY_H).
1617
0458fe77
ZW
16182006-01-22 Zack Weinberg <zackw@panix.com>
1619
1620 * gensupport.c: Define get_insn_name and record_insn_name here.
1621 (read_md_rtx): Call record_insn_name as appropriate.
1622 * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
1623 * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
1624 * genpreds.c, genrecog.c: Don't define get_insn_name nor
1625 record_insn_name.
1626 * Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL.
1627 (BUILD_VARRAY): Delete.
1628 (genprognormal): Rename genprogmd. Fold in all programs from
1629 genprognoprint; also attrtab.
1630 (build/genattrtab): Just mention genautomata.o and varray.o.
1631 Reorganize a bit, add comments to make the categories clearer.
1632
1c7352cd
ZW
16332006-01-22 Zack Weinberg <zackw@panix.com>
1634
1635 * genconditions.c (condition_table, add_condition): Delete.
1636 (write_conditions): Don't emit n_insn_conditions nor
1637 insn_elision_unavailable. Issue the gcc version #ifdef here,
1638 inside the table, with no #else clause ...
1639 (write_header): ...not here.
1640 (write_writer): New function.
1641 (main): Don't initialize condition_table. Use add_c_test.
1642 Call write_writer.
1643 * gensupport.c (init_md_reader_args_cb): Handle multiple input
1644 files on the command line.
1645 (maybe_eval_c_test): Don't check insn_elision_unavailable.
1646 Return -1 if there is no entry in the table, don't abort.
1647 (add_c_test, traverse_c_tests): New functions.
1648 * gensupport.h (insn_elision_unavailable, insn_conditions)
1649 (n_insn_conditions): Delete declarations.
1650 (add_c_test, traverse_c_tests): Declare.
1651 * read-rtl.c: Include gensupport.h.
1652 (read_conditions): New function.
1653 (read_rtx): If read_rtx_1 returns 0, treat as EOF.
1654 (read_rtx_1): If we get EOF when we were looking for an initial
1655 open paren, return 0. Call read_conditions when appropriate.
1656 * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to
1657 dummy-conditions.o. Eliminate references to insn-conditions.o,
1658 or change them to build/gencondmd.o, as appropriate. Remove
1659 insn-constants.h from $(simple_generated_h) and insn-conditions.c
1660 from $(simple_generated_c). For all files remaining in those
1661 two lists, add insn-conditions.md to the generator command line.
1662 Give insn-constants.h/s-constants their own rules. Add rules
1663 for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd.
1664 (build/read-rtl.o): Depend on gensupport.h.
1665 (genprognormal): Include preds.
1666 (genprogearly): Rename genprognoprint; only difference is now that
1667 they don't link with $(BUILD_PRINT).
1668 * dummy-conditions.c: Delete.
1669
245fc639
ZW
16702006-01-22 Zack Weinberg <zackw@panix.com>
1671
1672 * genextract.c: Don't include insn-config.h. Do include vec.h.
1673 Declare vectors of int, char, and locstr.
1674 (locstr): New typedef.
1675 (struct extraction): Make all array fields into bare pointers.
1676 (insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name.
1677 (insn_code_number): Delete.
1678 (accum_extract): New struct.
1679 (VEC_safe_set_locstr, VEC_char_to_string): New functions.
1680 (gen_insn): Take insn_code_number as an argument. Use an
1681 accum_extract structure instead of loading data directly into
1682 a struct extraction, and having to know how big it might get.
1683 (walk_rtx): Operate entirely on an accum_extract structure.
1684 (print_path): Avoid unnecessary use of printf.
1685 (print_header): New function, split out of main. Distinguish
1686 more carefully between an unrecognizable insn and an insn that
1687 has the code number of a define_expand.
1688 (main): Pass insn_code_number to gen_insn. Call print_header
1689 only after parsing. Avoid unnecessary use of printf.
1690 * Makefile.in (build/vec.o): New rule.
1691 (build/genextract): Depend on build/vec.o.
1692 (build/genextract.o): Don't depend on insn-config.h.
1693
cbbbdc2c
ZW
16942006-01-22 Zack Weinberg <zackw@panix.com>
1695
1696 * Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or
1697 $(RUN_GEN). Use pattern rules to factor out as much boilerplate as
1698 practical. Eliminate per-generator-program link rules.
1699
bac9efea
AP
17002006-01-23 Andrew Pinski <pinskia@physics.uc.edu>
1701
1702 PR middle-end/24437
1703 * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
1704 with a call expr to ...
1705 * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
1706
766613a4
RG
17072006-01-23 Richard Guenther <rguenther@suse.de>
1708
1709 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment
1710 before make_edge with conditional EDGE_TRUE_VALUE.
1711
d239ed56
SB
17122006-01-23 Steven Bosscher <stevenb.gcc@gmail.com>
1713 Jan Hubicka <jh@suse.cz>
1714 Richard Guenther <rguenther@suse.de>
1715
1716 PR rtl-optimization/25654
1717 * cfgexpand.c (aggregate_contains_union_type): New function.
1718 (add_alias_set_conflicts): Call it. Make sure to add conflicts
1719 for structure variables that contain a union type.
1720
0f01f026
RS
17212006-01-23 Richard Sandiford <richard@codesourcery.com>
1722
1723 * gengtype.c (new_structure): Return the structure.
1724 (create_option): Add an extra "next" argument.
1725 (create_field): New function.
1726 (adjust_field_rtx_def): Use create_option and create_field.
1727 Remove a now-unnecessary call to find_structure.
1728 (adjust_field_tree_def): Likewise.
1729 (note_yacc_type): Remove an unnecessary call to find_structure.
1730 * gengtype.h (new_structure): Return the structure.
1731 (create_option): Add an extra argument.
1732 * gengtype-yacc.y (type): Remove unnecessary calls to find_structure.
1733 (option): Adjust calls to create_option.
1734
4e9d3943
DE
17352006-01-22 David Edelsohn <edelsohn@gnu.org>
1736
1737 * config/rs6000/aix.h (STACK_BOUNDARY): Define.
1738
dcc21c4c
PB
17392006-01-22 Paul Brook <paul@codesourcery.com>
1740 Peter Barada <peter@the-baradas.com>
1741
1742 * config/m68k/m68k.md: Add Coldfire FPU support.
1743 Define FP mode macro and associated attributes.
1744 Use it for float mode patterns.
1745 * config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value.
1746 (LIBCALL_VALUE): Use m68k_libcall_value.
1747 * config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype.
1748 (m68k_function_value): Ditto.
1749 (emit_move_sequence): Ditto.
1750 * config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value.
1751 * config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e.
1752 * config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e.
1753 (MULTILIB_EXCEPTIONS): Ditto.
1754 * config/m68k/m68k.opt: Add mcfv4e.
1755 * config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e.
1756 (m68k_compute_frame_layout): Include space for ColdFire FPU regs.
1757 (m68k_output_function_prologue): Save ColdFire FPU registers.
1758 (m68k_output_function_epilogue): Restore ColdFire FPU registers.
1759 (force_mode, fp_reg_operand, emit_move_sequence): New functions.
1760 (m68k_regno_mode_ok): Don't allow types larget than 8 bytes in
1761 ColdFire FPU registers.
1762 (m68k_libcall_value, m68k_function_value): New functions.
1763 * config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value.
1764 (LIBCALL_VALUE): Use m68k_libcall_value.
1765 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__.
1766 (MASK_COLDFIRE): Add MASK_CFV4E.
1767 (TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New.
1768 (MODES_TIEABLE_P): Use TARGET_HARD_FLOAT.
1769 (REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto.
1770 (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define.
1771 (GO_IF_LEGITIMATE_ADDRESS): Use it.
1772 (LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses.
1773 * doc/invoke.tex: Document -mcfv4e on m68k.
1774
7b7046c7
RM
17752006-01-22 Ranjit Mathew <rmathew@gcc.gnu.org>
1776
1777 * doc/contribute.texi: Change CVS to SVN and update the corresponding
1778 URL.
1779
efee9ded
GDR
17802006-01-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
1781
1782 PR c++/16190
1783 * c-opts.c (c_common_handle_option): Don't include
1784 -Wnon-virtual-dtor in -Wall; enable if -Weffc++.
1785 * doc/invoke.texi (C++ Dialect Options): Document that
1786 -Wnon-virtual-dtor is no longer included in -Wall.
1787
a6d6c2c0
JM
17882006-01-21 Joseph S. Myers <joseph@codesourcery.com>
1789
1790 * gcov.c (print_version), gcov-dump.c (print_version),
1791 mips-tdump.c (main), mips-tfile.c (main): Update copyright notice
1792 dates.
1793
e046a30a 17942006-01-21 Kenneth Zadeck <zadeck@naturalbridge.com>
30cb87a0
KZ
1795
1796 * df-scan.c (problem_SCAN): Added NULL reset function.
1797 (df_scan_reset_blocks): Added code to call reset block function
1798 (df_bb_refs_delete) Fixed comment.
1799 (df_insn_refs_delete): Made tolerant of deleting non existent info
1800 for dataflow problems that need to be reset.
1801 * df-core.c (df_set_blocks): Ditto.
1802 * df.h (struct df_problem): Added reset_fun.
1803 * df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
1804 problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field.
1805 (df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New
1806 functions to clear out all references to def-use or use-def chains.
1807
5e5cf1ee
BE
18082006-01-21 Ben Elliston <bje@au.ibm.com>
1809
1810 * varasm.c (assemble_real): Initialise data array.
1811
d5b6e637
PB
18122006-01-20 Paul Brook <paul@codesourcery.com>
1813
1814 Merge from csl-arm-branch.
1815 2005-09-21 Kazu Hirata <kazu@codesourcery.com>
1816 * config/arm/arm.md (movdi): Force operands[1] to a register
1817 if we have a non-register source.
1818 (*arm_movdi, *movdf_soft_insn): Require that one of the
1819 operands be a register.
1820 * config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise.
1821 * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
1822
971dfb9b
DD
18232006-01-20 DJ Delorie <dj@redhat.com>
1824
1825 * varasm.c (initialize_constant_valid_p): Allow pointers
1826 initialized from integer constants of lesser precision.
1827 (output_constant): Allow non-int-sized pointer modes to be
1828 initialized from integer constants.
1829
2b6dd222
JM
18302006-01-20 Joseph S. Myers <joseph@codesourcery.com>
1831
1832 PR libstdc++/25524
1833 * cppdefault.h (struct default_include): Add multilib flag.
1834 * cppdefault.c (cpp_include_defaults): Set it.
1835 * c.opt (-imultilib): New option.
1836 * c-opts.c (imultilib): New.
1837 (c_common_handle_option): Handle -imultilib.
1838 (c_common_post_options): Likewise.
1839 * c-incpath.c (add_standard_paths, register_include_chains):
1840 Likewise.
1841 * c-incpath.h (register_include_chains): Add extra parameter.
1842 * gcc.c (do_spec_1): Generate -imultilib option.
1843 (The Specs Language): Update %I description.
1844 (process_command): Update copyright notice.
1845 * doc/cppopts.texi (-imultilib): Document.
1846 * doc/invoke.texi (-imultilib): Include in option summary.
1847 (%I): Update specs documentation.
1848
33cb1cf6
ZD
18492006-01-20 Zdenek Dvorak <dvorakz@suse.cz>
1850
1851 * loop-iv.c (iv_analysis_loop_init): Use df in more conservative way.
1852
0174997a
RS
18532006-01-20 Richard Sandiford <richard@codesourcery.com>
1854
1855 * stmt.c (case_bit_test_cmp): Stabilize the sort using code
1856 label numbers.
1857
c11fd0b2
RG
18582006-01-20 Richard Guenther <rguenther@suse.de>
1859 Steven Bosscher <stevenb.gcc@gmail.com>
1860
1861 PR rtl-optimization/24626
1862 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set
1863 EDGE_TRUE_VALUE if in RTL mode.
1864
1865 Revert
1866 2005-03-30 Mostafa Hagog <mustafa@il.ibm.com>
1867 * cfgrtl.c (rtl_verify_flow_info_1): Fix.
1868
74ac79fa
DM
18692006-01-20 Dirk Mueller <dmueller@suse.com>
1870
cbbbdc2c
ZW
1871 PR c++/5520
1872 * c-parser.c (c_parser_if_body): Use build_empty_stmt()
1873 instead of a special NOP marker.
1874 * c-typeck.c (c_finish_if_stmt): Remove obsoleted special
1875 NOP marker handling.
1876 * c-common.h (empty_body_warning): Add forward declaration.
1877 * c-common.c (empty_body_warning): Add (from c_finish_if_stmt).
1878 Now uses IS_EMPTY_STMT() instead of special NOP markers.
74ac79fa 1879
e046a30a 18802006-01-20 Paul Brook <paul@codesourcery.com>
577092ba
PB
1881
1882 * Makefile.in (lang_checks): Keep going if mkdir fails.
1883
e046a30a 18842006-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
3b8266e2
KZ
1885
1886 * df-scan.c (df_scan_free_bb_info): Added basic block parameter to
1887 be able to clean out basic block when not necessary.
1888 (df_scan_free): Fixed to properly delete information if df is
1889 unused before calling df_finish.
1890 (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
1891 df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
1892 or comment typos.
1893 (df_bb_refs_delete): New function.
1894 (df_refs_delete): Moved per block code to df_bb_refs_delete.
1895 * df-core.c (df_set_blocks): Added code to properly clean out
1896 unused blocks if they are not part of the blocks to consider.
1897 Added additional null check.
1898 (df_compact_blocks): Added basic block parameter to free_bb_fun to
1899 be able to clean out basic block when not necessary
1900 * df.h (df_free_bb_function): Ditto.
1901 (df_bb_refs_delete): New function.
1902 * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
1903 df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
1904 basic block parameter to be able to clean out basic block when not
1905 necessary.
1906 (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
1907 (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
1908 Fixed to properly delete information if df is unused before
1909 calling df_finish.
1910
e046a30a 19112006-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
59c52af4 1912
cbbbdc2c 1913 PR rtl-optimization/25799
59c52af4
KZ
1914 * df-problems.c (df_ru_confluence_n, df_rd_confluence_n):
1915 Corrected confluence operator to remove bits from op2 before oring
1916 with op1 rather than removing bits from op1.
cbbbdc2c 1917 (df_ru_transfer_function): Corrected test on wrong bitmap which
59c52af4
KZ
1918 caused infinite loop. Both of these problems were introduced in
1919 the dataflow rewrite.
1920
ff182b5c
DD
19212006-01-19 DJ Delorie <dj@redhat.com>
1922
1923 * reload1.c (find_reload_regs): Note the details of reload
1924 failures in the dump file.
1925 (spill_failure): Likewise.
1926
03fd2215
ZD
19272006-01-20 Zdenek Dvorak <dvorakz@suse.cz>
1928
1929 * loop-iv.c: Include df.h and hashtab.h.
1930 (enum iv_grd_result): New enum.
1931 (DF_REF_IV, DF_REF_IV_SET): New macros.
1932 (struct biv_entry): New.
1933 (df, bivs): New global variables.
1934 (struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no,
1935 assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p):
1936 Removed.
1937 (clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr,
1938 iv_analyze_result, iv_analyze_def, biv_hash, biv_eq,
1939 analyzed_for_bivness_p, record_biv): New functions.
1940 (iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p,
1941 get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op,
1942 iv_analyze, biv_p, iv_analysis_done): Work with df representation of
1943 UD chains.
1944 (iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set
1945 analysed.
1946 (iv_number_of_iterations): Use new interface to iv analysis.
1947 * loop-unroll.c: Do not include varray.h.
1948 (analyze_iv_to_split_insn): Use new interface to iv
1949 analysis.
1950 * loop-unswitch.c (may_unswitch_on): Ditto.
1951 * df.c (df_bitmaps_free): Only work for bbs for that structures are
1952 allocated.
1953 (df_bb_modify): Realloc tables to the new index.
1954 (df_find_use): New function.
1955 * df.h (df_find_use): Declare.
1956 * optabs.c (expand_unop): Make the mode of the REG_EQUAL node be
1957 outmode.
1958 * cfgloop.h (struct rtx_iv): Remove analysed field.
1959 (iv_get_reaching_def): Removed.
1960 (iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare.
1961 * Makefile.in (loop-unroll.o): Remove VARRAY_H dependency.
1962 (loop-iv.o): Add df.h and hashtab.h dependency.
1963 * df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation.
1964
b04c9063
AM
19652006-01-20 Alan Modra <amodra@bigpond.net.au>
1966
4a6c754b 1967 PR target/25668
b04c9063
AM
1968 * libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended
1969 Double TFmode.
1970 (__floatundisf, __floatundidf): Likewise.
1971 * libgcc2.h (IS_IBM_EXTENDED): Define.
1972
e9a8eb89
DD
19732006-01-19 DJ Delorie <dj@redhat.com>
1974
1975 * config/m32c/m32c.h (REG_ALLOC_ORDER): Define.
1976
cf1955dc
PB
19772006-01-19 Paul Brook <paul@codesourcery.com>
1978
1979 * gcc/config/arm/arm.c (arm_compute_func_type): Treat all functions
1980 as nothrow when unwinding tables are disabled.
1981
1dc80d7a
JDA
19822006-01-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1983
1984 PR testsuite/25171
1985 * c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type
1986 of bit-field" when in system header.
1987
2e160056
DD
19882006-01-19 DJ Delorie <dj@redhat.com>
1989
1990 * config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with
1991 the 16 bit shift limit of the m16c.
1992
9795d9fd
AP
19932006-01-19 Andrew Pinski <pinskia@physics.uc.edu>
1994
1995 PR target/22099
1996 * config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label.
1997 * config/i386/i386.c (output_set_got): Output the label if we have one
1998 for the TARGET_DEEP_BRANCH_PREDICTION case.
1999
d326eaf0 20002006-01-19 Jan Hubicka <jh@suse.cz>
cbbbdc2c 2001 H.J. Lu <hongjiu.lu@intel.com>
d326eaf0
JH
2002 Evandro Menezes <evandro.menezes@amd.com>
2003
2004 * invoke.texi (generic): Document
2005 (i686) Update.
2006 * config.gcc: Make x86_64-* and i686-* default to generic tunning.
2007 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC,
2008 TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros.
2009 (x86_use_incdec, x86_pad_returns): New variables
2010 (TARGET_CPU_DEFAULT_generic): New constant
2011 (TARGET_CPU_DEFAULT_NAMES): Add generic.
2012 (enum processor_type): Add generic32 and generic64.
2013 * i386.md (cpu attribute): Add generic32/generic64
2014 (movhi splitter): Behave sanely when both partial_reg_dependency and
2015 partial_reg_stall are set.
2016 (K8 splitters): Enable for generic as well.
2017 * predicates.md (incdec_operand): Use TARGET_INCDEC
2018 (aligned_operand): Avoid memory mismatch stalls.
2019 * athlon.md: Enable for generic64, new patterns for 128bit moves.
2020 * ppro.md: Enable for generic32
2021 * i386.c (generic64_cost, generic32_cost): New.
2022 (m_GENERIC32, m_GENERIC64, m_GENERIC): New macros.
2023 (x86_use_leave): Enable for generic64. (x86_use_sahf,
2024 x86_ext_80387_constants): Enable for generic32. (x86_push_memory,
2025 x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop,
2026 x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
2027 x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
2028 x86_partial_reg_dependency, x86_memory_mismatch_stall,
2029 x86_accumulate_outgoing_args, x86_prologue_using_move,
2030 x86_epilogue_using_move, x86_arch_always_fancy_math_387,
2031 x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule):
2032 Enable for generic.
2033 (x86_use_incdec, x86_pad_returns): New.
2034 (override_options): Add generic32 and generic64, translate "generic"
2035 to generic32/generic64 and "i686" to "generic32", refuse
2036 "generic32"/"generic64" as arch target.
2037 (ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon.
2038 (ix86_reorg): Honor PAD_RETURNS.
2039
50674e96
DN
20402006-01-19 Diego Novillo <dnovillo@redhat.com>
2041
2042 * tree-pretty-print.c (dump_generic_node): Handle
2043 OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR.
2044 * cgraph.c (cgraph_expand_queue): Rename from
2045 cgraph_analyze_queue. Update all users.
2046 * cgraphunit.c (cgraph_assemble_pending_functions): Process
2047 cgraph_expand_queue.
2048 (cgraph_expand_all_functions): Likewise.
2049 (cgraph_finalize_pending_functions): Remove. Update callers.
2050
2051 * tree.h (OMP_DIRECTIVE_P): Define.
2052 (OMP_PARALLEL_FN): Define.
2053 (OMP_PARALLEL_DATA_ARG): Define.
2054 (OMP_SECTIONS_SECTIONS): Define.
2055 * tree-pass.h (pass_expand_omp): Declare.
2056 * omp-low.c (struct omp_region): Declare.
2057 (struct omp_context): Remove fields 'parallel_type',
2058 'parallel_start_ix' and 'parallel_start_additional_args'.
2059 Update all users.
2060 (struct omp_for_data): Rename from struct expand_omp_for_data.
2061 (omp_regions): New static variable.
2062 (root_omp_region): New static variable.
2063 (find_omp_clause): Make static.
2064 (is_in_combined_parallel_ctx): Remove.
2065 (is_combined_parallel): New.
2066 (extract_omp_for_data): Move earlier in the file.
2067 (workshare_safe_to_combine_p): New.
2068 (get_ws_args_for): New.
2069 (determine_parallel_type): Move earlier in the file.
2070 (omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the
2071 child function.
2072 (omp_copy_decl): Likewise.
2073 (create_omp_child_function): Likewise.
2074 (lookup_omp_region): New.
2075 (dump_omp_region): New.
2076 (debug_omp_region): New.
2077 (debug_all_omp_regions): New.
2078 (new_omp_region): New.
2079 (scan_omp_parallel): If parallel_nesting_level > 1, the
2080 directive is nested within another parallel directive.
2081 Set OMP_PARALLEL_FN.
2082 (scan_omp_for): Do not try to handle combined parallel+for
2083 cases.
2084 Remove FIXME comment.
2085 (scan_omp_nested): Remove.
2086 (scan_omp_1): Do not call scan_omp_nested when
2087 parallel_nesting_level is > 1.
2088 Do not change the DECL_CONTEXT of local variables found.
2089 (lookup_decl_in_outer_ctx): New.
2090 (lower_rec_input_clauses): Rename from expand_rec_input_clauses.
2091 (lower_lastprivate_clauses): Rename from expand_lastprivate_clauses.
2092 (lower_reduction_clauses): Rename from expand_reduction_clauses.
2093 (lower_copyprivate_clauses): Rename from expand_copyprivate_clauses.
2094 If CTX is nested, lookup VAR in the outer context when
2095 building copy assignment.
2096 (lower_send_clauses): Rename from expand_send_clauses.
2097 If CTX is nested, lookup VAR in the outer context when
2098 building copy assignments.
2099 (lower_send_shared_vars): Rename from expand_send_shared_vars.
2100 If CTX is nested, lookup VAR in the outer context when
2101 building copy assignments.
2102 (expand_parallel_call): Rename from build_parallel_call.
2103 Handle combined parallel+workshare cases.
2104 Re-implement to emit code into the CFG.
2105 (list2chain): New.
2106 (expand_omp_parallel): Re-implement to emit code into the CFG.
2107 Call move_sese_region_to_fn to outline the sub-graph
2108 containing the parallel region.
2109 (expand_omp_for_1): Remove.
2110 (expand_omp_for_generic): Re-implement to emit code into the
2111 CFG.
2112 (expand_omp_for_static_nochunk): Likewise.
2113 (expand_omp_for_static_chunk): Likewise.
2114 (expand_omp_for): Likewise.
2115 (expand_omp_sections): Likewise.
2116 (remove_exit_barriers): New.
2117 (expand_omp_synch): New.
2118 (expand_omp): New.
2119 (build_omp_regions_1): New.
2120 (build_omp_regions): New.
2121 (execute_expand_omp): New.
2122 (gate_expand_omp): New.
2123 (pass_expand_omp): Define.
2124 (lower_omp_sections): Rename from expand_omp_sections.
2125 Set OMP_SECTIONS_SECTIONS.
2126 (lower_omp_single_simple): Rename from expand_omp_single_simple.
2127 (lower_omp_single_copy): Rename from expand_omp_single_copy.
2128 (lower_omp_single): Rename from expand_omp_simple.
2129 (lower_omp_master): Rename from expand_omp_master.
2130 (lower_omp_ordered): Rename from expand_omp_ordered.
2131 (lower_omp_critical): Rename from expand_omp_critical.
2132 (lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate.
2133 (lower_omp_for): Re-implement.
2134 (lower_omp_parallel): Re-implement.
2135 (lower_regimplify): Rename from expand_regimplify.
2136 (lower_omp_1): Rename from expand_omp_1.
2137 If there are syntax errors in the program, replace every
2138 OpenMP directive with NOP.
2139 Call lower_omp_* instead of expand_omp_*.
2140 (lower_omp): Rename from expand_omp.
2141
2142 * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR.
2143 * tree-gimple.h (enum omp_parallel_type): Remove.
2144 (gimple_boolify): Declare extern.
2145 (find_omp_clause, determine_parallel_type): Remove.
2146
2147 * gimple-low.c (lower_omp_directive): New.
2148 (lower_stmt): Call it.
2149 (record_vars_into): Move from ...
2150 (record_vars): ... here.
2151 Call record_vars_into with current_function_decl.
2152
2153 * gimplify.c (struct gimplify_ctx): Remove fields
2154 combined_pre_p and combined_ctxp. Update users.
2155 (get_formal_tmp_var): Add documentation.
2156 (gimple_boolify): Make extern.
2157 (gimplify_expr_in_ctx): Remove. Update callers.
2158 (gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY
2159 will always be a BIND_EXPR.
2160 (gimplify_expr): Handle OMP_RETURN_EXPR.
2161 * tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS.
2162 (OMP_PARALLEL): Add 3 operands.
2163 (OMP_SECTIONS): Add 1 operand.
2164 (OMP_RETURN_EXPR): Define.
2165
2166 * tree-inline.c (estimate_num_insns_1): Handle OpenMP directives.
2167 (copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*.
2168 * tree-iterator.c (alloc_stmt_list): Assert that we are not
2169 creating a circular free list.
2170 (free_stmt_list): Assert that we are not freeing stmt_list_cache.
2171
2172 * tree-flow.h (move_sese_region_to_fn): Declare.
2173 (record_vars_into): Declare.
2174 * tree-cfg.c (make_omp_sections_edges): New.
2175 (make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE,
2176 OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR,
2177 OMP_SECTIONS and OMP_SECTION.
2178 (is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P.
2179 (set_bb_for_stmt): Undo change to check currently_expanding_to_rtl.
2180 (verify_stmt): Do not handle OMP_DIRECTIVE_P.
2181 (gather_blocks_in_sese_region): New.
2182 (struct move_stmt_d): Declare.
2183 (move_stmt_r): New.
2184 (move_block_to_fn): New.
2185 (move_sese_region_to_fn): New.
2186
2187 * passes.c (init_optimization_passes): Schedule
2188 pass_expand_omp after pass_init_datastructures.
2189
2190 * tree-ssa-operands.c (get_expr_operands): Handle
2191 OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR,
2192 OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL.
2193
307d19fe
JL
21942006-01-19 Jeff Law <law@redhat.com>
2195
2196 * tree-vrp.c (extract_range_from_assert): Refine the result range
2197 if the variable referenced by the ASSERT_EXPR has a range and
cbbbdc2c 2198 either the tentative result range or the previous range is a
307d19fe
JL
2199 VR_ANTI_RANGE.
2200
2fa6dddd
RS
22012006-01-19 Richard Sandiford <richard@codesourcery.com>
2202
2203 * c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses.
2204
44035081
JH
22052006-01-19 Jan Hubicka <jh@suse.cz>
2206
2207 * tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error.
2208
79c29032
PB
22092006-01-19 Paolo Bonzini <bonzini@gnu.org>
2210
2211 * combine.c (try_combine): Do not worry about MEMs wrapped by USEs.
2212 (expand_compound_operation, expand_field_assignment): Fail if the
2213 bit lengths of an extract operation are out of range.
2214 (make_extraction): Compute wanted_inner_mode based on the position
2215 and length of the extraction. Make it extraction_mode for non-constant
2216 positions, and do not modify offset in that case. When generating a
2217 new MEM, use a mode that can hold the extraction while keeping correct
2218 alignment. Remove code that supported MEMs wrapped by USEs.
2219 (simplify_shift_const_1, force_to_mode) <case USE>: Remove.
2220
3298c037
AK
22212006-01-19 Andreas Krebbel <krebbel1@de.ibm.com>
2222
2223 * config/s390/s390.md ("Y", "y"): New mode attribute.
cbbbdc2c 2224 ("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
3298c037 2225 "*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
cbbbdc2c
ZW
2226 "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
2227 "*addsi3_imm_cc", "*addsi3_carry1_cc",
3298c037
AK
2228 "*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
2229 "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
cbbbdc2c 2230 "*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
3298c037
AK
2231 "*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
2232 "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
2233 "*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
2234 "addsi3", "subsi3"): Insn patterns removed.
2235 ("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly",
2236 "*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc",
2237 "*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc",
2238 "*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly",
cbbbdc2c 2239 "*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly",
3298c037
AK
2240 "*sub<mode>3_cconly2"): New insn patterns.
2241 ("addsi3", "subsi3"): New expanders.
2242
20f06221
DN
22432006-01-19 Dorit Nuzman <dorit@il.ibm.com>
2244
2245 * Makefile.in (tree-vect-patterns.o): Add rule for new file.
2246 * tree-vect-analyze.c (vect_determine_vectorization_factor): Use
2247 existing STMT_VINFO_VECTYPE if available.
2248 (vect_mark_relevant): Add special handling for stmts that are
2249 marked as STMT_VINFO_IN_PATTERN_P.
2250 (vect_analyze_loop): Call vect_pattern_recog.
2251 * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
2252 * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in
2253 stmt_info.
2254 (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros.
2255 (vect_recog_func_ptr): New function-pointer type.
2256 * tree-vect-patterns.c: New file.
2257 (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern):
2258 (vect_recog_dot_prod_pattern, vect_pattern_recog):
2259 (vect_pattern_recog_1): New functions.
2260 (vect_pattern_recog_funcs): New array of function pointers.
2261
2262 * tree-vectorizer.h (ternary_op): New enum value.
2263 * tree-vect-transform.c (vect_create_epilog_for_reduction): Added
2264 declaration. Revised documentation. Removed redundant dump prints.
2265 Removed redundant argument. Added support for reduction patterns.
2266 (vectorizable_reduction): Added support for reduction patterns.
2267 (vect_transform_stmt): Added support for patterns.
2268
2269 * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR.
2270 * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize.
2271 * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR.
2272 (expand_widen_pattern_expr): New function.
2273 (init_optabs): Initialize new optabs udot_prod_optab,
2274 sdot_prod_optab.
2275 * optabs.h (OTI_sdot_prod, OTI_udot_prod): New.
2276 (sdot_prod_optab, udot_prod_optab): Define new optabs.
2277 (expand_widen_pattern_expr): New function declaration.
2278 * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New
2279 tree-codes.
2280 * tree-inline.c (estimate_num_insns_1): Added cases for new
2281 tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
2282 * tree-pretty-print.c (dump_generic_node): Likewise.
2283 (op_prio): Likewise.
2284 (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
2285 * tree-ssa-operands.c (get_expr_operands): Added case for
2286 DOT_PROD_EXPR.
2287 * tree-vect-patterns.c (widened_name_p): New function.
2288 (vect_recog_dot_prod_pattern): Added function implementation.
2289 * tree-vect-transform.c (get_initial_def_for_reduction): Added
2290 cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR.
2291 * config/rs6000/altivec.md (udot_prod<mode>, sdot_prodv8hi): New.
2292 * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New.
2293
2294 * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR.
2295 * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize.
2296 * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR.
2297 (init_optabs): Initialize new optabs widen_ssum_optab,
2298 widen_usum_optab.
2299 * optabs.h (OTI_widen_ssum, OTI_widen_usum): New.
2300 (widen_ssum_optab, widen_usum_optab): Define new optabs.
2301 * tree-vect-generic.c: (expand_vector_operations_1): Check type of
2302 use instead of type of def.
2303 * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added
2304 function implementation.
2305 * config/rs6000/altivec.md (widen_usum<mode>, widen_ssumv16qi,
2306 widen_ssumv8hi): New.
2307
2308 * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New
2309 patterns.
2310
1f0f7ceb
RS
23112006-01-19 Richard Sandiford <richard@codesourcery.com>
2312
2313 PR c/25805
2314 * c-decl.c (add_flexible_array_elts_to_size): New function.
2315 (finish_decl): Use it.
2316
e79b9d54
AP
23172006-01-18 Andrew Pinski <pinskia@physics.uc.edu>
2318
2319 * diagnostic.h: Include options.h.
2320 * config/rs6000/x-darwin (host-ppc-darwin.o): Correct the
2321 dependancies for diagnostic.h.
2322 * Makefile.in (DIAGNOSTIC_H): Add options.h.
2323
d16a5e36
DB
23242006-01-16 Daniel Berlin <dberlin@dberlin.org>
2325
2326 * tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
2327 (ssa_ro_call_cache_valid): Ditto.
2328 * tree-ssa-alias.c (sort_tags_by_id): New function.
2329 (init_transitive_clobber_worklist): Ditto.
2330 (add_to_worklist): Ditto.
2331 (mark_aliases_call_clobbered): Ditto.
2332 (compute_tag_properties): Ditto.
2333 (set_initial_properties): Ditto.
2334 (compute_call_clobbered): Ditto.
2335 (compute_may_aliases): Call compute_call_clobbered and grouping.
2336 (compute_flow_sensitive_aliasing): Remove clobbering related code.
2337 (compute_flow_insensitive_aliasing): Grouping now happens in our
2338 caller.
2339 (setup_pointers_and_addressables): Remove clobbering related code.
2340 (add_may_alias): Ditto.
2341 (replace_may_alias): Ditto.
2342 (get_nmt_for): Ditto.
cbbbdc2c 2343 (create_global_var):
d16a5e36
DB
2344 (is_escape_site): Return an escape_type enumeration.
2345 * tree-flow-inline.h (is_call_clobbered): Global var does not
2346 imply call clobbered.
2347 (mark_call_clobbered): Take a reason for marking this. Remove
2348 marking of globalness, and cache invalidation.
2349 (clear_call_clobbered): Remove cache invalidation code.
2350 * tree-dfa.c (dump_variable): If details is on, dump the reason
2351 for escaping.
2352 * tree-outof-ssa.c (create_temp): Copy escape mask from original
cbbbdc2c 2353 variable.
d16a5e36
DB
2354 * tree-flow.h (struct ptr_info_def): Add escape mask member.
2355 (struct var_ann_d): Ditto.
2356 (enum escape_type): New.
2357 (mark_call_clobbered): Adjust prototype.
2358 * tree-ssa-structalias.c (update_alias_info): Unmodifiable vars
cbbbdc2c 2359 are never call clobbered.
d16a5e36
DB
2360 Record reasons for escaping.
2361 * tree-ssa-structalias.h (is_escape_site): Update prototype.
2362 * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove.
2363 (ssa_ro_call_cache_valid): Ditto.
2364 (clobbered_v_may_defs): Ditto.
2365 (clobbered_vuses): Ditto.
2366 (ro_call_vuses): Ditto.
2367 (clobber_stats): New.
2368 (init_ssa_operands): Zero out clobber stats.
2369 (fini_ssa_operands): Print out clobber stats.
2370 (get_call_expr_operands): Pass callee fndecl to
2371 add_call_read_ops).
2372 (add_call_clobber_ops): Remove use of cache.
2373 Add use of PURE_CONST information.
2374 (add_call_read_ops): Remove use of cache.
2375 Add use of static not_read information.
cbbbdc2c 2376
5bf5a10b
AO
23772006-01-18 Alexandre Oliva <aoliva@redhat.com>
2378
2379 Introduce TLS descriptors for i386 and x86_64.
2380 * config/i386/i386.h (TARGET_GNU2_TLS): New macro.
2381 (TARGET_ANY_GNU_TLS): New macro.
2382 (enum tls_dialect): Added TLS_DIALECT_GNU2.
2383 (struct machine_function): Add tls_descriptor_call_expanded_p.
2384 (ix86_tls_descriptor_calls_expande_in_cfun): New macro.
2385 (ix86_current_function_calls_tls_descriptor): Likewise.
2386 * config/i386/i386.c (ix86_tls_dialect): Fix typo in comment.
2387 (override_options): Introduce gnu2 tls dialect.
2388 (ix86_frame_pointer_required): Functions containing TLSCALLs are
2389 not leaves.
2390 (ix86_select_alt_pic_regnum, ix86_compute_frame_layout):
2391 Likewise.
2392 (legitimize_tls_address): Adjust logic for GNU2 TLS.
2393 (ix86_init_machine_status): Initialize new field.
2394 (ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS.
2395 (ix86_tls_module_base): New.
2396 * config/i386/i386-protos.h (ix86_tls_module_base): Declare it.
2397 * config/i386/i386.md (UNSPEC_TLSDESC): New constant.
2398 (tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS.
2399 (tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise.
2400 (tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns.
2401 (*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise.
2402 (tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise.
2403 (*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise.
2404 * config/i386/predicates.md (tls_modbase_operand): New.
2405 (tp_or_register_operand): New.
2406
7dbca013
DB
24072006-01-18 Daniel Berlin <dberlin@dberlin.org>
2408
2409 * ipa-reference.c (check_operand): Allow FUNCTION_DECL.
2410 (look_for_address_of): Ditto.
2411 (ipa_init): Walk the function decls.
2412 (static_execute): Don't set readonly on FUNCTION_DECL's.
2413
61da04bd
RS
24142006-01-18 Roger Sayle <roger@eyesopen.com>
2415
2416 * config/i386/i386.md (shift spliter): Fix a a typo in the splitter
2417 for shifts where the source and destination registers are different.
2418
c0354bf4
PB
24192006-01-18 Paul Brook <paul@codesourcery.com>
2420
2421 Merge from csl-arm-branch.
2422 2005-03-14 Julian Brown <julian@codesourcery.com>
2423 * config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS.
2424 (aeabi_llsl): Likewise.
2425 (ashrdi3): Likewise.
2426 (aeabi_lasr): Likewise.
2427 (lshrdi3): Likewise.
cbbbdc2c 2428 (aeabi_llsr): Likewise.
c0354bf4
PB
2429 2005-03-10 Julian Brown <julian@codesourcery.com>
2430 * config.gcc: Disable shared libgcc for SymbianOS.
2431 * config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c.
2432
79cf5994
DD
24332006-01-18 DJ Delorie <dj@redhat.com>
2434
2435 * c-pragma.c (handle_pragma_diagnostic): New.
2436 (init_pragma): Register it.
2437 * doc/extend.texi: Document it.
2438
2439 * diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED.
2440 * diagnostic.h (diagnostic_classify_diagnostic): Declare.
2441 (diagnostic_context): Add classify_diagnostic[].
2442 * diagnostic.c (diagnostic_count_diagnostic): Don't count warnings
2443 as errors if they're overridden to DK_WARNING.
2444 (diagnostic_initialize): Initialize classify_diagnostic[].
2445 (diagnostic_set_kind_override): New.
2446 (diagnostic_report_diagnostic): Check for kind changes.
2447 * opts.c (common_handle_option): Take lang_mask. Update callers.
2448 Handle OPT_Werror_.
2449 * common.opt (Werror=): New.
2450 * doc/invoke.texi: Document -Werror=*
2451
f9fe7aed
JL
24522006-01-18 Jeff Law <law@redhat.com>
2453
2454 * tree-vrp.c (test_for_singularity): Correct test for new
2455 min limit. Use operand_equal_p rather than pointer equality
2456 for testing if new min/max values are equal.
2457
2458 * tree-ssa-propagate.c (substitute_and_fold): Delay simplifications
2459 using range information until after propagation and folding.
2460
953ff289
DN
24612006-01-18 Richard Henderson <rth@redhat.com>
2462 Aldy Hernandez <aldyh@redhat.com>
2463 Jakub Jelinek <jakub@redhat.com>
2464 Diego Novillo <dnovillo@redhat.com>
2465
2466 * omp-low.c: New file.
2467 * c-omp.c: New file.
2468
24692006-01-18 Richard Henderson <rth@redhat.com>
2470 Jakub Jelinek <jakub@redhat.com>
2471 Diego Novillo <dnovillo@redhat.com>
2472
2473 * doc/invoke.texi: Document -fopenmp.
2474 * tree-dump.h (debug_function): Declare.
2475 * hooks.c (hook_bool_tree_bool_false): New function.
2476 (hook_tree_tree_null): Remove.
2477 (hook_tree_tree_tree_null): New.
2478 * hooks.h: Update to match.
2479 * tree-pretty-print.c (debug_tree_chain): New.
2480 (print_generic_expr): Handle TDF_CHAIN.
2481 (dump_generic_node): Handle BLOCK.
2482 Do not abort with incomplete SWITCH_EXPRs.
2483 Do not dump body of an OpenMP directive if TDF_SLIM is given.
2484 <case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
2485 print space after directive name.
2486 <OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
2487 Handle OMP_MASTER and OMP_ORDERED.
2488 Handle printing of OMP_BODY just in one place, goto
2489 dump_omp_body in the rest of OMP_* nodes that have
2490 OMP_BODY.
2491 Don't handle clause nodes here. Update omp statements to
2492 use dump_omp_clauses.
2493 Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
2494 OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
2495 OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
2496 GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
2497 GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
2498 GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
2499 Adjust output for GOMP_PARALLEL.
2500 (dump_omp_clauses): New.
2501 (print_declaration): Dump DECL_VALUE_EXPR.
2502 (op_symbol_1): Split out of op_symbol.
2503 (dumping_stmts): Remove. Update all users.
2504 * cgraph.c (cgraph_analyze_queue): New.
2505 (cgraph_add_new_function): New.
2506 * cgraph.h (cgraph_analyze_queue): Declare.
2507 (cgraph_add_new_function): Declare.
2508 (cgraph_lower_function): Remove.
2509 * tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
2510 nodes. Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
2511 and TYPE_P nodes in its default clause.
2512 (empty_body_p): New.
2513 (tree_range_check_failed): New.
2514 (build5_stat): New.
2515 * tree.h (OMP_CLAUSE_REDUCTION_INIT,
2516 OMP_CLAUSE_REDUCTION_MERGE,
2517 OMP_CLAUSE_REDUCTION_PLACEHOLDER,
2518 OMP_CLAUSE_PRIVATE_DEBUG,
2519 OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
2520 OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
2521 OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
2522 OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
2523 OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
2524 OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
2525 OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
2526 OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
2527 OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
2528 OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
2529 OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
2530 OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
2531 OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
2532 OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
2533 (TREE_RANGE_CHECK): New.
2534 (empty_body_p): Declare.
2535 (enum omp_clause_default_kind): New.
2536 (build_string_literal): Declare.
2537 (enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
2538 (build5_stat, build5): Declare.
2539 * tree-pass.h (TDF_CHAIN): Define.
2540 * tree-pass.h (PROP_gimple_lomp): Define.
2541 (pass_lower_omp): Declare.
2542 * diagnostic.h (debug_tree_chain): Declare.
2543 * builtins.c (get_builtin_sync_mode): Use 0 as last argument to
2544 mode_for_size.
2545 (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
2546 * builtins.c (build_string_literal): Make extern.
2547 * gcc.c (include_spec_function): New.
2548 (static_spec_functions): Add it.
2549 (main): Move load of libgomp.spec ...
2550 (LINK_COMMAND_SPEC): ... here.
2551 (link_gomp_spec): New.
2552 (static_specs): Include it.
2553 (LINK_COMMAND_SPEC): Add link_gomp.
2554 (GOMP_SELF_SPECS): New.
2555 (driver_self_specs): Include it.
2556 (switch_matches): Don't mark inline.
2557 (main): Load libgomp.spec.
2558 * tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
2559 OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
2560 and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
2561 * tree-gimple.h (enum omp_parallel): Declare.
2562 (determine_parallel_type): Declare.
2563 (omp_firstprivatize_variable): Declare.
2564 (omp_reduction_init): Declare.
2565 (diagnose_omp_structured_block_errors): Declare.
2566 (struct walk_stmt_info): Add want_return_expr.
2567 (struct walk_stmt_info): Add want_bind_expr, want_locations.
2568 (find_omp_clause): Declare.
2569 (insert_field_into_struct): Declare.
2570 (struct walk_stmt_info): Move from tree-nested.c
2571 (walk_stmts): Declare.
2572 * c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
2573 to 200505.
2574 * cgraphunit.c (cgraph_lower_function): Make static.
2575 (cgraph_finalize_pending_functions): New.
2576 (cgraph_finalize_function): Call it.
2577 (cgraph_finalize_compilation_unit): Likewise.
2578 * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
2579 BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
2580 (BT_FN_UINT_UINT): New.
2581 (DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
2582 DEF_FUNCTION_TYPE_VAR_4): Document.
2583 (BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
2584 BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
2585 BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
2586 BT_FN_VOID_OMPFN_PTR_UINT_UINT,
2587 BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
2588 BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
2589 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
2590 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
2591 * builtins.def: Update DEF_BUILTIN comment to include COND argument.
2592 Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
2593 into separate files.
2594 (DEF_GOMP_BUILTIN): New.
2595 (BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
2596 BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
2597 BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
2598 BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
2599 BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
2600 BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
2601 BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
2602 BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
2603 BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
2604 BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
2605 BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
2606 BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
2607 BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
2608 BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
2609 BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
2610 BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
2611 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
2612 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
2613 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
2614 BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
2615 BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
2616 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
2617 BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
2618 BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
2619 BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
2620 BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
2621 * sync-builtins.def: New file, moved from builtins.def.
2622 * omp-builtins.def: New file, moved from builtins.def.
2623 * c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
2624 * gimple-low.c (lower_function_body): Clear data.
2625 (lower_stmt): Do not handle COMPOUND_EXPR.
2626 Remove call to print_node_brief.
2627 * c-tree.h (c_finish_omp_clauses): New prototype.
2628 (C_DECL_THREADPRIVATE_P): Define.
2629 (lookup_name_no_remap, c_omp_remap_private): Remove
2630 (c_begin_omp_parallel, c_finish_omp_parallel): Update.
2631 (check_for_loop_decls): Update decl.
2632 (lookup_name_no_remap, c_omp_remap_private): Declare.
2633 (build_indirect_ref, build_modify_expr, pushdecl,
2634 pushdecl_top_level): Move to c-common.h.
2635 * dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
2636 before the switch, but just in the 2 places that need it.
2637 * c-decl.c (diagnose_mismatched_decls): Do not check for
2638 mismatched thread-local attributes when OLDDECL is marked
2639 threadprivate and NEWDECL has no thread-local attributes.
2640 (merge_decls): Merge C_DECL_THREADPRIVATE_P.
2641 (c_gimple_diagnostics_recursively): Rename from
2642 c_warn_unused_result_recursively. Invoke
2643 diagnose_omp_structured_block_errors.
2644 (check_for_loop_decls): Return a singular decl found.
2645 * langhooks.c (lhd_omp_predetermined_sharing): Return
2646 OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
2647 (lhd_omp_firstprivatize_type_sizes): New.
2648 (lhd_omp_assignment): New.
2649 (lhd_omp_predetermined_sharing): New.
2650 * langhooks.h (struct gimplify_omp_ctx): Forward declare.
2651 (struct lang_hooks_for_types): Add
2652 omp_firstprivatize_type_sizes, omp_privatize_by_reference,
2653 omp_predetermined_sharing, omp_disregard_value_expr,
2654 omp_private_debug_clause, omp_clause_default_ctor,
2655 omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
2656 (c_finish_omp_clauses): New.
2657 (c_finish_bc_stmt): Diagnose break within omp for.
2658 (c_begin_omp_parallel, c_finish_omp_parallel): New.
2659 (build_unary_op): Return error_mark after reporting
2660 a readonly_error.
2661 (build_modify_expr): Likewise.
2662 * gimplify.c: Include optabs.h and pointer-set.h.
2663 (enum gimplify_omp_var_data): Declare.
2664 (struct gimplify_omp_ctx): Declare.
2665 (struct gimplify_ctx): Add fields prev_context, combined_pre_p
2666 and combined_ctxp.
2667 (gimplify_ctxp, gimplify_omp_ctxp): New local variables.
2668 (push_gimplify_context, pop_gimplify_context): Allow nesting.
2669 (splay_tree_compare_decl_uid): New.
2670 (new_omp_context): New.
2671 (delete_omp_context): New.
2672 (gimple_add_tmp_var): Call omp_add_variable.
2673 (gimplify_bind_expr): Likewise.
2674 (gimplify_var_or_parm_decl): If omp_notice_variable returned
2675 true, disregard DECL_VALUE_EXPR on the decl if any.
2676 (gimplify_expr_in_ctx): New.
2677 (omp_firstprivatize_variable, omp_firstprivatize_type_sizes
2678 omp_add_variable, omp_notice_variable, omp_is_private
2679 gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
2680 gimplify_adjust_omp_clauses, gimplify_omp_parallel
2681 gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
2682 gimplify_omp_atomic_fetch_op, goa_stabilize_expr
2683 gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
2684 gimplify_omp_atomic): New.
2685 (gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
2686 OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
2687 OMP_CRITICAL and OMP_ATOMIC.
2688 (gimplify_body): Verify gimplify_ctxp is empty after gimplification.
2689 * c-pragma.h (enum pragma_kind): Add
2690 PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
2691 PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
2692 PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
2693 PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
2694 PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
2695 PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
2696 PRAGMA_OMP_THREADPRIVATE.
2697 * tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
2698 OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
2699 OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
2700 OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
2701 OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
2702 OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
2703 OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
2704 OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
2705 OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
2706 * print-tree.c (print_node): Dump DECL_VALUE_EXPR.
2707 * tree-ssa-dce.c (find_control_dependence): Do not assume that
2708 ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
2709 * tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
2710 OpenMP directives.
2711 (struct nesting_info): Add field_map,
2712 suppress_expansion, debug_var_chain.
2713 (create_nesting_tree): Initialize them.
2714 (lookup_field_for_decl): Use field_map.
2715 (get_nonlocal_debug_decl, get_local_debug_decl): New.
2716 (convert_local_omp_clauses): New.
2717 (finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
2718 (walk_body): Split out of walk_function.
2719 (convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
2720 (convert_nonlocal_reference): Handle omp statements.
2721 (convert_local_reference): Likewise.
2722 (unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
2723 (unnest_nesting_tree): New.
2724 (lower_nested_functions): Call it.
2725 (insert_field_into_struct): Make extern.
2726 (struct walk_stmt_info): Move to tree-gimple.h.
2727 (walk_stmts): Make extern.
2728 * omp-builtins.def: New file.
2729 * tree-iterator.c (expr_only): Clarify comment.
2730 * c-common.h (pushdecl_top_level, pushdecl,
2731 build_modify_expr, build_indirect_ref,
2732 c_finish_omp_master, c_finish_omp_critical,
2733 c_finish_omp_ordered, c_finish_omp_barrier,
2734 c_finish_omp_atomic, c_finish_omp_flush,
2735 c_finish_omp_for, c_split_parallel_clauses,
2736 omp_clause_default_kind, c_omp_sharing_predetermined,
2737 c_omp_remap_decl): Declare.
2738 * Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
2739 (OBJS-common): Add omp-low.o.
2740 (c-omp.o, omp-low.o): Add.
2741 (gimplify.o): Add dependency on $(OPTABS_H).
2742 (GTFILES): Add omp-low.c.
2743 (gt-stringpool.h): Add.
2744 * tree-cfg.c (set_bb_for_stmt): Do not update the
2745 block-to-labels map if we are currently expanding to RTL.
2746 (tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
2747 checks.
2748 Handle IDENTIFIER_NODE.
2749 (tree_verify_flow_info): Do not ICE when emitting error
2750 messages about invalid labels.
2751 (dump_function_to_file): Reset CFUN before emitting the body
2752 of the function.
2753 (debug_function): New.
2754 * passes.c (init_optimization_passes): Schedule
2755 pass_lower_omp.
2756 * langhooks-def.h (lhd_omp_predetermined_sharing,
2757 lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
2758 Declare.
2759 (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
2760 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
2761 (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
2762 LANG_HOOKS_OMP_PREDETERMINED_SHARING,
2763 LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
2764 LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
2765 LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
2766 LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
2767 LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
2768 LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
2769 (LANG_HOOK_DECLS): Use them.
2770
27712006-01-18 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
2772 Richard Henderson <rth@redhat.com>
2773 Jakub Jelinek <jakub@redhat.com>
2774 Diego Novillo <dnovillo@redhat.com>
2775
2776 * c-parser.c (pragma_omp_clause): Define.
2777 (c_parser_declaration_or_fndef): Document OpenMP syntax.
2778 (c_parser_compound_statement): Likewise.
2779 (c_parser_statement): Likewise.
2780 (c_parser_pragma): Handle omp pragmas.
2781 (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
2782 OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
2783 (c_parser_omp_clause_name, check_no_duplicate_clause,
2784 c_parser_omp_variable_list,
2785 c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
2786 c_parser_omp_clause_copyprivate,
2787 c_parser_omp_clause_default,
2788 c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
2789 c_parser_omp_clause_lastprivate,
2790 c_parser_omp_clause_nowait,
2791 c_parser_omp_clause_num_threads,
2792 c_parser_omp_clause_ordered, c_parser_omp_clause_private,
2793 c_parser_omp_clause_reduction,
2794 c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
2795 c_parser_omp_all_clauses, c_parser_omp_structured_block,
2796 c_parser_omp_atomic, c_parser_omp_barrier,
2797 c_parser_omp_critical, c_parser_omp_flush,
2798 c_parser_omp_for_loop, c_parser_omp_for,
2799 c_parser_omp_master, c_parser_omp_ordered,
2800 c_parser_omp_sections_scope, c_parser_omp_sections,
2801 c_parser_omp_parallel, c_parser_omp_single,
2802 c_parser_omp_construct, c_parser_omp_threadprivate): New.
2803 * c-pragma.c (init_pragma): Do omp pragma registration here.
2804 * c.opt (fopenmp): New flag.
2805
28062006-01-18 Eric Christopher <echristo@apple.com>
2807
2808 * gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
2809 * config/darwin.h (GOMP_SELF_SPECS): Define.
2810
94a89f3b
KH
28112006-01-18 Kazu Hirata <kazu@codesourcery.com>
2812
2813 * rtl.h: Remove the prototype for reg_alloc.
2814
4720d5ca
JDA
28152006-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2816
2817 PR target/25731
2818 * config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*,
2819 hppa[12]*-*-hpux11*): Override default shared libgcc version for both
2820 sjlj and dwarf2 exception handling.
2821 * pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable.
2822 Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION.
2823 * pa/pa.c (function_value): Treat complex and vector types as
2824 aggregates.
2825 (function_arg): Likewise. Only pass scalar floats in the floating
2826 point argument registers.
2827 * pa/t-slibgcc-dwarf-ver: New file.
2828 * pa/t-slibgcc-sjlj-ver: New file.
2829 * pa/t-slibgcc-elf-ver: Delete file.
2830
4325ca90
AM
28312006-01-19 Alan Modra <amodra@bigpond.net.au>
2832
2833 * config/rs6000/rs6000.c (rs6000_assemble_integer): Correct
2834 unlikely_test_section_p test.
2835
7399bcb0
KH
28362006-01-18 Kazu Hirata <kazu@codesourcery.com>
2837
2838 * mode-switching.c (optimize_mode_switching): Make it static.
2839 * basic-block.h: Remove the prototype for
2840 optimize_mode_switching.
2841
efa2fa34
KH
2842 * modulo-sched.c (sms_schedule): Make it static.
2843 * rtl.h: Remove the prototype for sms_schedule.
2844
6e9ca1fa
KH
2845 * postreload-gcse.c (gcse_after_reload_main): Make it static.
2846 * rtl.h: Remove the prototype for gcse_after_reload_main.
2847
cf4d5c75
KH
2848 * reg-stack.c (reg_to_stack): Make it static.
2849 * rtl.h: Remove the prototype for reg_to_stack.
2850
b6438f2e
KH
2851 * regrename.c (regrename_optimize, copyprop_hardreg_forward):
2852 Make them static.
2853 * rtl.h: Remove the prototypes for regrename_optimize and
2854 copyprop_hardreg_forward.
2855
b2f39494
EB
28562006-01-18 Eric Botcazou <ebotcazou@adacore.com>
2857
2858 * config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into
2859 alpha_split_tmode_pair. Add 'mode' and 'fixup_overlap' arguments.
2860 Test against the appropriate null constant for the mode.
2861 If 'fixup_overlap' is true, swap the operands if they overlap.
2862 (alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair.
2863 * config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into
2864 alpha_split_tmode_pair and adjust for above change.
2865 * config/alpha/alpha.md (movtf_internal): Adjust call to
2866 alpha_split_tfmode_pair and rely on it to swap the operands.
2867 (movti_internal): New insn and post-reload splitter.
2868 (movti): New expander.
2869
9d757cde
PDM
28702006-01-18 Philippe De Muyter <phdm@macqel.be>
2871
2872 * config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory
2873 operands.
2874
15ed68f7
KH
28752006-01-18 Kazu Hirata <kazu@codesourcery.com>
2876
2877 * rtlanal.c (global_reg_mentioned_p_1,
2878 global_reg_mentioned_p): Remove.
2879 * rtl.h: Remove the prototype for global_reg_mentioned_p.
2880
a0dc2bb6
KH
2881 * flow.c (initialize_uninitialized_subregs): Make it static.
2882 * rtl.h: Remove the prototype for
2883 initialize_uninitialized_subregs.
2884
e8d6954b
KH
2885 * function.c (instantiate_virtual_regs): Make it static.
2886 * function.h: Remove the prototype for
2887 instantiate_virtual_regs.
2888
fe3c3571
KH
2889 * regmove.c (regmove_optimize, combine_stack_adjustments):
2890 Make them static.
2891 * rtl.h: Remove the prototypes for regmove_optimize and
2892 combine_stack_adjustments.
2893
3dd0df7f
RS
28942006-01-17 Roger Sayle <roger@eyesopen.com>
2895
2896 * config/i386/i386.c (COSTS_N_BYTES): New macro.
2897 (size_cost): Encode costs in bytes so that a reg-reg addition is
2898 equivalent to COSTS_N_INSNS(1).
2899 (override_options): Use the size_cost.branch_cost as the default
2900 ix86_branch_cost when optimizing for size.
2901
cbbbdc2c 29022006-01-18 Ben Elliston <bje@au.ibm.com>
d190d56b
BE
2903
2904 * Makefile.in (D32PBIT_FUNCS): New.
2905 (D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise.
2906 (libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS,
2907 D64PBIT_FUNCS and D128PBIT_FUNCS.
2908 (LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT).
2909 * mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or
2910 D128PBIT are set.
2911 (decnumber_dep): Define.
2912 * doc/libgcc.texi (Decimal float library routines): New node.
2913 * config/dfp-bit.h, config/dfp-bit.c: New files.
2914
cbbbdc2c 29152006-01-18 Ben Elliston <bje@au.ibm.com>
ef7befe0
BE
2916
2917 * expr.c (emit_move_change_mode): Always adjust addresses, not
2918 just during reload. Copy replacements only during reload.
2919 (emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking
2920 emit_move_via_integer.
2921
88405bd3
SS
29222006-01-17 Shantonu Sen <ssen@opendarwin.org>
2923
2924 * Makefile.in (check-%, check-consistency): Use $${srcdir}
2925 instead of $(srcdir) and ${srcdir}.
2926
020a4035
RE
29272006-01-17 Richard Earnshaw <rearnsha@arm.com>
2928
2929 PR target/592
2930 PR middle-end/11135
2931 * arm.h (struct machine_function): Add pic_reg.
2932 * arm.c (arm_pic_register): Make unsigned.
2933 (arm_override_options): Only set arm_pic_register if
2934 TARGET_SINGLE_PIC_BASE.
2935 (use_return_insn): Only test for a pic register if it is fixed.
2936 (arm_compute_save_reg0_reg12_mask): Likewise.
2937 (thumb_compute_save_reg_mask): Likewise.
2938 (legitimate_pic_operand): Factor out some known invariants.
2939 (legitimize_pic_address): If we don't have a fixed pic register,
2940 then set up a pseudo in the function entry sequence. Handle the
2941 pic base being in a pseudo.
2942 (arm_load_pic_register): Handle the pic register being in a pseudo.
2943 (arm_expand_prologue): Only set up the pic register if it is fixed.
2944 (thumb_expand_prologue): Likewise.
2945 * arm.md (pic_load_addr_based): Handle the pic base being a pseudo.
2946 (pic_load_addr_based_insn): Likewise.
2947 (builtin_setjmp_receiver): Don't restore the pic base if it isn't
2948 fixed.
2949
fc0d1c49
BE
29502006-01-18 Ben Elliston <bje@au.ibm.com>
2951
a5a97921
BE
2952 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject
2953 decimal float modes for all floating point registers.
2954
fc0d1c49
BE
2955 * config/rs6000/predicates.md (reg_or_mem_operand): Pair up
2956 match_code "mem" with match_test "macho_lo_sum_memory_operand".
2957
3aa2ddb8
JJ
29582006-01-17 Jakub Jelinek <jakub@redhat.com>
2959
2960 PR c/25682
2961 * c-typeck.c (build_unary_op): Fold offsetof-like expressions
2962 even when the pointer is not NULL.
2963
474eccc6
ILT
29642006-01-16 Ian Lance Taylor <ian@airs.com>
2965
2966 * common.opt (ftoplevel-reorder): New option.
2967 * cgraph.c (cgraph_asm_nodes): New global variable.
2968 (cgraph_asm_last_node): New static variable.
2969 (cgraph_order): New global variable.
2970 (cgraph_create_node): Set new order field.
2971 (cgraph_varpool_node): Likewise.
2972 (decide_is_variable_needed): Return true if not
2973 flag_toplevel_reorder.
2974 (cgraph_add_asm_node): New function.
2975 * cgraph.h (struct cgraph_node): Add order field.
2976 (struct cgraph_varpool_node): Add order field.
2977 (struct cgraph_asm_node): Define.
2978 (cgraph_asm_nodes, cgraph_order): Declare.
2979 (cgraph_add_asm_node): Declare.
2980 * cgraphunit.c (cgraph_varpool_assemble_decl): New static
2981 function.
2982 (cgraph_varpool_assemble_pending_decls): Call it.
2983 (cgraph_output_pending_asms): New static function.
2984 (cgraph_finalize_compilation_unit): Call it.
2985 (struct cgraph_order_sort): Define.
2986 (cgraph_output_in_order): New static function.
2987 (cgraph_optimize): Call cgraph_output_pending_asms. Add code for
2988 !flag_toplevel_reorder case.
2989 * c-parser.c: Include "cgraph.h".
2990 (c_parser_asm_definition): Call cgraph_add_asm_node rather than
2991 assemble_asm.
2992 * Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather
2993 than -fno-unit-at-a-time.
2994 * doc/invoke.texi (Option Summary): Mention
2995 -fno-toplevel-reorder.
2996 (Optimize Options): Document -fno-toplevel-reorder. Mention it in
2997 -funit-at-a-time documentation.
2998
be694a52 29992006-01-17 Hans-Peter Nilsson <hp@axis.com>
e29b01e1 3000 Kazu Hirata <kazu@codesourcery.com>
be694a52
HPN
3001
3002 * Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h.
3003
90f90283
KH
30042006-01-17 Kazu Hirata <kazu@codesourcery.com>
3005
3006 * Makefile.in (FUNCTION_H): New. Use it instead of
3007 function.h throughout the file.
3008 * function.h: Include tree.h.
3009
9099f8e1
BE
30102006-01-17 Ben Elliston <bje@au.ibm.com>
3011
3012 * recog.c: Separate some functions with whitespace.
3013
1b369fae
RH
30142006-01-16 Richard Henderson <rth@redhat.com>
3015
3016 Merge from gomp branch:
3017 * Makefile.in (TREE_INLINE_H): New. Use it as needed.
3018 * tree-inline.h (struct copy_body_data): Move from tree-inline.c
cbbbdc2c 3019 and rename from struct inline_data. Rename callee* to dst*;
1b369fae
RH
3020 caller* to src*; add copy_decl hook, transform_call_graph_edges,
3021 transform_new_cfg, transform_return_to_modify, and
3022 transform_lang_insert_block flags; remove cloning_p, versioning_p,
3023 update_clones_p.
3024 (copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
3025 (copy_decl_for_dup): Remove.
3026 * tree-inline.c (struct inline_data): Move to header.
3027 (insert_decl_map): Export.
3028 (remap_decl): Update for member name changes. Use copy_decl hook.
3029 Allow for replacement to be a non-decl. Remove dead code.
3030 (remap_type_1): Check for existing mapping.
3031 (remap_type): Export.
3032 (remap_decls): Update for member name changes.
3033 (remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
3034 (copy_body, setup_one_parameter, declare_return_variable): Likewise.
3035 (expand_call_inline, optimize_inline_calls, clone_body): Likewise.
3036 (copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
3037 (tree_function_versioning, build_duplicate_type): Likewise.
3038 (copy_body_r): Likewise. Export.
3039 (copy_decl_for_dup): Split into ...
3040 (copy_decl_for_dup_finish, copy_decl_to_var,
3041 copy_decl_no_change, copy_decl_maybe_to_var): ... these.
3042 (replace_ref_tree, inlining_p): Remove.
3043
d6108e89
KH
30442006-01-16 Kazu Hirata <kazu@codesourcery.com>
3045
3046 * ifcvt.c (if_convert): Make it static.
3047 * rtl.h: Remove the prototype for if_convert.
3048
57c8b089
KH
3049 * local-alloc.c (local_alloc): Make it static.
3050 * rtl.h: Remove the prototype for local_alloc.
3051
04578e64
KH
3052 * loop.c (loop_optimize): Make it static.
3053 * cfgloop.h: Remove the prototype for loop_optimize.
3054 * rtl.h: Likewise.
3055
838f78d6
DD
30562006-01-16 DJ Delorie <dj@redhat.com>
3057
3058 * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of
3059 mems.
3060
2d6ae5d6
JDA
30612006-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3062
3063 * pa.md: Disparage copies between general and floating-point registers
3064 in 32-bit move patterns.
3065
fea4cfe0
L
30662006-01-16 H.J. Lu <hongjiu.lu@intel.com>
3067
3068 PR testsuite/25741
3069 * Makefile.in (check-%): Depend on site.exp instead of
3070 $(TESTSUITEDIR)/site.exp. Run "runtest" in separate language
3071 directories.
3072
1c765770
KH
30732006-01-16 Kazu Hirata <kazu@codesourcery.com>
3074
3075 * global.c (global_alloc): Make it static.
3076 * rtl.h: Remove the prototype for global_alloc.
3077
183596eb
RG
30782006-01-16 Richard Guenther <rguenther@suse.de>
3079
3080 * tree-ssa-alias.c (struct used_part): Add write_only field.
3081 (get_or_create_used_part_for): Initialize it to true.
3082 (create_overlap_variables_for): Don't create structure variables
3083 for structures that only are written to.
3084 (find_used_portions): Handle MODIFY_EXPR to track whether a
3085 structure is only written to.
3086
081c6ba6
KH
30872006-01-16 Kazu Hirata <kazu@codesourcery.com>
3088
3089 * bb-reorder.c (partition_hot_cold_basic_blocks): Make it
3090 static.
3091 * basic-block.h: Remove the prototype for
3092 partition_hot_cold_basic_blocks.
3093
4e9d3943 3094