]>
Commit | Line | Data |
---|---|---|
1c7352cd ZW |
1 | 2006-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 |
38 | 2006-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 |
62 | 2006-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 |
68 | 2006-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 |
75 | 2006-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 |
80 | 2006-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 |
89 | 2006-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 |
103 | 2006-01-22 David Edelsohn <edelsohn@gnu.org> |
104 | ||
105 | * config/rs6000/aix.h (STACK_BOUNDARY): Define. | |
106 | ||
dcc21c4c PB |
107 | 2006-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 |
143 | 2006-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 |
148 | 2006-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 |
156 | 2006-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 |
162 | 2005-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 |
176 | 2006-01-21 Ben Elliston <bje@au.ibm.com> |
177 | ||
178 | * varasm.c (assemble_real): Initialise data array. | |
179 | ||
d5b6e637 PB |
180 | 2006-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 |
191 | 2006-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 |
198 | 2006-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 |
217 | 2006-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 |
221 | 2006-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 |
226 | 2006-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 |
237 | 2006-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 |
248 | 2005-01-20 Paul Brook <paul@codesourcery.com> |
249 | ||
250 | * Makefile.in (lang_checks): Keep going if mkdir fails. | |
251 | ||
3b8266e2 KZ |
252 | 2005-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 |
279 | 2005-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 |
289 | 2006-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 |
295 | 2006-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 |
333 | 2006-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 |
340 | 2006-01-19 DJ Delorie <dj@redhat.com> |
341 | ||
342 | * config/m32c/m32c.h (REG_ALLOC_ORDER): Define. | |
343 | ||
cf1955dc PB |
344 | 2006-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 |
349 | 2006-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 |
355 | 2006-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 |
360 | 2006-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 | 367 | 2006-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 |
407 | 2006-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 |
561 | 2006-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 |
568 | 2006-01-19 Richard Sandiford <richard@codesourcery.com> |
569 | ||
570 | * c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses. | |
571 | ||
44035081 JH |
572 | 2006-01-19 Jan Hubicka <jh@suse.cz> |
573 | ||
574 | * tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error. | |
575 | ||
79c29032 PB |
576 | 2006-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 |
588 | 2006-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 |
610 | 2006-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 |
678 | 2006-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 |
684 | 2006-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 |
691 | 2006-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 |
744 | 2006-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 |
774 | 2006-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 |
781 | 2006-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 |
786 | 2006-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 |
800 | 2006-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 |
819 | 2006-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 |
828 | 2006-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 | ||
836 | 2006-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 | ||
1138 | 2006-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 | ||
1173 | 2006-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 |
1178 | 2006-01-18 Kazu Hirata <kazu@codesourcery.com> |
1179 | ||
1180 | * rtl.h: Remove the prototype for reg_alloc. | |
1181 | ||
4720d5ca JDA |
1182 | 2006-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 |
1198 | 2006-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 |
1203 | 2006-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 |
1223 | 2006-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 |
1237 | 2006-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 |
1242 | 2006-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 |
1261 | 2006-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 | 1269 | 2006-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 | 1282 | 2006-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 |
1289 | 2006-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 |
1294 | 2006-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 |
1317 | 2006-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 |
1325 | 2006-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 |
1331 | 2006-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 | 1366 | 2006-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 |
1371 | 2006-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 |
1377 | 2006-01-17 Ben Elliston <bje@au.ibm.com> |
1378 | ||
1379 | * recog.c: Separate some functions with whitespace. | |
1380 | ||
1b369fae RH |
1381 | 2006-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 |
1411 | 2006-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 |
1423 | 2006-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 |
1428 | 2006-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 |
1433 | 2006-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 |
1440 | 2006-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 |
1445 | 2006-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 |
1454 | 2006-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 |