]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
r110123@banpei: zack | 2006-01-22 14:44:34 -0800
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
1c7352cd
ZW
12006-01-22 Zack Weinberg <zackw@panix.com>
2
3 * genconditions.c (condition_table, add_condition): Delete.
4 (write_conditions): Don't emit n_insn_conditions nor
5 insn_elision_unavailable. Issue the gcc version #ifdef here,
6 inside the table, with no #else clause ...
7 (write_header): ...not here.
8 (write_writer): New function.
9 (main): Don't initialize condition_table. Use add_c_test.
10 Call write_writer.
11 * gensupport.c (init_md_reader_args_cb): Handle multiple input
12 files on the command line.
13 (maybe_eval_c_test): Don't check insn_elision_unavailable.
14 Return -1 if there is no entry in the table, don't abort.
15 (add_c_test, traverse_c_tests): New functions.
16 * gensupport.h (insn_elision_unavailable, insn_conditions)
17 (n_insn_conditions): Delete declarations.
18 (add_c_test, traverse_c_tests): Declare.
19 * read-rtl.c: Include gensupport.h.
20 (read_conditions): New function.
21 (read_rtx): If read_rtx_1 returns 0, treat as EOF.
22 (read_rtx_1): If we get EOF when we were looking for an initial
23 open paren, return 0. Call read_conditions when appropriate.
24 * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to
25 dummy-conditions.o. Eliminate references to insn-conditions.o,
26 or change them to build/gencondmd.o, as appropriate. Remove
27 insn-constants.h from $(simple_generated_h) and insn-conditions.c
28 from $(simple_generated_c). For all files remaining in those
29 two lists, add insn-conditions.md to the generator command line.
30 Give insn-constants.h/s-constants their own rules. Add rules
31 for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd.
32 (build/read-rtl.o): Depend on gensupport.h.
33 (genprognormal): Include preds.
34 (genprogearly): Rename genprognoprint; only difference is now that
35 they don't link with $(BUILD_PRINT).
36 * dummy-conditions.c: Delete.
37
245fc639
ZW
382006-01-22 Zack Weinberg <zackw@panix.com>
39
40 * genextract.c: Don't include insn-config.h. Do include vec.h.
41 Declare vectors of int, char, and locstr.
42 (locstr): New typedef.
43 (struct extraction): Make all array fields into bare pointers.
44 (insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name.
45 (insn_code_number): Delete.
46 (accum_extract): New struct.
47 (VEC_safe_set_locstr, VEC_char_to_string): New functions.
48 (gen_insn): Take insn_code_number as an argument. Use an
49 accum_extract structure instead of loading data directly into
50 a struct extraction, and having to know how big it might get.
51 (walk_rtx): Operate entirely on an accum_extract structure.
52 (print_path): Avoid unnecessary use of printf.
53 (print_header): New function, split out of main. Distinguish
54 more carefully between an unrecognizable insn and an insn that
55 has the code number of a define_expand.
56 (main): Pass insn_code_number to gen_insn. Call print_header
57 only after parsing. Avoid unnecessary use of printf.
58 * Makefile.in (build/vec.o): New rule.
59 (build/genextract): Depend on build/vec.o.
60 (build/genextract.o): Don't depend on insn-config.h.
61
cbbbdc2c
ZW
622006-01-22 Zack Weinberg <zackw@panix.com>
63
64 * Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or
65 $(RUN_GEN). Use pattern rules to factor out as much boilerplate as
66 practical. Eliminate per-generator-program link rules.
67
bac9efea
AP
682006-01-23 Andrew Pinski <pinskia@physics.uc.edu>
69
70 PR middle-end/24437
71 * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
72 with a call expr to ...
73 * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
74
766613a4
RG
752006-01-23 Richard Guenther <rguenther@suse.de>
76
77 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment
78 before make_edge with conditional EDGE_TRUE_VALUE.
79
d239ed56
SB
802006-01-23 Steven Bosscher <stevenb.gcc@gmail.com>
81 Jan Hubicka <jh@suse.cz>
82 Richard Guenther <rguenther@suse.de>
83
84 PR rtl-optimization/25654
85 * cfgexpand.c (aggregate_contains_union_type): New function.
86 (add_alias_set_conflicts): Call it. Make sure to add conflicts
87 for structure variables that contain a union type.
88
0f01f026
RS
892006-01-23 Richard Sandiford <richard@codesourcery.com>
90
91 * gengtype.c (new_structure): Return the structure.
92 (create_option): Add an extra "next" argument.
93 (create_field): New function.
94 (adjust_field_rtx_def): Use create_option and create_field.
95 Remove a now-unnecessary call to find_structure.
96 (adjust_field_tree_def): Likewise.
97 (note_yacc_type): Remove an unnecessary call to find_structure.
98 * gengtype.h (new_structure): Return the structure.
99 (create_option): Add an extra argument.
100 * gengtype-yacc.y (type): Remove unnecessary calls to find_structure.
101 (option): Adjust calls to create_option.
102
4e9d3943
DE
1032006-01-22 David Edelsohn <edelsohn@gnu.org>
104
105 * config/rs6000/aix.h (STACK_BOUNDARY): Define.
106
dcc21c4c
PB
1072006-01-22 Paul Brook <paul@codesourcery.com>
108 Peter Barada <peter@the-baradas.com>
109
110 * config/m68k/m68k.md: Add Coldfire FPU support.
111 Define FP mode macro and associated attributes.
112 Use it for float mode patterns.
113 * config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value.
114 (LIBCALL_VALUE): Use m68k_libcall_value.
115 * config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype.
116 (m68k_function_value): Ditto.
117 (emit_move_sequence): Ditto.
118 * config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value.
119 * config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e.
120 * config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e.
121 (MULTILIB_EXCEPTIONS): Ditto.
122 * config/m68k/m68k.opt: Add mcfv4e.
123 * config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e.
124 (m68k_compute_frame_layout): Include space for ColdFire FPU regs.
125 (m68k_output_function_prologue): Save ColdFire FPU registers.
126 (m68k_output_function_epilogue): Restore ColdFire FPU registers.
127 (force_mode, fp_reg_operand, emit_move_sequence): New functions.
128 (m68k_regno_mode_ok): Don't allow types larget than 8 bytes in
129 ColdFire FPU registers.
130 (m68k_libcall_value, m68k_function_value): New functions.
131 * config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value.
132 (LIBCALL_VALUE): Use m68k_libcall_value.
133 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__.
134 (MASK_COLDFIRE): Add MASK_CFV4E.
135 (TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New.
136 (MODES_TIEABLE_P): Use TARGET_HARD_FLOAT.
137 (REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto.
138 (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define.
139 (GO_IF_LEGITIMATE_ADDRESS): Use it.
140 (LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses.
141 * doc/invoke.tex: Document -mcfv4e on m68k.
142
7b7046c7
RM
1432006-01-22 Ranjit Mathew <rmathew@gcc.gnu.org>
144
145 * doc/contribute.texi: Change CVS to SVN and update the corresponding
146 URL.
147
efee9ded
GDR
1482006-01-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
149
150 PR c++/16190
151 * c-opts.c (c_common_handle_option): Don't include
152 -Wnon-virtual-dtor in -Wall; enable if -Weffc++.
153 * doc/invoke.texi (C++ Dialect Options): Document that
154 -Wnon-virtual-dtor is no longer included in -Wall.
155
a6d6c2c0
JM
1562006-01-21 Joseph S. Myers <joseph@codesourcery.com>
157
158 * gcov.c (print_version), gcov-dump.c (print_version),
159 mips-tdump.c (main), mips-tfile.c (main): Update copyright notice
160 dates.
161
30cb87a0
KZ
1622005-01-21 Kenneth Zadeck <zadeck@naturalbridge.com>
163
164 * df-scan.c (problem_SCAN): Added NULL reset function.
165 (df_scan_reset_blocks): Added code to call reset block function
166 (df_bb_refs_delete) Fixed comment.
167 (df_insn_refs_delete): Made tolerant of deleting non existent info
168 for dataflow problems that need to be reset.
169 * df-core.c (df_set_blocks): Ditto.
170 * df.h (struct df_problem): Added reset_fun.
171 * df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
172 problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field.
173 (df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New
174 functions to clear out all references to def-use or use-def chains.
175
5e5cf1ee
BE
1762006-01-21 Ben Elliston <bje@au.ibm.com>
177
178 * varasm.c (assemble_real): Initialise data array.
179
d5b6e637
PB
1802006-01-20 Paul Brook <paul@codesourcery.com>
181
182 Merge from csl-arm-branch.
183 2005-09-21 Kazu Hirata <kazu@codesourcery.com>
184 * config/arm/arm.md (movdi): Force operands[1] to a register
185 if we have a non-register source.
186 (*arm_movdi, *movdf_soft_insn): Require that one of the
187 operands be a register.
188 * config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise.
189 * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
190
971dfb9b
DD
1912006-01-20 DJ Delorie <dj@redhat.com>
192
193 * varasm.c (initialize_constant_valid_p): Allow pointers
194 initialized from integer constants of lesser precision.
195 (output_constant): Allow non-int-sized pointer modes to be
196 initialized from integer constants.
197
2b6dd222
JM
1982006-01-20 Joseph S. Myers <joseph@codesourcery.com>
199
200 PR libstdc++/25524
201 * cppdefault.h (struct default_include): Add multilib flag.
202 * cppdefault.c (cpp_include_defaults): Set it.
203 * c.opt (-imultilib): New option.
204 * c-opts.c (imultilib): New.
205 (c_common_handle_option): Handle -imultilib.
206 (c_common_post_options): Likewise.
207 * c-incpath.c (add_standard_paths, register_include_chains):
208 Likewise.
209 * c-incpath.h (register_include_chains): Add extra parameter.
210 * gcc.c (do_spec_1): Generate -imultilib option.
211 (The Specs Language): Update %I description.
212 (process_command): Update copyright notice.
213 * doc/cppopts.texi (-imultilib): Document.
214 * doc/invoke.texi (-imultilib): Include in option summary.
215 (%I): Update specs documentation.
216
33cb1cf6
ZD
2172006-01-20 Zdenek Dvorak <dvorakz@suse.cz>
218
219 * loop-iv.c (iv_analysis_loop_init): Use df in more conservative way.
220
0174997a
RS
2212006-01-20 Richard Sandiford <richard@codesourcery.com>
222
223 * stmt.c (case_bit_test_cmp): Stabilize the sort using code
224 label numbers.
225
c11fd0b2
RG
2262006-01-20 Richard Guenther <rguenther@suse.de>
227 Steven Bosscher <stevenb.gcc@gmail.com>
228
229 PR rtl-optimization/24626
230 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set
231 EDGE_TRUE_VALUE if in RTL mode.
232
233 Revert
234 2005-03-30 Mostafa Hagog <mustafa@il.ibm.com>
235 * cfgrtl.c (rtl_verify_flow_info_1): Fix.
236
74ac79fa
DM
2372006-01-20 Dirk Mueller <dmueller@suse.com>
238
cbbbdc2c
ZW
239 PR c++/5520
240 * c-parser.c (c_parser_if_body): Use build_empty_stmt()
241 instead of a special NOP marker.
242 * c-typeck.c (c_finish_if_stmt): Remove obsoleted special
243 NOP marker handling.
244 * c-common.h (empty_body_warning): Add forward declaration.
245 * c-common.c (empty_body_warning): Add (from c_finish_if_stmt).
246 Now uses IS_EMPTY_STMT() instead of special NOP markers.
74ac79fa 247
577092ba
PB
2482005-01-20 Paul Brook <paul@codesourcery.com>
249
250 * Makefile.in (lang_checks): Keep going if mkdir fails.
251
3b8266e2
KZ
2522005-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
253
254 * df-scan.c (df_scan_free_bb_info): Added basic block parameter to
255 be able to clean out basic block when not necessary.
256 (df_scan_free): Fixed to properly delete information if df is
257 unused before calling df_finish.
258 (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
259 df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
260 or comment typos.
261 (df_bb_refs_delete): New function.
262 (df_refs_delete): Moved per block code to df_bb_refs_delete.
263 * df-core.c (df_set_blocks): Added code to properly clean out
264 unused blocks if they are not part of the blocks to consider.
265 Added additional null check.
266 (df_compact_blocks): Added basic block parameter to free_bb_fun to
267 be able to clean out basic block when not necessary
268 * df.h (df_free_bb_function): Ditto.
269 (df_bb_refs_delete): New function.
270 * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
271 df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
272 basic block parameter to be able to clean out basic block when not
273 necessary.
274 (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
275 (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
276 Fixed to properly delete information if df is unused before
277 calling df_finish.
278
59c52af4
KZ
2792005-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
280
cbbbdc2c 281 PR rtl-optimization/25799
59c52af4
KZ
282 * df-problems.c (df_ru_confluence_n, df_rd_confluence_n):
283 Corrected confluence operator to remove bits from op2 before oring
284 with op1 rather than removing bits from op1.
cbbbdc2c 285 (df_ru_transfer_function): Corrected test on wrong bitmap which
59c52af4
KZ
286 caused infinite loop. Both of these problems were introduced in
287 the dataflow rewrite.
288
ff182b5c
DD
2892006-01-19 DJ Delorie <dj@redhat.com>
290
291 * reload1.c (find_reload_regs): Note the details of reload
292 failures in the dump file.
293 (spill_failure): Likewise.
294
03fd2215
ZD
2952006-01-20 Zdenek Dvorak <dvorakz@suse.cz>
296
297 * loop-iv.c: Include df.h and hashtab.h.
298 (enum iv_grd_result): New enum.
299 (DF_REF_IV, DF_REF_IV_SET): New macros.
300 (struct biv_entry): New.
301 (df, bivs): New global variables.
302 (struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no,
303 assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p):
304 Removed.
305 (clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr,
306 iv_analyze_result, iv_analyze_def, biv_hash, biv_eq,
307 analyzed_for_bivness_p, record_biv): New functions.
308 (iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p,
309 get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op,
310 iv_analyze, biv_p, iv_analysis_done): Work with df representation of
311 UD chains.
312 (iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set
313 analysed.
314 (iv_number_of_iterations): Use new interface to iv analysis.
315 * loop-unroll.c: Do not include varray.h.
316 (analyze_iv_to_split_insn): Use new interface to iv
317 analysis.
318 * loop-unswitch.c (may_unswitch_on): Ditto.
319 * df.c (df_bitmaps_free): Only work for bbs for that structures are
320 allocated.
321 (df_bb_modify): Realloc tables to the new index.
322 (df_find_use): New function.
323 * df.h (df_find_use): Declare.
324 * optabs.c (expand_unop): Make the mode of the REG_EQUAL node be
325 outmode.
326 * cfgloop.h (struct rtx_iv): Remove analysed field.
327 (iv_get_reaching_def): Removed.
328 (iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare.
329 * Makefile.in (loop-unroll.o): Remove VARRAY_H dependency.
330 (loop-iv.o): Add df.h and hashtab.h dependency.
331 * df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation.
332
b04c9063
AM
3332006-01-20 Alan Modra <amodra@bigpond.net.au>
334
335 * libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended
336 Double TFmode.
337 (__floatundisf, __floatundidf): Likewise.
338 * libgcc2.h (IS_IBM_EXTENDED): Define.
339
e9a8eb89
DD
3402006-01-19 DJ Delorie <dj@redhat.com>
341
342 * config/m32c/m32c.h (REG_ALLOC_ORDER): Define.
343
cf1955dc
PB
3442006-01-19 Paul Brook <paul@codesourcery.com>
345
346 * gcc/config/arm/arm.c (arm_compute_func_type): Treat all functions
347 as nothrow when unwinding tables are disabled.
348
1dc80d7a
JDA
3492006-01-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
350
351 PR testsuite/25171
352 * c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type
353 of bit-field" when in system header.
354
2e160056
DD
3552006-01-19 DJ Delorie <dj@redhat.com>
356
357 * config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with
358 the 16 bit shift limit of the m16c.
359
9795d9fd
AP
3602006-01-19 Andrew Pinski <pinskia@physics.uc.edu>
361
362 PR target/22099
363 * config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label.
364 * config/i386/i386.c (output_set_got): Output the label if we have one
365 for the TARGET_DEEP_BRANCH_PREDICTION case.
366
d326eaf0 3672006-01-19 Jan Hubicka <jh@suse.cz>
cbbbdc2c 368 H.J. Lu <hongjiu.lu@intel.com>
d326eaf0
JH
369 Evandro Menezes <evandro.menezes@amd.com>
370
371 * invoke.texi (generic): Document
372 (i686) Update.
373 * config.gcc: Make x86_64-* and i686-* default to generic tunning.
374 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC,
375 TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros.
376 (x86_use_incdec, x86_pad_returns): New variables
377 (TARGET_CPU_DEFAULT_generic): New constant
378 (TARGET_CPU_DEFAULT_NAMES): Add generic.
379 (enum processor_type): Add generic32 and generic64.
380 * i386.md (cpu attribute): Add generic32/generic64
381 (movhi splitter): Behave sanely when both partial_reg_dependency and
382 partial_reg_stall are set.
383 (K8 splitters): Enable for generic as well.
384 * predicates.md (incdec_operand): Use TARGET_INCDEC
385 (aligned_operand): Avoid memory mismatch stalls.
386 * athlon.md: Enable for generic64, new patterns for 128bit moves.
387 * ppro.md: Enable for generic32
388 * i386.c (generic64_cost, generic32_cost): New.
389 (m_GENERIC32, m_GENERIC64, m_GENERIC): New macros.
390 (x86_use_leave): Enable for generic64. (x86_use_sahf,
391 x86_ext_80387_constants): Enable for generic32. (x86_push_memory,
392 x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop,
393 x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
394 x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
395 x86_partial_reg_dependency, x86_memory_mismatch_stall,
396 x86_accumulate_outgoing_args, x86_prologue_using_move,
397 x86_epilogue_using_move, x86_arch_always_fancy_math_387,
398 x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule):
399 Enable for generic.
400 (x86_use_incdec, x86_pad_returns): New.
401 (override_options): Add generic32 and generic64, translate "generic"
402 to generic32/generic64 and "i686" to "generic32", refuse
403 "generic32"/"generic64" as arch target.
404 (ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon.
405 (ix86_reorg): Honor PAD_RETURNS.
406
50674e96
DN
4072006-01-19 Diego Novillo <dnovillo@redhat.com>
408
409 * tree-pretty-print.c (dump_generic_node): Handle
410 OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR.
411 * cgraph.c (cgraph_expand_queue): Rename from
412 cgraph_analyze_queue. Update all users.
413 * cgraphunit.c (cgraph_assemble_pending_functions): Process
414 cgraph_expand_queue.
415 (cgraph_expand_all_functions): Likewise.
416 (cgraph_finalize_pending_functions): Remove. Update callers.
417
418 * tree.h (OMP_DIRECTIVE_P): Define.
419 (OMP_PARALLEL_FN): Define.
420 (OMP_PARALLEL_DATA_ARG): Define.
421 (OMP_SECTIONS_SECTIONS): Define.
422 * tree-pass.h (pass_expand_omp): Declare.
423 * omp-low.c (struct omp_region): Declare.
424 (struct omp_context): Remove fields 'parallel_type',
425 'parallel_start_ix' and 'parallel_start_additional_args'.
426 Update all users.
427 (struct omp_for_data): Rename from struct expand_omp_for_data.
428 (omp_regions): New static variable.
429 (root_omp_region): New static variable.
430 (find_omp_clause): Make static.
431 (is_in_combined_parallel_ctx): Remove.
432 (is_combined_parallel): New.
433 (extract_omp_for_data): Move earlier in the file.
434 (workshare_safe_to_combine_p): New.
435 (get_ws_args_for): New.
436 (determine_parallel_type): Move earlier in the file.
437 (omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the
438 child function.
439 (omp_copy_decl): Likewise.
440 (create_omp_child_function): Likewise.
441 (lookup_omp_region): New.
442 (dump_omp_region): New.
443 (debug_omp_region): New.
444 (debug_all_omp_regions): New.
445 (new_omp_region): New.
446 (scan_omp_parallel): If parallel_nesting_level > 1, the
447 directive is nested within another parallel directive.
448 Set OMP_PARALLEL_FN.
449 (scan_omp_for): Do not try to handle combined parallel+for
450 cases.
451 Remove FIXME comment.
452 (scan_omp_nested): Remove.
453 (scan_omp_1): Do not call scan_omp_nested when
454 parallel_nesting_level is > 1.
455 Do not change the DECL_CONTEXT of local variables found.
456 (lookup_decl_in_outer_ctx): New.
457 (lower_rec_input_clauses): Rename from expand_rec_input_clauses.
458 (lower_lastprivate_clauses): Rename from expand_lastprivate_clauses.
459 (lower_reduction_clauses): Rename from expand_reduction_clauses.
460 (lower_copyprivate_clauses): Rename from expand_copyprivate_clauses.
461 If CTX is nested, lookup VAR in the outer context when
462 building copy assignment.
463 (lower_send_clauses): Rename from expand_send_clauses.
464 If CTX is nested, lookup VAR in the outer context when
465 building copy assignments.
466 (lower_send_shared_vars): Rename from expand_send_shared_vars.
467 If CTX is nested, lookup VAR in the outer context when
468 building copy assignments.
469 (expand_parallel_call): Rename from build_parallel_call.
470 Handle combined parallel+workshare cases.
471 Re-implement to emit code into the CFG.
472 (list2chain): New.
473 (expand_omp_parallel): Re-implement to emit code into the CFG.
474 Call move_sese_region_to_fn to outline the sub-graph
475 containing the parallel region.
476 (expand_omp_for_1): Remove.
477 (expand_omp_for_generic): Re-implement to emit code into the
478 CFG.
479 (expand_omp_for_static_nochunk): Likewise.
480 (expand_omp_for_static_chunk): Likewise.
481 (expand_omp_for): Likewise.
482 (expand_omp_sections): Likewise.
483 (remove_exit_barriers): New.
484 (expand_omp_synch): New.
485 (expand_omp): New.
486 (build_omp_regions_1): New.
487 (build_omp_regions): New.
488 (execute_expand_omp): New.
489 (gate_expand_omp): New.
490 (pass_expand_omp): Define.
491 (lower_omp_sections): Rename from expand_omp_sections.
492 Set OMP_SECTIONS_SECTIONS.
493 (lower_omp_single_simple): Rename from expand_omp_single_simple.
494 (lower_omp_single_copy): Rename from expand_omp_single_copy.
495 (lower_omp_single): Rename from expand_omp_simple.
496 (lower_omp_master): Rename from expand_omp_master.
497 (lower_omp_ordered): Rename from expand_omp_ordered.
498 (lower_omp_critical): Rename from expand_omp_critical.
499 (lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate.
500 (lower_omp_for): Re-implement.
501 (lower_omp_parallel): Re-implement.
502 (lower_regimplify): Rename from expand_regimplify.
503 (lower_omp_1): Rename from expand_omp_1.
504 If there are syntax errors in the program, replace every
505 OpenMP directive with NOP.
506 Call lower_omp_* instead of expand_omp_*.
507 (lower_omp): Rename from expand_omp.
508
509 * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR.
510 * tree-gimple.h (enum omp_parallel_type): Remove.
511 (gimple_boolify): Declare extern.
512 (find_omp_clause, determine_parallel_type): Remove.
513
514 * gimple-low.c (lower_omp_directive): New.
515 (lower_stmt): Call it.
516 (record_vars_into): Move from ...
517 (record_vars): ... here.
518 Call record_vars_into with current_function_decl.
519
520 * gimplify.c (struct gimplify_ctx): Remove fields
521 combined_pre_p and combined_ctxp. Update users.
522 (get_formal_tmp_var): Add documentation.
523 (gimple_boolify): Make extern.
524 (gimplify_expr_in_ctx): Remove. Update callers.
525 (gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY
526 will always be a BIND_EXPR.
527 (gimplify_expr): Handle OMP_RETURN_EXPR.
528 * tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS.
529 (OMP_PARALLEL): Add 3 operands.
530 (OMP_SECTIONS): Add 1 operand.
531 (OMP_RETURN_EXPR): Define.
532
533 * tree-inline.c (estimate_num_insns_1): Handle OpenMP directives.
534 (copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*.
535 * tree-iterator.c (alloc_stmt_list): Assert that we are not
536 creating a circular free list.
537 (free_stmt_list): Assert that we are not freeing stmt_list_cache.
538
539 * tree-flow.h (move_sese_region_to_fn): Declare.
540 (record_vars_into): Declare.
541 * tree-cfg.c (make_omp_sections_edges): New.
542 (make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE,
543 OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR,
544 OMP_SECTIONS and OMP_SECTION.
545 (is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P.
546 (set_bb_for_stmt): Undo change to check currently_expanding_to_rtl.
547 (verify_stmt): Do not handle OMP_DIRECTIVE_P.
548 (gather_blocks_in_sese_region): New.
549 (struct move_stmt_d): Declare.
550 (move_stmt_r): New.
551 (move_block_to_fn): New.
552 (move_sese_region_to_fn): New.
553
554 * passes.c (init_optimization_passes): Schedule
555 pass_expand_omp after pass_init_datastructures.
556
557 * tree-ssa-operands.c (get_expr_operands): Handle
558 OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR,
559 OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL.
560
307d19fe
JL
5612006-01-19 Jeff Law <law@redhat.com>
562
563 * tree-vrp.c (extract_range_from_assert): Refine the result range
564 if the variable referenced by the ASSERT_EXPR has a range and
cbbbdc2c 565 either the tentative result range or the previous range is a
307d19fe
JL
566 VR_ANTI_RANGE.
567
2fa6dddd
RS
5682006-01-19 Richard Sandiford <richard@codesourcery.com>
569
570 * c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses.
571
44035081
JH
5722006-01-19 Jan Hubicka <jh@suse.cz>
573
574 * tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error.
575
79c29032
PB
5762006-01-19 Paolo Bonzini <bonzini@gnu.org>
577
578 * combine.c (try_combine): Do not worry about MEMs wrapped by USEs.
579 (expand_compound_operation, expand_field_assignment): Fail if the
580 bit lengths of an extract operation are out of range.
581 (make_extraction): Compute wanted_inner_mode based on the position
582 and length of the extraction. Make it extraction_mode for non-constant
583 positions, and do not modify offset in that case. When generating a
584 new MEM, use a mode that can hold the extraction while keeping correct
585 alignment. Remove code that supported MEMs wrapped by USEs.
586 (simplify_shift_const_1, force_to_mode) <case USE>: Remove.
587
3298c037
AK
5882006-01-19 Andreas Krebbel <krebbel1@de.ibm.com>
589
590 * config/s390/s390.md ("Y", "y"): New mode attribute.
cbbbdc2c 591 ("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
3298c037 592 "*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
cbbbdc2c
ZW
593 "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
594 "*addsi3_imm_cc", "*addsi3_carry1_cc",
3298c037
AK
595 "*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
596 "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
cbbbdc2c 597 "*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
3298c037
AK
598 "*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
599 "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
600 "*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
601 "addsi3", "subsi3"): Insn patterns removed.
602 ("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly",
603 "*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc",
604 "*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc",
605 "*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly",
cbbbdc2c 606 "*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly",
3298c037
AK
607 "*sub<mode>3_cconly2"): New insn patterns.
608 ("addsi3", "subsi3"): New expanders.
609
20f06221
DN
6102006-01-19 Dorit Nuzman <dorit@il.ibm.com>
611
612 * Makefile.in (tree-vect-patterns.o): Add rule for new file.
613 * tree-vect-analyze.c (vect_determine_vectorization_factor): Use
614 existing STMT_VINFO_VECTYPE if available.
615 (vect_mark_relevant): Add special handling for stmts that are
616 marked as STMT_VINFO_IN_PATTERN_P.
617 (vect_analyze_loop): Call vect_pattern_recog.
618 * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
619 * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in
620 stmt_info.
621 (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros.
622 (vect_recog_func_ptr): New function-pointer type.
623 * tree-vect-patterns.c: New file.
624 (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern):
625 (vect_recog_dot_prod_pattern, vect_pattern_recog):
626 (vect_pattern_recog_1): New functions.
627 (vect_pattern_recog_funcs): New array of function pointers.
628
629 * tree-vectorizer.h (ternary_op): New enum value.
630 * tree-vect-transform.c (vect_create_epilog_for_reduction): Added
631 declaration. Revised documentation. Removed redundant dump prints.
632 Removed redundant argument. Added support for reduction patterns.
633 (vectorizable_reduction): Added support for reduction patterns.
634 (vect_transform_stmt): Added support for patterns.
635
636 * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR.
637 * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize.
638 * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR.
639 (expand_widen_pattern_expr): New function.
640 (init_optabs): Initialize new optabs udot_prod_optab,
641 sdot_prod_optab.
642 * optabs.h (OTI_sdot_prod, OTI_udot_prod): New.
643 (sdot_prod_optab, udot_prod_optab): Define new optabs.
644 (expand_widen_pattern_expr): New function declaration.
645 * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New
646 tree-codes.
647 * tree-inline.c (estimate_num_insns_1): Added cases for new
648 tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
649 * tree-pretty-print.c (dump_generic_node): Likewise.
650 (op_prio): Likewise.
651 (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
652 * tree-ssa-operands.c (get_expr_operands): Added case for
653 DOT_PROD_EXPR.
654 * tree-vect-patterns.c (widened_name_p): New function.
655 (vect_recog_dot_prod_pattern): Added function implementation.
656 * tree-vect-transform.c (get_initial_def_for_reduction): Added
657 cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR.
658 * config/rs6000/altivec.md (udot_prod<mode>, sdot_prodv8hi): New.
659 * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New.
660
661 * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR.
662 * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize.
663 * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR.
664 (init_optabs): Initialize new optabs widen_ssum_optab,
665 widen_usum_optab.
666 * optabs.h (OTI_widen_ssum, OTI_widen_usum): New.
667 (widen_ssum_optab, widen_usum_optab): Define new optabs.
668 * tree-vect-generic.c: (expand_vector_operations_1): Check type of
669 use instead of type of def.
670 * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added
671 function implementation.
672 * config/rs6000/altivec.md (widen_usum<mode>, widen_ssumv16qi,
673 widen_ssumv8hi): New.
674
675 * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New
676 patterns.
677
1f0f7ceb
RS
6782006-01-19 Richard Sandiford <richard@codesourcery.com>
679
680 PR c/25805
681 * c-decl.c (add_flexible_array_elts_to_size): New function.
682 (finish_decl): Use it.
683
e79b9d54
AP
6842006-01-18 Andrew Pinski <pinskia@physics.uc.edu>
685
686 * diagnostic.h: Include options.h.
687 * config/rs6000/x-darwin (host-ppc-darwin.o): Correct the
688 dependancies for diagnostic.h.
689 * Makefile.in (DIAGNOSTIC_H): Add options.h.
690
d16a5e36
DB
6912006-01-16 Daniel Berlin <dberlin@dberlin.org>
692
693 * tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
694 (ssa_ro_call_cache_valid): Ditto.
695 * tree-ssa-alias.c (sort_tags_by_id): New function.
696 (init_transitive_clobber_worklist): Ditto.
697 (add_to_worklist): Ditto.
698 (mark_aliases_call_clobbered): Ditto.
699 (compute_tag_properties): Ditto.
700 (set_initial_properties): Ditto.
701 (compute_call_clobbered): Ditto.
702 (compute_may_aliases): Call compute_call_clobbered and grouping.
703 (compute_flow_sensitive_aliasing): Remove clobbering related code.
704 (compute_flow_insensitive_aliasing): Grouping now happens in our
705 caller.
706 (setup_pointers_and_addressables): Remove clobbering related code.
707 (add_may_alias): Ditto.
708 (replace_may_alias): Ditto.
709 (get_nmt_for): Ditto.
cbbbdc2c 710 (create_global_var):
d16a5e36
DB
711 (is_escape_site): Return an escape_type enumeration.
712 * tree-flow-inline.h (is_call_clobbered): Global var does not
713 imply call clobbered.
714 (mark_call_clobbered): Take a reason for marking this. Remove
715 marking of globalness, and cache invalidation.
716 (clear_call_clobbered): Remove cache invalidation code.
717 * tree-dfa.c (dump_variable): If details is on, dump the reason
718 for escaping.
719 * tree-outof-ssa.c (create_temp): Copy escape mask from original
cbbbdc2c 720 variable.
d16a5e36
DB
721 * tree-flow.h (struct ptr_info_def): Add escape mask member.
722 (struct var_ann_d): Ditto.
723 (enum escape_type): New.
724 (mark_call_clobbered): Adjust prototype.
725 * tree-ssa-structalias.c (update_alias_info): Unmodifiable vars
cbbbdc2c 726 are never call clobbered.
d16a5e36
DB
727 Record reasons for escaping.
728 * tree-ssa-structalias.h (is_escape_site): Update prototype.
729 * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove.
730 (ssa_ro_call_cache_valid): Ditto.
731 (clobbered_v_may_defs): Ditto.
732 (clobbered_vuses): Ditto.
733 (ro_call_vuses): Ditto.
734 (clobber_stats): New.
735 (init_ssa_operands): Zero out clobber stats.
736 (fini_ssa_operands): Print out clobber stats.
737 (get_call_expr_operands): Pass callee fndecl to
738 add_call_read_ops).
739 (add_call_clobber_ops): Remove use of cache.
740 Add use of PURE_CONST information.
741 (add_call_read_ops): Remove use of cache.
742 Add use of static not_read information.
cbbbdc2c 743
5bf5a10b
AO
7442006-01-18 Alexandre Oliva <aoliva@redhat.com>
745
746 Introduce TLS descriptors for i386 and x86_64.
747 * config/i386/i386.h (TARGET_GNU2_TLS): New macro.
748 (TARGET_ANY_GNU_TLS): New macro.
749 (enum tls_dialect): Added TLS_DIALECT_GNU2.
750 (struct machine_function): Add tls_descriptor_call_expanded_p.
751 (ix86_tls_descriptor_calls_expande_in_cfun): New macro.
752 (ix86_current_function_calls_tls_descriptor): Likewise.
753 * config/i386/i386.c (ix86_tls_dialect): Fix typo in comment.
754 (override_options): Introduce gnu2 tls dialect.
755 (ix86_frame_pointer_required): Functions containing TLSCALLs are
756 not leaves.
757 (ix86_select_alt_pic_regnum, ix86_compute_frame_layout):
758 Likewise.
759 (legitimize_tls_address): Adjust logic for GNU2 TLS.
760 (ix86_init_machine_status): Initialize new field.
761 (ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS.
762 (ix86_tls_module_base): New.
763 * config/i386/i386-protos.h (ix86_tls_module_base): Declare it.
764 * config/i386/i386.md (UNSPEC_TLSDESC): New constant.
765 (tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS.
766 (tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise.
767 (tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns.
768 (*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise.
769 (tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise.
770 (*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise.
771 * config/i386/predicates.md (tls_modbase_operand): New.
772 (tp_or_register_operand): New.
773
7dbca013
DB
7742006-01-18 Daniel Berlin <dberlin@dberlin.org>
775
776 * ipa-reference.c (check_operand): Allow FUNCTION_DECL.
777 (look_for_address_of): Ditto.
778 (ipa_init): Walk the function decls.
779 (static_execute): Don't set readonly on FUNCTION_DECL's.
780
61da04bd
RS
7812006-01-18 Roger Sayle <roger@eyesopen.com>
782
783 * config/i386/i386.md (shift spliter): Fix a a typo in the splitter
784 for shifts where the source and destination registers are different.
785
c0354bf4
PB
7862006-01-18 Paul Brook <paul@codesourcery.com>
787
788 Merge from csl-arm-branch.
789 2005-03-14 Julian Brown <julian@codesourcery.com>
790 * config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS.
791 (aeabi_llsl): Likewise.
792 (ashrdi3): Likewise.
793 (aeabi_lasr): Likewise.
794 (lshrdi3): Likewise.
cbbbdc2c 795 (aeabi_llsr): Likewise.
c0354bf4
PB
796 2005-03-10 Julian Brown <julian@codesourcery.com>
797 * config.gcc: Disable shared libgcc for SymbianOS.
798 * config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c.
799
79cf5994
DD
8002006-01-18 DJ Delorie <dj@redhat.com>
801
802 * c-pragma.c (handle_pragma_diagnostic): New.
803 (init_pragma): Register it.
804 * doc/extend.texi: Document it.
805
806 * diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED.
807 * diagnostic.h (diagnostic_classify_diagnostic): Declare.
808 (diagnostic_context): Add classify_diagnostic[].
809 * diagnostic.c (diagnostic_count_diagnostic): Don't count warnings
810 as errors if they're overridden to DK_WARNING.
811 (diagnostic_initialize): Initialize classify_diagnostic[].
812 (diagnostic_set_kind_override): New.
813 (diagnostic_report_diagnostic): Check for kind changes.
814 * opts.c (common_handle_option): Take lang_mask. Update callers.
815 Handle OPT_Werror_.
816 * common.opt (Werror=): New.
817 * doc/invoke.texi: Document -Werror=*
818
f9fe7aed
JL
8192006-01-18 Jeff Law <law@redhat.com>
820
821 * tree-vrp.c (test_for_singularity): Correct test for new
822 min limit. Use operand_equal_p rather than pointer equality
823 for testing if new min/max values are equal.
824
825 * tree-ssa-propagate.c (substitute_and_fold): Delay simplifications
826 using range information until after propagation and folding.
827
953ff289
DN
8282006-01-18 Richard Henderson <rth@redhat.com>
829 Aldy Hernandez <aldyh@redhat.com>
830 Jakub Jelinek <jakub@redhat.com>
831 Diego Novillo <dnovillo@redhat.com>
832
833 * omp-low.c: New file.
834 * c-omp.c: New file.
835
8362006-01-18 Richard Henderson <rth@redhat.com>
837 Jakub Jelinek <jakub@redhat.com>
838 Diego Novillo <dnovillo@redhat.com>
839
840 * doc/invoke.texi: Document -fopenmp.
841 * tree-dump.h (debug_function): Declare.
842 * hooks.c (hook_bool_tree_bool_false): New function.
843 (hook_tree_tree_null): Remove.
844 (hook_tree_tree_tree_null): New.
845 * hooks.h: Update to match.
846 * tree-pretty-print.c (debug_tree_chain): New.
847 (print_generic_expr): Handle TDF_CHAIN.
848 (dump_generic_node): Handle BLOCK.
849 Do not abort with incomplete SWITCH_EXPRs.
850 Do not dump body of an OpenMP directive if TDF_SLIM is given.
851 <case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
852 print space after directive name.
853 <OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
854 Handle OMP_MASTER and OMP_ORDERED.
855 Handle printing of OMP_BODY just in one place, goto
856 dump_omp_body in the rest of OMP_* nodes that have
857 OMP_BODY.
858 Don't handle clause nodes here. Update omp statements to
859 use dump_omp_clauses.
860 Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
861 OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
862 OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
863 GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
864 GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
865 GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
866 Adjust output for GOMP_PARALLEL.
867 (dump_omp_clauses): New.
868 (print_declaration): Dump DECL_VALUE_EXPR.
869 (op_symbol_1): Split out of op_symbol.
870 (dumping_stmts): Remove. Update all users.
871 * cgraph.c (cgraph_analyze_queue): New.
872 (cgraph_add_new_function): New.
873 * cgraph.h (cgraph_analyze_queue): Declare.
874 (cgraph_add_new_function): Declare.
875 (cgraph_lower_function): Remove.
876 * tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
877 nodes. Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
878 and TYPE_P nodes in its default clause.
879 (empty_body_p): New.
880 (tree_range_check_failed): New.
881 (build5_stat): New.
882 * tree.h (OMP_CLAUSE_REDUCTION_INIT,
883 OMP_CLAUSE_REDUCTION_MERGE,
884 OMP_CLAUSE_REDUCTION_PLACEHOLDER,
885 OMP_CLAUSE_PRIVATE_DEBUG,
886 OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
887 OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
888 OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
889 OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
890 OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
891 OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
892 OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
893 OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
894 OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
895 OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
896 OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
897 OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
898 OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
899 OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
900 (TREE_RANGE_CHECK): New.
901 (empty_body_p): Declare.
902 (enum omp_clause_default_kind): New.
903 (build_string_literal): Declare.
904 (enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
905 (build5_stat, build5): Declare.
906 * tree-pass.h (TDF_CHAIN): Define.
907 * tree-pass.h (PROP_gimple_lomp): Define.
908 (pass_lower_omp): Declare.
909 * diagnostic.h (debug_tree_chain): Declare.
910 * builtins.c (get_builtin_sync_mode): Use 0 as last argument to
911 mode_for_size.
912 (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
913 * builtins.c (build_string_literal): Make extern.
914 * gcc.c (include_spec_function): New.
915 (static_spec_functions): Add it.
916 (main): Move load of libgomp.spec ...
917 (LINK_COMMAND_SPEC): ... here.
918 (link_gomp_spec): New.
919 (static_specs): Include it.
920 (LINK_COMMAND_SPEC): Add link_gomp.
921 (GOMP_SELF_SPECS): New.
922 (driver_self_specs): Include it.
923 (switch_matches): Don't mark inline.
924 (main): Load libgomp.spec.
925 * tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
926 OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
927 and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
928 * tree-gimple.h (enum omp_parallel): Declare.
929 (determine_parallel_type): Declare.
930 (omp_firstprivatize_variable): Declare.
931 (omp_reduction_init): Declare.
932 (diagnose_omp_structured_block_errors): Declare.
933 (struct walk_stmt_info): Add want_return_expr.
934 (struct walk_stmt_info): Add want_bind_expr, want_locations.
935 (find_omp_clause): Declare.
936 (insert_field_into_struct): Declare.
937 (struct walk_stmt_info): Move from tree-nested.c
938 (walk_stmts): Declare.
939 * c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
940 to 200505.
941 * cgraphunit.c (cgraph_lower_function): Make static.
942 (cgraph_finalize_pending_functions): New.
943 (cgraph_finalize_function): Call it.
944 (cgraph_finalize_compilation_unit): Likewise.
945 * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
946 BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
947 (BT_FN_UINT_UINT): New.
948 (DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
949 DEF_FUNCTION_TYPE_VAR_4): Document.
950 (BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
951 BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
952 BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
953 BT_FN_VOID_OMPFN_PTR_UINT_UINT,
954 BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
955 BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
956 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
957 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
958 * builtins.def: Update DEF_BUILTIN comment to include COND argument.
959 Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
960 into separate files.
961 (DEF_GOMP_BUILTIN): New.
962 (BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
963 BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
964 BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
965 BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
966 BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
967 BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
968 BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
969 BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
970 BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
971 BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
972 BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
973 BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
974 BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
975 BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
976 BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
977 BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
978 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
979 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
980 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
981 BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
982 BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
983 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
984 BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
985 BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
986 BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
987 BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
988 * sync-builtins.def: New file, moved from builtins.def.
989 * omp-builtins.def: New file, moved from builtins.def.
990 * c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
991 * gimple-low.c (lower_function_body): Clear data.
992 (lower_stmt): Do not handle COMPOUND_EXPR.
993 Remove call to print_node_brief.
994 * c-tree.h (c_finish_omp_clauses): New prototype.
995 (C_DECL_THREADPRIVATE_P): Define.
996 (lookup_name_no_remap, c_omp_remap_private): Remove
997 (c_begin_omp_parallel, c_finish_omp_parallel): Update.
998 (check_for_loop_decls): Update decl.
999 (lookup_name_no_remap, c_omp_remap_private): Declare.
1000 (build_indirect_ref, build_modify_expr, pushdecl,
1001 pushdecl_top_level): Move to c-common.h.
1002 * dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
1003 before the switch, but just in the 2 places that need it.
1004 * c-decl.c (diagnose_mismatched_decls): Do not check for
1005 mismatched thread-local attributes when OLDDECL is marked
1006 threadprivate and NEWDECL has no thread-local attributes.
1007 (merge_decls): Merge C_DECL_THREADPRIVATE_P.
1008 (c_gimple_diagnostics_recursively): Rename from
1009 c_warn_unused_result_recursively. Invoke
1010 diagnose_omp_structured_block_errors.
1011 (check_for_loop_decls): Return a singular decl found.
1012 * langhooks.c (lhd_omp_predetermined_sharing): Return
1013 OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
1014 (lhd_omp_firstprivatize_type_sizes): New.
1015 (lhd_omp_assignment): New.
1016 (lhd_omp_predetermined_sharing): New.
1017 * langhooks.h (struct gimplify_omp_ctx): Forward declare.
1018 (struct lang_hooks_for_types): Add
1019 omp_firstprivatize_type_sizes, omp_privatize_by_reference,
1020 omp_predetermined_sharing, omp_disregard_value_expr,
1021 omp_private_debug_clause, omp_clause_default_ctor,
1022 omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
1023 (c_finish_omp_clauses): New.
1024 (c_finish_bc_stmt): Diagnose break within omp for.
1025 (c_begin_omp_parallel, c_finish_omp_parallel): New.
1026 (build_unary_op): Return error_mark after reporting
1027 a readonly_error.
1028 (build_modify_expr): Likewise.
1029 * gimplify.c: Include optabs.h and pointer-set.h.
1030 (enum gimplify_omp_var_data): Declare.
1031 (struct gimplify_omp_ctx): Declare.
1032 (struct gimplify_ctx): Add fields prev_context, combined_pre_p
1033 and combined_ctxp.
1034 (gimplify_ctxp, gimplify_omp_ctxp): New local variables.
1035 (push_gimplify_context, pop_gimplify_context): Allow nesting.
1036 (splay_tree_compare_decl_uid): New.
1037 (new_omp_context): New.
1038 (delete_omp_context): New.
1039 (gimple_add_tmp_var): Call omp_add_variable.
1040 (gimplify_bind_expr): Likewise.
1041 (gimplify_var_or_parm_decl): If omp_notice_variable returned
1042 true, disregard DECL_VALUE_EXPR on the decl if any.
1043 (gimplify_expr_in_ctx): New.
1044 (omp_firstprivatize_variable, omp_firstprivatize_type_sizes
1045 omp_add_variable, omp_notice_variable, omp_is_private
1046 gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
1047 gimplify_adjust_omp_clauses, gimplify_omp_parallel
1048 gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
1049 gimplify_omp_atomic_fetch_op, goa_stabilize_expr
1050 gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
1051 gimplify_omp_atomic): New.
1052 (gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
1053 OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
1054 OMP_CRITICAL and OMP_ATOMIC.
1055 (gimplify_body): Verify gimplify_ctxp is empty after gimplification.
1056 * c-pragma.h (enum pragma_kind): Add
1057 PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
1058 PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
1059 PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
1060 PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
1061 PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
1062 PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
1063 PRAGMA_OMP_THREADPRIVATE.
1064 * tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
1065 OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
1066 OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
1067 OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
1068 OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
1069 OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
1070 OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
1071 OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
1072 OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
1073 * print-tree.c (print_node): Dump DECL_VALUE_EXPR.
1074 * tree-ssa-dce.c (find_control_dependence): Do not assume that
1075 ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
1076 * tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
1077 OpenMP directives.
1078 (struct nesting_info): Add field_map,
1079 suppress_expansion, debug_var_chain.
1080 (create_nesting_tree): Initialize them.
1081 (lookup_field_for_decl): Use field_map.
1082 (get_nonlocal_debug_decl, get_local_debug_decl): New.
1083 (convert_local_omp_clauses): New.
1084 (finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
1085 (walk_body): Split out of walk_function.
1086 (convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
1087 (convert_nonlocal_reference): Handle omp statements.
1088 (convert_local_reference): Likewise.
1089 (unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
1090 (unnest_nesting_tree): New.
1091 (lower_nested_functions): Call it.
1092 (insert_field_into_struct): Make extern.
1093 (struct walk_stmt_info): Move to tree-gimple.h.
1094 (walk_stmts): Make extern.
1095 * omp-builtins.def: New file.
1096 * tree-iterator.c (expr_only): Clarify comment.
1097 * c-common.h (pushdecl_top_level, pushdecl,
1098 build_modify_expr, build_indirect_ref,
1099 c_finish_omp_master, c_finish_omp_critical,
1100 c_finish_omp_ordered, c_finish_omp_barrier,
1101 c_finish_omp_atomic, c_finish_omp_flush,
1102 c_finish_omp_for, c_split_parallel_clauses,
1103 omp_clause_default_kind, c_omp_sharing_predetermined,
1104 c_omp_remap_decl): Declare.
1105 * Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
1106 (OBJS-common): Add omp-low.o.
1107 (c-omp.o, omp-low.o): Add.
1108 (gimplify.o): Add dependency on $(OPTABS_H).
1109 (GTFILES): Add omp-low.c.
1110 (gt-stringpool.h): Add.
1111 * tree-cfg.c (set_bb_for_stmt): Do not update the
1112 block-to-labels map if we are currently expanding to RTL.
1113 (tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
1114 checks.
1115 Handle IDENTIFIER_NODE.
1116 (tree_verify_flow_info): Do not ICE when emitting error
1117 messages about invalid labels.
1118 (dump_function_to_file): Reset CFUN before emitting the body
1119 of the function.
1120 (debug_function): New.
1121 * passes.c (init_optimization_passes): Schedule
1122 pass_lower_omp.
1123 * langhooks-def.h (lhd_omp_predetermined_sharing,
1124 lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
1125 Declare.
1126 (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
1127 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
1128 (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
1129 LANG_HOOKS_OMP_PREDETERMINED_SHARING,
1130 LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
1131 LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
1132 LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
1133 LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
1134 LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
1135 LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
1136 (LANG_HOOK_DECLS): Use them.
1137
11382006-01-18 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
1139 Richard Henderson <rth@redhat.com>
1140 Jakub Jelinek <jakub@redhat.com>
1141 Diego Novillo <dnovillo@redhat.com>
1142
1143 * c-parser.c (pragma_omp_clause): Define.
1144 (c_parser_declaration_or_fndef): Document OpenMP syntax.
1145 (c_parser_compound_statement): Likewise.
1146 (c_parser_statement): Likewise.
1147 (c_parser_pragma): Handle omp pragmas.
1148 (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
1149 OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
1150 (c_parser_omp_clause_name, check_no_duplicate_clause,
1151 c_parser_omp_variable_list,
1152 c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
1153 c_parser_omp_clause_copyprivate,
1154 c_parser_omp_clause_default,
1155 c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
1156 c_parser_omp_clause_lastprivate,
1157 c_parser_omp_clause_nowait,
1158 c_parser_omp_clause_num_threads,
1159 c_parser_omp_clause_ordered, c_parser_omp_clause_private,
1160 c_parser_omp_clause_reduction,
1161 c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
1162 c_parser_omp_all_clauses, c_parser_omp_structured_block,
1163 c_parser_omp_atomic, c_parser_omp_barrier,
1164 c_parser_omp_critical, c_parser_omp_flush,
1165 c_parser_omp_for_loop, c_parser_omp_for,
1166 c_parser_omp_master, c_parser_omp_ordered,
1167 c_parser_omp_sections_scope, c_parser_omp_sections,
1168 c_parser_omp_parallel, c_parser_omp_single,
1169 c_parser_omp_construct, c_parser_omp_threadprivate): New.
1170 * c-pragma.c (init_pragma): Do omp pragma registration here.
1171 * c.opt (fopenmp): New flag.
1172
11732006-01-18 Eric Christopher <echristo@apple.com>
1174
1175 * gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
1176 * config/darwin.h (GOMP_SELF_SPECS): Define.
1177
94a89f3b
KH
11782006-01-18 Kazu Hirata <kazu@codesourcery.com>
1179
1180 * rtl.h: Remove the prototype for reg_alloc.
1181
4720d5ca
JDA
11822006-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1183
1184 PR target/25731
1185 * config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*,
1186 hppa[12]*-*-hpux11*): Override default shared libgcc version for both
1187 sjlj and dwarf2 exception handling.
1188 * pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable.
1189 Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION.
1190 * pa/pa.c (function_value): Treat complex and vector types as
1191 aggregates.
1192 (function_arg): Likewise. Only pass scalar floats in the floating
1193 point argument registers.
1194 * pa/t-slibgcc-dwarf-ver: New file.
1195 * pa/t-slibgcc-sjlj-ver: New file.
1196 * pa/t-slibgcc-elf-ver: Delete file.
1197
4325ca90
AM
11982006-01-19 Alan Modra <amodra@bigpond.net.au>
1199
1200 * config/rs6000/rs6000.c (rs6000_assemble_integer): Correct
1201 unlikely_test_section_p test.
1202
7399bcb0
KH
12032006-01-18 Kazu Hirata <kazu@codesourcery.com>
1204
1205 * mode-switching.c (optimize_mode_switching): Make it static.
1206 * basic-block.h: Remove the prototype for
1207 optimize_mode_switching.
1208
efa2fa34
KH
1209 * modulo-sched.c (sms_schedule): Make it static.
1210 * rtl.h: Remove the prototype for sms_schedule.
1211
6e9ca1fa
KH
1212 * postreload-gcse.c (gcse_after_reload_main): Make it static.
1213 * rtl.h: Remove the prototype for gcse_after_reload_main.
1214
cf4d5c75
KH
1215 * reg-stack.c (reg_to_stack): Make it static.
1216 * rtl.h: Remove the prototype for reg_to_stack.
1217
b6438f2e
KH
1218 * regrename.c (regrename_optimize, copyprop_hardreg_forward):
1219 Make them static.
1220 * rtl.h: Remove the prototypes for regrename_optimize and
1221 copyprop_hardreg_forward.
1222
b2f39494
EB
12232006-01-18 Eric Botcazou <ebotcazou@adacore.com>
1224
1225 * config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into
1226 alpha_split_tmode_pair. Add 'mode' and 'fixup_overlap' arguments.
1227 Test against the appropriate null constant for the mode.
1228 If 'fixup_overlap' is true, swap the operands if they overlap.
1229 (alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair.
1230 * config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into
1231 alpha_split_tmode_pair and adjust for above change.
1232 * config/alpha/alpha.md (movtf_internal): Adjust call to
1233 alpha_split_tfmode_pair and rely on it to swap the operands.
1234 (movti_internal): New insn and post-reload splitter.
1235 (movti): New expander.
1236
9d757cde
PDM
12372006-01-18 Philippe De Muyter <phdm@macqel.be>
1238
1239 * config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory
1240 operands.
1241
15ed68f7
KH
12422006-01-18 Kazu Hirata <kazu@codesourcery.com>
1243
1244 * rtlanal.c (global_reg_mentioned_p_1,
1245 global_reg_mentioned_p): Remove.
1246 * rtl.h: Remove the prototype for global_reg_mentioned_p.
1247
a0dc2bb6
KH
1248 * flow.c (initialize_uninitialized_subregs): Make it static.
1249 * rtl.h: Remove the prototype for
1250 initialize_uninitialized_subregs.
1251
e8d6954b
KH
1252 * function.c (instantiate_virtual_regs): Make it static.
1253 * function.h: Remove the prototype for
1254 instantiate_virtual_regs.
1255
fe3c3571
KH
1256 * regmove.c (regmove_optimize, combine_stack_adjustments):
1257 Make them static.
1258 * rtl.h: Remove the prototypes for regmove_optimize and
1259 combine_stack_adjustments.
1260
3dd0df7f
RS
12612006-01-17 Roger Sayle <roger@eyesopen.com>
1262
1263 * config/i386/i386.c (COSTS_N_BYTES): New macro.
1264 (size_cost): Encode costs in bytes so that a reg-reg addition is
1265 equivalent to COSTS_N_INSNS(1).
1266 (override_options): Use the size_cost.branch_cost as the default
1267 ix86_branch_cost when optimizing for size.
1268
cbbbdc2c 12692006-01-18 Ben Elliston <bje@au.ibm.com>
d190d56b
BE
1270
1271 * Makefile.in (D32PBIT_FUNCS): New.
1272 (D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise.
1273 (libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS,
1274 D64PBIT_FUNCS and D128PBIT_FUNCS.
1275 (LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT).
1276 * mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or
1277 D128PBIT are set.
1278 (decnumber_dep): Define.
1279 * doc/libgcc.texi (Decimal float library routines): New node.
1280 * config/dfp-bit.h, config/dfp-bit.c: New files.
1281
cbbbdc2c 12822006-01-18 Ben Elliston <bje@au.ibm.com>
ef7befe0
BE
1283
1284 * expr.c (emit_move_change_mode): Always adjust addresses, not
1285 just during reload. Copy replacements only during reload.
1286 (emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking
1287 emit_move_via_integer.
1288
88405bd3
SS
12892006-01-17 Shantonu Sen <ssen@opendarwin.org>
1290
1291 * Makefile.in (check-%, check-consistency): Use $${srcdir}
1292 instead of $(srcdir) and ${srcdir}.
1293
020a4035
RE
12942006-01-17 Richard Earnshaw <rearnsha@arm.com>
1295
1296 PR target/592
1297 PR middle-end/11135
1298 * arm.h (struct machine_function): Add pic_reg.
1299 * arm.c (arm_pic_register): Make unsigned.
1300 (arm_override_options): Only set arm_pic_register if
1301 TARGET_SINGLE_PIC_BASE.
1302 (use_return_insn): Only test for a pic register if it is fixed.
1303 (arm_compute_save_reg0_reg12_mask): Likewise.
1304 (thumb_compute_save_reg_mask): Likewise.
1305 (legitimate_pic_operand): Factor out some known invariants.
1306 (legitimize_pic_address): If we don't have a fixed pic register,
1307 then set up a pseudo in the function entry sequence. Handle the
1308 pic base being in a pseudo.
1309 (arm_load_pic_register): Handle the pic register being in a pseudo.
1310 (arm_expand_prologue): Only set up the pic register if it is fixed.
1311 (thumb_expand_prologue): Likewise.
1312 * arm.md (pic_load_addr_based): Handle the pic base being a pseudo.
1313 (pic_load_addr_based_insn): Likewise.
1314 (builtin_setjmp_receiver): Don't restore the pic base if it isn't
1315 fixed.
1316
fc0d1c49
BE
13172006-01-18 Ben Elliston <bje@au.ibm.com>
1318
a5a97921
BE
1319 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject
1320 decimal float modes for all floating point registers.
1321
fc0d1c49
BE
1322 * config/rs6000/predicates.md (reg_or_mem_operand): Pair up
1323 match_code "mem" with match_test "macho_lo_sum_memory_operand".
1324
3aa2ddb8
JJ
13252006-01-17 Jakub Jelinek <jakub@redhat.com>
1326
1327 PR c/25682
1328 * c-typeck.c (build_unary_op): Fold offsetof-like expressions
1329 even when the pointer is not NULL.
1330
474eccc6
ILT
13312006-01-16 Ian Lance Taylor <ian@airs.com>
1332
1333 * common.opt (ftoplevel-reorder): New option.
1334 * cgraph.c (cgraph_asm_nodes): New global variable.
1335 (cgraph_asm_last_node): New static variable.
1336 (cgraph_order): New global variable.
1337 (cgraph_create_node): Set new order field.
1338 (cgraph_varpool_node): Likewise.
1339 (decide_is_variable_needed): Return true if not
1340 flag_toplevel_reorder.
1341 (cgraph_add_asm_node): New function.
1342 * cgraph.h (struct cgraph_node): Add order field.
1343 (struct cgraph_varpool_node): Add order field.
1344 (struct cgraph_asm_node): Define.
1345 (cgraph_asm_nodes, cgraph_order): Declare.
1346 (cgraph_add_asm_node): Declare.
1347 * cgraphunit.c (cgraph_varpool_assemble_decl): New static
1348 function.
1349 (cgraph_varpool_assemble_pending_decls): Call it.
1350 (cgraph_output_pending_asms): New static function.
1351 (cgraph_finalize_compilation_unit): Call it.
1352 (struct cgraph_order_sort): Define.
1353 (cgraph_output_in_order): New static function.
1354 (cgraph_optimize): Call cgraph_output_pending_asms. Add code for
1355 !flag_toplevel_reorder case.
1356 * c-parser.c: Include "cgraph.h".
1357 (c_parser_asm_definition): Call cgraph_add_asm_node rather than
1358 assemble_asm.
1359 * Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather
1360 than -fno-unit-at-a-time.
1361 * doc/invoke.texi (Option Summary): Mention
1362 -fno-toplevel-reorder.
1363 (Optimize Options): Document -fno-toplevel-reorder. Mention it in
1364 -funit-at-a-time documentation.
1365
be694a52 13662006-01-17 Hans-Peter Nilsson <hp@axis.com>
e29b01e1 1367 Kazu Hirata <kazu@codesourcery.com>
be694a52
HPN
1368
1369 * Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h.
1370
90f90283
KH
13712006-01-17 Kazu Hirata <kazu@codesourcery.com>
1372
1373 * Makefile.in (FUNCTION_H): New. Use it instead of
1374 function.h throughout the file.
1375 * function.h: Include tree.h.
1376
9099f8e1
BE
13772006-01-17 Ben Elliston <bje@au.ibm.com>
1378
1379 * recog.c: Separate some functions with whitespace.
1380
1b369fae
RH
13812006-01-16 Richard Henderson <rth@redhat.com>
1382
1383 Merge from gomp branch:
1384 * Makefile.in (TREE_INLINE_H): New. Use it as needed.
1385 * tree-inline.h (struct copy_body_data): Move from tree-inline.c
cbbbdc2c 1386 and rename from struct inline_data. Rename callee* to dst*;
1b369fae
RH
1387 caller* to src*; add copy_decl hook, transform_call_graph_edges,
1388 transform_new_cfg, transform_return_to_modify, and
1389 transform_lang_insert_block flags; remove cloning_p, versioning_p,
1390 update_clones_p.
1391 (copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
1392 (copy_decl_for_dup): Remove.
1393 * tree-inline.c (struct inline_data): Move to header.
1394 (insert_decl_map): Export.
1395 (remap_decl): Update for member name changes. Use copy_decl hook.
1396 Allow for replacement to be a non-decl. Remove dead code.
1397 (remap_type_1): Check for existing mapping.
1398 (remap_type): Export.
1399 (remap_decls): Update for member name changes.
1400 (remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
1401 (copy_body, setup_one_parameter, declare_return_variable): Likewise.
1402 (expand_call_inline, optimize_inline_calls, clone_body): Likewise.
1403 (copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
1404 (tree_function_versioning, build_duplicate_type): Likewise.
1405 (copy_body_r): Likewise. Export.
1406 (copy_decl_for_dup): Split into ...
1407 (copy_decl_for_dup_finish, copy_decl_to_var,
1408 copy_decl_no_change, copy_decl_maybe_to_var): ... these.
1409 (replace_ref_tree, inlining_p): Remove.
1410
d6108e89
KH
14112006-01-16 Kazu Hirata <kazu@codesourcery.com>
1412
1413 * ifcvt.c (if_convert): Make it static.
1414 * rtl.h: Remove the prototype for if_convert.
1415
57c8b089
KH
1416 * local-alloc.c (local_alloc): Make it static.
1417 * rtl.h: Remove the prototype for local_alloc.
1418
04578e64
KH
1419 * loop.c (loop_optimize): Make it static.
1420 * cfgloop.h: Remove the prototype for loop_optimize.
1421 * rtl.h: Likewise.
1422
838f78d6
DD
14232006-01-16 DJ Delorie <dj@redhat.com>
1424
1425 * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of
1426 mems.
1427
2d6ae5d6
JDA
14282006-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1429
1430 * pa.md: Disparage copies between general and floating-point registers
1431 in 32-bit move patterns.
1432
fea4cfe0
L
14332006-01-16 H.J. Lu <hongjiu.lu@intel.com>
1434
1435 PR testsuite/25741
1436 * Makefile.in (check-%): Depend on site.exp instead of
1437 $(TESTSUITEDIR)/site.exp. Run "runtest" in separate language
1438 directories.
1439
1c765770
KH
14402006-01-16 Kazu Hirata <kazu@codesourcery.com>
1441
1442 * global.c (global_alloc): Make it static.
1443 * rtl.h: Remove the prototype for global_alloc.
1444
183596eb
RG
14452006-01-16 Richard Guenther <rguenther@suse.de>
1446
1447 * tree-ssa-alias.c (struct used_part): Add write_only field.
1448 (get_or_create_used_part_for): Initialize it to true.
1449 (create_overlap_variables_for): Don't create structure variables
1450 for structures that only are written to.
1451 (find_used_portions): Handle MODIFY_EXPR to track whether a
1452 structure is only written to.
1453
081c6ba6
KH
14542006-01-16 Kazu Hirata <kazu@codesourcery.com>
1455
1456 * bb-reorder.c (partition_hot_cold_basic_blocks): Make it
1457 static.
1458 * basic-block.h: Remove the prototype for
1459 partition_hot_cold_basic_blocks.
1460
4e9d3943 1461