1 2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
3 * config/i386/i386.c (ix86_builtin_type): Replace
4 DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
6 (ix86_init_mmx_sse_builtins): Likewise.
7 (ix86_expand_args_builtin): Likewise.
9 * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
12 * doc/extend.texi: Correct __builtin_ia32_palignr.
14 2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
17 * config/i386/i386.c (bdesc_crc32): Removed.
18 (ix86_expand_crc32): Likewise.
19 (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
20 V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
21 V2DI2TI_FTYPE_V2DI_V2DI_INT. Add UINT64_FTYPE_UINT64_UINT64,
22 UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
23 UINT_FTYPE_UINT_UCHAR.
24 (bdesc_args): Updated. Add crc32 builtins.
25 (ix86_init_mmx_sse_builtins): Updated.
26 (ix86_expand_args_builtin): Updated to support subreg.
28 * doc/extend.texi: Correct __builtin_ia32_crc32di.
30 2008-05-01 Jan Hubicka <jh@suse.cz>
32 * tree-pass.h (opt_pass): Add IPA_PASS.
33 (varpool_node, cgraph_node): Forward declare.
34 (ipa_opt_pass): Define.
35 (pass_ipa_inline): Turn into ipa_opt_pass.
36 (pass_apply_inline): Remove.
37 * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
38 (apply_inline): Turn into ....
39 (inline_transform): ... this one.
40 (inline_generate_summary): New function.
41 (pass_apply_inline): Remove.
42 * function.h (ipa_opt_pass): Forward declare structure; typedef;
44 (struct function): Add ipa_transforms_to_apply.
45 * passes.c (register_one_dump_file): Work on IPA_PASS.
46 (init_optimization_passes): Remove pass_inline_parameters and
48 (pass_init_dump_file, pass_fini_dump_file): Break out from ....
49 (execute_one_pass) ... here; apply transforms when possible.
50 (add_ipa_transform_pass, execute_ipa_summary_asses,
51 execute_one_ipa_transform_pass): New.
52 (execute_ipa_pass_list): Update for IPA_PASS type.
54 2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
56 * config/i386/i386.c (ix86_builtin_type): Add
57 V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
58 V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
59 (bdesc_args): Add SSE4a builtins.
60 (ix86_init_mmx_sse_builtins): Updated.
61 (ix86_expand_args_builtin): Likewise.
62 (ix86_expand_builtin): Likewise.
64 2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
66 * config/i386/i386.c (ix86_builtin_type): Add
67 V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
68 V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
69 V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
70 V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
71 V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
72 V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
73 V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
74 V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
75 and DI_FTYPE_DI_DI_INT.
76 (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
77 (ix86_init_mmx_sse_builtins): Updated.
78 (ix86_expand_args_builtin): Likewise.
79 (ix86_expand_builtin): Likewise.
80 (ix86_expand_binop_imm_builtin): Removed.
82 * doc/extend.texi: Correct __builtin_ia32_palignr128.
84 2008-04-30 Richard Guenther <rguenther@suse.de>
86 PR tree-optimization/32921
87 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
89 2008-04-30 Richard Sandiford <rsandifo@nildram.co.uk>
91 * config/arm/arm.c (arm_unwind_emit): Use
92 crtl->all_throwers_are_sibcalls instead of
93 cfun->all_throwers_are_sibcalls.
94 (arm_output_fn_unwind): Likewise.
95 * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
96 instead of cfun->uses_pic_offset_table.
97 (frv_expand_prologue): Likewise.
98 (frv_frame_pointer_required): Likewise.
99 (frv_expand_fdpic_call): Likewise.
100 (frv_emit_movsi): Likewise.
101 * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
102 cfun->returns_pcc_struct instead of
103 current_function_returns_pcc_struct.
104 * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
105 instead of cfun->calls_eh_return.
106 (m32c_pushm_popm): Likewise.
107 * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
108 "extern" declaration.
110 2008-04-30 Richard Guenther <rguenther@suse.de>
112 PR tree-optimization/21636
113 * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
115 (evaluate_stmt): Print the likely value.
116 (ccp_visit_stmt): Avoid excessive vertical spacing.
118 2008-04-30 Rafael Espindola <espindola@google.com>
120 * builtins.c (fold_call_expr): Return realret.
121 * tree-ssa-threadedge.c
122 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
123 __builtin_object_size.
125 2008-04-30 Seongbae Park <seongbae.park@gmail.com>
127 * gcc.c (wrapper_string): New variable.
128 (insert_wrapper): New function.
129 (execute): New option -wrapper.
130 * doc/invoke.texi (Overall Options): New driver option -wrapper.
132 2008-04-30 Nathan Froyd <froydnj@codesourcery.com>
134 * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
135 config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
136 config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
138 * config/rs6000/crtsavres.asm: ...here. Remove unneeded file.
139 * config/rs6000/e500crtres32gpr.asm,
140 config/rs6000/e500crtres64gpr.asm
141 config/rs6000/e500crtres64gprctr.asm,
142 config/rs6000/e500crtrest32gpr.asm
143 config/rs6000/e500crtrest64gpr.asm,
144 config/rs6000/e500crtresx32gpr.asm
145 config/rs6000/e500crtresx64gpr.asm,
146 config/rs6000/e500crtsav32gpr.asm
147 config/rs6000/e500crtsav64gpr.asm,
148 config/rs6000/e500crtsav64gprctr.asm
149 config/rs6000/e500crtsavg32gpr.asm,
150 config/rs6000/e500crtsavg64gpr.asm
151 config/rs6000/e500crtsavg64gprctr.asm: New files.
152 * config/rs6000/t-ppccomm: Add build rules for new files.
153 (LIB2FUNCS_STATIC_EXTRA): Add new files.
154 * config/rs6000/t-netbsd: Add build rules for new files.
155 (LIB2FUNCS_STATIC_EXTRA): New variable.
156 * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
157 (CRTSAVRES_DEFAULT_SPEC): Likewise.
158 * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
160 2008-04-30 H.J. Lu <hongjiu.lu@intel.com>
162 * config/i386/i386.c (ix86_builtin_type): Add
163 FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
164 V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
165 V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
166 V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
167 V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
168 V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
169 V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
170 V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
171 V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
172 V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
173 V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
174 V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
175 V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
176 V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
177 V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
178 V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
179 V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
180 V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
181 V1DI_FTYPE_V2SI_V2SI.
182 (bdesc_2arg): Moved to ...
184 (ix86_init_mmx_sse_builtins): Updated.
185 (ix86_expand_args_builtin): Updated. Take a pointer
186 to const struct builtin_description. Handle comparison
188 (ix86_expand_sse_compare): Take a new argument for swapping
190 (ix86_expand_builtin): Updated.
192 * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
193 (ssse3_pmaddubsw128): This.
194 (ssse3_pmaddubswv4hi3): Renamed to ...
195 (ssse3_pmaddubsw): This.
197 * doc/extend.texi (__builtin_ia32_packsswb128): Correct
199 (__builtin_ia32_packssdw128): Likewise.
200 )__builtin_ia32_packuswb128): Likewise.
201 (__builtin_ia32_pmaddubsw): Likewise.
202 (__builtin_ia32_pmaddubsw128): Likewise.
204 2008-04-30 Richard Guenther <rguenther@suse.de>
206 PR tree-optimization/14847
207 * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
208 (recognize_bits_test): Use it.
209 (recognize_single_bit_test): Likewise.
211 2008-04-30 Martin Jambor <mjambor@suse.cz>
213 * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
214 instead of setting number of formal parameters to zero.
215 (ipcp_init_stage): Do not set the number of actual parameters to zero
217 (ipcp_propagate_stage): Explicitly skipping all calls to nodes
218 which are called with variable number of arguments.
219 (ipcp_insert_stage): Explicitely skipping all nodes which are
220 called with variable number of arguments.
221 (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
222 number of parameters.
224 * ipa-prop.h (struct ipa_node_params): Added flag
225 called_with_var_arguments
226 (ipa_set_param_count): Added. Changed sole setter to use it.
227 (ipa_get_param_count): Added. All readers of param_count
228 converted to use it instead.
229 (ipa_set_called_with_variable_arg): Added.
230 (ipa_is_called_with_var_arguments): Added.
231 (ipa_get_ith_param): Added. All readers of param_decls converted
233 (ipa_set_cs_argument_count): Added, sole writer to argument_count
235 (ipa_get_cs_argument_count): Added, all readers of argument_count
237 (ipa_get_ith_jump_func): Added. Accessors of jump values changed
240 * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
241 (struct ipcp_lattice): Renamed cval_type to type
242 (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
244 * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
245 (ipcp_cval_set_cvalue): Changed type of parameter value to tree
246 (ipcp_insert_stage): Changed the type of variable cvalue to tree
247 (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
248 (build_const_val): Changed the type of parameter cvalue to tree
249 (ipcp_propagate_const): Changed the type of parameter cvalue to tree
250 (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
252 * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
255 * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
256 (ipa_methodlist_not_empty): Removed, the sole user now checks directly
257 (ipa_add_method): Renamed to ipa_push_func_to_list
258 (ipa_remove_method): Renamed to ipa_pop_func_from_list
259 (ipa_callsite_param_count): Removed.
260 (ipa_callsite_param_count_set): Removed.
261 (ipa_callsite_param): Removed.
262 (ipa_callsite_callee): Removed.
263 (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
264 (ipa_callsite_compute_count): Renamed to ipa_count_arguments
265 (ipa_method_formal_count): Removed.
266 (ipa_method_formal_count_set): Removed.
267 (ipa_method_get_tree): Removed.
268 (ipa_method_tree_map_create): Removed.
269 (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
270 (ipa_create_param_decls_array): Creates the array itself
271 (ipa_create_param_decls_array): Temporary variable info instead of
273 (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
274 (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
276 (ipa_jf_get_info_type): Removed.
277 (ipa_node_create): Renamed to ipa_create_node_params
278 (ipa_free): Renamed to ipa_free_all_node_params
279 (ipa_nodes_create): Renamed to ipa_create_all_node_params
280 (ipa_edges_create): Renamed to ipa_create_all_edge_args
281 (ipa_edges_free): Renamed to ipa_free_all_edge_args
282 (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
283 (ipa_free_all_node_params): Deallocation to jump_functions moved to
284 ipa_free_all_edge_args
285 (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
286 (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
287 (ipa_create_methodlist_node): Removed.
288 (ipa_methodlist_method): Removed.
289 (ipa_methodlist_method_set): Removed.
290 (ipa_methodlist_next_method): Removed.
291 (ipa_methodlist_next_method_set): Removed.
292 (ipa_method_is_modified): Removed.
293 (ipa_method_modify_create): Removed.
294 (ipa_method_modify_init): Temporary variable info instead of a few
296 (ipa_detect_param_modifications): Temporary variable info instead of
298 (ipa_compute_jump_functions): Temporary variable info instead of
300 (ipa_method_modify_set): Removed.
301 (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
302 (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
303 than craph_node as the first parameter.
304 (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
305 (ipa_method_modify_init): Removed.
306 (ipa_compute_jump_functions): Added a temp variable instead of
307 repeatadly dereferencing the cgraph_edge.aux pointer
308 (ipa_callsite_param_set_type): Removed.
309 (ipa_compute_jump_functions): i renamed to index and moved to
311 (ipa_callsite_param_set_info_type_formal): Removed.
312 (ipa_callsite_param_set_info_type): Removed.
313 (ipa_callsite_param_map_create): Removed.
314 (ipa_callsite_tree): Removed.
315 (ipa_callsite_caller): Removed.
316 (ipa_pop_func_from_list): return_method removed to return_func
318 * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
319 prefixed all values with IPA_. Changed all users.
320 (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
321 CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
322 and FORMAL_IPATYPE IPA_PASS_THROUGH.
323 (union parameter_info): Renamed to jump_func_value.
324 (union jump_func_value): Renamed value to constant
325 (struct ipa_jump_func): Renamed info_type to value
326 (struct ipa_node): Renamed to ipa_node_params
327 (struct ipa_node_params): Renamed ipa_arg_num to param_count
328 (struct ipa_node_params): Renamed ipa_param_tree to param_decls
329 (struct ipa_node_params): Renamed ipa_mod to modified_flags
330 (struct ipa_edge): Renamed to ipa_edge_args
331 (struct ipa_edge_args): Renamed ipa_param_num to argument_count
332 (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
333 (struct ipa_methodlist): Renamed to ipa_func_list
334 (struct ipa_func_list): method_p renamed to node, next_method
336 (ipa_methodlist_p): Removed, switched all users to struct pointer
337 (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
339 2008-04-30 Alan Modra <amodra@bigpond.net.au>
341 * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
342 (rs6000_emit_epilogue): Use backchain to restore only when we
343 have a large frame. Make use of frame pointer to restore if we
344 have one. Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
346 2008-04-29 Paolo Bonzini <bonzini@gnu.org>
348 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
349 Add mode to zero_extract.
350 (sign bit tests peepholes): (Ditto.).
352 2008-04-29 H.J. Lu <hongjiu.lu@intel.com>
354 * config/i386/i386.c (ix86_builtins): Replace Prescott New
355 Instructions in comments with SSE3.
356 (ix86_builtin_type): This. Add FLOAT128_FTYPE_FLOAT128,
357 INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
358 INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
359 V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
360 V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
361 V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
362 V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
363 V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
364 V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
365 V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
366 V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
367 V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
368 (bdesc_sse_args): Renamed to ...
369 (bdesc_args): This. Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
370 IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
371 IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
373 (bdesc_1arg): Moved to ...
375 (ix86_init_mmx_sse_builtins): Updated. Replace Prescott New
376 Instructions in comments with SSE3.
377 (ix86_expand_sse_operands_builtin): Renamed to ...
378 (ix86_expand_args_builtin): This. Updated.
379 (ix86_expand_unop1_builtin): Update comments.
380 (ix86_expand_builtin): Updated.
382 2008-04-29 Richard Guenther <rguenther@suse.de>
384 PR tree-optimization/36078
385 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
386 Update virtual SSA form after cleaning up the CFG.
388 2008-04-29 Richard Guenther <rguenther@suse.de>
391 * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
393 2008-04-29 Richard Guenther <rguenther@suse.de>
395 * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
396 (compute_may_aliases): Do not call finalize_ref_all_pointers.
397 (compute_flow_insensitive_aliasing): Do not treat
398 PTR_IS_REF_ALL pointers special.
399 (get_smt_for): Likewise.
400 (may_alias_p): Re-structure.
401 (is_escape_site): A ref-all pointer conversion is not an escape site.
402 * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
403 PTR_IS_REF_ALL pointers special.
404 * tree-ssa-structalias.h (struct alias_info): Remove
405 ref_all_symbol_mem_tag field.
406 (PTR_IS_REF_ALL): Remove.
408 2008-04-29 Richard Guenther <rguenther@suse.de>
411 * fold-const.c (extract_muldiv_1): In combining division constants
412 make sure to never overflow.
414 2008-04-29 Nick Clifton <nickc@redhat.com>
416 * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
418 2008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
421 * optc-gen.awk: Work around HP-UX/IA awk bug.
423 2008-04-28 Danny Smith <dannysmith@users.sourceforge.net>
425 * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
428 2008-04-28 Uros Bizjak <ubizjak@gmail.com>
431 * config/i386/i386.md
432 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
433 Change operand 1 predicate to nonimmediate_operand.
435 2008-04-28 Jakub Jelinek <jakub@redhat.com>
438 * dwarf2out.c (struct die_struct): Mark as chain_circular through
440 * gengtype.c (walk_type, write_func_for_structure): Handle
442 * doc/gty.texi: Document chain_circular.
444 2008-04-28 Richard Guenther <rguenther@suse.de>
446 PR tree-optimization/36066
447 * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
450 2008-04-28 Uros Bizjak <ubizjak@gmail.com>
453 * config/i386/i386.md
454 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
455 Use match_scratch instead of match_operand for operands 3 and 4.
457 2008-04-27 Richard Guenther <rguenther@suse.de>
459 PR tree-optimization/18754
460 PR tree-optimization/34223
461 * tree-pass.h (pass_complete_unrolli): Declare.
462 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
463 loop size before and after unconditionally of UL_NO_GROWTH in effect.
464 Rewrite loop into loop closed SSA form if it is not already.
465 (tree_unroll_loops_completely): Re-structure to iterate over
466 innermost loops with intermediate CFG cleanups.
467 Unroll outermost loops only if requested or the code does not grow
469 * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
471 (tree_vectorize): Instead do so here.
472 (tree_complete_unroll): Also unroll outermost loops.
473 (tree_complete_unroll_inner): New function.
474 (gate_tree_complete_unroll_inner): Likewise.
475 (pass_complete_unrolli): New pass.
476 * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
477 uses outside of the loop.
478 (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
479 form if it is available.
480 * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
481 * passes.c (init_optimization_passes): Schedule complete inner
482 loop unrolling pass before the first CCP pass after final inlining.
484 2008-04-27 Nathan Sidwell <nathan@codesourcery.com>
486 * targhooks.h (default_emutls_var_fields,
487 default_emutls_var_init): Declare.
488 * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
489 * target.h (struct gcc_target): Add struct emutls member.
490 * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
491 TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
492 TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
493 TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
494 TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
495 TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
496 (TARGET_INITIALIZER): Add TARGET_EMUTLS.
497 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
498 BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
499 * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
500 emit debug information.
501 * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
502 * varasm.c: Include targhooks.h.
503 (emutls_object_section, emutls_tmpl_section): New.
504 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
505 (EMUTLS_SEPARATOR): New.
507 (get_emutls_object_name): New.
508 (default_emutls_var_fields): New, broken out of ...
509 (get_emutls_object_type): ... here. Adjust to use target hooks.
510 (get_emutls_init_templ_addr): Adjust to use target hooks.
511 (emutls_decl): Adjust to use target hooks.
512 (emutls_finish): Likewise.
513 (default_emutls_var_init): New, broken out of ...
514 (assemble_variable): ... here. Adjust to use target hooks.
515 * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
517 * c-common.c (handle_section_attribute): Prevent overriding
518 sections for emulated tls with special sections.
519 * config/i386/i386.c (x86_64_elf_select_section): Add
520 SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
521 (x86_64_elf_unique_section): Likewise.
522 * config/vxworks.c: Include tree.h.
523 (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
524 (vxworks_override_options): Set TLS scheme.
525 * doc/tm.texi (Emulated TLS): New node.
527 2008-04-26 Simon Baldwin <simonb@google.com>
530 * builtins.c (c_strlen): Suppressed multiple warnings that can occur
531 with propagated string constants.
533 2008-04-26 Uros Bizjak <ubizjak@gmail.com>
535 * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
536 constraint for operand 2 when operand 0 is memory operand.
537 (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
538 operand 0 is memory operand.
539 (fix_trunc<mode>_i387_with_temp): Ditto.
540 (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
541 operand 2 when operand 1 is memory operand.
542 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
543 (*floatsi<mode>2_vector_sse_with_temp): Ditto.
544 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
545 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
546 (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
547 operands 2,3 and 4 when operand 1 is memory operand.
548 (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
550 (fistdi2_floor_with_temp): Ditto.
551 (fist<mode>2_floor_with_temp): Ditto.
552 (fistdi2_ceil_with_temp): Ditto.
553 (fist<mode>2_ceil_with_temp): Ditto.
554 (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
556 2008-04-26 David Daney <ddaney@avtrex.com>
558 * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
560 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
561 UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
562 UNSPEC_UPDATE_GOT_VERSION): Renumber.
563 (sync_compare_and_swap<mode>): New expand for QI and HI modes.
564 (compare_and_swap_12): New insn.
565 * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
566 * config/mips/mips.c (mips_force_binary): New function.
567 (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
568 (mips_expand_compare_and_swap_12): New function.
569 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
571 2008-04-25 Jan Hubicka <jh@suse.cz>
574 * cfgexpand.c (pass_expand): Turn into RTL pass.
575 * passes.c (execute_one_pass): Do pass typechecking after execution.
576 * tree-pass.h (pass_expand): Turn into RTL pass.
578 * function.h (struct rtl_data): Move here fields
579 accesses_prior_frames, calls_eh_return, saves_all_registers,
580 has_nonlocal_goto, has_asm_statement, is_thunk,
581 all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
582 uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
583 arg_pointer_save_area_init from struct function; turn into bool.
584 (struct function): Move
585 calls_eh_return, saves_all_registers, has_nonlocal_goto,
586 has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
587 profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
588 tail_call_emit, arg_pointer_save_area_init
589 into struct rtl_data. Remove recursive_call_emit and gimplified flags.
590 (current_function_returns_struct, current_function_returns_pcc_struct,
591 current_function_calls_setjmp, current_function_calls_alloca,
592 current_function_accesses_prior_frames,
593 current_function_calls_eh_return, current_function_is_thunk,
594 current_function_stdarg, current_function_profile,
595 current_function_limit_stack, current_function_uses_pic_offset_table,
596 current_function_uses_const_pool, current_function_has_nonlocal_label,
597 current_function_saves_all_registers,
598 current_function_has_nonlocal_goto,
599 current_function_has_asm_statement): Remove accesor macros.
600 * ra-conflict.c (global_conflicts): Update.
601 * tree-tailcall.c (suitable_for_tail_opt_p): Update.
602 (suitable_for_tail_call_opt_p): Update.
603 * builtins.c (expand_builtin_return_addr): Update.
604 (expand_builtin_setjmp_setup): Update.
605 (expand_builtin_nonlocal_goto): Update.
606 * final.c (final_start_function): Update.
607 (profile_function): Update.
608 (leaf_function_p): Update.
609 (only_leaf_regs_used): Update.
610 * df-scan.c (df_get_exit_block_use_set): Update.
611 * dojump.c (clear_pending_stack_adjust): Update.
612 * tree-stdarg.c (gate_optimize_stdarg): Update.
613 * gimple-low.c (lower_function_body): Update.
614 * global.c (compute_regsets): Update.
615 (global_alloc): Update.
616 * dwarf2out.c (dwarf2out_begin_prologue): Update.
617 * expr.c (expand_assignment): Update.
618 * dse.c (dse_step0): Update.
620 * c-decl.c (store_parm_decls): Update.
621 * local-alloc.c (combine_regs): Update.
622 (find_free_reg): Update.
623 * function.c (assign_parms_augmented_arg_list): Update.
624 (assign_parm_find_data_types): Update.
625 (assign_parms): Update.
626 (allocate_struct_function): Update.
627 (expand_function_start): Update.
628 (expand_function_end): Update.
629 (get_arg_pointer_save_area): Update.
630 (thread_prologue_and_epilogue_insns): Update.
631 (rest_of_match_asm_constraints): Update.
632 * stor-layout.c (variable_size): Update.
633 * gcse.c (gcse_main): Update.
634 (bypass_jumps): Update.
635 * gimplify.c (gimplify_function_tree): Update.
636 * calls.c (emit_call_1): Update.
637 (expand_call): Update.
638 * bt-load.c (compute_defs_uses_and_gen): Update.
639 * except.c (sjlj_assign_call_site_values): Update.
640 (sjlj_emit_function_enter): Update.
641 (can_throw_external): Update.
642 (set_nothrow_function_flags): Update.
643 (expand_builtin_unwind_init): Update.
644 (expand_eh_return): Update.
645 (convert_to_eh_region_ranges): Update.
646 (output_function_exception_table): Update.
647 * emit-rtl.c (gen_tmp_stack_mem): Update.
648 * cfgexpand.c (expand_used_vars): Update.
649 (tree_expand_cfg): Update.
650 * cfgcleanup.c (rest_of_handle_jump): Update.
651 * explow.c (allocate_dynamic_stack_space): Update.
652 * varasm.c (assemble_start_function): Update.
653 (force_const_mem): Update.
654 (mark_constant_pool): Update.
655 * tree-optimize.c (tree_rest_of_compilation): Update.
656 * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
657 * tree-cfg.c (notice_special_calls): Update.
658 (is_ctrl_altering_stmt): Update.
659 (tree_can_make_abnormal_goto): Update.
660 (tree_purge_dead_abnormal_call_edges): Update.
661 * config/alpha/predicates.md: Update.
662 * config/alpha/alpha.c (alpha_sa_mask): Update.
663 (alpha_sa_size): Update.
664 (alpha_does_function_need_gp): Update.
665 (alpha_expand_prologue): Update.
666 (alpha_start_function): Update.
667 (alpha_output_function_end_prologue): Update.
668 (alpha_expand_epilogue): Update.
669 * config/frv/frv.c (frv_stack_info): Update.
670 (frv_expand_epilogue): Update.
671 * config/s390/s390.c (s390_regs_ever_clobbered): Update.
672 (s390_register_info): Update.
673 (s390_frame_info): Update.
674 (s390_init_frame_layout): Update.
675 (s390_can_eliminate): Update.
677 * config/spu/spu.c (spu_split_immediate): Update.
678 (need_to_save_reg): Update.
679 (spu_expand_prologue): Update.
680 (spu_expand_epilogue): Update.
681 * config/sparc/sparc.md: Update.
682 * config/sparc/sparc.c (eligible_for_return_delay): Update.
683 (sparc_tls_got): Update.
684 (legitimize_pic_address): Update.
685 (sparc_emit_call_insn): Update.
686 (sparc_expand_prologue): Update.
687 (output_return): Update.
688 (print_operand): Update.
689 (sparc_function_ok_for_sibcall): Update.
690 * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
691 * config/m32r/m32r.md: Update.
692 * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
693 (m32r_compute_frame_size): Update.
694 (m32r_expand_prologue): Update.
695 (m32r_expand_epilogue): Update.
696 (m32r_legitimize_pic_address): Update.
697 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
698 * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
699 * config/i386/i386.c (ix86_frame_pointer_required): Update.
701 (ix86_save_reg): Update.
702 (ix86_compute_frame_layout): Update.
703 (ix86_expand_prologue): Update.
704 (ix86_expand_epilogue): Update.
705 * config/sh/sh.c (output_stack_adjust): Update.
706 (calc_live_regs): Update.
707 (sh5_schedule_saves): Update.
708 (sh_expand_prologue): Update.
709 (sh_expand_epilogue): Update.
710 (sh_setup_incoming_varargs): Update.
711 (sh_allocate_initial_value): Update.
712 (sh_get_pr_initial_val): Update.
713 * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
714 * config/sh/sh.md (label:): Update.
715 * config/avr/avr.c (out_movhi_mr_r): Update.
716 * config/crx/crx.h (enum): Update.
717 * config/xtensa/xtensa.h (along): Update.
718 * config/stormy16/stormy16.c Update.
719 (xstormy16_compute_stack_layout): Update.
720 * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
721 (fr30_expand_prologue): Update.
722 * config/cris/cris.c (cris_conditional_register_usage): Update.
723 (cris_reg_saved_in_regsave_area): Update.
724 (cris_initial_frame_pointer_offset): Update.
725 (cris_simple_epilogue): Update.
726 (cris_expand_prologue): Update.
727 (cris_expand_epilogue): Update.
728 (cris_expand_pic_call_address): Update.
729 (cris_asm_output_symbol_ref): Update.
730 (cris_asm_output_label_ref): Update.
731 * config/cris/cris.md Update.
732 * config/iq2000/iq2000.c (compute_frame_size): Update.
733 (iq2000_expand_epilogue): Update.
734 * config/mt/mt.h (save_direction): Update.
735 * config/mn10300/mn10300.c (mn10300_function_value): Update.
736 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
737 (ia64_secondary_reload_class): Update.
738 * config/m68k/m68k.c (m68k_save_reg): Update.
739 (m68k_expand_prologue): Update.
740 (m68k_expand_epilogue): Update.
741 (legitimize_pic_address): Update.
742 * config/rs6000/rs6000.c (rs6000_got_register): Update.
743 (first_reg_to_save): Update.
744 (first_altivec_reg_to_save): Update.
745 (compute_vrsave_mask): Update.
746 (compute_save_world_info): Update.
747 (rs6000_stack_info): Update.
748 (spe_func_has_64bit_regs_p): Update.
749 (rs6000_ra_ever_killed): Update.
750 (rs6000_emit_eh_reg_restore): Update.
751 (rs6000_emit_allocate_stack): Update.
752 (rs6000_emit_prologue): Update.
753 (rs6000_emit_epilogue): Update.
754 (rs6000_output_function_epilogue): Update.
755 (output_profile_hook): Update.
756 (rs6000_elf_declare_function_name): Update.
757 * config/rs6000/rs6000.h (rs6000_args): Update.
758 * config/rs6000/rs6000.md: Update.
759 * config/mcore/mcore.c (mcore_expand_prolog): Update.
760 * config/arc/arc.c (arc_output_function_epilogue): Update.
761 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
762 * config/darwin.c (machopic_function_base_name): Update.
763 * config/score/score3.c (score3_compute_frame_size): Update.
766 (score3_epilogue): Update.
767 * config/score/score7.c (score7_compute_frame_size): Update.
768 (score7_prologue): Update.
769 (score7_epilogue): Update.
770 * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
771 * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
772 * config/arm/arm.c (use_return_insn): Update.
773 (require_pic_register): Update.
774 (arm_load_pic_register): Update.
775 (arm_compute_save_reg0_reg12_mask): Update.
776 (arm_compute_save_reg_mask): Update.
777 (thumb1_compute_save_reg_mask): Update.
778 (output_return_instruction): Update.
779 (arm_output_function_prologue): Update.
780 (arm_output_epilogue): Update.
781 (arm_get_frame_offsets): Update.
782 (arm_expand_prologue): Update.
783 (thumb_pushpop): Update.
784 (thumb_exit): Update.
785 (thumb1_expand_prologue): Update.
786 (thumb1_expand_epilogue): Update.
787 (arm_unwind_emit): Update.
788 (arm_output_fn_unwind): Update.
789 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
790 * config/arm/arm.md: Update.
791 * config/pa/pa.md: Update.
792 * config/pa/pa.c (legitimize_pic_address): Update.
793 (compute_frame_size): Update.
794 (hppa_expand_prologue): Update.
795 (hppa_expand_epilogue): Update.
796 (borx_reg_operand): Update.
797 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
798 (HARD_REGNO_RENAME_OK): Update.
799 * config/mips/mips.c (mips_global_pointer): Update.
800 (mips_save_reg_p): Update.
801 (mips_compute_frame_info): Update.
802 (mips_frame_pointer_required): Update.
803 (mips_expand_prologue): Update.
804 (mips_expand_epilogue): Update.
805 (mips_can_use_return_insn): Update.
806 (mips_reorg_process_insns): Update.
807 * config/v850/v850.c (compute_register_save_size): Update.
808 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
809 * config/mmix/mmix.c (along): Update.
810 (mmix_expand_epilogue): Update.
811 * config/bfin/bfin.c (legitimize_pic_address): Update.
812 (must_save_p): Update.
813 (stack_frame_needed_p): Update.
814 (add_to_reg): Update.
815 (bfin_expand_prologue): Update.
816 * stmt.c (expand_asm_operands): Update.
817 * reload1.c (reload): Update.
818 (init_elim_table): Update.
820 2008-04-25 Bob Wilson <bob.wilson@acm.org>
822 * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
824 2008-04-25 H.J. Lu <hongjiu.lu@intel.com>
826 * config/i386/sse.md (mov<mode>): Replace SSEMODEI with
828 (*mov<mode>_internal): Likewise. Support V4SF and V2DF.
829 (mov<mode>): Removed.
830 (*movv4sf_internal): Likewise.
831 (*movv2df_internal): Likewise.
833 2008-04-25 Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
835 * config.gcc (crx-*-elf): Remove deprecation.
837 2008-04-25 Danny Smith <dannysmith@users.sourceforge.net>
839 * config/i386/cygming-crtend.c (register_frame_ctor): Register
840 __gcc_deregister_frame with atexit.
841 (deregister_frame_dtor): Remove.
843 2008-04-24 Nathan Froyd <froydnj@codesourcery.com>
844 Nathan Sidwell <nathan@codesourcery.com>
846 * config/rs6000/rs6000.opt (mspe): Remove Var property.
848 * config/rs6000/rs6000.h (rs6000_spe): Declare.
849 (rs6000_isel): Likewise.
850 * config/rs6000/rs6000.c (rs6000_spe): New variable.
851 (rs6000_isel): New variable.
852 (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
854 2008-04-24 Jakub Jelinek <jakub@redhat.com>
857 * c-common.c (handle_vector_size_attribute): Call
858 lang_hooks.types.reconstruct_complex_type instead of
859 reconstruct_complex_type.
860 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
861 * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
862 * langhooks.h (struct lang_hooks_for_types): Add
863 reconstruct_complex_type hook.
864 * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
865 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
867 2008-04-24 Richard Guenther <rguenther@suse.de>
869 * c-common.h (check_builtin_function_arguments): Declare.
870 * c-common.c (validate_nargs): New function.
871 (check_builtin_function_arguments): Likewise.
872 * c-typeck.c (build_function_call): Call
873 check_builtin_function_arguments.
874 * builtins.c (fold_builtin_classify): Remove error reporting code.
875 (fold_builtin_unordered_cmp): Likewise.
876 (fold_builtin_1): Likewise.
877 (fold_builtin_n): Likewise.
879 2008-04-24 Jakub Jelinek <jakub@redhat.com>
881 PR tree-optimization/36008
882 * fold-const.c (try_move_mult_to_index): If s == NULL, divide
883 the original op1, rather than delta by step.
885 2008-04-22 Antoniu Pop <antoniu.pop@gmail.com>
886 Sebastian Pop <sebastian.pop@amd.com>
888 * tree-parloops.c (take_address_of, eliminate_local_variables_1,
889 eliminate_local_variables_stmt, eliminate_local_variables,
890 separate_decls_in_loop_name, separate_decls_in_loop_stmt,
891 separate_decls_in_loop, gen_parallel_loop): Make them work on a region
892 of code delimited by two edges in the CFG.
893 (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
894 (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
895 (separate_decls_in_loop): Renamed separate_decls_in_region. Isolate
896 the case of parallelisation of reductions.
897 (expr_invariant_in_region_p): New.
899 * tree-flow.h (gather_blocks_in_sese_region): Declared.
900 * tree-cfg.c (gather_blocks_in_sese_region): Extern.
902 2008-04-24 Ira Rosen <irar@il.ibm.com>
903 Richard Guenther <rguenther@suse.de>
905 PR tree-optimization/36034
906 * tree-vect-analyze.c (vect_analyze_group_access): SLP is
907 incapable of dealing with loads with gaps.
909 2008-04-24 Rafael Espindola <espindola@google.com>
911 * tree-flow.h (vrp_evaluate_conditional): Change signature.
912 * tree-ssa-propagate.c (fold_predicate_in): Update call to
913 vrp_evaluate_conditional.
914 * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
915 (vrp_evaluate_conditional): Split the cond argument.
916 (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
917 (simplify_stmt_for_jump_threading): Update call to
918 vrp_evaluate_conditional.
920 2008-04-24 Ira Rosen <irar@il.ibm.com>
922 PR tree-optimization/35982
923 * tree-vect-analyze.c (vect_check_interleaving): Check that the
924 interleaved data-refs are of the same type.
926 2008-04-24 Danny Smith <dannysmith@users.net>
928 * c-format.c (check_format_info_main): Use strncmp rather than a
929 magic prefix to handle multichar length specs.
930 * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
931 Don't prefix "I64" and "I32" with '\0'.
933 2008-04-24 Jakub Jelinek <jakub@redhat.com>
936 * config/i386/i386.c (init_cumulative_args): Don't pass anything
937 in registers for -m32 only if stdarg_p (fntype).
939 2008-04-24 Uros Bizjak <ubizjak@gmail.com>
941 PR rtl-optimization/36006
942 * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
943 temp to op0 in order to avoid invalid rtx sharing.
945 2008-04-23 Paolo Bonzini <bonzini@gnu.org>
947 * tree-cfg.c (verify_expr): Check with is_gimple_address. Don't
948 check TREE_INVARIANT.
949 * tree-gimple.c (is_gimple_address): New.
950 (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
951 * tree-gimple.h (is_gimple_address): New.
952 * tree.h (decl_address_invariant_p): New.
953 * tree.c (make_node_stat): Don't set TREE_INVARIANT.
954 (build_string): Likewise.
955 (decl_address_invariant_p): New, from is_gimple_invariant_address.
956 (tree_invariant_p_1): Likewise.
958 (tree_invariant_p): New.
959 (skip_simple_arithmetic): Use it.
960 (stabilize_reference_1): Use it.
961 (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
963 (build1_stat): Drop code to compute TREE_INVARIANT.
964 (build2_stat): Drop code to compute TREE_INVARIANT.
965 (build3_stat): Drop code to compute TREE_INVARIANT.
966 (build4_stat): Drop code to compute TREE_INVARIANT.
967 (build5_stat): Drop code to compute TREE_INVARIANT.
968 (build7_stat): Drop code to compute TREE_INVARIANT.
969 (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
970 * tree.h (struct tree_base): Remove invariant_flag.
971 (TREE_INVARIANT): Remove.
972 * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
973 (fold_builtin_expect): Check TREE_CONSTANT.
974 * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
975 * c-tree.h (c_expr_to_decl): Drop third parameter.
976 * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
977 (build_c_cast): Don't set TREE_INVARIANT.
978 (pop_init_level): Don't set TREE_INVARIANT.
979 (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
980 * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
982 (gimplify_init_constructor): Don't set TREE_INVARIANT.
983 (gimplify_addr_expr): Adjust comment.
984 * tree-mudflap.c (mf_build_string):
985 * print-tree.c (print_node): Don't print TREE_INVARIANT.
986 * tree-nested.c (convert_nonlocal_reference): Adjust comment.
987 * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
988 * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
989 * langhooks.c (lhd_expr_to_decl): Drop third parameter.
990 * langhooks.h (struct lang_hooks): Drop third parameter from
993 2008-04-23 Richard Guenther <rguenther@suse.de>
995 PR tree-optimization/27799
996 PR tree-optimization/32921
997 PR tree-optimization/32624
998 * tree-ssa-structalias.c (merge_smts_into): Only merge the
999 SMTs aliases and the tag itself into the solution.
1000 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
1001 merge the points-to solution back into the SMT aliases.
1002 (may_alias_p): Use alias_set_subset_of instead of
1003 aliases_conflict_p. A pointer which points to
1004 memory with alias set zero may access any variable.
1006 2008-04-23 Richard Guenther <rguenther@suse.de>
1008 * alias.c (alias_set_subset_of): Correctly handle asking
1009 if zero is a subset of an alias set with zero child.
1010 * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
1011 (compute_flow_insensitive_aliasing): Correctly walk all
1012 pointers. Do not unnecessarily union sets.
1014 2008-04-23 Richard Guenther <rguenther@suse.de>
1017 * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
1019 2008-04-22 Tomas Bily <tbily@suse.cz>
1021 * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
1023 * tree-vrp.c (extract_range_from_unary_expr): Removed unused
1025 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
1026 * tree-ssa-structalias.c (get_constraint_for): Likewise.
1027 * tree-inline.c (estimate_num_insns_1): Likewise.
1028 * varasm.c (const_hash_1, compare_constant, copy_constant)
1029 (compute_reloc_for_constant, output_addressed_constants): Likewise.
1030 * emit-rtl.c (component_ref_for_mem_expr)
1031 (set_mem_attributes_minus_bitpos): Likewise.
1032 * expr.c (highest_pow2_factor, expand_expr_real_1, )
1033 (is_aligning_offset): Likewise.
1034 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
1035 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
1036 * dojump.c (do_jump): Likewise.
1037 * builtins.c (get_pointer_alignment, get_memory_rtx)
1038 (integer_valued_real_p, fold_builtin_next_arg): Likewise.
1039 * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
1041 2008-04-23 Jakub Jelinek <jakub@redhat.com>
1043 PR rtl-optimization/36017
1044 * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
1045 expanding the library call.
1047 2008-04-22 Ian Lance Taylor <iant@google.com>
1049 * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
1052 2008-04-22 Pat Haugen <pthaugen@us.ibm.com>
1054 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
1055 of LR/CTR moves for Power6.
1057 2008-04-22 Kenneth Zadeck <zadeck@naturalbridge.com>
1060 * passes.c (init_optimization_passes): Remove
1061 pass_fast_rtl_byte_dce.
1063 2008-04-22 Uros Bizjak <ubizjak@gmail.com>
1066 * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
1067 builtin functions to generate faster code.
1068 (_mm_cvtpu16_ps): Ditto.
1069 (_mm_cvtpi32x2_ps): Ditto.
1071 2008-04-22 Nick Clifton <nickc@redhat.com>
1073 * common.opt (ftree-loop-distribution): Add Optimization
1076 * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
1077 (frv_expand_builtin_va_start): Likewise.
1079 * config/arm/arm.c (thumb_find_work_register): Fix location of
1080 argument register count.
1082 2008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
1084 Support scheduling for ColdFire V1 and V3 microarchitecture.
1085 Improve scheduling of multiplication instructions.
1087 * config/m68k/m68k.md (cpu): Add cfv1 and cfv3. Rename cf_v2 to cfv1.
1088 (mac): New instruction attribute.
1089 * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
1090 (m68k_sched_mac): New variable.
1091 (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
1092 Handle cfv1 and cfv3.
1093 (max_insn_size): New static variable.
1094 (struct _sched_ib): New type.
1095 (sched_ib): New static variable.
1096 (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
1097 to fields of 'struct _sched_ib sched_ib'. Update all uses.
1098 (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
1100 (m68k_sched_md_init_global, m68k_sched_md_finish_global,
1101 m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3. Init
1102 new variables. Update.
1103 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
1104 Add modeling of cfv3 instruction buffer. Update.
1105 * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
1106 * config/m68k/m68k.h (TUNE_CFV3): New macro.
1107 * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
1108 (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
1109 a particular reservation applies to.
1110 (type2): Reorganize attribute values. Rename alu to alu_reg,
1111 alu_l to alu, move_l to omove. Join move to alu. Split mul
1113 (cf_ib_*): Simplify description of instruction buffer.
1114 (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
1115 (cf_mem): Split into cf_mem1 and cf_mem2.
1116 (cf_v2_move_??): Rename to cfv12_alu_??.
1117 (cf_v2_move_l_??): Rename to cfv12_omove_??.
1118 (cf_v2_mul_??): Remove reservations.
1119 (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
1120 cfv12_emac_??, cfv12_emac_w_i0): New reservations.
1121 (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
1123 (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
1124 cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
1125 cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
1126 cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
1127 cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
1128 cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
1129 (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
1130 expansions of the above reservations for instructions of sizes
1133 2008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
1135 * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
1137 2008-04-21 Adam Nemet <anemet@caviumnetworks.com>
1139 * coverage.c: Include tree-pass.h.
1140 (coverage_counter_alloc): Print da_file_name to the dump file.
1142 2008-04-21 Kenneth Zadeck <zadeck@naturalbridge.com>
1144 * sbitmap.c (sbitmap_range_empty_p): New function.
1145 * sbitmap.h (sbitmap_range_empty_p): New function.
1146 * bitmap.h: Now includes obstack.h.
1148 2008-04-21 Richard Sandiford <rsandifo@nildram.co.uk>
1149 Kenneth Zadeck <zadeck@naturalbridge.com>
1151 * dbgcnt.def (ra_byte_scan): Added.
1152 * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
1153 when the last hit happens for a counter.
1154 * timevar.def (TV_DF_BYTE_LR): New variable.
1155 * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
1156 * passes.c (pass_fast_rtl_byte_dce): New pass.
1157 * fwprop.c (update_df): Added mode to call df_ref_create.
1158 Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
1159 DF_REF_EXTRACT_OFFSET.
1160 * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
1161 DF_BYTE_LR_OUT, df_byte_lr): New macro.
1163 (df_ref_extract): Added mode field.
1164 (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
1165 DF_REF_EXTRACT_OFFSET.
1166 (DF_REF_EXTRACT_MODE): New macro.
1167 (df_byte_lr_bb_info): New structure.
1168 (df_print_byte_regset, df_compute_accessed_bytes,
1169 df_byte_lr_add_problem, df_byte_lr_get_regno_start,
1170 df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
1171 df_byte_lr_simulate_uses,
1172 df_byte_lr_simulate_artificial_refs_at_top,
1173 df_byte_lr_simulate_artificial_refs_at_end,
1174 df_compute_accessed_bytes): New function.
1175 (df_ref_create): Add parameter.
1176 (df_byte_lr_get_bb_info): New inline function.
1177 * df-scan.c (df_ref_record, df_uses_record,
1178 df_ref_create_structure): Added mode parameter.
1179 (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
1180 df_defs_record, df_uses_record, df_get_conditional_uses,
1181 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
1182 df_entry_block_defs_collect, df_exit_block_uses_collect):
1183 Added mode parameter to calls to df_ref_record, df_uses_record,
1184 df_ref_create_structure.
1185 (df_ref_equal_p, df_ref_compare): Added test for modes.
1186 (df_ref_create_structure): Added code to set mode. Renamed
1187 DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
1188 DF_REF_EXTRACT_OFFSET.
1189 * df-core.c (df_print_byte_regset): New function.
1190 * df-byte-scan.c: New file.
1191 * df-problems.c (df_rd_transfer_function): Removed unnecessary
1192 calls to BITMAP_FREE.
1193 (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
1194 (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
1195 df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
1196 df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
1197 df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
1198 df_byte_lr_local_compute, df_byte_lr_init,
1199 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
1200 df_byte_lr_transfer_function, df_byte_lr_free,
1201 df_byte_lr_top_dump, df_byte_lr_bottom_dump,
1202 df_byte_lr_add_problem, df_byte_lr_simulate_defs,
1203 df_byte_lr_simulate_uses,
1204 df_byte_lr_simulate_artificial_refs_at_top,
1205 df_byte_lr_simulate_artificial_refs_at_end): New function.
1206 * dce.c (byte_dce_process_block): New function.
1207 (dce_process_block): au is now passed in rather than computed
1208 locally. Changed loops that look at artificial defs to not look
1209 for conditional or partial ones, because there never are any.
1210 (fast_dce): Now is able to drive byte_dce_process_block or
1211 dce_process_block depending on the kind of dce being done.
1212 (rest_of_handle_fast_dce): Add parameter to fast_dce.
1213 (rest_of_handle_fast_byte_dce): New function.
1214 (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
1215 * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
1217 2008-04-21 Daniel Franke <franke.daniel@gmail.com>
1220 * gcc.h: Added fortran options that take arguments to
1221 DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
1224 2008-04-20 Eric Botcazou <ebotcazou@adacore.com>
1226 * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
1227 scalarization if on the LHS and not a full access.
1229 2008-04-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1231 * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
1233 2008-04-18 Rafael Espindola <espindola@google.com>
1235 * tree-vrp.c (find_case_label_index): Fix the binary search.
1236 (find_case_label_range): New.
1237 (vrp_visit_switch_stmt): Use find_case_label_range.
1238 (simplify_switch_using_ranges): Use find_case_label_range.
1240 2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
1242 * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
1243 using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
1245 2008-04-18 Tom Tromey <tromey@redhat.com>
1248 * doc/cpp.texi (Implementation-defined behavior): Mention
1251 2008-04-18 Ian Lance Taylor <iant@google.com>
1253 * fold-const.c (pointer_may_wrap_p): New static function.
1254 (fold_comparison): Add another test for pointer overflow. Use
1255 pointer_may_wrap_p to disable some false positives.
1257 2008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
1259 * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
1260 (fname_as_string): Match updated cpp_interpret_string prototype.
1261 (fix_string_type): Support char16_t* and char32_t*.
1262 (c_common_nodes_and_builtins): Add char16_t and char32_t (and
1263 derivative) nodes. Register as builtin if C++0x.
1264 (c_parse_error): Support CPP_CHAR{16,32}.
1265 * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
1266 (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
1267 CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
1268 CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
1269 CTI_CHAR32_ARRAY_TYPE>: New elements.
1270 (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
1271 char32_type_node, signed_char32_type_node, char16_array_type_node,
1272 char32_array_type_node): New defines.
1273 * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
1274 (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
1275 (lex_string): Support CPP_STRING{16,32}, match updated
1276 cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
1277 (lex_charconst): Support CPP_CHAR{16,32}.
1278 * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
1279 and CPP_STRING{16,32}.
1281 2008-04-18 Paolo Bonzini <bonzini@gnu.org>
1284 * aclocal.m4: Regenerate.
1285 * configure: Regenerate.
1287 2008-04-18 Jan Hubicka <jh@suse.cz>
1289 * except.c (dw2_size_of_call_site_table,
1290 sjlj_size_of_call_site_table): Use vector API for call_site_record.
1292 * cgraphbuild.c (build_cgraph_edges): Update.
1293 * tree-pass.h: Update comment.
1294 * final.c (leaf_function_p): Update.
1295 (leaf_renumber_regs): Update.
1296 (rest_of_clean_state): Update.
1297 * omp-low.c (expand_omp_parallel): Update.
1298 * ipa-reference.c (analyze_function): Update.
1299 * reorg.c (find_end_label): Update.
1300 (optimize_skip): Update.
1301 (fill_simple_delay_slots): Update.
1302 (fill_simple_delay_slots): Update.
1303 (make_return_insns): Update.
1304 (dbr_schedule): Update.
1305 * gimple-low.c (record_vars_into): Update.
1306 * cfgbuild.c (make_edges): Update.
1307 * function.c (assign_stack_local): Update.
1308 (assign_parm_adjust_stack_rtl): Update.
1309 (locate_and_pad_parm): Update.
1310 (allocate_struct_function): Do not initialize stack_alignment_needed
1311 and preferred_stack_boundary here.
1312 (stack_protect_prologue): Update.
1313 (stack_protect_epilogue): Update.
1314 (expand_function_start): Initialize stack_alignment_needed,
1315 preferred_stack_boundary and max_jumptable_ents.
1316 (expand_function_end): Update.
1317 (free_after_compilation): Do not NULLify epilogue_delay_list.
1318 * function.h (struct rtl_data): Add stack_protect_guard,
1319 stack_alignment_needed,
1320 preferred_stack_boundary, epilogue_delay_list.
1321 (struct function): Remove value_histograms, stack_alignment_needed,
1322 preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
1324 unexpanded_var_list, stack_protect_guard.
1325 (current_function_epilogue_delay_list): Remove.
1326 * ipa-type-escape.c (analyze_function): Update.
1327 * gimplify.c (pop_gimplify_context): Update comment.
1328 * calls.c (expand_call): Update.
1329 (emit_library_call_value_1): Update.
1330 * except.c (set_nothrow_function_flags): Update.
1331 * cfgexpand.c (get_decl_align_unit): Update.
1332 (create_stack_guard): Update.
1333 (estimated_stack_frame_size): Update.
1334 (expand_used_vars): Update.
1335 (tree_expand_cfg): Free histogram earliers, init expansion variables.
1336 * explow.c (allocate_dynamic_stack_space): Update.
1337 * tree-ssa-live.c (remove_unused_locals): Update.
1338 * varasm.c (mark_constant_pool): Update.
1339 * tree-inline.c (remap_decls): Update.
1340 (initialize_cfun): Update.
1341 (declare_return_variable): Update.
1342 (inline_forbidden_p): Update.
1343 (expand_call_inline): Update.
1344 (declare_inline_vars): Update.
1345 (tree_function_versioning): Update.
1346 * tree-flow.h (value_histograms): New.
1347 (VALUE_HISTOGRAMS): New macro.
1348 * basic-block.h (control_flow_graph): Add max_jumptable_ents,
1350 * tree-cfg.c (set_bb_for_stmt): Update.
1351 (replace_by_duplicate_decl): Update.
1352 (move_block_to_fn): Update.
1353 (new_label_mapper): Update.
1354 (dump_function_to_file): Update.
1355 * ipa-struct-reorg.c (build_data_structure): Update.
1356 * cfgrtl.c (print_rtl_with_bb): Update.
1357 * reload1.c (reload): Update.
1359 * config/i386/i386.c (setup_incoming_varargs_64,
1360 ix86_compute_frame_layout): Update.
1361 * config/arc/arc.c (arc_output_function_epilogue): Update.
1363 2008-04-18 Marius Strobl <marius@FreeBSD.org>
1365 * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
1366 for FreeBSD as well.
1367 * gthr-posix95.h: Likewise.
1369 2008-04-17 Richard Sandiford <rsandifo@nildram.co.uk>
1371 PR rtl-optimization/35838
1372 * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
1373 out the byte offset of the first subreg.
1375 2008-04-17 Uros Bizjak <ubizjak@gmail.com>
1377 * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
1378 to split_ti instead of three separate calls with single member arrays.
1379 (subti3 splitter): Ditto.
1380 (adddi3 splitter): Ditto with split_di.
1381 (subdi3 splitter): Ditto.
1382 (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
1383 two separate calls with single member arrays. Swap match_dup
1384 operands 1 and 2 to better fit into the array.
1385 (negdi2 splitter): Ditto with split_di.
1386 (movdfcc splitter): Pass arrays of 2 operands to split_di instead of
1387 two separate calls with single member arrays. Swap match_dup operands
1388 6 and 7 to better fit into the array.
1390 2008-04-17 H.J. Lu <hongjiu.lu@intel.com>
1392 * config/i386/i386.c (sse_builtin_type): New.
1393 (bdesc_sse_args): Likewise.
1394 (bdesc_sse_3arg): Removed.
1395 (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
1396 (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
1397 IX86_BUILTIN_ROUNDPS.
1398 (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args. Remove
1399 bdesc_sse_3arg. Remove IX86_BUILTIN_ROUNDPD and
1400 IX86_BUILTIN_ROUNDPS.
1401 (ix86_expand_sse_4_operands_builtin): Removed.
1402 (ix86_expand_sse_operands_builtin): New.
1403 (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
1404 and CODE_FOR_sse4_1_roundps.
1405 (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
1406 Handle bdesc_sse_args. Remove bdesc_sse_3arg.
1408 2008-04-17 Alan Modra <amodra@bigpond.net.au>
1411 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
1412 regs before frame pop when needed. If use_backchain_to_restore_sp
1413 then load backchain into a temp reg to restore vr and vrsave. Add
1414 code to restore vr after frame pop if possible.
1416 2008-04-17 Richard Guenther <rguenther@suse.de>
1418 * tree-vn.c (expressions_equal_p): Do not check type
1419 equality or compatibility before calling operand_equal_p.
1420 * fold-const.c (operand_equal_p): Check equivalence of
1421 integer constants before bailing out due to signedness or
1422 precision differences.
1423 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
1424 spurious differences in type qualification. Ignore types
1425 for COMPONENT_REFs at all.
1427 2008-04-17 Christian Bruel <christian.bruel@st.com>
1429 * config/sh/sh.c (expand_cbranchdi4): Use original operands for
1430 msw_skip comparison.
1432 2008-04-16 Jakub Jelinek <jakub@redhat.com>
1435 * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
1438 PR tree-optimization/35899
1439 * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
1440 rather than TREE_OPERAND.
1442 2008-04-16 Uros Bizjak <ubizjak@gmail.com>
1445 * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
1446 temporary registers. Change operand predicate to general_operand.
1447 (remainderxf3): Ditto.
1449 2008-04-16 Richard Guenther <rguenther@suse.de>
1451 * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
1452 * tree-affine.c (aff_combination_expand): Look through some
1455 2008-04-15 Doug Kwan <dougkwan@google.com>
1457 * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
1459 * tree-pretty-print.c (dump_generic_node): Ditto.
1460 * final.c (output_addr_const): Ditto.
1461 * dwarf2out.c (output_cfi): Ditto.
1462 * c-pretty-print.c (pp_c_integer_constant): Ditto.
1463 * print-rtl.c (print_rtx): Ditto.
1464 * print-tree.c (print_node_brief, print_node): Ditto.
1465 * c-common.c (match_case_to_enum_1): Ditto.
1466 * sched-vis.c (print_value): Ditto.
1467 * config/i386/i386.c (print_operand): Cast to long unsigned int
1470 2008-04-15 Danny Smith <dannysmith@users.sourceforge.net>
1471 * libgcc2.c [L_trampoline]: Remove unnecessary prototype for
1472 MS Windows VirtualProtect function.
1474 2008-04-15 Jan Hubicka <jh@suse.cz>
1476 * gengtype.c (write_root): Param_is argument is OK.
1477 * expr.c (expand_expr_real_1): Update call of get_exception_*.
1478 * function.h: Include varray.h
1479 (rtl_eh): New stucture based on except.c one.
1480 (call_site_record): New forward declaration and vector type.
1481 * calls.c (emit_call_1): Do not call
1482 note_current_region_may_contain_throw.
1483 * except.c (eh_status): Remove cur_region, try_region since they are
1485 Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
1486 exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
1487 sjlj_fc, sjlj_exit_after to rth_eh in function.h.
1488 Remove call_site_data_used, call_site_data_size.
1489 Turn call_site_record into vector in function.h.
1490 (note_current_region_may_contain_throw): Remove.
1491 (get_exception_pointer, get_exception_filter): Do not take struct
1492 function argument; update.
1493 (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
1494 add_ttypes_entry, add_ehspec_entry, assign_filter_values,
1495 build_post_landing_pads, dw2_build_landing_pads,
1496 sjlj_assign_call_site_values, sjlj_mark_call_sites,
1497 sjlj_emit_function_enter, sjlj_emit_function_enter,
1498 sjlj_emit_function_exit, sjlj_emit_dispatch_table,
1499 sjlj_build_landing_pads, finish_eh_generation,
1500 remove_exception_handler_label, remove_eh_handler,
1501 maybe_remove_eh_handler, add_reachable_handler,
1502 reachable_handlers, expand_builtin_eh_return, expand_eh_return,
1503 add_action_record, collect_one_action_chain, add_call_site,
1504 convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
1505 sjlj_output_call_site_table, output_function_exception_table,
1506 * except.h (note_current_region_may_contain_throw): Remove
1507 (get_exception_pointer, get_exception_filter): Do not take struct
1509 * Makefile.in (GTFILES): Put varargs before struct function.
1511 2008-04-15 Eric Botcazou <ebotcazou@adacore.com>
1513 * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
1514 punt for STRING_CST.
1515 (get_constraint_for): Deal with STRING_CST here instead.
1517 2008-04-15 Richard Guenther <rguenther@suse.de>
1519 * tree-ssa-propagate.c (substitute_and_fold): Substitute
1520 statements in a basic-block with a backward walk. Do not
1521 substitute into dead statements but instead remove those.
1523 2008-04-15 Richard Guenther <rguenther@suse.de>
1525 * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
1526 to zero, thus disable creation of SFTs.
1528 2008-04-15 Eric Botcazou <ebotcazou@adacore.com>
1530 * tree-predcom.c (suitable_reference_p): Return false if the
1531 reference can throw.
1533 2008-04-15 Jakub Jelinek <jakub@redhat.com>
1536 * c-decl.c (finish_decl): If extern or static var has variable
1537 size, set TREE_TYPE (decl) to error_mark_node.
1539 2008-04-15 Rafael Espindola <espindola@google.com>
1541 * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
1544 2008-04-15 Richard Guenther <rguenther@suse.de>
1546 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
1547 * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
1548 (visit_reference_op_load): Do walk vuse-vdef chains on
1549 vn_reference_lookup.
1550 (visit_reference_op_store): But do not here.
1551 * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
1552 vn_reference_lookup.
1553 (vn_lookup_with_vuses): But do so here.
1555 2008-04-14 Ian Lance Taylor <iant@google.com>
1557 * fold-const.c (fold_overflow_warning): Remove assertion.
1559 2008-04-15 Ben Elliston <bje@au.ibm.com>
1561 * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
1562 temp1 local variables.
1564 2008-04-15 Zuxy Meng <zuxy.meng@gmail.com>
1567 * config/i386/winnt.c (i386_pe_section_type_flags): Mark
1568 ".text.unlikely" section as executable.
1570 2008-04-14 James E. Wilson <wilson@tuliptree.org>
1572 * config/ia64/ia64.c (rtx_needs_barrier): Handle
1573 UNSPEC_FR_SQRT_RECIP_APPROX_RES.
1574 * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
1575 (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
1576 divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
1577 divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
1578 divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
1580 2008-04-14 Ian Lance Taylor <iant@google.com>
1582 * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
1583 * fold-const.c (fold_comparison): If appropriate, test
1584 POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
1585 (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
1586 reassociating a pointer type.
1587 * doc/invoke.texi (Optimize Options): Document that
1588 -fstrict-overflow applies to pointer wraparound.
1590 2008-04-13 Jan Hubicka <jh@suse.cz>
1592 * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
1594 2008-04-12 Andrew Pinski <pinskia@gmail.com>
1596 * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
1597 we are going to "save the world".
1599 2008-04-13 Hans-Peter Nilsson <hp@axis.com>
1601 * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
1602 ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
1603 operand 0 constraint, not "=".
1605 2008-04-11 James E. Wilson <wilson@tuliptree.org>
1607 * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
1609 2008-04-11 H.J. Lu <hongjiu.lu@intel.com>
1611 * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
1612 of size of positions_needed * CHAR_BIT.
1614 2008-04-11 H.J. Lu <hongjiu.lu@intel.com>
1617 * dse.c (store_info): Change positions_needed to unsigned
1619 (lowpart_bitmask): New.
1620 (record_store): Cast to unsigned HOST_WIDE_INT for
1621 positions_needed. Assert width <= size of positions_needed *
1622 CHAR_BIT. Call lowpart_bitmask to initialize positions_needed.
1623 (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask. Call
1624 lowpart_bitmask to set mask.
1626 2008-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
1628 * config/bfin/constraints.md: New file.
1629 * config/bfin/bfin.md: Include it.
1630 (adddi3): Use satisfies_constraint functions instead of the old macros.
1631 * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
1632 CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
1633 CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
1634 CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
1635 CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
1636 CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
1637 EXTRA_CONSTRAINT): Delete.
1638 * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
1639 reg_or_neg7bit_operand): Use satisfies_constraint functions instead
1641 * config/bfin/bfin.c: Include "tm-constrs.h".
1642 (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
1643 Use satisfies_constraint functions instead of the old macros.
1644 * doc/md.texi (Blackfin Constraints): Update file name reference.
1646 2008-04-11 Richard Guenther <rguenther@suse.de>
1648 PR tree-optimization/35869
1649 * tree-vrp.c (execute_vrp): Move switch statement update after
1650 jump threading. Schedule another cfg cleanup run.
1652 2008-04-11 Volker Reichelt <v.reichelt@netcologne.de>
1655 * attribs.c (decl_attributes): Return early on errorneous node.
1657 2008-04-10 Oleg Ryjkov <olegr@google.com>
1659 * tree.h (struct tree_base): Added a new flag default_def_flag.
1660 (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
1662 2008-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
1664 * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
1666 2008-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1669 * pa.md: Define mode iterator P. Define mode attribute dwc.
1670 (dcacheflush): Update pattern to use iterator P and attribute dwc.
1671 (icacheflush): Likewise.
1672 * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
1673 !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
1675 2008-04-11 Ben Elliston <bje@au.ibm.com>
1677 * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
1679 2008-04-10 Rafael Espindola <espindola@google.com>
1681 * tree-vrp.c (extract_range_from_binary_expr): Don't handle
1682 TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
1683 (extract_range_from_expr): The same.
1685 2008-04-10 Adam Nemet <anemet@caviumnetworks.com>
1687 * config/mips/mips.md (GPR2): New mode iterator.
1689 (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
1690 *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
1691 *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
1692 Rewrite these to take two modes, the mode of comparison and the
1693 mode of the destination.
1694 * config/mips/mips.c (mips_expand_scc): Instead of having
1695 paradoxical subreg as destination, expand "narrowing" scc if mode
1696 of comparison is SI and target is requested in DI mode.
1697 (mips_emit_int_order_test): Update comment. Make mode of
1698 comparison match CMP0 rather than TARGET. When creating inverse
1699 target use mode of TARGET.
1701 2008-04-10 Adam Nemet <anemet@caviumnetworks.com>
1703 * gcov-dump.c (tag_summary): Only print summaries for the first
1704 GCOV_COUNTERS_SUMMABLE counters.
1706 2008-04-10 Uros Bizjak <ubizjak@gmail.com>
1708 * config/i386/i386.md (absneg): New code iterator.
1709 (absnegprefix): New code attribute.
1710 (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
1711 patterns using absneg code iterator.
1712 (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
1713 using absneg code iterator.
1714 (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
1715 *neg<mode>2 patterns using absneg code iterator.
1716 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
1717 *negextendsfdf2 patterns using absneg code iterator.
1718 (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
1719 *negextendsfxf2 patterns using absneg code iterator.
1720 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
1721 *negextendsfdf2 patterns using absneg code iterator.
1722 * config/i386/sse.md (<code><mode>2): Macroize expander from
1723 abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
1725 2008-04-10 Andreas Krebbel <krebbel1@de.ibm.com>
1727 * config/s390/s390.h: Remove the remains of the recent search
1728 & replace action of current_function_outgoing_args_size.
1730 2008-04-10 Ira Rosen <irar@il.ibm.com>
1732 PR tree-optimization/35821
1733 * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
1734 NEW_STMT_LIST is not NULL.
1736 2008-04-09 David Edelsohn <edelsohn@gnu.org>
1739 * toplev.c (process_options): Remove -ffunction-sections debugging
1742 2008-04-09 Peter Bergner <bergner@vnet.ibm.com>
1744 PR middle-end/PR28690
1745 * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
1746 than gen_rtx_fmt_ee to perform more canonicalizations.
1748 2008-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1751 * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
1753 2008-04-09 Richard Guenther <rguenther@suse.de>
1755 * tree-cfg.c (verify_stmt): Print complete bogus stmt.
1756 (dump_function_to_file): Dump function arguments with types.
1758 2008-04-08 Richard Guenther <rguenther@suse.de>
1760 * fold-const.c (fold_widened_comparison): Do not allow
1761 sign-changes that change the result.
1763 2008-04-08 Janis Johnson <janis187@us.ibm.com>
1766 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
1767 kinds of indirect references.
1769 2008-04-08 David Edelsohn <edelsohn@gnu.org>
1771 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
1772 GNU Fortran language string.
1774 2008-04-08 Rafael Espindola <espindola@google.com>
1776 * fold-canst.c (tree_call_nonnegative_warnv_p): New.
1777 (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
1778 * tree.h (tree_call_nonnegative_warnv_p): New.
1780 2008-04-08 Jan Hubicka <jh@suse.cz>
1782 * function.c (free_after_compilation): Clear out regno_reg_rtx
1785 2008-04-08 Peter Bergner <bergner@vnet.ibm.com>
1788 2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
1790 PR middle-end/PR28690
1791 * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
1792 same precedence as REG_POINTER and MEM_POINTER operands.
1794 2008-04-08 Richard Guenther <rguenther@suse.de>
1797 * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
1798 for adding index to base.
1800 2008-04-08 Kai Tietz <kai.tietz@onevision.com>
1802 * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
1803 (MINGW_ENABLE_EXECUTE_STACK): New.
1804 (IN_LIBGCC2): For libgcc include windows.h file for
1805 function declarations.
1807 2008-04-08 Hans-Peter Nilsson <hp@axis.com>
1809 * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
1810 and tem2 if tem1 is not a REG or MULT.
1812 2008-04-08 Jan Hubicka <jh@suse.cz>
1814 * function.h (incomming_args): Break out of struct function.
1815 (function_subsections): Break out of struct function.
1816 (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
1817 return_rtx and hard_reg_initial_vals from struct function.
1818 Kill inl_max_label_num.
1819 (current_function_pops_args, current_function_args_info,
1820 current_function_args_size, current_function_args_size,
1821 current_function_pretend_args_size,
1822 current_function_outgoing_args_size,
1823 current_function_internal_arg_pointer, current_function_return_rtx):
1824 Kill compatibility accestor macros.
1825 * builtins.c (expand_builtin_apply_args_1): Update.
1826 (expand_builtin_next_arg): Update.
1827 * df-scan.c (df_get_call_refs): Update.
1828 * dbxout.c (dbxout_function_end): Update.
1829 * dwarf2out.c (dwarf2out_switch_text_section): Update.
1830 (output_line_info): Update.
1831 (secname_for_decl): Update.
1832 (dwarf2out_var_location): Update.
1833 * function.c (free_after_compilation): Update.
1834 (assign_parm_find_stack_rtl): Update.
1835 (assign_parms): Update.
1836 (expand_dummy_function_end): Update.
1837 (expand_function_end): Update.
1838 * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
1839 (expand_call): Update.
1840 (emit_library_call_value_1): Update.
1841 (store_one_arg): Update.
1842 * varasm.c (initialize_cold_section_name): Update.
1843 (unlikely_text_section): Update.
1844 (unlikely_text_section_p): Update.
1845 (assemble_start_function): Update.
1846 (assemble_end_function): Update.
1847 (default_section_type_flags): Update.
1848 (switch_to_section): Update.
1849 * integrate.c (set_decl_abstract_flags): Update.
1850 (get_hard_reg_initial_val): Update.
1851 (has_hard_reg_initial_val): Update.
1852 (allocate_initial_values): Update.
1853 * resource.c (init_resource_info): Update.
1854 * config/alpha/alpha.c (NUM_ARGS): Update.
1855 (direct_return): Update.
1856 (alpha_va_start): Update.
1857 (alpha_sa_size): Update.
1858 (alpha_initial_elimination_offset): Update.
1859 (alpha_expand_prologue): Update.
1860 (alpha_start_function): Update.
1861 (alpha_expand_epilogue): Update.
1862 (unicosmk_initial_elimination_offset):
1863 * config/alpha/alpha.md (call expander): Update.
1864 * config/s390/s390.c (s390_register_info): Update.
1865 (s390_register_info): Update.
1866 (s390_frame_info): Update.
1867 (s390_initial_elimination_offset): Update.
1868 (s390_build_builtin_va_list): Update.
1869 (s390_va_start): Update.
1870 * config/spu/spu.c (direct_return): Update.
1871 (spu_expand_prologue): Update.
1872 (spu_initial_elimination_offset): Update.
1873 (spu_build_builtin_va_list): Update.
1874 (spu_va_start): Update.
1875 * config/sparc/sparc.c (sparc_init_modes): Update.
1876 (sparc_compute_frame_size): Update.
1877 (function_value): Update.
1878 * config/m32r/m32r.c (m32r_compute_frame_size): Update.
1879 * config/i386/i386.md (return expander): Update.
1880 * config/i386/i386.c (ix86_va_start): Update.
1881 (ix86_can_use_return_insn_p): Update.
1882 (ix86_compute_frame_layout): Update.
1883 (ix86_expand_epilogue): Update.
1884 * config/sh/sh.c (output_stack_adjust): Update.
1885 (calc_live_regs): Update.
1886 (sh_expand_prologue): Update.
1887 (sh_builtin_saveregs): Update.
1888 (sh_va_start): Update.
1889 (initial_elimination_offset): Update.
1890 (sh_allocate_initial_value): Update.
1891 (sh_function_ok_for_sibcall): Update.
1892 (sh_get_pr_initial_val): Update.
1893 * config/sh/sh.md (return expander): Update.
1894 * config/avr/avr.c (frame_pointer_required_p): UPdate.
1895 * config/crx/crx.c (crx_compute_frame): UPdate.
1896 (crx_initial_elimination_offset): UPdate.
1897 * config/xtensa/xtensa.c (compute_frame_size): Update
1898 (xtensa_builtin_saveregs): Update.
1899 (xtensa_va_start): Update.
1900 (order_regs_for_local_alloc): Update.
1901 * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
1902 (xstormy16_expand_builtin_va_start): Update.
1903 * config/fr30/fr30.c (fr30_compute_frame_size): Update.
1904 * config/m68hc11/m68hc11.md (return expanders): Update.
1905 * config/m68hc11/m68hc11.c (expand_prologue): Update.
1906 (expand_epilogue): Update.
1907 * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
1908 (cris_simple_epilogue): Update.
1909 (cris_expand_prologue): Update.
1910 (cris_expand_epilogue): Update.
1911 * config/iq2000/iq2000.c (iq2000_va_start): Update.
1912 (compute_frame_size): Update.
1913 * config/mt/mt.c (mt_compute_frame_size): Update.
1914 * config/mn10300/mn10300.c (expand_prologue): Update.
1915 (expand_epilogue): Update.
1916 (initial_offset): Update.
1917 (mn10300_builtin_saveregs):
1918 * config/mn10300/mn10300.md (return expander): Update.
1919 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
1920 (ia64_initial_elimination_offset): Update.
1921 (ia64_initial_elimination_offset): Update.
1922 (ia64_expand_prologue): Update.
1923 * config/m68k/m68k.md (return expander): Update.
1924 * config/rs6000/rs6000.c (rs6000_va_start): Update.
1925 (rs6000_stack_info): Update.
1926 * config/mcore/mcore.c (layout_mcore_frame): Update.
1927 (mcore_expand_prolog): Update.
1928 * config/arc/arc.c (arc_compute_frame_size): Update.
1929 * config/score/score3.c (score3_compute_frame_size): Update.
1930 * config/score/score7.c (score7_compute_frame_size): Update.
1931 * config/arm/arm.c (use_return_insn): Update.
1932 (thumb_find_work_register): Update.
1933 (arm_compute_save_reg_mask): Update.
1934 (arm_output_function_prologue): Update.
1935 (arm_output_epilogue): Update.
1936 (arm_size_return_regs): Update.
1937 (arm_get_frame_offsets): Update.
1938 (arm_expand_prologue): Update.
1939 (thumb_exit): Update.
1940 (thumb_unexpanded_epilogue): Update.
1941 (thumb1_output_function_prologue): Update.
1942 * config/pa/pa.md (return expander): Update.
1943 * config/pa/pa.c (compute_frame_size): Update.
1944 (hppa_builtin_saveregs): Update.
1945 * config/mips/mips.c (mips_va_start): Update.
1946 (mips16_build_function_stub): Update.
1947 (mips_compute_frame_info): Update.
1948 (mips_restore_gp): Update.
1949 (mips_output_function_prologue): Update.
1950 (mips_expand_prologue): Update.
1951 * config/v850/v850.c (compute_frame_size): Update.
1952 (expand_prologue): * config/mmix/mmix.c (along): update.
1953 (mmix_initial_elimination_offset): update.
1954 (mmix_reorg): update.
1955 (mmix_use_simple_return): update.
1956 (mmix_expand_prologue): update.
1957 (mmix_expand_epilogue): Update.
1958 * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
1959 (emit_link_insn): Update.
1961 2008-04-08 Anatoly Sokolov <aesok@post.ru>
1963 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
1964 __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
1966 * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
1969 2008-04-07 Jan Hubicka <jh@suse.cz>
1971 * function.h (rtl): Rename to x_rtl.
1973 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
1974 frame_offset, stack_check_probe_note, arg_pointer_save_area,
1975 used_temp_slots avail_temp_slots, temp_slot_level,
1976 nonlocal_goto_handler_labels): Update accesstors.
1977 (rtl): New global variable.
1978 (struct function): Move some fileds to rtl_data.
1979 (get_arg_pointer_save_area): Update prototype.
1980 * builtins.c (expand_builtin_setjmp_receiver): Update call of
1981 get_arg_pointer_save_area.
1982 * expr.c (init_expr): Update
1983 * function.c (get_frame_size): Update
1984 (assign_stack_local): Update
1985 (expand_function_end): Update.
1986 (get_art_pointer_save_area): Update
1988 * emit-rtl.c (rtl): Declare.
1989 (regno_reg_rtx): Declare.
1990 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
1992 (gen_reg_rtx): Update.
1993 * varasm.c (n_deferred_constatns): Update accestor.
1994 (init_varasm_status): Do not allocate varasm_status.
1995 (force_const_mem, get_pool_size, output_constant_pool): Update.
1996 * stmt.c (force_label_rtx): Do not use x_ prefixes.
1997 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
1998 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
1999 * sparc/sparc.h (INIT_EXPANDERS): Update.
2000 * ia64/ia64.h (INIT_EXPANDERS): Update.
2002 2008-04-07 James E. Wilson <wilson@tuliptree.org>
2004 * reload.c (push_secondary_reload): Add missing break to for loop.
2006 2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
2008 PR middle-end/PR28690
2009 * rtlanal.c: Update copyright years.
2010 (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
2011 as REG_POINTER and MEM_POINTER operands.
2012 * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
2013 (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
2014 * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
2015 * gcse.c: Update copyright years.
2016 (pre_delete): Call gen_reg_rtx_and_attrs.
2017 (hoist_code): Likewise.
2018 (build_store_vectors): Likewise.
2019 (delete_store): Likewise.
2020 * loop-invariant.c (move_invariant_reg): Likewise.
2021 Update copyright years.
2023 2008-04-07 Uros Bizjak <ubizjak@gmail.com>
2025 * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
2026 control string instead of quoted.
2028 2008-04-07 Kenneth Zadeck <zadeck@naturalbridge.com>
2030 * doc/rtl.texi: Rewrite of subreg section.
2032 2008-04-07 Kai Tietz <kai.tietz@onevision.com>
2035 * config/i386/i386.c (legitimize_pic_address): Add treating
2036 of dllimport SYM_REF's.
2037 (legitimize_dllimport_symbol): Add prototype.
2039 2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
2041 * fold-const.c (fold) <ARRAY_REF>: New case. Try to fold constant
2042 reference in constructor with non self-referential type.
2044 2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
2046 Removal of Return with Depressed Stack Pointer support
2047 * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
2048 (ECF_SP_DEPRESSED): Likewise.
2049 (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
2050 * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
2051 (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
2052 (expand_call): Do not test ECF_SP_DEPRESSED.
2053 * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
2054 * function.c (keep_stack_depressed): Delete.
2055 (handle_epilogue_set): Likewise.
2056 (update_epilogue_consts): Likewise.
2057 (emit_equiv_load): Likewise.
2058 (thread_prologue_and_epilogue_insns): Remove support for Return with
2059 Depressed Stack Pointer.
2060 * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
2062 2008-04-06 Richard Guenther <rguenther@suse.de>
2064 PR tree-optimization/35400
2065 * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
2066 information from SSA_NAMEs.
2068 2008-04-06 Anatoly Sokolov <aesok@post.ru>
2070 * config/avr/avr.h (avr_mega_p): Remove declaration.
2071 (AVR_MEGA): Remove macro.
2072 * config/avr/avr.c (avr_mega_p): Remove variable.
2073 (avr_override_options): Remove inicializion of avr_mega_p.
2074 Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
2075 (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
2076 (avr_jump_mode): (Ditto.).
2077 (avr_output_progmem_section_asm_op): (Ditto.).
2078 (avr_asm_init_sections): (Ditto.).
2079 (avr_asm_init_sections): (Ditto.).
2080 (avr_rtx_costs): (Ditto.).
2081 * config/avr/avr.md: (Ditto.).
2082 * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
2085 2008-04-06 Richard Guenther <rguenther@suse.de>
2087 PR tree-optimization/35842
2088 * tree-ssa-address.c (fixed_address_object_p): Adjust to match
2089 is_gimple_invariant_address.
2091 2008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2093 * gcc.c (default_compilers): Sync Fortran extensions list with
2094 that in fortran/lang-specs.h.
2095 * doc/invoke.texi: Likewise.
2096 * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
2097 * dwarf2out.c (gen_compile_unit_die): Likewise.
2099 2008-04-06 Tom G. Christensen <tgc@jupiterrise.com>
2101 * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
2103 2008-04-05 Uros Bizjak <ubizjak@gmail.com>
2106 * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
2107 attribute is used for nested functions.
2109 2008-04-05 Jan Hubicka <jh@suse.cz>
2111 * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
2113 * tree-dump.c (dump_enable_all): Remove prototype; do not accept
2115 (dump_files): Update.
2116 (enable_rtl_dump_file): Do not accept letter argument.
2117 * tree-pass.h (dump_file_info): Remove letter argument.
2118 * toplev.c (decode_d_option): Update -da handling.
2119 * toplev.h (enable_rtl_dump_file): Update prototype.
2120 * passes.c (register_one_dump_file): Do not accept IPA argument; work
2121 it out based on pass type.
2122 (register_dump_files_1): Likewise.
2123 (init_optimization_passes): Update register_one_dump_file calls.
2124 (execute_one_pass): Sanity check that IPA passes are called at IPA
2125 level and RTL passes at RTL level.
2126 (execute_pass_list): IPA pass can not be after or subpass of
2128 (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
2129 disallov RTL subpasses of IPA subpasses.
2131 2008-04-05 Ben Elliston <bje@au.ibm.com>
2133 * tree-cfg.c (need_fake_edge_p): Return false for calls to
2134 builtins that return exactly once and do not throw. Cache call to
2137 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
2139 PR rtl-optimization/34916
2141 * combine.c (create_log_links): Do not create duplicate LOG_LINKS
2142 between instruction pairs.
2144 2008-04-04 Naveen.H.S <naveen.hs@kpitcummins.com>
2146 * doc/invoke.texi: Document -mbitops for SH.
2147 * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
2148 * config/sh/predicates.md (bitwise_memory_operand): New predicate.
2149 * config/sh/sh.c (print_operand): Add %t operand code.
2150 * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
2151 * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
2152 (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
2153 (extendqihi2): Likewise.
2154 (movqi_i): Likewise.
2155 (insv): Use bset, bclr and bst instructions for SH2A if possible.
2156 (extv): Use bld instruction for SH2A if possible.
2158 (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
2159 bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
2160 bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
2161 (bset.b, bclr.b): Define peepholes.
2162 * config/sh/sh.opt (mbitops): New option.
2164 2008-04-04 Janis Johnson <janis187@us.ibm.com>
2167 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
2168 and view convert expression.
2170 2008-04-04 Jakub Jelinek <jakub@redhat.com>
2173 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
2175 2008-04-04 H.J. Lu <hongjiu.lu@intel.com>
2177 * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
2179 * config/i386/cpuid.h (bit_AES): New.
2180 (bit_PCLMUL): Likewise.
2182 * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
2183 (override_options): Handle PTA_AES and PTA_PCLMUL. Enable
2184 SSE2 if AES or PCLMUL is enabled.
2185 (ix86_builtins): Add IX86_BUILTIN_AESENC128,
2186 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
2187 IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
2188 IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
2189 (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
2190 (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
2191 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
2192 IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
2193 (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
2194 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
2195 __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
2196 __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
2197 __builtin_ia32_aeskeygenassist128 and
2198 __builtin_ia32_pclmulqdq128.
2199 * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
2200 (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
2201 IX86_BUILTIN_PSRLDQI128. Handle IX86_BUILTIN_AESKEYGENASSIST128.
2203 * config/i386/i386.h (TARGET_AES): New.
2204 (TARGET_PCLMUL): Likewise.
2205 (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
2207 * config/i386/i386.md (UNSPEC_AESENC): New.
2208 (UNSPEC_AESENCLAST): Likewise.
2209 (UNSPEC_AESDEC): Likewise.
2210 (UNSPEC_AESDECLAST): Likewise.
2211 (UNSPEC_AESIMC): Likewise.
2212 (UNSPEC_AESKEYGENASSIST): Likewise.
2213 (UNSPEC_PCLMUL): Likewise.
2215 * config/i386/i386.opt (maes): New.
2216 (mpclmul): Likewise.
2218 * config/i386/sse.md (aesenc): New pattern.
2219 (aesenclast): Likewise.
2221 (aesdeclast): Likewise.
2223 (aeskeygenassist): Likewise.
2224 (pclmulqdq): Likewise.
2226 * config/i386/wmmintrin.h: New.
2228 * doc/extend.texi: Document AES and PCLMUL built-in function.
2230 * doc/invoke.texi: Document -maes and -mpclmul.
2232 2008-04-04 Paolo Bonzini <bonzini@gnu.org>
2234 * function.c (free_after_parsing): Replace with
2235 cxx_push_function_context from C++ front-end.
2236 (allocate_struct_function): Don't call langhook.
2237 * langhooks.h (struct lang_hooks_for_functions): Delete.
2238 (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
2240 * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
2241 (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
2242 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2243 LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
2244 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
2245 remove LANG_HOOKS_FUNCTION_INITIALIZER.
2246 * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
2248 * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
2249 Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
2251 2008-04-04 Jakub Jelinek <jakub@redhat.com>
2254 * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
2257 2008-04-04 Richard Guenther <rguenther@suse.de>
2260 * fold-const.c (optimize_minmax_comparison): Use the correct
2261 type for the constant in the simplified comparison.
2263 2008-04-04 Zuxy Meng <zuxy.meng@gmail.com>
2265 * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
2266 Pass L2 size as "--param l2-cache-size" to the compiler.
2267 (decode_l2_cache): New function to decode L2 cache parameters using
2268 0x8000006 extended cpuid function.
2269 (detect_caches_amd): Determine parameters of L2 cache using
2270 decode_l2_caches function.
2271 (decode_caches_intel): Decode L2 cache parameters.
2272 (detect_caches_intel): Determine L2 cache parameters using
2273 decode_caches_intel and decode_l2_caches functions.
2275 2008-04-03 Bob Wilson <bob.wilson@acm.org>
2277 * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
2278 secondary input reload for subword loads from the constant pool.
2280 2008-04-03 Janis Johnson <janis187@us.ibm.com>
2283 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
2284 constants of the appropriate size for runtime calculations.
2287 * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
2288 decimal-float literal constant zero.
2290 2008-04-03 Jakub Jelinek <jakub@redhat.com>
2293 * c-parser.c (c_parser_omp_atomic): Call
2294 default_function_array_conversion on the RHS.
2297 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
2298 call is_variable_sized if decl has incomplete type.
2300 2008-04-03 H.J. Lu <hongjiu.lu@intel.com>
2302 * config/i386/i386-protos.h (ix86_aligned_p): Removed.
2304 2008-04-03 Adam Nemet <anemet@caviumnetworks.com>
2306 * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
2308 (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
2309 (sgt<u>): Merge sgt and sgtu into new expander.
2310 (sgt, sgtu): Remove expanders.
2311 (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
2312 (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
2313 (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
2314 *sgtu_<mode>_mips16 into new pattern.
2315 (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
2316 (sge<u>): Merge sge and sgeu into new expander.
2317 (sge, sgeu): Remove expanders.
2318 (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
2320 (*sge_<mode>, second *sge_<mode>): Remove patterns.
2321 (slt<u>): Merge slt and sltu into new expander.
2322 (slt, sltu): Remove expanders.
2323 (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
2324 (*slt_<mode>, *sltu_<mode>): Remove patterns.
2325 (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
2326 *sltu_<mode>_mips16 into new pattern.
2327 (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
2328 (sle<u>): Merge sle and sleu into new expander.
2329 (sle, sleu): Remove expanders.
2330 (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
2331 (*sle_<mode>, *sleu_<mode>): Remove patterns.
2332 (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
2333 *sleu_<mode>_mips16 into new pattern.
2334 (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
2336 2008-04-03 Jan Hubicka <jh@suse.cz>
2338 PR tree-optimization/35795
2339 * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
2340 * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
2341 * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
2342 * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
2343 * score/score3.c (score3_output_mi_thunk): Likewise.
2344 * score/score7.c (score7_output_mi_thunk): Likewise.
2345 * mips/mips.c (mips_output_mi_thunk): Likewise.
2347 2008-04-03 Richard Guenther <rguenther@suse.de>
2349 * tree-vrp.c (extract_range_from_unary_expr): Handle all
2350 conversions. Simplify code.
2352 2008-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
2354 * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
2356 2008-04-03 Tom Tromey <tromey@redhat.com>
2357 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2359 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
2360 * config/bfin/t-bfin-linux (generated_files): Add
2361 linux-sysroot-suffix.h.
2362 * doc/install.texi (Prerequisites): Require make 3.80.
2363 * doc/sourcebuild.texi (Front End Directory): Document new
2365 * Makefile.in (generated_files): New variable.
2366 (ALL_HOST_OBJS): New variable.
2367 ($(ALL_HOST_OBJS)): New target.
2369 2008-04-03 Paolo Bonzini <bonzini@gnu.org>
2371 * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
2372 (remap_block): Call id->transform_lang_insert_block instead
2374 (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
2375 Set id.transform_lang_insert_block to NULL.
2376 (clone_body): Move to cp/optimize.c
2377 * tree-inline.h (struct copy_body_data): Change
2378 transform_lang_insert_block to function pointer.
2379 (copy_generic_body, copy_decl_no_change): Export.
2380 * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
2381 * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
2382 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
2384 * c-tree.h (insert_block): Kill.
2385 * c-decl.c (insert_block): Kill.
2387 2008-04-03 Paolo Bonzini <bonzini@gnu.org>
2389 * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
2390 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
2391 * c-tree.h (c_push_function_context, c_pop_function_context): Remove
2393 * c-decl.c (c_push_function_context, c_pop_function_context): Remove
2394 argument, call {push,pop}_function_context from here.
2395 * c-parser.c: Use c_{push,pop}_function_context.
2397 * function.c (push_function_context_to): Move meat ...
2398 (push_function_context): ... here. Simplify.
2399 * function.c (pop_function_context_from): Move meat ...
2400 (pop_function_context): ... here. Simplify.
2401 * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
2403 * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
2404 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
2405 (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
2406 * tree.h (push_function_context_to, pop_function_context_from): Remove.
2408 2008-04-03 Ben Elliston <bje@au.ibm.com>
2410 * expmed.c (extract_force_align_mem_bit_field): Remove.
2412 2008-04-03 Richard Guenther <rguenther@suse.de>
2415 * expr.h (try_casesi): Adjust prototype.
2416 * expr.c (try_casesi): Take fallback label as extra parameter.
2417 Use that for gen_casesi if default_label is NULL.
2418 * stmt.c (expand_case): Pass fallback label to try_casesi,
2419 make sure to fill gaps with a fallback label if default_label
2422 2008-04-03 Dominique d'Humieres <dominiq@lps.ens.fr>
2425 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
2427 2008-04-03 Ben Elliston <bje@au.ibm.com>
2429 * expmed.c (extract_split_bit_field): Remove if (0) code.
2430 * tree-ssa-structalias.c (do_sd_constraint): Likewise.
2431 (do_ds_constraint): Likewise.
2433 2008-04-02 Joseph Myers <joseph@codesourcery.com>
2435 * doc/cppopts.texi (-dU): Document.
2436 * c-common.h (flag_dump_macros): Update comment.
2437 * c-opts.c (handle_OPT_d): Handle -dU.
2438 * c-ppoutput.c (macro_queue, define_queue, undef_queue,
2439 dump_queued_macros, cb_used_define, cb_used_undef): New.
2440 (init_pp_output): Handle -dU.
2441 (cb_line_change): Call dump_queued_macros.
2442 * toplev.c (decode_d_option): Accept -dU as preprocessor option.
2444 2008-04-02 Anatoly Sokolov <aesok@post.ru>
2446 * config/avr/predicates.md (io_address_operand): New predicate.
2447 * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
2448 * config/avr/avr.c (avr_io_address_p): Remove function.
2449 (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
2450 'avr_io_address_p' function.
2451 (out_movhi_r_mr): (Ditto.).
2452 (out_movqi_mr_r): (Ditto.).
2453 (out_movhi_mr_r): (Ditto.).
2454 (avr_address_cost): (Ditto.).
2456 2008-04-02 Uros Bizjak <ubizjak@gmail.com>
2458 * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
2459 Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
2460 in 32bit mode when XMM registers are available to avoid store
2462 (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
2463 corresponding post-reload splitters.
2465 2008-04-02 H.J. Lu <hongjiu.lu@intel.com>
2467 * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
2468 and __builtin_ia32_shufpd. Provide __builtin_ia32_roundsd and
2469 __builtin_ia32_roundss.
2470 (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
2471 __builtin_ia32_shufpd, __builtin_ia32_roundsd and
2472 __builtin_ia32_roundss.
2473 (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
2474 IX86_BUILTIN_SHUFPD here.
2476 2008-04-02 H.J. Lu <hongjiu.lu@intel.com>
2478 * config/i386/i386.md (plogic): New.
2479 (plogicprefix): Likewise.
2481 * config/i386/mmx.md (mmx_<code><mode>3): New.
2482 (mmx_and<mode>3): Removed.
2483 (mmx_ior<mode>3): Likewise.
2484 (mmx_xor<mode>3): Likewise.
2486 * config/i386/sse.md (<code><mode>3): New.
2487 (*<code><mode>3): Likewise.
2488 (*<code><mode>3): Likewise.
2489 (<code><mode>3): Likewise.
2490 (*sse_<code><mode>3): Likewise.
2491 (*sse2_<code><mode>3): Likewise.
2492 (<code>tf3): Likewise.
2493 (*<code>tf3): Likewise.
2494 (and<mode>3): Likewise.
2495 (*and<mode>3): Likewise.
2496 (ior<mode>3): Removed.
2497 (*ior<mode>3): Likewise.
2498 (xor<mode>3): Likewise.
2499 (*xor<mode>3): Likewise.
2500 (*and<mode>3): Likewise.
2501 (*ior<mode>3): Likewise.
2502 (*xor<mode>3): Likewise.
2503 (and<mode>3): Likewise.
2504 (*sse_and<mode>3): Likewise.
2505 (*sse2_and<mode>3): Likewise.
2507 (*andtf3): Likewise.
2508 (ior<mode>3): Likewise.
2509 (*sse_ior<mode>3): Likewise.
2510 (*sse2_ior<mode>3): Likewise.
2512 (*iortf3): Likewise.
2513 (xor<mode>3): Likewise.
2514 (*sse_xor<mode>3): Likewise.
2515 (*sse2_xor<mode>3): Likewise.
2517 (*xortf3): Likewise.
2519 2008-04-02 Richard Guenther <rguenther@suse.de>
2521 PR tree-optimization/14495
2522 PR tree-optimization/34793
2523 * tree-vrp.c (struct switch_update): New structure.
2524 (to_remove_edges, to_update_switch_stmts): New VECs.
2525 (simplify_switch_using_ranges): New function. Remove not taken
2526 case labels and edges.
2527 (simplify_stmt_using_ranges): Call it.
2528 (identify_jump_threads): Mark edges we have queued for removal
2529 so we don't thread them.
2530 (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
2532 * tree-cfg.c (group_case_labels): Deal with missing default label.
2533 (tree_verify_flow_info): Allow missing default label.
2534 * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
2535 (emit_case_nodes): Likewise.
2536 (expand_case): Do not rely on the default label to be present.
2537 * expr.c (try_casesi): Deal with NULL default_label.
2538 (do_tablejump): Likewise.
2540 2008-04-02 Richard Guenther <rguenther@suse.de>
2542 PR tree-optimization/14495
2543 * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
2544 SWITCH_EXPR here ...
2545 (vrp_visit_switch_stmt): ... but here (new function).
2546 (find_case_label_index): New helper function.
2547 (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
2549 2008-04-02 Paolo Bonzini <bonzini@gnu.org>
2551 * fwprop.c: Fix ISO-C99ism.
2553 2008-04-02 Paolo Bonzini <bonzini@gnu.org>
2556 * Makefile.in (objdir): Set it here.
2557 * configure.ac: Not here. Find dynamic linker characteristics.
2558 * exec-tool.in: Use them.
2559 * aclocal.m4: Regenerate.
2560 * configure: Regenerate.
2562 2008-04-02 Paolo Bonzini <bonzini@gnu.org>
2564 * expr.c (expand_var): Delete it.
2565 * expr.h (expand_var): Delete prototype.
2566 * function.c (expand_function_start): Use expand_decl instead.
2567 * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
2570 2008-04-02 Andy Hutchinson <hutchinsonamdy@aim.com>
2572 PR rtl-optimization/35542
2573 * fwprop.c (forward_propagate_and_simplify): Replace
2574 loc_reg_mentioned_in_p with reg_mentioned_p.
2576 2008-04-02 Paolo Bonzini <bonzini@gnu.org>
2578 PR rtl-optimization/35281
2579 * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
2580 (propagate_rtx_1): Handle PR_HANDLE_MEM.
2581 (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
2582 (varying_mem_p): Move above propagate_rtx.
2583 (all_uses_available_at): Do not check MEMs.
2585 2008-04-02 Rafael Espindola <espindola@google.com>
2587 * tree-vrp.c (extract_code_and_val_from_cond): Remove.
2588 (register_edge_assert_for_2): Split the cond argument.
2589 (register_edge_assert_for_1): Adjust for the change in
2590 register_edge_assert_for_2.
2591 (register_edge_assert_for): Split the cond argument.
2592 (find_switch_asserts): Adjust for the change in
2593 register_edge_assert_for.
2595 2008-04-02 Kai Tietz <kai.tietz@onevision.com>
2597 * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
2598 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
2599 offsets for 64-bit mingw.
2600 * config/i386/i386.c (ix86_pass_by_reference): Correct calling
2601 abi for x86_64-pc-mingw.
2603 2008-04-02 Richard Guenther <rguenther@suse.de>
2605 * tree-vrp.c (extract_range_from_assert): Make sure to not
2606 produce range min/max with TREE_OVERFOW set.
2607 If merging a anti-range and a range keep the anti-range if
2608 the range covers all values of the type.
2609 (register_edge_assert_for_2): Only allow sign-changing
2610 conversions in detecting canonical range checks. Also
2611 register an assert for the unsigned name if useful.
2613 PR tree-optimization/35787
2614 * tree-vrp.c (vrp_val_max): New function.
2615 (vrp_val_min): Likewise.
2616 (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
2617 (vrp_val_is_min): Likewise.
2618 (supports_overflow_infinity): Use vrp_val_{min,max}.
2619 (negative_overflow_infinity): Likewise.
2620 (positive_overflow_infinity): Likewise.
2621 (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
2622 (is_positive_overflow_infinity): Likewise.
2623 (is_overflow_infinity): Likewise.
2624 (avoid_overflow_infinity): Use vrp_val_{min,max} and
2625 vrp_val_is_{min,max}.
2626 (set_and_canonicalize_value_range): Canonicalize anti-ranges
2627 to ranges if possible. Avoid empty ranges.
2629 2008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2632 * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
2633 the expression is a function address.
2635 2008-04-01 George Helffrich <george@gcc.gnu.org>
2637 PR fortran/35154, fortran/23057
2638 * dbxout.c: Emit .stabs debug info for Fortran COMMON block
2639 variables as base symbol name + offset using N_BCOMM/N_ECOMM.
2640 (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
2641 (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
2643 (dbxout_syms): Check for COMMON-based symbol and wrap in
2644 N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
2645 in bracket for efficiency.
2647 * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
2648 using DW_TAG_common_block + member offset.
2649 (add_pubname_string): New function.
2650 (dw_expand_expr): New function to find block name and offset for
2652 (common_check): New function to check whether symbol in Fortran COMMON.
2653 (gen_variable_die): If COMMON, use DW_TAG_common_block.
2655 2008-04-01 Volker Reichelt <v.reichelt@netcologne.de>
2658 * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
2660 2008-04-02 Ben Elliston <bje@au.ibm.com>
2662 * config/v850/v850.md (casesi): Remove if (0) code.
2663 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
2664 * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
2666 2008-04-01 Uros Bizjak <ubizjak@gmail.com>
2668 * config/i386/i386.md (rex64suffix): New mode attribute.
2669 (floathi<mode>2): Disable expander for SSE math.
2670 (*floathi<mode>2_1): New insn insn_and_split pattern.
2671 (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
2672 corresponding post-reload splitters.
2673 (*floathi<mode>2_i387): New macroized insn pattern.
2674 (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
2675 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
2676 insn_and_split pattern.
2677 (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
2678 New macroized instruction patterns and corresponding post-reload
2680 (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
2681 and corresponding post-reload splitters.
2682 (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
2683 New macroized instruction patterns.
2684 (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
2685 macroized instruction patterns and corresponding post-reload splitters.
2686 (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
2687 corresponding post-reload splitters.
2688 (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
2689 New macroized instruction patterns.
2690 (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
2691 corresponding post-reload splitters.
2692 (*floatsi<mode>2_i387): New macroized instruction patterns.
2694 2008-04-01 H.J. Lu <hongjiu.lu@intel.com>
2696 * config/i386/i386.md (smaxmin): New.
2697 (umaxmin): Likewise.
2698 (maxminiprefix): Likewise.
2699 (maxminfprefix): Likewise.
2700 (<code><mode>3): Likewise.
2701 (smin<mode>3): Removed.
2702 (smax<mode>3): Likewise.
2704 * config/i386/mmx.md (mmx_<code>v2sf3): New.
2705 (mmx_<code>v4hi3): Likewise.
2706 (mmx_<code>v8qi3): Likewise.
2707 (mmx_smaxv2sf3): Removed.
2708 (mmx_sminv2sf3): Likewise.
2709 (mmx_umaxv8qi3): Likewise.
2710 (mmx_smaxv4hi3): Likewise.
2711 (mmx_uminv8qi3): Likewise.
2712 (mmx_sminv4hi3): Likewise.
2714 * config/i386/sse.md (<addsub><mode>3): New.
2715 (*<addsub><mode>3): Likewise.
2716 (<sse>_vm<addsub><mode>3): Likewise.
2717 (<maxmin><mode>3): Likewise.
2718 (*<maxmin><mode>3_finite): Likewise.
2719 (*<maxmin><mode>3): Likewise.
2720 (<sse>_vm<maxmin><mode>3): Likewise.
2721 (sse3_h<addsub>v4sf3): Likewise.
2722 (sse3_h<addsub>v2df3): Likewise.
2723 (<maxmin>v16qi3): Likewise.
2724 (*<maxmin>v16qi3): Likewise.
2725 (<maxmin>v8hi3): Likewise.
2726 (*<maxmin>v8hi3): Likewise.
2727 (*sse4_1_<maxmin><mode>3): Likewise.
2728 (*sse4_1_<maxmin><mode>3): Likewise.
2729 (add<mode>3): Removed.
2730 (*add<mode>3): Likewise.
2731 (<sse>_vmadd<mode>3): Likewise.
2732 (sub<mode>3): Likewise.
2733 (*sub<mode>3): Likewise.
2734 (<sse>_vmsub<mode>3): Likewise.
2735 (smin<mode>3): Likewise.
2736 (*smin<mode>3_finite): Likewise.
2737 (*smin<mode>3): Likewise.
2738 (<sse>_vmsmin<mode>3): Likewise.
2739 (smax<mode>3): Likewise.
2740 (*smax<mode>3_finite): Likewise.
2741 (*smax<mode>3): Likewise.
2742 (<sse>_vmsmax<mode>3): Likewise.
2743 (sse3_haddv4sf3): Likewise.
2744 (sse3_haddv2df3): Likewise.
2745 (sse3_hsubv4sf3): Likewise.
2746 (sse3_hsubv2df3): Likewise.
2747 (umaxv16qi3): Likewise.
2748 (*umaxv16qi3): Likewise.
2749 (smaxv8hi3): Likewise.
2750 (*smaxv8hi3): Likewise.
2751 (*sse4_1_smax<mode>3): Likewise.
2752 (*sse4_1_umax<mode>3): Likewise.
2753 (uminv16qi3): Likewise.
2754 (*uminv16qi3): Likewise.
2755 (sminv8hi3): Likewise.
2756 (*sminv8hi3): Likewise.
2757 (*sse4_1_smin<mode>3): Likewise.
2758 (*sse4_1_umin<mode>3): Likewise.
2760 2008-04-01 Rafael Espindola <espindola@google.com>
2762 * tree-cfg.c (verify_expr): remove in_phi.
2763 (verify_stmt): Don't call walk_tree with verify_expr. Use
2764 is_gimple_min_invariant instead of is_gimple_val.
2766 2008-04-01 Joseph Myers <joseph@codesourcery.com>
2768 * doc/include/gpl_v3.texi: Update for manpage generation.
2769 * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
2771 * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
2772 * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
2773 gpl_v3.texi instead of gpl.texi.
2776 2008-04-01 Jakub Jelinek <jakub@redhat.com>
2779 * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
2781 2008-04-01 Rafael Espindola <espindola@google.com>
2783 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
2784 (extract_code_and_val_from_cond): Use
2785 extract_code_and_val_from_cond_with_ops.
2787 2008-04-01 Jan Hubicka <jh@suse.cz>
2789 * function.c (free_after_compilation): Free epilogue_delay_list.
2790 (prepare_function_start): Assert that previous compilation was freed.
2792 2008-04-01 Jan Hubicka <jh@suse.cz>
2793 Jim Wilson <wilson@tuliptree.org>
2794 Andreas Tobler <andreast@gcc.gnu.org>
2797 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
2798 rtl.emit instead cfun->emit.
2799 * sparc/sparc.h (INIT_EXPANDERS): Likewise.
2800 * ia64/ia64.h (INIT_EXPANDERS): Likewise.
2802 2008-04-01 Ben Elliston <bje@au.ibm.com>
2804 * doc/c-tree.texi (Function Basics): Fix grammatical error.
2806 2008-03-31 Seongbae Park <seongbae.park@gmail.com>
2808 * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
2810 (fprofile-use): Add var flag_profile_use
2811 * coverage.c (coverage_begin_output): Do not open a gcno file for
2812 output only if -ftest-coverage is set.
2813 Do not add getpwd() to gcda file path.
2814 (build_gcov_info): Check the new flag
2815 flag_profile_datafile_relative_path.
2816 (coverage_init): Use profile_data_prefix.
2817 Read profile counter only if flag_profile_use is set.
2818 * opts.c (common_handle_option): New option fprofile-use=,
2819 fprofile-dir=, fprofile-generate=.
2820 * toplev.c (profile_data_prefix): New variable definition.
2821 * toplev.h (profile_data_prefix): New declaration.
2822 * doc/invoke.tex (Option Summary, Optimization Options):
2825 2008-03-31 James E. Wilson <wilson@tuliptree.org>
2827 * varasm.c (output_constant_pool_1): In LABEL_REF check,
2828 use tmp consistently.
2831 * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
2832 * config/ia64/ia64.c (rtx_needs_barrier): Handle
2833 UNSPEC_FR_RECIP_APPROX_RES.
2834 * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
2836 2008-03-31 Volker Reichelt <v.reichelt@netcologne.de>
2839 * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
2841 2008-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
2844 * fold-const.c (fold_indirect_ref_1): Support accessing non first
2845 element of the vector via a pointer.
2847 2008-03-31 Ian Lance Taylor <iant@google.com>
2849 * tlink.c (scan_linker_output): Look for symbol name in single quotes.
2851 2008-03-31 Jan Hubicka <jh@suse.cz>
2853 * builtins.c (expand_builtin_setjmp_receiver): Update call of
2854 get_arg_pointer_save_area.
2855 * expr.c (init_expr): Just clear out rtl.expr.
2856 * function.c (free_after_compilation): Clear out whole RTL structure.
2857 (get_func_frame_size): Merge into ...
2858 (get_frame_size): ... this one.
2859 (assign_stack_local_1): Merge into ...
2860 (assign_stack_local): ... this one.
2861 (expand_function_end): Update call of get_arg_pointer_save_area.
2862 (get_art_pointer_save_area): Remove cfun argument.
2863 * function.h (emit_status): regno_pointer_align does not need length
2864 attribute. Move x_regno_reg_rtx to ...
2865 (regno_reg_rtx): ... new global array.
2866 (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
2867 (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
2868 apply_args_value, forced_labels, stack_pointer_delta):
2870 (struct varasm_status): Move here from varasm.c
2871 (struct rtl_data): New. Move here some fields from struct function.
2872 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
2873 frame_offset, stack_check_probe_note, arg_pointer_save_area,
2874 used_temp_slots avail_temp_slots, temp_slot_level,
2875 nonlocal_goto_handler_labels): Update accesstors.
2876 (rtl): New global variable.
2877 (struct function): Move some fileds to rtl_data.
2878 (get_arg_pointer_save_area): Update prototype.
2879 * emit-rtl.c (rtl): Declare.
2880 (regno_reg_rtx): Declare.
2881 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
2883 (gen_reg_rtx): Update.
2884 (init_virtual_regs): Do not tate emit_status argument.
2885 (init_emit): Do not allocate emit.
2886 * varasm.c (varasm_statuc): Move to function.h.
2887 (n_deferred_constatns): Update accestor.
2888 (init_varasm_status): Do not allocate varasm_status.
2889 (force_const_mem, get_pool_size, output_constant_pool): Update.
2890 * stmt.c (force_label_rtx): Do not use x_ prefixes.
2891 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
2893 2008-03-31 Zdenek Dvorak <ook@ucw.cz>
2895 PR rtl-optimization/35729
2896 * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
2899 2008-03-31 H.J. Lu <hongjiu.lu@intel.com>
2902 * config/i386/i386.md (*movti_internal): Emit unaligned SSE
2903 load/store if memory is unaligned.
2904 (*movti_rex64): Likewise.
2906 * config/i386/predicates.md (misaligned_operand): New.
2908 2008-03-31 Andrew Pinski <pinskia@gmail.com>
2911 * tree-ssa-phiopt.c (conditional_replacement): Return early for
2914 2008-03-31 Jan Beulich <jbeulich@novell.com>
2916 * config/ia64/constraints.md: Add 'j' constraint.
2917 * config/ia64/ia64.md (movsi_internal): Add addp4 case.
2918 (movdi_internal): Likewise.
2920 2008-03-30 Volker Reichelt <v.reichelt@netcologne.de>
2923 * c-typeck.c (build_c_cast): Skip invalid fields in unions.
2925 2008-03-30 H.J. Lu <hongjiu.lu@intel.com>
2928 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
2929 proper error message for the third argument on blendpd and
2932 * config/i386/sse.md (blendbits): New.
2933 (sse4_1_blendp<ssemodesuffixf2c>): Use it.
2935 2008-03-30 Eric Botcazou <ebotcazou@adacore.com>
2937 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
2939 2008-03-30 Richard Guenther <rguenther@suse.de>
2942 * fold-const.c (fold_sign_changed_comparison): Do leave
2943 conversions to base-types alone.
2945 2008-03-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
2947 * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
2948 the link register if one altivec register is be saved.
2950 2008-03-30 Ben Elliston <bje@au.ibm.com>
2952 * final.c (final_scan_insn): Remove if (0) code.
2954 2008-03-28 Volker Reichelt <v.reichelt@netcologne.de>
2956 * c-parser.c (c_parser_next_token_is_keyword): Simplify.
2958 2008-03-28 H.J. Lu <hongjiu.lu@intel.com>
2960 * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
2961 of V4SFmode to ix86_binary_operator_ok.
2963 2008-03-28 Uros Bizjak <ubizjak@gmail.com>
2965 * config/i386/i386.c (override_options): Initialize
2966 ix86_veclib_handler to ix86_veclibabi_svml when
2967 -mveclibabi=svml is used.
2968 (ix86_veclibabi_svml): New function for SVML ABI style
2969 vectorization support.
2970 * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
2972 2008-03-28 Rafael Espindola <espindola@google.com>
2974 * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
2975 (tree_binary_nonnegative_warnv_p): Make it public.
2976 (tree_single_nonnegative_warnv_p): Make it public.
2977 (tree_invalid_nonnegative_warnv_p): Make it public.
2978 (tree_unary_nonzero_warnv_p): Make it public.
2979 (tree_binary_nonzero_warnv_p): Make it public
2980 (tree_single_nonzero_warnv_p): Make it public.
2981 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
2982 (extract_range_from_binary_expr): Split the expr argument.
2983 (extract_range_from_unary_expr): Split the expr argument.
2984 (extract_range_from_comparison): Split the expr argument.
2985 (extract_range_from_expr): Use the new aux functions.
2986 (vrp_evaluate_conditional_warnv): Use
2987 vrp_evaluate_conditional_warnv_with_ops.
2988 * tree.h (tree_unary_nonzero_warnv_p): Declare.
2989 (tree_binary_nonzero_warnv_p): Declare.
2990 (tree_single_nonzero_warnv_p): Declare.
2991 (tree_expr_nonzero_warnv_p): Declare.
2992 (tree_unary_nonnegative_warnv_p): Declare.
2993 (tree_binary_nonnegative_warnv_p): Declare.
2994 (tree_single_nonnegative_warnv_p): Declare.
2995 (tree_invalid_nonnegative_warnv_p): Declare.
2997 2008-03-28 Richard Guenther <rguenther@suse.de>
2999 PR tree-optimization/30317
3000 PR tree-optimization/30911
3001 PR tree-optimization/34793
3002 * tree-vrp.c (set_and_canonicalize_value_range): New function.
3003 (struct assert_locus_d): New member EXPR.
3004 (register_new_assert_for): Add EXPR parameter to support
3005 ASSERT_EXPR <name, expr OP limit>.
3006 (register_edge_assert_for_1): Adjust callers.
3007 (find_assert_locations): Likewise.
3008 (process_assert_insertions_for): Build condition from expression.
3009 (extract_range_from_assert): Handle ASSERT_EXPRs
3010 of the form ASSERT_EXPR <name, expr OP limit>.
3011 (register_edge_assert_for_2): New helper registering
3012 asserts for comparisons. Recognize range tests of the form
3013 (unsigned)i - CST1 OP CST2.
3014 (register_edge_assert_for_1): Use it.
3015 (register_edge_assert_for): Likewise.
3016 (needs_overflow_infinity): Integer sub-types
3017 do not need overflow infinities.
3018 (vrp_val_is_max): The extreme values of integer sub-types
3019 are those of the base type.
3020 (vrp_val_is_min): Likewise.
3021 * tree.def (ASSERT_EXPR): Document extra allowed conditional
3024 2008-03-28 Nick Clifton <nickc@redhat.com>
3027 * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
3028 Return GENERAL_REGS for stack adjustment reloads.
3030 2008-03-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
3033 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
3034 const_vector when all the vectors are constant.
3036 2008-03-27 Bob Wilson <bob.wilson@acm.org>
3038 * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
3040 * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
3041 (any_scc_sf): Add uneq, unlt, unle and unordered operators.
3043 (s<code>_sf): Use new scc_sf attribute for opcode names.
3045 2008-03-27 Tom Tromey <tromey@redhat.com>
3047 * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
3048 configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
3049 config/spu/t-spu-elf, config/i386/t-interix,
3050 config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
3051 config/i386/x-darwin, config/i386/x-mingw32,
3052 config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
3053 config/sh/t-sh, config/sh/t-symbian, config/x-linux,
3054 config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
3055 config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
3056 config/rs6000/x-rs6000, config/rs6000/x-darwin64,
3057 config/rs6000/x-darwin, config/rs6000/t-rs6000,
3058 config/score/t-score-elf, config/arm/t-strongarm-pe,
3059 config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
3060 config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
3061 Revert automatic dependency patch.
3063 2008-03-27 H.J. Lu <hongjiu.lu@intel.com>
3066 * config/i386/i386.c (ix86_function_arg_boundary): Align
3067 decimal floating point to its natural boundary.
3069 2008-03-27 Richard Guenther <rguenther@suse.de>
3072 * fold-const.c (fold_comparison): Restrict distinct decl
3073 comparison folding to VAR_DECLs and PARM_DECLs. Do not
3074 solely rely on operand_equal_p.
3076 2008-03-27 Richard Guenther <rguenther@suse.de>
3079 * c-common.c (handle_weak_attribute): Reject combination of
3082 2008-03-27 Richard Guenther <rguenther@suse.de>
3084 PR tree-optimization/32810
3085 * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
3086 conversions from DECL_INITIAL.
3087 (fold_const_aggregate_ref): Likewise from constructor elements.
3089 2008-03-27 Zdenek Dvorak <ook@ucw.cz>
3091 * tree-affine.h (aff_combination_expand): Declare.
3092 (get_inner_reference_aff): Likewise.
3093 * tree-affine.c (aff_combination_expand): Split out from
3094 tree_to_aff_combination_expand.
3095 (get_inner_reference_aff): New function.
3096 * tree-parloops.c (loop_parallel_p): Free vectorizer info.
3097 * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
3098 (struct lim_aux_data): sm_done field removed.
3099 (mem_ref_loc_p, mem_ref_locs_p): New types.
3100 (struct mem_ref): Added id, stored, accesses_in_loop,
3101 indep_loop, dep_loop, indep_ref, dep_ref fields.
3102 Removed is_stored, locs and next fields.
3103 (memory_accesses): New variable.
3104 (movement_possibility): Do not allow moving statements
3105 that store to memory.
3106 (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
3108 (determine_max_movement): For statements with memory references,
3109 find the outermost loop in that the reference is independent.
3110 (move_computations_stmt): Mark the virtual operands for renaming.
3111 (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
3112 gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
3113 vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
3114 add_vop_ref_mapping, create_vop_ref_mapping_loop,
3115 create_vop_ref_mapping, analyze_memory_references,
3116 cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
3117 get_all_locs_in_loop, ref_always_accessed_p,
3118 refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
3119 ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
3120 store_motion_loop, store_motion): New functions.
3121 (struct vop_to_refs_elt): New type.
3122 (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
3123 memref_hash, memref_eq, hoist_memory_references): Rewritten.
3124 (schedule_sm): Replaced by...
3125 (execute_sm): ... this.
3126 (determine_lsm_ref, hoist_memory_references,
3127 loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
3128 find_more_ref_vops, free_mem_ref, free_mem_refs,
3129 determine_lsm_loop, determine_lsm): Removed.
3130 (tree_ssa_lim_finalize): Free data structures used by store motion.
3131 (tree_ssa_lim): Call analyze_memory_references. Use
3132 store_motion instead of determine_lsm.
3134 2008-03-27 Paolo Bonzini <bonzini@gnu.org>
3136 * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
3137 rename tmake_file to m68hc11/t-m68hc11.
3138 (mcore): Set inhibit_libc to true.
3139 * config.host (alpha*-dec-*vms*): Set extra_programs.
3140 (interix3*): Don't use host_xmake_file.
3141 * configure.ac: Let config.gcc override inhibit_libc.
3142 * configure: Regenerate.
3144 * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
3145 * config/t-openbsd-thread: Remove commented out lines.
3147 * config/x-interix: Remove.
3149 * config/m68hc11/t-m68hc11-gas: Rename to...
3150 * config/m68hc11/t-m68hc11: ... this. Remove T_CPPFLAGS.
3152 * config/mcore/t-mcore: Remove T_CFLAGS.
3153 * config/mcore/t-mcore-pe: Likewise.
3155 2008-03-27 Paolo Bonzini <bonzini@gnu.org>
3157 * configure.ac: Replace custom __GNU_SOURCE test with
3158 AC_USE_SYSTEM_EXTENSIONS. Move it earlier.
3159 * aclocal.m4: Regenerate.
3160 * configure: Regenerate.
3161 * config.in: Regenerate.
3163 2008-03-27 Richard Guenther <rguenther@suse.de>
3165 * fold-const.c (target.h): Include.
3166 (fold_comparison): Fold comparison of addresses of decls
3167 that bind locally or of constants. Consolidate address folding code.
3168 * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
3169 results from fold_binary_to_constant.
3170 (compare_values_warnv): Likewise.
3172 2008-03-27 Andrew Pinski <pinskia@gmail.com>
3175 * fold-const.c (fold_truthop): Check for integeral types when folding
3176 a == 0 && b == 0 and a != 0 || b != 0 .
3178 2008-03-26 Eric Botcazou <ebotcazou@adacore.com>
3180 * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
3182 2008-03-26 Andreas Schwab <schwab@suse.de>
3184 * doc/invoke.texi: Fix use of @item vs. @itemx.
3186 2008-03-26 Tom Tromey <tromey@redhat.com>
3188 * Makefile.in (build/gensupport.o, build/print-rtl.o,
3189 build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
3190 build/genattrtab.o, build/genautomata.o, build/gencheck.o,
3191 build/gencodes.o, build/genconditions.o, build/genconfig.o,
3192 build/genconstants.o, build/genemit.o, build/genextract.o,
3193 build/genflags.o, build/genmddeps.o, build/genopinit.o,
3194 build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
3197 2008-03-26 Richard Guenther <rguenther@suse.de>
3200 2008-03-26 Richard Guenther <rguenther@suse.de>
3202 * fold-const.c (target.h): Include.
3203 (fold_comparison): Fold comparison of addresses of two decls
3204 that bind locally. Consolidate address folding code.
3206 2008-03-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3208 * builtins.c (expand_builtin_pow, fold_builtin_cabs,
3209 fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
3210 fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
3211 dconstsqrt2, dconstthird, dconste and/or dconst10.
3212 * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
3213 * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
3214 dconstsqrt2, dconste): Delete.
3215 (init_emit_once): Likewise. Simplify initializing dconstm1.
3217 * real.c (get_real_const): New.
3218 * real.h (dconst3, dconst10, dconstm2, dconstthird,
3219 dconstsqrt2, dconste): Delete.
3220 (real_value_const, get_real_const): New.
3222 2008-03-26 H.J. Lu <hongjiu.lu@intel.com>
3224 * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
3226 * config/i386/i386.c (ix86_function_arg_boundary): Check
3227 BIGGEST_ALIGNMENT instead of 128.
3228 (setup_incoming_varargs_64): Likewise.
3230 2008-03-26 Tom Tromey <tromey@redhat.com>
3232 * Makefile.in (DEPFILES): Add missing '/'.
3234 2008-03-26 Richard Guenther <rguenther@suse.de>
3236 * fold-const.c (target.h): Include.
3237 (fold_comparison): Fold comparison of addresses of two decls
3238 that bind locally. Consolidate address folding code.
3240 2008-03-26 Nick Clifton <nickc@redhat.com>
3243 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
3244 not allow INT+INT as a legitimate addressing mode.
3246 2008-03-26 Richard Guenther <rguenther@suse.de>
3248 * tree-flow.h (widen_bitfield): Remove declaration.
3249 * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
3250 (widen_bitfield): Remove function.
3251 * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
3254 2008-03-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
3257 * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
3260 2008-03-25 Richard Sandiford <rsandifo@nildram.co.uk>
3262 PR rtl-optimization/35232
3263 * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
3264 (forget_old_reloads_1, forget_marked_reloads): Don't clear
3265 reg_reloaded_call_part_clobbered here.
3266 (reload_regs_reach_end_p): New function.
3267 (reload_reg_rtx_for_input): New variable.
3268 (reload_reg_rtx_for_output): Likewise.
3269 (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
3270 when reassigning a pseudo register. Load reloadreg from
3271 reload_reg_rtx_for_input, moving the mode and register
3273 (do_input_reload): ...here. Use the mode-adjusted reg_rtx
3274 instead of the original when deciding whether an input reload
3275 would be a no-op or whether an output reload can be deleted.
3276 (emit_output_reload_insns): Use the mode-adjusted reg_rtx
3277 when setting up new_spill_reg_store. Load it from
3278 reload_reg_rtx_for_output, moving the mode and register
3280 (do_output_reload): ...here. Use the mode-adjusted reg_rtx
3281 instead of the original when deciding whether an output reload
3282 would be a no-op. Do the same when modifying insn notes.
3283 Use rtx_equal_p instead of == to compare the registers.
3284 (inherit_piecemeal_p): Take a mode and two register numbers
3286 (emit_reload_insns): Clear new_spill_reg_store for every hard
3287 register in the reload register. Remove spill registers
3288 from reg_reloaded_valid before considering whether to record
3289 inheritance information for them. Use reload_reg_rtx_for_output
3290 instead of reg_rtx when recording output reloads. Use
3291 reload_reg_rtx_for_input instead of reg_rtx when recording
3292 input reloads. Set or clear reg_reloaded_call_part_clobbered
3293 at the same time as setting reg_reloaded_valid.
3294 (delete_output_reload): Add a new_reload_reg parameter and use it
3295 instead of rld[j].reg_rtx.
3296 (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
3299 2008-03-25 Tom Tromey <tromey@redhat.com>
3301 * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
3302 (build/genattr.o): Likewise.
3303 (build/genattrtab.o): Likewise.
3304 (build/gencodes.o): Likewise.
3305 (build/genconfig.o): Likewise.
3306 (build/genconstants.o): Likewise.
3307 (build/genemit.o): Likewise.
3308 (build/genextract.o): Likewise.
3309 (build/genflags.o): Likewise.
3311 2008-03-25 Bob Wilson <bob.wilson@acm.org>
3313 * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
3314 instead of size_int for integer types.
3315 (xtensa_gimplify_va_arg_expr): Likewise. Convert index to sizetype
3316 to match type of MINUS_EXPR.
3318 2008-03-25 Tom Tromey <tromey@redhat.com>
3320 * configure: Rebuilt.
3321 * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
3324 2008-03-25 Tom Tromey <tromey@redhat.com>
3326 * config/x-solaris (host-solaris.o): Update.
3327 * config/x-linux (host-linux.o): Update.
3328 * config/x-hpux (host-hpux.o): Update.
3329 * config/x-darwin (host-darwin.o): Update.
3330 * config/v850/t-v850e (v850-c.o): Update.
3331 * config/v850/t-v850 (v850-c.o): Update.
3332 * config/t-vxworks (vxworks.o): Update.
3333 * config/t-sol2 (sol2-c.o, sol2.o): Update.
3334 * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
3335 * config/spu/t-spu-elf (spu-c.o): Update.
3337 * config/sh/t-symbian (sh-c.o): Update.
3338 (symbian.o): Update.
3339 * config/sh/t-sh (sh-c.o): Update.
3340 * config/score/t-score-elf (score7.o, score3.o): Update.
3341 * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
3342 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
3343 * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
3344 * config/rs6000/t-rs6000 (rs6000-c.o): Update.
3346 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
3347 * config/m32c/t-m32c (m32c-pragma.o): Update.
3348 * config/ia64/t-ia64 (ia64-c.o): Update.
3349 * config/i386/x-mingw32 (host-mingw32.o): Update.
3350 * config/i386/x-i386 (driver-i386.o): Update.
3351 * config/i386/x-darwin (host-i386-darwin.o): Update.
3352 * config/i386/x-cygwin (host-cygwin.o): Update.
3353 * config/i386/t-nwld (nwld.o): Update.
3354 * config/i386/t-netware (netware.o): Update.
3355 * config/i386/t-interix (winnt.o): Update.
3356 * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
3357 * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
3358 msformat-c.o): Update.
3359 * config/bfin/t-bfin-linux (generated_files): Add
3360 linux-sysroot-suffix.h.
3361 * config/arm/t-wince-pe (pe.o): Update.
3362 * config/arm/t-strongarm-pe (pe.o): Update.
3363 * config/arm/t-pe (pe.o): Update.
3364 * config/arm/t-arm (arm-c.o): Update.
3365 * doc/install.texi (Prerequisites): Require make 3.80.
3366 * Makefile.in: Remove .o targets.
3367 (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
3368 (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
3369 (simple_generated_h, simple_generated_c): Move earlier.
3370 (generated_files): New variable.
3371 (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
3372 TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
3373 BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
3374 ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
3375 REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
3376 CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
3377 CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
3378 INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
3379 PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
3380 TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
3381 DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
3382 VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
3384 (COMPILE.base, COMPILE): New variables.
3385 (%.o): New pattern rule.
3386 (ALL_HOST_OBJS): New variable.
3387 (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
3388 (dummy-checksum.o, cc1-checksum.o): Remove.
3389 (DRIVER_SHLIB): New variable.
3390 (DRIVER_DEFINES): Use it.
3391 (gencondmd.c): Move out of build/.
3392 (s-conditions): Update.
3393 (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
3394 (ALL_BUILD_OBJS): Likewise.
3395 (build/%.o): Use BUILDCOMPILE.
3396 (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
3397 build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
3398 build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
3399 build/gencheck.o, build/gencodes.o, build/genconditions.o,
3400 build/genconfig.o, build/genconstants.o, build/genemit.o,
3401 build/genextract.o, build/genflags.o, build/genmddeps.o,
3402 build/genopinit.o, build/genoutput.o, build/genpeep.o,
3403 build/genpreds.o, bui