1 2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
4 * config/i386/i386.c (bdesc_crc32): Removed.
5 (ix86_expand_crc32): Likewise.
6 (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
7 V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
8 V2DI2TI_FTYPE_V2DI_V2DI_INT. Add UINT64_FTYPE_UINT64_UINT64,
9 UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
10 UINT_FTYPE_UINT_UCHAR.
11 (bdesc_args): Updated. Add crc32 builtins.
12 (ix86_init_mmx_sse_builtins): Updated.
13 (ix86_expand_args_builtin): Updated to support subreg.
15 * doc/extend.texi: Correct __builtin_ia32_crc32di.
17 2008-05-01 Jan Hubicka <jh@suse.cz>
19 * tree-pass.h (opt_pass): Add IPA_PASS.
20 (varpool_node, cgraph_node): Forward declare.
21 (ipa_opt_pass): Define.
22 (pass_ipa_inline): Turn into ipa_opt_pass.
23 (pass_apply_inline): Remove.
24 * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
25 (apply_inline): Turn into ....
26 (inline_transform): ... this one.
27 (inline_generate_summary): New function.
28 (pass_apply_inline): Remove.
29 * function.h (ipa_opt_pass): Forward declare structure; typedef;
31 (struct function): Add ipa_transforms_to_apply.
32 * passes.c (register_one_dump_file): Work on IPA_PASS.
33 (init_optimization_passes): Remove pass_inline_parameters and
35 (pass_init_dump_file, pass_fini_dump_file): Break out from ....
36 (execute_one_pass) ... here; apply transforms when possible.
37 (add_ipa_transform_pass, execute_ipa_summary_asses,
38 execute_one_ipa_transform_pass): New.
39 (execute_ipa_pass_list): Update for IPA_PASS type.
41 2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
43 * config/i386/i386.c (ix86_builtin_type): Add
44 V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
45 V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
46 (bdesc_args): Add SSE4a builtins.
47 (ix86_init_mmx_sse_builtins): Updated.
48 (ix86_expand_args_builtin): Likewise.
49 (ix86_expand_builtin): Likewise.
51 2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
53 * config/i386/i386.c (ix86_builtin_type): Add
54 V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
55 V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
56 V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
57 V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
58 V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
59 V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
60 V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
61 V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
62 and DI_FTYPE_DI_DI_INT.
63 (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
64 (ix86_init_mmx_sse_builtins): Updated.
65 (ix86_expand_args_builtin): Likewise.
66 (ix86_expand_builtin): Likewise.
67 (ix86_expand_binop_imm_builtin): Removed.
69 * doc/extend.texi: Correct __builtin_ia32_palignr128.
71 2008-04-30 Richard Guenther <rguenther@suse.de>
73 PR tree-optimization/32921
74 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
76 2008-04-30 Richard Sandiford <rsandifo@nildram.co.uk>
78 * config/arm/arm.c (arm_unwind_emit): Use
79 crtl->all_throwers_are_sibcalls instead of
80 cfun->all_throwers_are_sibcalls.
81 (arm_output_fn_unwind): Likewise.
82 * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
83 instead of cfun->uses_pic_offset_table.
84 (frv_expand_prologue): Likewise.
85 (frv_frame_pointer_required): Likewise.
86 (frv_expand_fdpic_call): Likewise.
87 (frv_emit_movsi): Likewise.
88 * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
89 cfun->returns_pcc_struct instead of
90 current_function_returns_pcc_struct.
91 * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
92 instead of cfun->calls_eh_return.
93 (m32c_pushm_popm): Likewise.
94 * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
97 2008-04-30 Richard Guenther <rguenther@suse.de>
99 PR tree-optimization/21636
100 * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
102 (evaluate_stmt): Print the likely value.
103 (ccp_visit_stmt): Avoid excessive vertical spacing.
105 2008-04-30 Rafael Espindola <espindola@google.com>
107 * builtins.c (fold_call_expr): Return realret.
108 * tree-ssa-threadedge.c
109 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
110 __builtin_object_size.
112 2008-04-30 Seongbae Park <seongbae.park@gmail.com>
114 * gcc.c (wrapper_string): New variable.
115 (insert_wrapper): New function.
116 (execute): New option -wrapper.
117 * doc/invoke.texi (Overall Options): New driver option -wrapper.
119 2008-04-30 Nathan Froyd <froydnj@codesourcery.com>
121 * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
122 config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
123 config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
125 * config/rs6000/crtsavres.asm: ...here. Remove unneeded file.
126 * config/rs6000/e500crtres32gpr.asm,
127 config/rs6000/e500crtres64gpr.asm
128 config/rs6000/e500crtres64gprctr.asm,
129 config/rs6000/e500crtrest32gpr.asm
130 config/rs6000/e500crtrest64gpr.asm,
131 config/rs6000/e500crtresx32gpr.asm
132 config/rs6000/e500crtresx64gpr.asm,
133 config/rs6000/e500crtsav32gpr.asm
134 config/rs6000/e500crtsav64gpr.asm,
135 config/rs6000/e500crtsav64gprctr.asm
136 config/rs6000/e500crtsavg32gpr.asm,
137 config/rs6000/e500crtsavg64gpr.asm
138 config/rs6000/e500crtsavg64gprctr.asm: New files.
139 * config/rs6000/t-ppccomm: Add build rules for new files.
140 (LIB2FUNCS_STATIC_EXTRA): Add new files.
141 * config/rs6000/t-netbsd: Add build rules for new files.
142 (LIB2FUNCS_STATIC_EXTRA): New variable.
143 * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
144 (CRTSAVRES_DEFAULT_SPEC): Likewise.
145 * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
147 2008-04-30 H.J. Lu <hongjiu.lu@intel.com>
149 * config/i386/i386.c (ix86_builtin_type): Add
150 FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
151 V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
152 V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
153 V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
154 V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
155 V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
156 V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
157 V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
158 V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
159 V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
160 V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
161 V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
162 V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
163 V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
164 V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
165 V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
166 V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
167 V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
168 V1DI_FTYPE_V2SI_V2SI.
169 (bdesc_2arg): Moved to ...
171 (ix86_init_mmx_sse_builtins): Updated.
172 (ix86_expand_args_builtin): Updated. Take a pointer
173 to const struct builtin_description. Handle comparison
175 (ix86_expand_sse_compare): Take a new argument for swapping
177 (ix86_expand_builtin): Updated.
179 * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
180 (ssse3_pmaddubsw128): This.
181 (ssse3_pmaddubswv4hi3): Renamed to ...
182 (ssse3_pmaddubsw): This.
184 * doc/extend.texi (__builtin_ia32_packsswb128): Correct
186 (__builtin_ia32_packssdw128): Likewise.
187 )__builtin_ia32_packuswb128): Likewise.
188 (__builtin_ia32_pmaddubsw): Likewise.
189 (__builtin_ia32_pmaddubsw128): Likewise.
191 2008-04-30 Richard Guenther <rguenther@suse.de>
193 PR tree-optimization/14847
194 * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
195 (recognize_bits_test): Use it.
196 (recognize_single_bit_test): Likewise.
198 2008-04-30 Martin Jambor <mjambor@suse.cz>
200 * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
201 instead of setting number of formal parameters to zero.
202 (ipcp_init_stage): Do not set the number of actual parameters to zero
204 (ipcp_propagate_stage): Explicitly skipping all calls to nodes
205 which are called with variable number of arguments.
206 (ipcp_insert_stage): Explicitely skipping all nodes which are
207 called with variable number of arguments.
208 (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
209 number of parameters.
211 * ipa-prop.h (struct ipa_node_params): Added flag
212 called_with_var_arguments
213 (ipa_set_param_count): Added. Changed sole setter to use it.
214 (ipa_get_param_count): Added. All readers of param_count
215 converted to use it instead.
216 (ipa_set_called_with_variable_arg): Added.
217 (ipa_is_called_with_var_arguments): Added.
218 (ipa_get_ith_param): Added. All readers of param_decls converted
220 (ipa_set_cs_argument_count): Added, sole writer to argument_count
222 (ipa_get_cs_argument_count): Added, all readers of argument_count
224 (ipa_get_ith_jump_func): Added. Accessors of jump values changed
227 * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
228 (struct ipcp_lattice): Renamed cval_type to type
229 (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
231 * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
232 (ipcp_cval_set_cvalue): Changed type of parameter value to tree
233 (ipcp_insert_stage): Changed the type of variable cvalue to tree
234 (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
235 (build_const_val): Changed the type of parameter cvalue to tree
236 (ipcp_propagate_const): Changed the type of parameter cvalue to tree
237 (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
239 * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
242 * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
243 (ipa_methodlist_not_empty): Removed, the sole user now checks directly
244 (ipa_add_method): Renamed to ipa_push_func_to_list
245 (ipa_remove_method): Renamed to ipa_pop_func_from_list
246 (ipa_callsite_param_count): Removed.
247 (ipa_callsite_param_count_set): Removed.
248 (ipa_callsite_param): Removed.
249 (ipa_callsite_callee): Removed.
250 (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
251 (ipa_callsite_compute_count): Renamed to ipa_count_arguments
252 (ipa_method_formal_count): Removed.
253 (ipa_method_formal_count_set): Removed.
254 (ipa_method_get_tree): Removed.
255 (ipa_method_tree_map_create): Removed.
256 (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
257 (ipa_create_param_decls_array): Creates the array itself
258 (ipa_create_param_decls_array): Temporary variable info instead of
260 (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
261 (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
263 (ipa_jf_get_info_type): Removed.
264 (ipa_node_create): Renamed to ipa_create_node_params
265 (ipa_free): Renamed to ipa_free_all_node_params
266 (ipa_nodes_create): Renamed to ipa_create_all_node_params
267 (ipa_edges_create): Renamed to ipa_create_all_edge_args
268 (ipa_edges_free): Renamed to ipa_free_all_edge_args
269 (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
270 (ipa_free_all_node_params): Deallocation to jump_functions moved to
271 ipa_free_all_edge_args
272 (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
273 (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
274 (ipa_create_methodlist_node): Removed.
275 (ipa_methodlist_method): Removed.
276 (ipa_methodlist_method_set): Removed.
277 (ipa_methodlist_next_method): Removed.
278 (ipa_methodlist_next_method_set): Removed.
279 (ipa_method_is_modified): Removed.
280 (ipa_method_modify_create): Removed.
281 (ipa_method_modify_init): Temporary variable info instead of a few
283 (ipa_detect_param_modifications): Temporary variable info instead of
285 (ipa_compute_jump_functions): Temporary variable info instead of
287 (ipa_method_modify_set): Removed.
288 (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
289 (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
290 than craph_node as the first parameter.
291 (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
292 (ipa_method_modify_init): Removed.
293 (ipa_compute_jump_functions): Added a temp variable instead of
294 repeatadly dereferencing the cgraph_edge.aux pointer
295 (ipa_callsite_param_set_type): Removed.
296 (ipa_compute_jump_functions): i renamed to index and moved to
298 (ipa_callsite_param_set_info_type_formal): Removed.
299 (ipa_callsite_param_set_info_type): Removed.
300 (ipa_callsite_param_map_create): Removed.
301 (ipa_callsite_tree): Removed.
302 (ipa_callsite_caller): Removed.
303 (ipa_pop_func_from_list): return_method removed to return_func
305 * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
306 prefixed all values with IPA_. Changed all users.
307 (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
308 CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
309 and FORMAL_IPATYPE IPA_PASS_THROUGH.
310 (union parameter_info): Renamed to jump_func_value.
311 (union jump_func_value): Renamed value to constant
312 (struct ipa_jump_func): Renamed info_type to value
313 (struct ipa_node): Renamed to ipa_node_params
314 (struct ipa_node_params): Renamed ipa_arg_num to param_count
315 (struct ipa_node_params): Renamed ipa_param_tree to param_decls
316 (struct ipa_node_params): Renamed ipa_mod to modified_flags
317 (struct ipa_edge): Renamed to ipa_edge_args
318 (struct ipa_edge_args): Renamed ipa_param_num to argument_count
319 (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
320 (struct ipa_methodlist): Renamed to ipa_func_list
321 (struct ipa_func_list): method_p renamed to node, next_method
323 (ipa_methodlist_p): Removed, switched all users to struct pointer
324 (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
326 2008-04-30 Alan Modra <amodra@bigpond.net.au>
328 * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
329 (rs6000_emit_epilogue): Use backchain to restore only when we
330 have a large frame. Make use of frame pointer to restore if we
331 have one. Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
333 2008-04-29 Paolo Bonzini <bonzini@gnu.org>
335 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
336 Add mode to zero_extract.
337 (sign bit tests peepholes): (Ditto.).
339 2008-04-29 H.J. Lu <hongjiu.lu@intel.com>
341 * config/i386/i386.c (ix86_builtins): Replace Prescott New
342 Instructions in comments with SSE3.
343 (ix86_builtin_type): This. Add FLOAT128_FTYPE_FLOAT128,
344 INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
345 INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
346 V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
347 V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
348 V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
349 V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
350 V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
351 V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
352 V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
353 V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
354 V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
355 (bdesc_sse_args): Renamed to ...
356 (bdesc_args): This. Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
357 IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
358 IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
360 (bdesc_1arg): Moved to ...
362 (ix86_init_mmx_sse_builtins): Updated. Replace Prescott New
363 Instructions in comments with SSE3.
364 (ix86_expand_sse_operands_builtin): Renamed to ...
365 (ix86_expand_args_builtin): This. Updated.
366 (ix86_expand_unop1_builtin): Update comments.
367 (ix86_expand_builtin): Updated.
369 2008-04-29 Richard Guenther <rguenther@suse.de>
371 PR tree-optimization/36078
372 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
373 Update virtual SSA form after cleaning up the CFG.
375 2008-04-29 Richard Guenther <rguenther@suse.de>
378 * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
380 2008-04-29 Richard Guenther <rguenther@suse.de>
382 * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
383 (compute_may_aliases): Do not call finalize_ref_all_pointers.
384 (compute_flow_insensitive_aliasing): Do not treat
385 PTR_IS_REF_ALL pointers special.
386 (get_smt_for): Likewise.
387 (may_alias_p): Re-structure.
388 (is_escape_site): A ref-all pointer conversion is not an escape site.
389 * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
390 PTR_IS_REF_ALL pointers special.
391 * tree-ssa-structalias.h (struct alias_info): Remove
392 ref_all_symbol_mem_tag field.
393 (PTR_IS_REF_ALL): Remove.
395 2008-04-29 Richard Guenther <rguenther@suse.de>
398 * fold-const.c (extract_muldiv_1): In combining division constants
399 make sure to never overflow.
401 2008-04-29 Nick Clifton <nickc@redhat.com>
403 * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
405 2008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
408 * optc-gen.awk: Work around HP-UX/IA awk bug.
410 2008-04-28 Danny Smith <dannysmith@users.sourceforge.net>
412 * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
415 2008-04-28 Uros Bizjak <ubizjak@gmail.com>
418 * config/i386/i386.md
419 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
420 Change operand 1 predicate to nonimmediate_operand.
422 2008-04-28 Jakub Jelinek <jakub@redhat.com>
425 * dwarf2out.c (struct die_struct): Mark as chain_circular through
427 * gengtype.c (walk_type, write_func_for_structure): Handle
429 * doc/gty.texi: Document chain_circular.
431 2008-04-28 Richard Guenther <rguenther@suse.de>
433 PR tree-optimization/36066
434 * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
437 2008-04-28 Uros Bizjak <ubizjak@gmail.com>
440 * config/i386/i386.md
441 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
442 Use match_scratch instead of match_operand for operands 3 and 4.
444 2008-04-27 Richard Guenther <rguenther@suse.de>
446 PR tree-optimization/18754
447 PR tree-optimization/34223
448 * tree-pass.h (pass_complete_unrolli): Declare.
449 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
450 loop size before and after unconditionally of UL_NO_GROWTH in effect.
451 Rewrite loop into loop closed SSA form if it is not already.
452 (tree_unroll_loops_completely): Re-structure to iterate over
453 innermost loops with intermediate CFG cleanups.
454 Unroll outermost loops only if requested or the code does not grow
456 * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
458 (tree_vectorize): Instead do so here.
459 (tree_complete_unroll): Also unroll outermost loops.
460 (tree_complete_unroll_inner): New function.
461 (gate_tree_complete_unroll_inner): Likewise.
462 (pass_complete_unrolli): New pass.
463 * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
464 uses outside of the loop.
465 (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
466 form if it is available.
467 * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
468 * passes.c (init_optimization_passes): Schedule complete inner
469 loop unrolling pass before the first CCP pass after final inlining.
471 2008-04-27 Nathan Sidwell <nathan@codesourcery.com>
473 * targhooks.h (default_emutls_var_fields,
474 default_emutls_var_init): Declare.
475 * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
476 * target.h (struct gcc_target): Add struct emutls member.
477 * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
478 TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
479 TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
480 TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
481 TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
482 TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
483 (TARGET_INITIALIZER): Add TARGET_EMUTLS.
484 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
485 BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
486 * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
487 emit debug information.
488 * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
489 * varasm.c: Include targhooks.h.
490 (emutls_object_section, emutls_tmpl_section): New.
491 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
492 (EMUTLS_SEPARATOR): New.
494 (get_emutls_object_name): New.
495 (default_emutls_var_fields): New, broken out of ...
496 (get_emutls_object_type): ... here. Adjust to use target hooks.
497 (get_emutls_init_templ_addr): Adjust to use target hooks.
498 (emutls_decl): Adjust to use target hooks.
499 (emutls_finish): Likewise.
500 (default_emutls_var_init): New, broken out of ...
501 (assemble_variable): ... here. Adjust to use target hooks.
502 * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
504 * c-common.c (handle_section_attribute): Prevent overriding
505 sections for emulated tls with special sections.
506 * config/i386/i386.c (x86_64_elf_select_section): Add
507 SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
508 (x86_64_elf_unique_section): Likewise.
509 * config/vxworks.c: Include tree.h.
510 (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
511 (vxworks_override_options): Set TLS scheme.
512 * doc/tm.texi (Emulated TLS): New node.
514 2008-04-26 Simon Baldwin <simonb@google.com>
517 * builtins.c (c_strlen): Suppressed multiple warnings that can occur
518 with propagated string constants.
520 2008-04-26 Uros Bizjak <ubizjak@gmail.com>
522 * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
523 constraint for operand 2 when operand 0 is memory operand.
524 (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
525 operand 0 is memory operand.
526 (fix_trunc<mode>_i387_with_temp): Ditto.
527 (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
528 operand 2 when operand 1 is memory operand.
529 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
530 (*floatsi<mode>2_vector_sse_with_temp): Ditto.
531 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
532 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
533 (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
534 operands 2,3 and 4 when operand 1 is memory operand.
535 (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
537 (fistdi2_floor_with_temp): Ditto.
538 (fist<mode>2_floor_with_temp): Ditto.
539 (fistdi2_ceil_with_temp): Ditto.
540 (fist<mode>2_ceil_with_temp): Ditto.
541 (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
543 2008-04-26 David Daney <ddaney@avtrex.com>
545 * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
547 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
548 UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
549 UNSPEC_UPDATE_GOT_VERSION): Renumber.
550 (sync_compare_and_swap<mode>): New expand for QI and HI modes.
551 (compare_and_swap_12): New insn.
552 * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
553 * config/mips/mips.c (mips_force_binary): New function.
554 (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
555 (mips_expand_compare_and_swap_12): New function.
556 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
558 2008-04-25 Jan Hubicka <jh@suse.cz>
561 * cfgexpand.c (pass_expand): Turn into RTL pass.
562 * passes.c (execute_one_pass): Do pass typechecking after execution.
563 * tree-pass.h (pass_expand): Turn into RTL pass.
565 * function.h (struct rtl_data): Move here fields
566 accesses_prior_frames, calls_eh_return, saves_all_registers,
567 has_nonlocal_goto, has_asm_statement, is_thunk,
568 all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
569 uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
570 arg_pointer_save_area_init from struct function; turn into bool.
571 (struct function): Move
572 calls_eh_return, saves_all_registers, has_nonlocal_goto,
573 has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
574 profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
575 tail_call_emit, arg_pointer_save_area_init
576 into struct rtl_data. Remove recursive_call_emit and gimplified flags.
577 (current_function_returns_struct, current_function_returns_pcc_struct,
578 current_function_calls_setjmp, current_function_calls_alloca,
579 current_function_accesses_prior_frames,
580 current_function_calls_eh_return, current_function_is_thunk,
581 current_function_stdarg, current_function_profile,
582 current_function_limit_stack, current_function_uses_pic_offset_table,
583 current_function_uses_const_pool, current_function_has_nonlocal_label,
584 current_function_saves_all_registers,
585 current_function_has_nonlocal_goto,
586 current_function_has_asm_statement): Remove accesor macros.
587 * ra-conflict.c (global_conflicts): Update.
588 * tree-tailcall.c (suitable_for_tail_opt_p): Update.
589 (suitable_for_tail_call_opt_p): Update.
590 * builtins.c (expand_builtin_return_addr): Update.
591 (expand_builtin_setjmp_setup): Update.
592 (expand_builtin_nonlocal_goto): Update.
593 * final.c (final_start_function): Update.
594 (profile_function): Update.
595 (leaf_function_p): Update.
596 (only_leaf_regs_used): Update.
597 * df-scan.c (df_get_exit_block_use_set): Update.
598 * dojump.c (clear_pending_stack_adjust): Update.
599 * tree-stdarg.c (gate_optimize_stdarg): Update.
600 * gimple-low.c (lower_function_body): Update.
601 * global.c (compute_regsets): Update.
602 (global_alloc): Update.
603 * dwarf2out.c (dwarf2out_begin_prologue): Update.
604 * expr.c (expand_assignment): Update.
605 * dse.c (dse_step0): Update.
607 * c-decl.c (store_parm_decls): Update.
608 * local-alloc.c (combine_regs): Update.
609 (find_free_reg): Update.
610 * function.c (assign_parms_augmented_arg_list): Update.
611 (assign_parm_find_data_types): Update.
612 (assign_parms): Update.
613 (allocate_struct_function): Update.
614 (expand_function_start): Update.
615 (expand_function_end): Update.
616 (get_arg_pointer_save_area): Update.
617 (thread_prologue_and_epilogue_insns): Update.
618 (rest_of_match_asm_constraints): Update.
619 * stor-layout.c (variable_size): Update.
620 * gcse.c (gcse_main): Update.
621 (bypass_jumps): Update.
622 * gimplify.c (gimplify_function_tree): Update.
623 * calls.c (emit_call_1): Update.
624 (expand_call): Update.
625 * bt-load.c (compute_defs_uses_and_gen): Update.
626 * except.c (sjlj_assign_call_site_values): Update.
627 (sjlj_emit_function_enter): Update.
628 (can_throw_external): Update.
629 (set_nothrow_function_flags): Update.
630 (expand_builtin_unwind_init): Update.
631 (expand_eh_return): Update.
632 (convert_to_eh_region_ranges): Update.
633 (output_function_exception_table): Update.
634 * emit-rtl.c (gen_tmp_stack_mem): Update.
635 * cfgexpand.c (expand_used_vars): Update.
636 (tree_expand_cfg): Update.
637 * cfgcleanup.c (rest_of_handle_jump): Update.
638 * explow.c (allocate_dynamic_stack_space): Update.
639 * varasm.c (assemble_start_function): Update.
640 (force_const_mem): Update.
641 (mark_constant_pool): Update.
642 * tree-optimize.c (tree_rest_of_compilation): Update.
643 * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
644 * tree-cfg.c (notice_special_calls): Update.
645 (is_ctrl_altering_stmt): Update.
646 (tree_can_make_abnormal_goto): Update.
647 (tree_purge_dead_abnormal_call_edges): Update.
648 * config/alpha/predicates.md: Update.
649 * config/alpha/alpha.c (alpha_sa_mask): Update.
650 (alpha_sa_size): Update.
651 (alpha_does_function_need_gp): Update.
652 (alpha_expand_prologue): Update.
653 (alpha_start_function): Update.
654 (alpha_output_function_end_prologue): Update.
655 (alpha_expand_epilogue): Update.
656 * config/frv/frv.c (frv_stack_info): Update.
657 (frv_expand_epilogue): Update.
658 * config/s390/s390.c (s390_regs_ever_clobbered): Update.
659 (s390_register_info): Update.
660 (s390_frame_info): Update.
661 (s390_init_frame_layout): Update.
662 (s390_can_eliminate): Update.
664 * config/spu/spu.c (spu_split_immediate): Update.
665 (need_to_save_reg): Update.
666 (spu_expand_prologue): Update.
667 (spu_expand_epilogue): Update.
668 * config/sparc/sparc.md: Update.
669 * config/sparc/sparc.c (eligible_for_return_delay): Update.
670 (sparc_tls_got): Update.
671 (legitimize_pic_address): Update.
672 (sparc_emit_call_insn): Update.
673 (sparc_expand_prologue): Update.
674 (output_return): Update.
675 (print_operand): Update.
676 (sparc_function_ok_for_sibcall): Update.
677 * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
678 * config/m32r/m32r.md: Update.
679 * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
680 (m32r_compute_frame_size): Update.
681 (m32r_expand_prologue): Update.
682 (m32r_expand_epilogue): Update.
683 (m32r_legitimize_pic_address): Update.
684 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
685 * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
686 * config/i386/i386.c (ix86_frame_pointer_required): Update.
688 (ix86_save_reg): Update.
689 (ix86_compute_frame_layout): Update.
690 (ix86_expand_prologue): Update.
691 (ix86_expand_epilogue): Update.
692 * config/sh/sh.c (output_stack_adjust): Update.
693 (calc_live_regs): Update.
694 (sh5_schedule_saves): Update.
695 (sh_expand_prologue): Update.
696 (sh_expand_epilogue): Update.
697 (sh_setup_incoming_varargs): Update.
698 (sh_allocate_initial_value): Update.
699 (sh_get_pr_initial_val): Update.
700 * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
701 * config/sh/sh.md (label:): Update.
702 * config/avr/avr.c (out_movhi_mr_r): Update.
703 * config/crx/crx.h (enum): Update.
704 * config/xtensa/xtensa.h (along): Update.
705 * config/stormy16/stormy16.c Update.
706 (xstormy16_compute_stack_layout): Update.
707 * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
708 (fr30_expand_prologue): Update.
709 * config/cris/cris.c (cris_conditional_register_usage): Update.
710 (cris_reg_saved_in_regsave_area): Update.
711 (cris_initial_frame_pointer_offset): Update.
712 (cris_simple_epilogue): Update.
713 (cris_expand_prologue): Update.
714 (cris_expand_epilogue): Update.
715 (cris_expand_pic_call_address): Update.
716 (cris_asm_output_symbol_ref): Update.
717 (cris_asm_output_label_ref): Update.
718 * config/cris/cris.md Update.
719 * config/iq2000/iq2000.c (compute_frame_size): Update.
720 (iq2000_expand_epilogue): Update.
721 * config/mt/mt.h (save_direction): Update.
722 * config/mn10300/mn10300.c (mn10300_function_value): Update.
723 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
724 (ia64_secondary_reload_class): Update.
725 * config/m68k/m68k.c (m68k_save_reg): Update.
726 (m68k_expand_prologue): Update.
727 (m68k_expand_epilogue): Update.
728 (legitimize_pic_address): Update.
729 * config/rs6000/rs6000.c (rs6000_got_register): Update.
730 (first_reg_to_save): Update.
731 (first_altivec_reg_to_save): Update.
732 (compute_vrsave_mask): Update.
733 (compute_save_world_info): Update.
734 (rs6000_stack_info): Update.
735 (spe_func_has_64bit_regs_p): Update.
736 (rs6000_ra_ever_killed): Update.
737 (rs6000_emit_eh_reg_restore): Update.
738 (rs6000_emit_allocate_stack): Update.
739 (rs6000_emit_prologue): Update.
740 (rs6000_emit_epilogue): Update.
741 (rs6000_output_function_epilogue): Update.
742 (output_profile_hook): Update.
743 (rs6000_elf_declare_function_name): Update.
744 * config/rs6000/rs6000.h (rs6000_args): Update.
745 * config/rs6000/rs6000.md: Update.
746 * config/mcore/mcore.c (mcore_expand_prolog): Update.
747 * config/arc/arc.c (arc_output_function_epilogue): Update.
748 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
749 * config/darwin.c (machopic_function_base_name): Update.
750 * config/score/score3.c (score3_compute_frame_size): Update.
753 (score3_epilogue): Update.
754 * config/score/score7.c (score7_compute_frame_size): Update.
755 (score7_prologue): Update.
756 (score7_epilogue): Update.
757 * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
758 * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
759 * config/arm/arm.c (use_return_insn): Update.
760 (require_pic_register): Update.
761 (arm_load_pic_register): Update.
762 (arm_compute_save_reg0_reg12_mask): Update.
763 (arm_compute_save_reg_mask): Update.
764 (thumb1_compute_save_reg_mask): Update.
765 (output_return_instruction): Update.
766 (arm_output_function_prologue): Update.
767 (arm_output_epilogue): Update.
768 (arm_get_frame_offsets): Update.
769 (arm_expand_prologue): Update.
770 (thumb_pushpop): Update.
771 (thumb_exit): Update.
772 (thumb1_expand_prologue): Update.
773 (thumb1_expand_epilogue): Update.
774 (arm_unwind_emit): Update.
775 (arm_output_fn_unwind): Update.
776 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
777 * config/arm/arm.md: Update.
778 * config/pa/pa.md: Update.
779 * config/pa/pa.c (legitimize_pic_address): Update.
780 (compute_frame_size): Update.
781 (hppa_expand_prologue): Update.
782 (hppa_expand_epilogue): Update.
783 (borx_reg_operand): Update.
784 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
785 (HARD_REGNO_RENAME_OK): Update.
786 * config/mips/mips.c (mips_global_pointer): Update.
787 (mips_save_reg_p): Update.
788 (mips_compute_frame_info): Update.
789 (mips_frame_pointer_required): Update.
790 (mips_expand_prologue): Update.
791 (mips_expand_epilogue): Update.
792 (mips_can_use_return_insn): Update.
793 (mips_reorg_process_insns): Update.
794 * config/v850/v850.c (compute_register_save_size): Update.
795 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
796 * config/mmix/mmix.c (along): Update.
797 (mmix_expand_epilogue): Update.
798 * config/bfin/bfin.c (legitimize_pic_address): Update.
799 (must_save_p): Update.
800 (stack_frame_needed_p): Update.
801 (add_to_reg): Update.
802 (bfin_expand_prologue): Update.
803 * stmt.c (expand_asm_operands): Update.
804 * reload1.c (reload): Update.
805 (init_elim_table): Update.
807 2008-04-25 Bob Wilson <bob.wilson@acm.org>
809 * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
811 2008-04-25 H.J. Lu <hongjiu.lu@intel.com>
813 * config/i386/sse.md (mov<mode>): Replace SSEMODEI with
815 (*mov<mode>_internal): Likewise. Support V4SF and V2DF.
816 (mov<mode>): Removed.
817 (*movv4sf_internal): Likewise.
818 (*movv2df_internal): Likewise.
820 2008-04-25 Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
822 * config.gcc (crx-*-elf): Remove deprecation.
824 2008-04-25 Danny Smith <dannysmith@users.sourceforge.net>
826 * config/i386/cygming-crtend.c (register_frame_ctor): Register
827 __gcc_deregister_frame with atexit.
828 (deregister_frame_dtor): Remove.
830 2008-04-24 Nathan Froyd <froydnj@codesourcery.com>
831 Nathan Sidwell <nathan@codesourcery.com>
833 * config/rs6000/rs6000.opt (mspe): Remove Var property.
835 * config/rs6000/rs6000.h (rs6000_spe): Declare.
836 (rs6000_isel): Likewise.
837 * config/rs6000/rs6000.c (rs6000_spe): New variable.
838 (rs6000_isel): New variable.
839 (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
841 2008-04-24 Jakub Jelinek <jakub@redhat.com>
844 * c-common.c (handle_vector_size_attribute): Call
845 lang_hooks.types.reconstruct_complex_type instead of
846 reconstruct_complex_type.
847 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
848 * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
849 * langhooks.h (struct lang_hooks_for_types): Add
850 reconstruct_complex_type hook.
851 * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
852 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
854 2008-04-24 Richard Guenther <rguenther@suse.de>
856 * c-common.h (check_builtin_function_arguments): Declare.
857 * c-common.c (validate_nargs): New function.
858 (check_builtin_function_arguments): Likewise.
859 * c-typeck.c (build_function_call): Call
860 check_builtin_function_arguments.
861 * builtins.c (fold_builtin_classify): Remove error reporting code.
862 (fold_builtin_unordered_cmp): Likewise.
863 (fold_builtin_1): Likewise.
864 (fold_builtin_n): Likewise.
866 2008-04-24 Jakub Jelinek <jakub@redhat.com>
868 PR tree-optimization/36008
869 * fold-const.c (try_move_mult_to_index): If s == NULL, divide
870 the original op1, rather than delta by step.
872 2008-04-22 Antoniu Pop <antoniu.pop@gmail.com>
873 Sebastian Pop <sebastian.pop@amd.com>
875 * tree-parloops.c (take_address_of, eliminate_local_variables_1,
876 eliminate_local_variables_stmt, eliminate_local_variables,
877 separate_decls_in_loop_name, separate_decls_in_loop_stmt,
878 separate_decls_in_loop, gen_parallel_loop): Make them work on a region
879 of code delimited by two edges in the CFG.
880 (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
881 (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
882 (separate_decls_in_loop): Renamed separate_decls_in_region. Isolate
883 the case of parallelisation of reductions.
884 (expr_invariant_in_region_p): New.
886 * tree-flow.h (gather_blocks_in_sese_region): Declared.
887 * tree-cfg.c (gather_blocks_in_sese_region): Extern.
889 2008-04-24 Ira Rosen <irar@il.ibm.com>
890 Richard Guenther <rguenther@suse.de>
892 PR tree-optimization/36034
893 * tree-vect-analyze.c (vect_analyze_group_access): SLP is
894 incapable of dealing with loads with gaps.
896 2008-04-24 Rafael Espindola <espindola@google.com>
898 * tree-flow.h (vrp_evaluate_conditional): Change signature.
899 * tree-ssa-propagate.c (fold_predicate_in): Update call to
900 vrp_evaluate_conditional.
901 * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
902 (vrp_evaluate_conditional): Split the cond argument.
903 (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
904 (simplify_stmt_for_jump_threading): Update call to
905 vrp_evaluate_conditional.
907 2008-04-24 Ira Rosen <irar@il.ibm.com>
909 PR tree-optimization/35982
910 * tree-vect-analyze.c (vect_check_interleaving): Check that the
911 interleaved data-refs are of the same type.
913 2008-04-24 Danny Smith <dannysmith@users.net>
915 * c-format.c (check_format_info_main): Use strncmp rather than a
916 magic prefix to handle multichar length specs.
917 * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
918 Don't prefix "I64" and "I32" with '\0'.
920 2008-04-24 Jakub Jelinek <jakub@redhat.com>
923 * config/i386/i386.c (init_cumulative_args): Don't pass anything
924 in registers for -m32 only if stdarg_p (fntype).
926 2008-04-24 Uros Bizjak <ubizjak@gmail.com>
928 PR rtl-optimization/36006
929 * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
930 temp to op0 in order to avoid invalid rtx sharing.
932 2008-04-23 Paolo Bonzini <bonzini@gnu.org>
934 * tree-cfg.c (verify_expr): Check with is_gimple_address. Don't
935 check TREE_INVARIANT.
936 * tree-gimple.c (is_gimple_address): New.
937 (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
938 * tree-gimple.h (is_gimple_address): New.
939 * tree.h (decl_address_invariant_p): New.
940 * tree.c (make_node_stat): Don't set TREE_INVARIANT.
941 (build_string): Likewise.
942 (decl_address_invariant_p): New, from is_gimple_invariant_address.
943 (tree_invariant_p_1): Likewise.
945 (tree_invariant_p): New.
946 (skip_simple_arithmetic): Use it.
947 (stabilize_reference_1): Use it.
948 (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
950 (build1_stat): Drop code to compute TREE_INVARIANT.
951 (build2_stat): Drop code to compute TREE_INVARIANT.
952 (build3_stat): Drop code to compute TREE_INVARIANT.
953 (build4_stat): Drop code to compute TREE_INVARIANT.
954 (build5_stat): Drop code to compute TREE_INVARIANT.
955 (build7_stat): Drop code to compute TREE_INVARIANT.
956 (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
957 * tree.h (struct tree_base): Remove invariant_flag.
958 (TREE_INVARIANT): Remove.
959 * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
960 (fold_builtin_expect): Check TREE_CONSTANT.
961 * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
962 * c-tree.h (c_expr_to_decl): Drop third parameter.
963 * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
964 (build_c_cast): Don't set TREE_INVARIANT.
965 (pop_init_level): Don't set TREE_INVARIANT.
966 (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
967 * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
969 (gimplify_init_constructor): Don't set TREE_INVARIANT.
970 (gimplify_addr_expr): Adjust comment.
971 * tree-mudflap.c (mf_build_string):
972 * print-tree.c (print_node): Don't print TREE_INVARIANT.
973 * tree-nested.c (convert_nonlocal_reference): Adjust comment.
974 * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
975 * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
976 * langhooks.c (lhd_expr_to_decl): Drop third parameter.
977 * langhooks.h (struct lang_hooks): Drop third parameter from
980 2008-04-23 Richard Guenther <rguenther@suse.de>
982 PR tree-optimization/27799
983 PR tree-optimization/32921
984 PR tree-optimization/32624
985 * tree-ssa-structalias.c (merge_smts_into): Only merge the
986 SMTs aliases and the tag itself into the solution.
987 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
988 merge the points-to solution back into the SMT aliases.
989 (may_alias_p): Use alias_set_subset_of instead of
990 aliases_conflict_p. A pointer which points to
991 memory with alias set zero may access any variable.
993 2008-04-23 Richard Guenther <rguenther@suse.de>
995 * alias.c (alias_set_subset_of): Correctly handle asking
996 if zero is a subset of an alias set with zero child.
997 * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
998 (compute_flow_insensitive_aliasing): Correctly walk all
999 pointers. Do not unnecessarily union sets.
1001 2008-04-23 Richard Guenther <rguenther@suse.de>
1004 * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
1006 2008-04-22 Tomas Bily <tbily@suse.cz>
1008 * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
1010 * tree-vrp.c (extract_range_from_unary_expr): Removed unused
1012 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
1013 * tree-ssa-structalias.c (get_constraint_for): Likewise.
1014 * tree-inline.c (estimate_num_insns_1): Likewise.
1015 * varasm.c (const_hash_1, compare_constant, copy_constant)
1016 (compute_reloc_for_constant, output_addressed_constants): Likewise.
1017 * emit-rtl.c (component_ref_for_mem_expr)
1018 (set_mem_attributes_minus_bitpos): Likewise.
1019 * expr.c (highest_pow2_factor, expand_expr_real_1, )
1020 (is_aligning_offset): Likewise.
1021 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
1022 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
1023 * dojump.c (do_jump): Likewise.
1024 * builtins.c (get_pointer_alignment, get_memory_rtx)
1025 (integer_valued_real_p, fold_builtin_next_arg): Likewise.
1026 * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
1028 2008-04-23 Jakub Jelinek <jakub@redhat.com>
1030 PR rtl-optimization/36017
1031 * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
1032 expanding the library call.
1034 2008-04-22 Ian Lance Taylor <iant@google.com>
1036 * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
1039 2008-04-22 Pat Haugen <pthaugen@us.ibm.com>
1041 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
1042 of LR/CTR moves for Power6.
1044 2008-04-22 Kenneth Zadeck <zadeck@naturalbridge.com>
1047 * passes.c (init_optimization_passes): Remove
1048 pass_fast_rtl_byte_dce.
1050 2008-04-22 Uros Bizjak <ubizjak@gmail.com>
1053 * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
1054 builtin functions to generate faster code.
1055 (_mm_cvtpu16_ps): Ditto.
1056 (_mm_cvtpi32x2_ps): Ditto.
1058 2008-04-22 Nick Clifton <nickc@redhat.com>
1060 * common.opt (ftree-loop-distribution): Add Optimization
1063 * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
1064 (frv_expand_builtin_va_start): Likewise.
1066 * config/arm/arm.c (thumb_find_work_register): Fix location of
1067 argument register count.
1069 2008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
1071 Support scheduling for ColdFire V1 and V3 microarchitecture.
1072 Improve scheduling of multiplication instructions.
1074 * config/m68k/m68k.md (cpu): Add cfv1 and cfv3. Rename cf_v2 to cfv1.
1075 (mac): New instruction attribute.
1076 * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
1077 (m68k_sched_mac): New variable.
1078 (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
1079 Handle cfv1 and cfv3.
1080 (max_insn_size): New static variable.
1081 (struct _sched_ib): New type.
1082 (sched_ib): New static variable.
1083 (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
1084 to fields of 'struct _sched_ib sched_ib'. Update all uses.
1085 (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
1087 (m68k_sched_md_init_global, m68k_sched_md_finish_global,
1088 m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3. Init
1089 new variables. Update.
1090 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
1091 Add modeling of cfv3 instruction buffer. Update.
1092 * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
1093 * config/m68k/m68k.h (TUNE_CFV3): New macro.
1094 * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
1095 (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
1096 a particular reservation applies to.
1097 (type2): Reorganize attribute values. Rename alu to alu_reg,
1098 alu_l to alu, move_l to omove. Join move to alu. Split mul
1100 (cf_ib_*): Simplify description of instruction buffer.
1101 (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
1102 (cf_mem): Split into cf_mem1 and cf_mem2.
1103 (cf_v2_move_??): Rename to cfv12_alu_??.
1104 (cf_v2_move_l_??): Rename to cfv12_omove_??.
1105 (cf_v2_mul_??): Remove reservations.
1106 (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
1107 cfv12_emac_??, cfv12_emac_w_i0): New reservations.
1108 (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
1110 (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
1111 cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
1112 cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
1113 cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
1114 cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
1115 cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
1116 (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
1117 expansions of the above reservations for instructions of sizes
1120 2008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
1122 * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
1124 2008-04-21 Adam Nemet <anemet@caviumnetworks.com>
1126 * coverage.c: Include tree-pass.h.
1127 (coverage_counter_alloc): Print da_file_name to the dump file.
1129 2008-04-21 Kenneth Zadeck <zadeck@naturalbridge.com>
1131 * sbitmap.c (sbitmap_range_empty_p): New function.
1132 * sbitmap.h (sbitmap_range_empty_p): New function.
1133 * bitmap.h: Now includes obstack.h.
1135 2008-04-21 Richard Sandiford <rsandifo@nildram.co.uk>
1136 Kenneth Zadeck <zadeck@naturalbridge.com>
1138 * dbgcnt.def (ra_byte_scan): Added.
1139 * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
1140 when the last hit happens for a counter.
1141 * timevar.def (TV_DF_BYTE_LR): New variable.
1142 * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
1143 * passes.c (pass_fast_rtl_byte_dce): New pass.
1144 * fwprop.c (update_df): Added mode to call df_ref_create.
1145 Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
1146 DF_REF_EXTRACT_OFFSET.
1147 * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
1148 DF_BYTE_LR_OUT, df_byte_lr): New macro.
1150 (df_ref_extract): Added mode field.
1151 (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
1152 DF_REF_EXTRACT_OFFSET.
1153 (DF_REF_EXTRACT_MODE): New macro.
1154 (df_byte_lr_bb_info): New structure.
1155 (df_print_byte_regset, df_compute_accessed_bytes,
1156 df_byte_lr_add_problem, df_byte_lr_get_regno_start,
1157 df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
1158 df_byte_lr_simulate_uses,
1159 df_byte_lr_simulate_artificial_refs_at_top,
1160 df_byte_lr_simulate_artificial_refs_at_end,
1161 df_compute_accessed_bytes): New function.
1162 (df_ref_create): Add parameter.
1163 (df_byte_lr_get_bb_info): New inline function.
1164 * df-scan.c (df_ref_record, df_uses_record,
1165 df_ref_create_structure): Added mode parameter.
1166 (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
1167 df_defs_record, df_uses_record, df_get_conditional_uses,
1168 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
1169 df_entry_block_defs_collect, df_exit_block_uses_collect):
1170 Added mode parameter to calls to df_ref_record, df_uses_record,
1171 df_ref_create_structure.
1172 (df_ref_equal_p, df_ref_compare): Added test for modes.
1173 (df_ref_create_structure): Added code to set mode. Renamed
1174 DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
1175 DF_REF_EXTRACT_OFFSET.
1176 * df-core.c (df_print_byte_regset): New function.
1177 * df-byte-scan.c: New file.
1178 * df-problems.c (df_rd_transfer_function): Removed unnecessary
1179 calls to BITMAP_FREE.
1180 (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
1181 (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
1182 df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
1183 df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
1184 df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
1185 df_byte_lr_local_compute, df_byte_lr_init,
1186 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
1187 df_byte_lr_transfer_function, df_byte_lr_free,
1188 df_byte_lr_top_dump, df_byte_lr_bottom_dump,
1189 df_byte_lr_add_problem, df_byte_lr_simulate_defs,
1190 df_byte_lr_simulate_uses,
1191 df_byte_lr_simulate_artificial_refs_at_top,
1192 df_byte_lr_simulate_artificial_refs_at_end): New function.
1193 * dce.c (byte_dce_process_block): New function.
1194 (dce_process_block): au is now passed in rather than computed
1195 locally. Changed loops that look at artificial defs to not look
1196 for conditional or partial ones, because there never are any.
1197 (fast_dce): Now is able to drive byte_dce_process_block or
1198 dce_process_block depending on the kind of dce being done.
1199 (rest_of_handle_fast_dce): Add parameter to fast_dce.
1200 (rest_of_handle_fast_byte_dce): New function.
1201 (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
1202 * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
1204 2008-04-21 Daniel Franke <franke.daniel@gmail.com>
1207 * gcc.h: Added fortran options that take arguments to
1208 DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
1211 2008-04-20 Eric Botcazou <ebotcazou@adacore.com>
1213 * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
1214 scalarization if on the LHS and not a full access.
1216 2008-04-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1218 * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
1220 2008-04-18 Rafael Espindola <espindola@google.com>
1222 * tree-vrp.c (find_case_label_index): Fix the binary search.
1223 (find_case_label_range): New.
1224 (vrp_visit_switch_stmt): Use find_case_label_range.
1225 (simplify_switch_using_ranges): Use find_case_label_range.
1227 2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
1229 * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
1230 using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
1232 2008-04-18 Tom Tromey <tromey@redhat.com>
1235 * doc/cpp.texi (Implementation-defined behavior): Mention
1238 2008-04-18 Ian Lance Taylor <iant@google.com>
1240 * fold-const.c (pointer_may_wrap_p): New static function.
1241 (fold_comparison): Add another test for pointer overflow. Use
1242 pointer_may_wrap_p to disable some false positives.
1244 2008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
1246 * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
1247 (fname_as_string): Match updated cpp_interpret_string prototype.
1248 (fix_string_type): Support char16_t* and char32_t*.
1249 (c_common_nodes_and_builtins): Add char16_t and char32_t (and
1250 derivative) nodes. Register as builtin if C++0x.
1251 (c_parse_error): Support CPP_CHAR{16,32}.
1252 * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
1253 (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
1254 CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
1255 CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
1256 CTI_CHAR32_ARRAY_TYPE>: New elements.
1257 (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
1258 char32_type_node, signed_char32_type_node, char16_array_type_node,
1259 char32_array_type_node): New defines.
1260 * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
1261 (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
1262 (lex_string): Support CPP_STRING{16,32}, match updated
1263 cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
1264 (lex_charconst): Support CPP_CHAR{16,32}.
1265 * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
1266 and CPP_STRING{16,32}.
1268 2008-04-18 Paolo Bonzini <bonzini@gnu.org>
1271 * aclocal.m4: Regenerate.
1272 * configure: Regenerate.
1274 2008-04-18 Jan Hubicka <jh@suse.cz>
1276 * except.c (dw2_size_of_call_site_table,
1277 sjlj_size_of_call_site_table): Use vector API for call_site_record.
1279 * cgraphbuild.c (build_cgraph_edges): Update.
1280 * tree-pass.h: Update comment.
1281 * final.c (leaf_function_p): Update.
1282 (leaf_renumber_regs): Update.
1283 (rest_of_clean_state): Update.
1284 * omp-low.c (expand_omp_parallel): Update.
1285 * ipa-reference.c (analyze_function): Update.
1286 * reorg.c (find_end_label): Update.
1287 (optimize_skip): Update.
1288 (fill_simple_delay_slots): Update.
1289 (fill_simple_delay_slots): Update.
1290 (make_return_insns): Update.
1291 (dbr_schedule): Update.
1292 * gimple-low.c (record_vars_into): Update.
1293 * cfgbuild.c (make_edges): Update.
1294 * function.c (assign_stack_local): Update.
1295 (assign_parm_adjust_stack_rtl): Update.
1296 (locate_and_pad_parm): Update.
1297 (allocate_struct_function): Do not initialize stack_alignment_needed
1298 and preferred_stack_boundary here.
1299 (stack_protect_prologue): Update.
1300 (stack_protect_epilogue): Update.
1301 (expand_function_start): Initialize stack_alignment_needed,
1302 preferred_stack_boundary and max_jumptable_ents.
1303 (expand_function_end): Update.
1304 (free_after_compilation): Do not NULLify epilogue_delay_list.
1305 * function.h (struct rtl_data): Add stack_protect_guard,
1306 stack_alignment_needed,
1307 preferred_stack_boundary, epilogue_delay_list.
1308 (struct function): Remove value_histograms, stack_alignment_needed,
1309 preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
1311 unexpanded_var_list, stack_protect_guard.
1312 (current_function_epilogue_delay_list): Remove.
1313 * ipa-type-escape.c (analyze_function): Update.
1314 * gimplify.c (pop_gimplify_context): Update comment.
1315 * calls.c (expand_call): Update.
1316 (emit_library_call_value_1): Update.
1317 * except.c (set_nothrow_function_flags): Update.
1318 * cfgexpand.c (get_decl_align_unit): Update.
1319 (create_stack_guard): Update.
1320 (estimated_stack_frame_size): Update.
1321 (expand_used_vars): Update.
1322 (tree_expand_cfg): Free histogram earliers, init expansion variables.
1323 * explow.c (allocate_dynamic_stack_space): Update.
1324 * tree-ssa-live.c (remove_unused_locals): Update.
1325 * varasm.c (mark_constant_pool): Update.
1326 * tree-inline.c (remap_decls): Update.
1327 (initialize_cfun): Update.
1328 (declare_return_variable): Update.
1329 (inline_forbidden_p): Update.
1330 (expand_call_inline): Update.
1331 (declare_inline_vars): Update.
1332 (tree_function_versioning): Update.
1333 * tree-flow.h (value_histograms): New.
1334 (VALUE_HISTOGRAMS): New macro.
1335 * basic-block.h (control_flow_graph): Add max_jumptable_ents,
1337 * tree-cfg.c (set_bb_for_stmt): Update.
1338 (replace_by_duplicate_decl): Update.
1339 (move_block_to_fn): Update.
1340 (new_label_mapper): Update.
1341 (dump_function_to_file): Update.
1342 * ipa-struct-reorg.c (build_data_structure): Update.
1343 * cfgrtl.c (print_rtl_with_bb): Update.
1344 * reload1.c (reload): Update.
1346 * config/i386/i386.c (setup_incoming_varargs_64,
1347 ix86_compute_frame_layout): Update.
1348 * config/arc/arc.c (arc_output_function_epilogue): Update.
1350 2008-04-18 Marius Strobl <marius@FreeBSD.org>
1352 * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
1353 for FreeBSD as well.
1354 * gthr-posix95.h: Likewise.
1356 2008-04-17 Richard Sandiford <rsandifo@nildram.co.uk>
1358 PR rtl-optimization/35838
1359 * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
1360 out the byte offset of the first subreg.
1362 2008-04-17 Uros Bizjak <ubizjak@gmail.com>
1364 * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
1365 to split_ti instead of three separate calls with single member arrays.
1366 (subti3 splitter): Ditto.
1367 (adddi3 splitter): Ditto with split_di.
1368 (subdi3 splitter): Ditto.
1369 (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
1370 two separate calls with single member arrays. Swap match_dup
1371 operands 1 and 2 to better fit into the array.
1372 (negdi2 splitter): Ditto with split_di.
1373 (movdfcc splitter): Pass arrays of 2 operands to split_di instead of
1374 two separate calls with single member arrays. Swap match_dup operands
1375 6 and 7 to better fit into the array.
1377 2008-04-17 H.J. Lu <hongjiu.lu@intel.com>
1379 * config/i386/i386.c (sse_builtin_type): New.
1380 (bdesc_sse_args): Likewise.
1381 (bdesc_sse_3arg): Removed.
1382 (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
1383 (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
1384 IX86_BUILTIN_ROUNDPS.
1385 (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args. Remove
1386 bdesc_sse_3arg. Remove IX86_BUILTIN_ROUNDPD and
1387 IX86_BUILTIN_ROUNDPS.
1388 (ix86_expand_sse_4_operands_builtin): Removed.
1389 (ix86_expand_sse_operands_builtin): New.
1390 (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
1391 and CODE_FOR_sse4_1_roundps.
1392 (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
1393 Handle bdesc_sse_args. Remove bdesc_sse_3arg.
1395 2008-04-17 Alan Modra <amodra@bigpond.net.au>
1398 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
1399 regs before frame pop when needed. If use_backchain_to_restore_sp
1400 then load backchain into a temp reg to restore vr and vrsave. Add
1401 code to restore vr after frame pop if possible.
1403 2008-04-17 Richard Guenther <rguenther@suse.de>
1405 * tree-vn.c (expressions_equal_p): Do not check type
1406 equality or compatibility before calling operand_equal_p.
1407 * fold-const.c (operand_equal_p): Check equivalence of
1408 integer constants before bailing out due to signedness or
1409 precision differences.
1410 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
1411 spurious differences in type qualification. Ignore types
1412 for COMPONENT_REFs at all.
1414 2008-04-17 Christian Bruel <christian.bruel@st.com>
1416 * config/sh/sh.c (expand_cbranchdi4): Use original operands for
1417 msw_skip comparison.
1419 2008-04-16 Jakub Jelinek <jakub@redhat.com>
1422 * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
1425 PR tree-optimization/35899
1426 * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
1427 rather than TREE_OPERAND.
1429 2008-04-16 Uros Bizjak <ubizjak@gmail.com>
1432 * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
1433 temporary registers. Change operand predicate to general_operand.
1434 (remainderxf3): Ditto.
1436 2008-04-16 Richard Guenther <rguenther@suse.de>
1438 * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
1439 * tree-affine.c (aff_combination_expand): Look through some
1442 2008-04-15 Doug Kwan <dougkwan@google.com>
1444 * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
1446 * tree-pretty-print.c (dump_generic_node): Ditto.
1447 * final.c (output_addr_const): Ditto.
1448 * dwarf2out.c (output_cfi): Ditto.
1449 * c-pretty-print.c (pp_c_integer_constant): Ditto.
1450 * print-rtl.c (print_rtx): Ditto.
1451 * print-tree.c (print_node_brief, print_node): Ditto.
1452 * c-common.c (match_case_to_enum_1): Ditto.
1453 * sched-vis.c (print_value): Ditto.
1454 * config/i386/i386.c (print_operand): Cast to long unsigned int
1457 2008-04-15 Danny Smith <dannysmith@users.sourceforge.net>
1458 * libgcc2.c [L_trampoline]: Remove unnecessary prototype for
1459 MS Windows VirtualProtect function.
1461 2008-04-15 Jan Hubicka <jh@suse.cz>
1463 * gengtype.c (write_root): Param_is argument is OK.
1464 * expr.c (expand_expr_real_1): Update call of get_exception_*.
1465 * function.h: Include varray.h
1466 (rtl_eh): New stucture based on except.c one.
1467 (call_site_record): New forward declaration and vector type.
1468 * calls.c (emit_call_1): Do not call
1469 note_current_region_may_contain_throw.
1470 * except.c (eh_status): Remove cur_region, try_region since they are
1472 Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
1473 exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
1474 sjlj_fc, sjlj_exit_after to rth_eh in function.h.
1475 Remove call_site_data_used, call_site_data_size.
1476 Turn call_site_record into vector in function.h.
1477 (note_current_region_may_contain_throw): Remove.
1478 (get_exception_pointer, get_exception_filter): Do not take struct
1479 function argument; update.
1480 (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
1481 add_ttypes_entry, add_ehspec_entry, assign_filter_values,
1482 build_post_landing_pads, dw2_build_landing_pads,
1483 sjlj_assign_call_site_values, sjlj_mark_call_sites,
1484 sjlj_emit_function_enter, sjlj_emit_function_enter,
1485 sjlj_emit_function_exit, sjlj_emit_dispatch_table,
1486 sjlj_build_landing_pads, finish_eh_generation,
1487 remove_exception_handler_label, remove_eh_handler,
1488 maybe_remove_eh_handler, add_reachable_handler,
1489 reachable_handlers, expand_builtin_eh_return, expand_eh_return,
1490 add_action_record, collect_one_action_chain, add_call_site,
1491 convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
1492 sjlj_output_call_site_table, output_function_exception_table,
1493 * except.h (note_current_region_may_contain_throw): Remove
1494 (get_exception_pointer, get_exception_filter): Do not take struct
1496 * Makefile.in (GTFILES): Put varargs before struct function.
1498 2008-04-15 Eric Botcazou <ebotcazou@adacore.com>
1500 * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
1501 punt for STRING_CST.
1502 (get_constraint_for): Deal with STRING_CST here instead.
1504 2008-04-15 Richard Guenther <rguenther@suse.de>
1506 * tree-ssa-propagate.c (substitute_and_fold): Substitute
1507 statements in a basic-block with a backward walk. Do not
1508 substitute into dead statements but instead remove those.
1510 2008-04-15 Richard Guenther <rguenther@suse.de>
1512 * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
1513 to zero, thus disable creation of SFTs.
1515 2008-04-15 Eric Botcazou <ebotcazou@adacore.com>
1517 * tree-predcom.c (suitable_reference_p): Return false if the
1518 reference can throw.
1520 2008-04-15 Jakub Jelinek <jakub@redhat.com>
1523 * c-decl.c (finish_decl): If extern or static var has variable
1524 size, set TREE_TYPE (decl) to error_mark_node.
1526 2008-04-15 Rafael Espindola <espindola@google.com>
1528 * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
1531 2008-04-15 Richard Guenther <rguenther@suse.de>
1533 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
1534 * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
1535 (visit_reference_op_load): Do walk vuse-vdef chains on
1536 vn_reference_lookup.
1537 (visit_reference_op_store): But do not here.
1538 * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
1539 vn_reference_lookup.
1540 (vn_lookup_with_vuses): But do so here.
1542 2008-04-14 Ian Lance Taylor <iant@google.com>
1544 * fold-const.c (fold_overflow_warning): Remove assertion.
1546 2008-04-15 Ben Elliston <bje@au.ibm.com>
1548 * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
1549 temp1 local variables.
1551 2008-04-15 Zuxy Meng <zuxy.meng@gmail.com>
1554 * config/i386/winnt.c (i386_pe_section_type_flags): Mark
1555 ".text.unlikely" section as executable.
1557 2008-04-14 James E. Wilson <wilson@tuliptree.org>
1559 * config/ia64/ia64.c (rtx_needs_barrier): Handle
1560 UNSPEC_FR_SQRT_RECIP_APPROX_RES.
1561 * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
1562 (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
1563 divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
1564 divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
1565 divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
1567 2008-04-14 Ian Lance Taylor <iant@google.com>
1569 * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
1570 * fold-const.c (fold_comparison): If appropriate, test
1571 POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
1572 (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
1573 reassociating a pointer type.
1574 * doc/invoke.texi (Optimize Options): Document that
1575 -fstrict-overflow applies to pointer wraparound.
1577 2008-04-13 Jan Hubicka <jh@suse.cz>
1579 * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
1581 2008-04-12 Andrew Pinski <pinskia@gmail.com>
1583 * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
1584 we are going to "save the world".
1586 2008-04-13 Hans-Peter Nilsson <hp@axis.com>
1588 * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
1589 ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
1590 operand 0 constraint, not "=".
1592 2008-04-11 James E. Wilson <wilson@tuliptree.org>
1594 * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
1596 2008-04-11 H.J. Lu <hongjiu.lu@intel.com>
1598 * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
1599 of size of positions_needed * CHAR_BIT.
1601 2008-04-11 H.J. Lu <hongjiu.lu@intel.com>
1604 * dse.c (store_info): Change positions_needed to unsigned
1606 (lowpart_bitmask): New.
1607 (record_store): Cast to unsigned HOST_WIDE_INT for
1608 positions_needed. Assert width <= size of positions_needed *
1609 CHAR_BIT. Call lowpart_bitmask to initialize positions_needed.
1610 (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask. Call
1611 lowpart_bitmask to set mask.
1613 2008-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
1615 * config/bfin/constraints.md: New file.
1616 * config/bfin/bfin.md: Include it.
1617 (adddi3): Use satisfies_constraint functions instead of the old macros.
1618 * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
1619 CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
1620 CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
1621 CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
1622 CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
1623 CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
1624 EXTRA_CONSTRAINT): Delete.
1625 * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
1626 reg_or_neg7bit_operand): Use satisfies_constraint functions instead
1628 * config/bfin/bfin.c: Include "tm-constrs.h".
1629 (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
1630 Use satisfies_constraint functions instead of the old macros.
1631 * doc/md.texi (Blackfin Constraints): Update file name reference.
1633 2008-04-11 Richard Guenther <rguenther@suse.de>
1635 PR tree-optimization/35869
1636 * tree-vrp.c (execute_vrp): Move switch statement update after
1637 jump threading. Schedule another cfg cleanup run.
1639 2008-04-11 Volker Reichelt <v.reichelt@netcologne.de>
1642 * attribs.c (decl_attributes): Return early on errorneous node.
1644 2008-04-10 Oleg Ryjkov <olegr@google.com>
1646 * tree.h (struct tree_base): Added a new flag default_def_flag.
1647 (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
1649 2008-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
1651 * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
1653 2008-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1656 * pa.md: Define mode iterator P. Define mode attribute dwc.
1657 (dcacheflush): Update pattern to use iterator P and attribute dwc.
1658 (icacheflush): Likewise.
1659 * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
1660 !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
1662 2008-04-11 Ben Elliston <bje@au.ibm.com>
1664 * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
1666 2008-04-10 Rafael Espindola <espindola@google.com>
1668 * tree-vrp.c (extract_range_from_binary_expr): Don't handle
1669 TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
1670 (extract_range_from_expr): The same.
1672 2008-04-10 Adam Nemet <anemet@caviumnetworks.com>
1674 * config/mips/mips.md (GPR2): New mode iterator.
1676 (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
1677 *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
1678 *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
1679 Rewrite these to take two modes, the mode of comparison and the
1680 mode of the destination.
1681 * config/mips/mips.c (mips_expand_scc): Instead of having
1682 paradoxical subreg as destination, expand "narrowing" scc if mode
1683 of comparison is SI and target is requested in DI mode.
1684 (mips_emit_int_order_test): Update comment. Make mode of
1685 comparison match CMP0 rather than TARGET. When creating inverse
1686 target use mode of TARGET.
1688 2008-04-10 Adam Nemet <anemet@caviumnetworks.com>
1690 * gcov-dump.c (tag_summary): Only print summaries for the first
1691 GCOV_COUNTERS_SUMMABLE counters.
1693 2008-04-10 Uros Bizjak <ubizjak@gmail.com>
1695 * config/i386/i386.md (absneg): New code iterator.
1696 (absnegprefix): New code attribute.
1697 (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
1698 patterns using absneg code iterator.
1699 (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
1700 using absneg code iterator.
1701 (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
1702 *neg<mode>2 patterns using absneg code iterator.
1703 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
1704 *negextendsfdf2 patterns using absneg code iterator.
1705 (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
1706 *negextendsfxf2 patterns using absneg code iterator.
1707 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
1708 *negextendsfdf2 patterns using absneg code iterator.
1709 * config/i386/sse.md (<code><mode>2): Macroize expander from
1710 abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
1712 2008-04-10 Andreas Krebbel <krebbel1@de.ibm.com>
1714 * config/s390/s390.h: Remove the remains of the recent search
1715 & replace action of current_function_outgoing_args_size.
1717 2008-04-10 Ira Rosen <irar@il.ibm.com>
1719 PR tree-optimization/35821
1720 * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
1721 NEW_STMT_LIST is not NULL.
1723 2008-04-09 David Edelsohn <edelsohn@gnu.org>
1726 * toplev.c (process_options): Remove -ffunction-sections debugging
1729 2008-04-09 Peter Bergner <bergner@vnet.ibm.com>
1731 PR middle-end/PR28690
1732 * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
1733 than gen_rtx_fmt_ee to perform more canonicalizations.
1735 2008-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1738 * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
1740 2008-04-09 Richard Guenther <rguenther@suse.de>
1742 * tree-cfg.c (verify_stmt): Print complete bogus stmt.
1743 (dump_function_to_file): Dump function arguments with types.
1745 2008-04-08 Richard Guenther <rguenther@suse.de>
1747 * fold-const.c (fold_widened_comparison): Do not allow
1748 sign-changes that change the result.
1750 2008-04-08 Janis Johnson <janis187@us.ibm.com>
1753 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
1754 kinds of indirect references.
1756 2008-04-08 David Edelsohn <edelsohn@gnu.org>
1758 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
1759 GNU Fortran language string.
1761 2008-04-08 Rafael Espindola <espindola@google.com>
1763 * fold-canst.c (tree_call_nonnegative_warnv_p): New.
1764 (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
1765 * tree.h (tree_call_nonnegative_warnv_p): New.
1767 2008-04-08 Jan Hubicka <jh@suse.cz>
1769 * function.c (free_after_compilation): Clear out regno_reg_rtx
1772 2008-04-08 Peter Bergner <bergner@vnet.ibm.com>
1775 2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
1777 PR middle-end/PR28690
1778 * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
1779 same precedence as REG_POINTER and MEM_POINTER operands.
1781 2008-04-08 Richard Guenther <rguenther@suse.de>
1784 * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
1785 for adding index to base.
1787 2008-04-08 Kai Tietz <kai.tietz@onevision.com>
1789 * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
1790 (MINGW_ENABLE_EXECUTE_STACK): New.
1791 (IN_LIBGCC2): For libgcc include windows.h file for
1792 function declarations.
1794 2008-04-08 Hans-Peter Nilsson <hp@axis.com>
1796 * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
1797 and tem2 if tem1 is not a REG or MULT.
1799 2008-04-08 Jan Hubicka <jh@suse.cz>
1801 * function.h (incomming_args): Break out of struct function.
1802 (function_subsections): Break out of struct function.
1803 (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
1804 return_rtx and hard_reg_initial_vals from struct function.
1805 Kill inl_max_label_num.
1806 (current_function_pops_args, current_function_args_info,
1807 current_function_args_size, current_function_args_size,
1808 current_function_pretend_args_size,
1809 current_function_outgoing_args_size,
1810 current_function_internal_arg_pointer, current_function_return_rtx):
1811 Kill compatibility accestor macros.
1812 * builtins.c (expand_builtin_apply_args_1): Update.
1813 (expand_builtin_next_arg): Update.
1814 * df-scan.c (df_get_call_refs): Update.
1815 * dbxout.c (dbxout_function_end): Update.
1816 * dwarf2out.c (dwarf2out_switch_text_section): Update.
1817 (output_line_info): Update.
1818 (secname_for_decl): Update.
1819 (dwarf2out_var_location): Update.
1820 * function.c (free_after_compilation): Update.
1821 (assign_parm_find_stack_rtl): Update.
1822 (assign_parms): Update.
1823 (expand_dummy_function_end): Update.
1824 (expand_function_end): Update.
1825 * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
1826 (expand_call): Update.
1827 (emit_library_call_value_1): Update.
1828 (store_one_arg): Update.
1829 * varasm.c (initialize_cold_section_name): Update.
1830 (unlikely_text_section): Update.
1831 (unlikely_text_section_p): Update.
1832 (assemble_start_function): Update.
1833 (assemble_end_function): Update.
1834 (default_section_type_flags): Update.
1835 (switch_to_section): Update.
1836 * integrate.c (set_decl_abstract_flags): Update.
1837 (get_hard_reg_initial_val): Update.
1838 (has_hard_reg_initial_val): Update.
1839 (allocate_initial_values): Update.
1840 * resource.c (init_resource_info): Update.
1841 * config/alpha/alpha.c (NUM_ARGS): Update.
1842 (direct_return): Update.
1843 (alpha_va_start): Update.
1844 (alpha_sa_size): Update.
1845 (alpha_initial_elimination_offset): Update.
1846 (alpha_expand_prologue): Update.
1847 (alpha_start_function): Update.
1848 (alpha_expand_epilogue): Update.
1849 (unicosmk_initial_elimination_offset):
1850 * config/alpha/alpha.md (call expander): Update.
1851 * config/s390/s390.c (s390_register_info): Update.
1852 (s390_register_info): Update.
1853 (s390_frame_info): Update.
1854 (s390_initial_elimination_offset): Update.
1855 (s390_build_builtin_va_list): Update.
1856 (s390_va_start): Update.
1857 * config/spu/spu.c (direct_return): Update.
1858 (spu_expand_prologue): Update.
1859 (spu_initial_elimination_offset): Update.
1860 (spu_build_builtin_va_list): Update.
1861 (spu_va_start): Update.
1862 * config/sparc/sparc.c (sparc_init_modes): Update.
1863 (sparc_compute_frame_size): Update.
1864 (function_value): Update.
1865 * config/m32r/m32r.c (m32r_compute_frame_size): Update.
1866 * config/i386/i386.md (return expander): Update.
1867 * config/i386/i386.c (ix86_va_start): Update.
1868 (ix86_can_use_return_insn_p): Update.
1869 (ix86_compute_frame_layout): Update.
1870 (ix86_expand_epilogue): Update.
1871 * config/sh/sh.c (output_stack_adjust): Update.
1872 (calc_live_regs): Update.
1873 (sh_expand_prologue): Update.
1874 (sh_builtin_saveregs): Update.
1875 (sh_va_start): Update.
1876 (initial_elimination_offset): Update.
1877 (sh_allocate_initial_value): Update.
1878 (sh_function_ok_for_sibcall): Update.
1879 (sh_get_pr_initial_val): Update.
1880 * config/sh/sh.md (return expander): Update.
1881 * config/avr/avr.c (frame_pointer_required_p): UPdate.
1882 * config/crx/crx.c (crx_compute_frame): UPdate.
1883 (crx_initial_elimination_offset): UPdate.
1884 * config/xtensa/xtensa.c (compute_frame_size): Update
1885 (xtensa_builtin_saveregs): Update.
1886 (xtensa_va_start): Update.
1887 (order_regs_for_local_alloc): Update.
1888 * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
1889 (xstormy16_expand_builtin_va_start): Update.
1890 * config/fr30/fr30.c (fr30_compute_frame_size): Update.
1891 * config/m68hc11/m68hc11.md (return expanders): Update.
1892 * config/m68hc11/m68hc11.c (expand_prologue): Update.
1893 (expand_epilogue): Update.
1894 * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
1895 (cris_simple_epilogue): Update.
1896 (cris_expand_prologue): Update.
1897 (cris_expand_epilogue): Update.
1898 * config/iq2000/iq2000.c (iq2000_va_start): Update.
1899 (compute_frame_size): Update.
1900 * config/mt/mt.c (mt_compute_frame_size): Update.
1901 * config/mn10300/mn10300.c (expand_prologue): Update.
1902 (expand_epilogue): Update.
1903 (initial_offset): Update.
1904 (mn10300_builtin_saveregs):
1905 * config/mn10300/mn10300.md (return expander): Update.
1906 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
1907 (ia64_initial_elimination_offset): Update.
1908 (ia64_initial_elimination_offset): Update.
1909 (ia64_expand_prologue): Update.
1910 * config/m68k/m68k.md (return expander): Update.
1911 * config/rs6000/rs6000.c (rs6000_va_start): Update.
1912 (rs6000_stack_info): Update.
1913 * config/mcore/mcore.c (layout_mcore_frame): Update.
1914 (mcore_expand_prolog): Update.
1915 * config/arc/arc.c (arc_compute_frame_size): Update.
1916 * config/score/score3.c (score3_compute_frame_size): Update.
1917 * config/score/score7.c (score7_compute_frame_size): Update.
1918 * config/arm/arm.c (use_return_insn): Update.
1919 (thumb_find_work_register): Update.
1920 (arm_compute_save_reg_mask): Update.
1921 (arm_output_function_prologue): Update.
1922 (arm_output_epilogue): Update.
1923 (arm_size_return_regs): Update.
1924 (arm_get_frame_offsets): Update.
1925 (arm_expand_prologue): Update.
1926 (thumb_exit): Update.
1927 (thumb_unexpanded_epilogue): Update.
1928 (thumb1_output_function_prologue): Update.
1929 * config/pa/pa.md (return expander): Update.
1930 * config/pa/pa.c (compute_frame_size): Update.
1931 (hppa_builtin_saveregs): Update.
1932 * config/mips/mips.c (mips_va_start): Update.
1933 (mips16_build_function_stub): Update.
1934 (mips_compute_frame_info): Update.
1935 (mips_restore_gp): Update.
1936 (mips_output_function_prologue): Update.
1937 (mips_expand_prologue): Update.
1938 * config/v850/v850.c (compute_frame_size): Update.
1939 (expand_prologue): * config/mmix/mmix.c (along): update.
1940 (mmix_initial_elimination_offset): update.
1941 (mmix_reorg): update.
1942 (mmix_use_simple_return): update.
1943 (mmix_expand_prologue): update.
1944 (mmix_expand_epilogue): Update.
1945 * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
1946 (emit_link_insn): Update.
1948 2008-04-08 Anatoly Sokolov <aesok@post.ru>
1950 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
1951 __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
1953 * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
1956 2008-04-07 Jan Hubicka <jh@suse.cz>
1958 * function.h (rtl): Rename to x_rtl.
1960 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
1961 frame_offset, stack_check_probe_note, arg_pointer_save_area,
1962 used_temp_slots avail_temp_slots, temp_slot_level,
1963 nonlocal_goto_handler_labels): Update accesstors.
1964 (rtl): New global variable.
1965 (struct function): Move some fileds to rtl_data.
1966 (get_arg_pointer_save_area): Update prototype.
1967 * builtins.c (expand_builtin_setjmp_receiver): Update call of
1968 get_arg_pointer_save_area.
1969 * expr.c (init_expr): Update
1970 * function.c (get_frame_size): Update
1971 (assign_stack_local): Update
1972 (expand_function_end): Update.
1973 (get_art_pointer_save_area): Update
1975 * emit-rtl.c (rtl): Declare.
1976 (regno_reg_rtx): Declare.
1977 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
1979 (gen_reg_rtx): Update.
1980 * varasm.c (n_deferred_constatns): Update accestor.
1981 (init_varasm_status): Do not allocate varasm_status.
1982 (force_const_mem, get_pool_size, output_constant_pool): Update.
1983 * stmt.c (force_label_rtx): Do not use x_ prefixes.
1984 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
1985 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
1986 * sparc/sparc.h (INIT_EXPANDERS): Update.
1987 * ia64/ia64.h (INIT_EXPANDERS): Update.
1989 2008-04-07 James E. Wilson <wilson@tuliptree.org>
1991 * reload.c (push_secondary_reload): Add missing break to for loop.
1993 2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
1995 PR middle-end/PR28690
1996 * rtlanal.c: Update copyright years.
1997 (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
1998 as REG_POINTER and MEM_POINTER operands.
1999 * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
2000 (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
2001 * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
2002 * gcse.c: Update copyright years.
2003 (pre_delete): Call gen_reg_rtx_and_attrs.
2004 (hoist_code): Likewise.
2005 (build_store_vectors): Likewise.
2006 (delete_store): Likewise.
2007 * loop-invariant.c (move_invariant_reg): Likewise.
2008 Update copyright years.
2010 2008-04-07 Uros Bizjak <ubizjak@gmail.com>
2012 * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
2013 control string instead of quoted.
2015 2008-04-07 Kenneth Zadeck <zadeck@naturalbridge.com>
2017 * doc/rtl.texi: Rewrite of subreg section.
2019 2008-04-07 Kai Tietz <kai.tietz@onevision.com>
2022 * config/i386/i386.c (legitimize_pic_address): Add treating
2023 of dllimport SYM_REF's.
2024 (legitimize_dllimport_symbol): Add prototype.
2026 2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
2028 * fold-const.c (fold) <ARRAY_REF>: New case. Try to fold constant
2029 reference in constructor with non self-referential type.
2031 2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
2033 Removal of Return with Depressed Stack Pointer support
2034 * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
2035 (ECF_SP_DEPRESSED): Likewise.
2036 (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
2037 * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
2038 (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
2039 (expand_call): Do not test ECF_SP_DEPRESSED.
2040 * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
2041 * function.c (keep_stack_depressed): Delete.
2042 (handle_epilogue_set): Likewise.
2043 (update_epilogue_consts): Likewise.
2044 (emit_equiv_load): Likewise.
2045 (thread_prologue_and_epilogue_insns): Remove support for Return with
2046 Depressed Stack Pointer.
2047 * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
2049 2008-04-06 Richard Guenther <rguenther@suse.de>
2051 PR tree-optimization/35400
2052 * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
2053 information from SSA_NAMEs.
2055 2008-04-06 Anatoly Sokolov <aesok@post.ru>
2057 * config/avr/avr.h (avr_mega_p): Remove declaration.
2058 (AVR_MEGA): Remove macro.
2059 * config/avr/avr.c (avr_mega_p): Remove variable.
2060 (avr_override_options): Remove inicializion of avr_mega_p.
2061 Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
2062 (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
2063 (avr_jump_mode): (Ditto.).
2064 (avr_output_progmem_section_asm_op): (Ditto.).
2065 (avr_asm_init_sections): (Ditto.).
2066 (avr_asm_init_sections): (Ditto.).
2067 (avr_rtx_costs): (Ditto.).
2068 * config/avr/avr.md: (Ditto.).
2069 * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
2072 2008-04-06 Richard Guenther <rguenther@suse.de>
2074 PR tree-optimization/35842
2075 * tree-ssa-address.c (fixed_address_object_p): Adjust to match
2076 is_gimple_invariant_address.
2078 2008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2080 * gcc.c (default_compilers): Sync Fortran extensions list with
2081 that in fortran/lang-specs.h.
2082 * doc/invoke.texi: Likewise.
2083 * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
2084 * dwarf2out.c (gen_compile_unit_die): Likewise.
2086 2008-04-06 Tom G. Christensen <tgc@jupiterrise.com>
2088 * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
2090 2008-04-05 Uros Bizjak <ubizjak@gmail.com>
2093 * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
2094 attribute is used for nested functions.
2096 2008-04-05 Jan Hubicka <jh@suse.cz>
2098 * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
2100 * tree-dump.c (dump_enable_all): Remove prototype; do not accept
2102 (dump_files): Update.
2103 (enable_rtl_dump_file): Do not accept letter argument.
2104 * tree-pass.h (dump_file_info): Remove letter argument.
2105 * toplev.c (decode_d_option): Update -da handling.
2106 * toplev.h (enable_rtl_dump_file): Update prototype.
2107 * passes.c (register_one_dump_file): Do not accept IPA argument; work
2108 it out based on pass type.
2109 (register_dump_files_1): Likewise.
2110 (init_optimization_passes): Update register_one_dump_file calls.
2111 (execute_one_pass): Sanity check that IPA passes are called at IPA
2112 level and RTL passes at RTL level.
2113 (execute_pass_list): IPA pass can not be after or subpass of
2115 (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
2116 disallov RTL subpasses of IPA subpasses.
2118 2008-04-05 Ben Elliston <bje@au.ibm.com>
2120 * tree-cfg.c (need_fake_edge_p): Return false for calls to
2121 builtins that return exactly once and do not throw. Cache call to
2124 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
2126 PR rtl-optimization/34916
2128 * combine.c (create_log_links): Do not create duplicate LOG_LINKS
2129 between instruction pairs.
2131 2008-04-04 Naveen.H.S <naveen.hs@kpitcummins.com>
2133 * doc/invoke.texi: Document -mbitops for SH.
2134 * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
2135 * config/sh/predicates.md (bitwise_memory_operand): New predicate.
2136 * config/sh/sh.c (print_operand): Add %t operand code.
2137 * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
2138 * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
2139 (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
2140 (extendqihi2): Likewise.
2141 (movqi_i): Likewise.
2142 (insv): Use bset, bclr and bst instructions for SH2A if possible.
2143 (extv): Use bld instruction for SH2A if possible.
2145 (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
2146 bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
2147 bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
2148 (bset.b, bclr.b): Define peepholes.
2149 * config/sh/sh.opt (mbitops): New option.
2151 2008-04-04 Janis Johnson <janis187@us.ibm.com>
2154 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
2155 and view convert expression.
2157 2008-04-04 Jakub Jelinek <jakub@redhat.com>
2160 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
2162 2008-04-04 H.J. Lu <hongjiu.lu@intel.com>
2164 * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
2166 * config/i386/cpuid.h (bit_AES): New.
2167 (bit_PCLMUL): Likewise.
2169 * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
2170 (override_options): Handle PTA_AES and PTA_PCLMUL. Enable
2171 SSE2 if AES or PCLMUL is enabled.
2172 (ix86_builtins): Add IX86_BUILTIN_AESENC128,
2173 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
2174 IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
2175 IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
2176 (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
2177 (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
2178 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
2179 IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
2180 (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
2181 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
2182 __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
2183 __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
2184 __builtin_ia32_aeskeygenassist128 and
2185 __builtin_ia32_pclmulqdq128.
2186 * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
2187 (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
2188 IX86_BUILTIN_PSRLDQI128. Handle IX86_BUILTIN_AESKEYGENASSIST128.
2190 * config/i386/i386.h (TARGET_AES): New.
2191 (TARGET_PCLMUL): Likewise.
2192 (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
2194 * config/i386/i386.md (UNSPEC_AESENC): New.
2195 (UNSPEC_AESENCLAST): Likewise.
2196 (UNSPEC_AESDEC): Likewise.
2197 (UNSPEC_AESDECLAST): Likewise.
2198 (UNSPEC_AESIMC): Likewise.
2199 (UNSPEC_AESKEYGENASSIST): Likewise.
2200 (UNSPEC_PCLMUL): Likewise.
2202 * config/i386/i386.opt (maes): New.
2203 (mpclmul): Likewise.
2205 * config/i386/sse.md (aesenc): New pattern.
2206 (aesenclast): Likewise.
2208 (aesdeclast): Likewise.
2210 (aeskeygenassist): Likewise.
2211 (pclmulqdq): Likewise.
2213 * config/i386/wmmintrin.h: New.
2215 * doc/extend.texi: Document AES and PCLMUL built-in function.
2217 * doc/invoke.texi: Document -maes and -mpclmul.
2219 2008-04-04 Paolo Bonzini <bonzini@gnu.org>
2221 * function.c (free_after_parsing): Replace with
2222 cxx_push_function_context from C++ front-end.
2223 (allocate_struct_function): Don't call langhook.
2224 * langhooks.h (struct lang_hooks_for_functions): Delete.
2225 (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
2227 * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
2228 (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
2229 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2230 LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
2231 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
2232 remove LANG_HOOKS_FUNCTION_INITIALIZER.
2233 * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
2235 * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
2236 Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
2238 2008-04-04 Jakub Jelinek <jakub@redhat.com>
2241 * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
2244 2008-04-04 Richard Guenther <rguenther@suse.de>
2247 * fold-const.c (optimize_minmax_comparison): Use the correct
2248 type for the constant in the simplified comparison.
2250 2008-04-04 Zuxy Meng <zuxy.meng@gmail.com>
2252 * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
2253 Pass L2 size as "--param l2-cache-size" to the compiler.
2254 (decode_l2_cache): New function to decode L2 cache parameters using
2255 0x8000006 extended cpuid function.
2256 (detect_caches_amd): Determine parameters of L2 cache using
2257 decode_l2_caches function.
2258 (decode_caches_intel): Decode L2 cache parameters.
2259 (detect_caches_intel): Determine L2 cache parameters using
2260 decode_caches_intel and decode_l2_caches functions.
2262 2008-04-03 Bob Wilson <bob.wilson@acm.org>
2264 * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
2265 secondary input reload for subword loads from the constant pool.
2267 2008-04-03 Janis Johnson <janis187@us.ibm.com>
2270 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
2271 constants of the appropriate size for runtime calculations.
2274 * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
2275 decimal-float literal constant zero.
2277 2008-04-03 Jakub Jelinek <jakub@redhat.com>
2280 * c-parser.c (c_parser_omp_atomic): Call
2281 default_function_array_conversion on the RHS.
2284 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
2285 call is_variable_sized if decl has incomplete type.
2287 2008-04-03 H.J. Lu <hongjiu.lu@intel.com>
2289 * config/i386/i386-protos.h (ix86_aligned_p): Removed.
2291 2008-04-03 Adam Nemet <anemet@caviumnetworks.com>
2293 * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
2295 (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
2296 (sgt<u>): Merge sgt and sgtu into new expander.
2297 (sgt, sgtu): Remove expanders.
2298 (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
2299 (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
2300 (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
2301 *sgtu_<mode>_mips16 into new pattern.
2302 (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
2303 (sge<u>): Merge sge and sgeu into new expander.
2304 (sge, sgeu): Remove expanders.
2305 (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
2307 (*sge_<mode>, second *sge_<mode>): Remove patterns.
2308 (slt<u>): Merge slt and sltu into new expander.
2309 (slt, sltu): Remove expanders.
2310 (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
2311 (*slt_<mode>, *sltu_<mode>): Remove patterns.
2312 (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
2313 *sltu_<mode>_mips16 into new pattern.
2314 (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
2315 (sle<u>): Merge sle and sleu into new expander.
2316 (sle, sleu): Remove expanders.
2317 (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
2318 (*sle_<mode>, *sleu_<mode>): Remove patterns.
2319 (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
2320 *sleu_<mode>_mips16 into new pattern.
2321 (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
2323 2008-04-03 Jan Hubicka <jh@suse.cz>
2325 PR tree-optimization/35795
2326 * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
2327 * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
2328 * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
2329 * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
2330 * score/score3.c (score3_output_mi_thunk): Likewise.
2331 * score/score7.c (score7_output_mi_thunk): Likewise.
2332 * mips/mips.c (mips_output_mi_thunk): Likewise.
2334 2008-04-03 Richard Guenther <rguenther@suse.de>
2336 * tree-vrp.c (extract_range_from_unary_expr): Handle all
2337 conversions. Simplify code.
2339 2008-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
2341 * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
2343 2008-04-03 Tom Tromey <tromey@redhat.com>
2344 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2346 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
2347 * config/bfin/t-bfin-linux (generated_files): Add
2348 linux-sysroot-suffix.h.
2349 * doc/install.texi (Prerequisites): Require make 3.80.
2350 * doc/sourcebuild.texi (Front End Directory): Document new
2352 * Makefile.in (generated_files): New variable.
2353 (ALL_HOST_OBJS): New variable.
2354 ($(ALL_HOST_OBJS)): New target.
2356 2008-04-03 Paolo Bonzini <bonzini@gnu.org>
2358 * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
2359 (remap_block): Call id->transform_lang_insert_block instead
2361 (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
2362 Set id.transform_lang_insert_block to NULL.
2363 (clone_body): Move to cp/optimize.c
2364 * tree-inline.h (struct copy_body_data): Change
2365 transform_lang_insert_block to function pointer.
2366 (copy_generic_body, copy_decl_no_change): Export.
2367 * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
2368 * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
2369 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
2371 * c-tree.h (insert_block): Kill.
2372 * c-decl.c (insert_block): Kill.
2374 2008-04-03 Paolo Bonzini <bonzini@gnu.org>
2376 * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
2377 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
2378 * c-tree.h (c_push_function_context, c_pop_function_context): Remove
2380 * c-decl.c (c_push_function_context, c_pop_function_context): Remove
2381 argument, call {push,pop}_function_context from here.
2382 * c-parser.c: Use c_{push,pop}_function_context.
2384 * function.c (push_function_context_to): Move meat ...
2385 (push_function_context): ... here. Simplify.
2386 * function.c (pop_function_context_from): Move meat ...
2387 (pop_function_context): ... here. Simplify.
2388 * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
2390 * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
2391 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
2392 (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
2393 * tree.h (push_function_context_to, pop_function_context_from): Remove.
2395 2008-04-03 Ben Elliston <bje@au.ibm.com>
2397 * expmed.c (extract_force_align_mem_bit_field): Remove.
2399 2008-04-03 Richard Guenther <rguenther@suse.de>
2402 * expr.h (try_casesi): Adjust prototype.
2403 * expr.c (try_casesi): Take fallback label as extra parameter.
2404 Use that for gen_casesi if default_label is NULL.
2405 * stmt.c (expand_case): Pass fallback label to try_casesi,
2406 make sure to fill gaps with a fallback label if default_label
2409 2008-04-03 Dominique d'Humieres <dominiq@lps.ens.fr>
2412 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
2414 2008-04-03 Ben Elliston <bje@au.ibm.com>
2416 * expmed.c (extract_split_bit_field): Remove if (0) code.
2417 * tree-ssa-structalias.c (do_sd_constraint): Likewise.
2418 (do_ds_constraint): Likewise.
2420 2008-04-02 Joseph Myers <joseph@codesourcery.com>
2422 * doc/cppopts.texi (-dU): Document.
2423 * c-common.h (flag_dump_macros): Update comment.
2424 * c-opts.c (handle_OPT_d): Handle -dU.
2425 * c-ppoutput.c (macro_queue, define_queue, undef_queue,
2426 dump_queued_macros, cb_used_define, cb_used_undef): New.
2427 (init_pp_output): Handle -dU.
2428 (cb_line_change): Call dump_queued_macros.
2429 * toplev.c (decode_d_option): Accept -dU as preprocessor option.
2431 2008-04-02 Anatoly Sokolov <aesok@post.ru>
2433 * config/avr/predicates.md (io_address_operand): New predicate.
2434 * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
2435 * config/avr/avr.c (avr_io_address_p): Remove function.
2436 (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
2437 'avr_io_address_p' function.
2438 (out_movhi_r_mr): (Ditto.).
2439 (out_movqi_mr_r): (Ditto.).
2440 (out_movhi_mr_r): (Ditto.).
2441 (avr_address_cost): (Ditto.).
2443 2008-04-02 Uros Bizjak <ubizjak@gmail.com>
2445 * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
2446 Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
2447 in 32bit mode when XMM registers are available to avoid store
2449 (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
2450 corresponding post-reload splitters.
2452 2008-04-02 H.J. Lu <hongjiu.lu@intel.com>
2454 * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
2455 and __builtin_ia32_shufpd. Provide __builtin_ia32_roundsd and
2456 __builtin_ia32_roundss.
2457 (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
2458 __builtin_ia32_shufpd, __builtin_ia32_roundsd and
2459 __builtin_ia32_roundss.
2460 (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
2461 IX86_BUILTIN_SHUFPD here.
2463 2008-04-02 H.J. Lu <hongjiu.lu@intel.com>
2465 * config/i386/i386.md (plogic): New.
2466 (plogicprefix): Likewise.
2468 * config/i386/mmx.md (mmx_<code><mode>3): New.
2469 (mmx_and<mode>3): Removed.
2470 (mmx_ior<mode>3): Likewise.
2471 (mmx_xor<mode>3): Likewise.
2473 * config/i386/sse.md (<code><mode>3): New.
2474 (*<code><mode>3): Likewise.
2475 (*<code><mode>3): Likewise.
2476 (<code><mode>3): Likewise.
2477 (*sse_<code><mode>3): Likewise.
2478 (*sse2_<code><mode>3): Likewise.
2479 (<code>tf3): Likewise.
2480 (*<code>tf3): Likewise.
2481 (and<mode>3): Likewise.
2482 (*and<mode>3): Likewise.
2483 (ior<mode>3): Removed.
2484 (*ior<mode>3): Likewise.
2485 (xor<mode>3): Likewise.
2486 (*xor<mode>3): Likewise.
2487 (*and<mode>3): Likewise.
2488 (*ior<mode>3): Likewise.
2489 (*xor<mode>3): Likewise.
2490 (and<mode>3): Likewise.
2491 (*sse_and<mode>3): Likewise.
2492 (*sse2_and<mode>3): Likewise.
2494 (*andtf3): Likewise.
2495 (ior<mode>3): Likewise.
2496 (*sse_ior<mode>3): Likewise.
2497 (*sse2_ior<mode>3): Likewise.
2499 (*iortf3): Likewise.
2500 (xor<mode>3): Likewise.
2501 (*sse_xor<mode>3): Likewise.
2502 (*sse2_xor<mode>3): Likewise.
2504 (*xortf3): Likewise.
2506 2008-04-02 Richard Guenther <rguenther@suse.de>
2508 PR tree-optimization/14495
2509 PR tree-optimization/34793
2510 * tree-vrp.c (struct switch_update): New structure.
2511 (to_remove_edges, to_update_switch_stmts): New VECs.
2512 (simplify_switch_using_ranges): New function. Remove not taken
2513 case labels and edges.
2514 (simplify_stmt_using_ranges): Call it.
2515 (identify_jump_threads): Mark edges we have queued for removal
2516 so we don't thread them.
2517 (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
2519 * tree-cfg.c (group_case_labels): Deal with missing default label.
2520 (tree_verify_flow_info): Allow missing default label.
2521 * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
2522 (emit_case_nodes): Likewise.
2523 (expand_case): Do not rely on the default label to be present.
2524 * expr.c (try_casesi): Deal with NULL default_label.
2525 (do_tablejump): Likewise.
2527 2008-04-02 Richard Guenther <rguenther@suse.de>
2529 PR tree-optimization/14495
2530 * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
2531 SWITCH_EXPR here ...
2532 (vrp_visit_switch_stmt): ... but here (new function).
2533 (find_case_label_index): New helper function.
2534 (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
2536 2008-04-02 Paolo Bonzini <bonzini@gnu.org>
2538 * fwprop.c: Fix ISO-C99ism.
2540 2008-04-02 Paolo Bonzini <bonzini@gnu.org>
2543 * Makefile.in (objdir): Set it here.
2544 * configure.ac: Not here. Find dynamic linker characteristics.
2545 * exec-tool.in: Use them.
2546 * aclocal.m4: Regenerate.
2547 * configure: Regenerate.
2549 2008-04-02 Paolo Bonzini <bonzini@gnu.org>
2551 * expr.c (expand_var): Delete it.
2552 * expr.h (expand_var): Delete prototype.
2553 * function.c (expand_function_start): Use expand_decl instead.
2554 * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
2557 2008-04-02 Andy Hutchinson <hutchinsonamdy@aim.com>
2559 PR rtl-optimization/35542
2560 * fwprop.c (forward_propagate_and_simplify): Replace
2561 loc_reg_mentioned_in_p with reg_mentioned_p.
2563 2008-04-02 Paolo Bonzini <bonzini@gnu.org>
2565 PR rtl-optimization/35281
2566 * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
2567 (propagate_rtx_1): Handle PR_HANDLE_MEM.
2568 (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
2569 (varying_mem_p): Move above propagate_rtx.
2570 (all_uses_available_at): Do not check MEMs.
2572 2008-04-02 Rafael Espindola <espindola@google.com>
2574 * tree-vrp.c (extract_code_and_val_from_cond): Remove.
2575 (register_edge_assert_for_2): Split the cond argument.
2576 (register_edge_assert_for_1): Adjust for the change in
2577 register_edge_assert_for_2.
2578 (register_edge_assert_for): Split the cond argument.
2579 (find_switch_asserts): Adjust for the change in
2580 register_edge_assert_for.
2582 2008-04-02 Kai Tietz <kai.tietz@onevision.com>
2584 * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
2585 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
2586 offsets for 64-bit mingw.
2587 * config/i386/i386.c (ix86_pass_by_reference): Correct calling
2588 abi for x86_64-pc-mingw.
2590 2008-04-02 Richard Guenther <rguenther@suse.de>
2592 * tree-vrp.c (extract_range_from_assert): Make sure to not
2593 produce range min/max with TREE_OVERFOW set.
2594 If merging a anti-range and a range keep the anti-range if
2595 the range covers all values of the type.
2596 (register_edge_assert_for_2): Only allow sign-changing
2597 conversions in detecting canonical range checks. Also
2598 register an assert for the unsigned name if useful.
2600 PR tree-optimization/35787
2601 * tree-vrp.c (vrp_val_max): New function.
2602 (vrp_val_min): Likewise.
2603 (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
2604 (vrp_val_is_min): Likewise.
2605 (supports_overflow_infinity): Use vrp_val_{min,max}.
2606 (negative_overflow_infinity): Likewise.
2607 (positive_overflow_infinity): Likewise.
2608 (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
2609 (is_positive_overflow_infinity): Likewise.
2610 (is_overflow_infinity): Likewise.
2611 (avoid_overflow_infinity): Use vrp_val_{min,max} and
2612 vrp_val_is_{min,max}.
2613 (set_and_canonicalize_value_range): Canonicalize anti-ranges
2614 to ranges if possible. Avoid empty ranges.
2616 2008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2619 * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
2620 the expression is a function address.
2622 2008-04-01 George Helffrich <george@gcc.gnu.org>
2624 PR fortran/35154, fortran/23057
2625 * dbxout.c: Emit .stabs debug info for Fortran COMMON block
2626 variables as base symbol name + offset using N_BCOMM/N_ECOMM.
2627 (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
2628 (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
2630 (dbxout_syms): Check for COMMON-based symbol and wrap in
2631 N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
2632 in bracket for efficiency.
2634 * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
2635 using DW_TAG_common_block + member offset.
2636 (add_pubname_string): New function.
2637 (dw_expand_expr): New function to find block name and offset for
2639 (common_check): New function to check whether symbol in Fortran COMMON.
2640 (gen_variable_die): If COMMON, use DW_TAG_common_block.
2642 2008-04-01 Volker Reichelt <v.reichelt@netcologne.de>
2645 * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
2647 2008-04-02 Ben Elliston <bje@au.ibm.com>
2649 * config/v850/v850.md (casesi): Remove if (0) code.
2650 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
2651 * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
2653 2008-04-01 Uros Bizjak <ubizjak@gmail.com>
2655 * config/i386/i386.md (rex64suffix): New mode attribute.
2656 (floathi<mode>2): Disable expander for SSE math.
2657 (*floathi<mode>2_1): New insn insn_and_split pattern.
2658 (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
2659 corresponding post-reload splitters.
2660 (*floathi<mode>2_i387): New macroized insn pattern.
2661 (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
2662 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
2663 insn_and_split pattern.
2664 (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
2665 New macroized instruction patterns and corresponding post-reload
2667 (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
2668 and corresponding post-reload splitters.
2669 (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
2670 New macroized instruction patterns.
2671 (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
2672 macroized instruction patterns and corresponding post-reload splitters.
2673 (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
2674 corresponding post-reload splitters.
2675 (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
2676 New macroized instruction patterns.
2677 (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
2678 corresponding post-reload splitters.
2679 (*floatsi<mode>2_i387): New macroized instruction patterns.
2681 2008-04-01 H.J. Lu <hongjiu.lu@intel.com>
2683 * config/i386/i386.md (smaxmin): New.
2684 (umaxmin): Likewise.
2685 (maxminiprefix): Likewise.
2686 (maxminfprefix): Likewise.
2687 (<code><mode>3): Likewise.
2688 (smin<mode>3): Removed.
2689 (smax<mode>3): Likewise.
2691 * config/i386/mmx.md (mmx_<code>v2sf3): New.
2692 (mmx_<code>v4hi3): Likewise.
2693 (mmx_<code>v8qi3): Likewise.
2694 (mmx_smaxv2sf3): Removed.
2695 (mmx_sminv2sf3): Likewise.
2696 (mmx_umaxv8qi3): Likewise.
2697 (mmx_smaxv4hi3): Likewise.
2698 (mmx_uminv8qi3): Likewise.
2699 (mmx_sminv4hi3): Likewise.
2701 * config/i386/sse.md (<addsub><mode>3): New.
2702 (*<addsub><mode>3): Likewise.
2703 (<sse>_vm<addsub><mode>3): Likewise.
2704 (<maxmin><mode>3): Likewise.
2705 (*<maxmin><mode>3_finite): Likewise.
2706 (*<maxmin><mode>3): Likewise.
2707 (<sse>_vm<maxmin><mode>3): Likewise.
2708 (sse3_h<addsub>v4sf3): Likewise.
2709 (sse3_h<addsub>v2df3): Likewise.
2710 (<maxmin>v16qi3): Likewise.
2711 (*<maxmin>v16qi3): Likewise.
2712 (<maxmin>v8hi3): Likewise.
2713 (*<maxmin>v8hi3): Likewise.
2714 (*sse4_1_<maxmin><mode>3): Likewise.
2715 (*sse4_1_<maxmin><mode>3): Likewise.
2716 (add<mode>3): Removed.
2717 (*add<mode>3): Likewise.
2718 (<sse>_vmadd<mode>3): Likewise.
2719 (sub<mode>3): Likewise.
2720 (*sub<mode>3): Likewise.
2721 (<sse>_vmsub<mode>3): Likewise.
2722 (smin<mode>3): Likewise.
2723 (*smin<mode>3_finite): Likewise.
2724 (*smin<mode>3): Likewise.
2725 (<sse>_vmsmin<mode>3): Likewise.
2726 (smax<mode>3): Likewise.
2727 (*smax<mode>3_finite): Likewise.
2728 (*smax<mode>3): Likewise.
2729 (<sse>_vmsmax<mode>3): Likewise.
2730 (sse3_haddv4sf3): Likewise.
2731 (sse3_haddv2df3): Likewise.
2732 (sse3_hsubv4sf3): Likewise.
2733 (sse3_hsubv2df3): Likewise.
2734 (umaxv16qi3): Likewise.
2735 (*umaxv16qi3): Likewise.
2736 (smaxv8hi3): Likewise.
2737 (*smaxv8hi3): Likewise.
2738 (*sse4_1_smax<mode>3): Likewise.
2739 (*sse4_1_umax<mode>3): Likewise.
2740 (uminv16qi3): Likewise.
2741 (*uminv16qi3): Likewise.
2742 (sminv8hi3): Likewise.
2743 (*sminv8hi3): Likewise.
2744 (*sse4_1_smin<mode>3): Likewise.
2745 (*sse4_1_umin<mode>3): Likewise.
2747 2008-04-01 Rafael Espindola <espindola@google.com>
2749 * tree-cfg.c (verify_expr): remove in_phi.
2750 (verify_stmt): Don't call walk_tree with verify_expr. Use
2751 is_gimple_min_invariant instead of is_gimple_val.
2753 2008-04-01 Joseph Myers <joseph@codesourcery.com>
2755 * doc/include/gpl_v3.texi: Update for manpage generation.
2756 * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
2758 * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
2759 * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
2760 gpl_v3.texi instead of gpl.texi.
2763 2008-04-01 Jakub Jelinek <jakub@redhat.com>
2766 * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
2768 2008-04-01 Rafael Espindola <espindola@google.com>
2770 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
2771 (extract_code_and_val_from_cond): Use
2772 extract_code_and_val_from_cond_with_ops.
2774 2008-04-01 Jan Hubicka <jh@suse.cz>
2776 * function.c (free_after_compilation): Free epilogue_delay_list.
2777 (prepare_function_start): Assert that previous compilation was freed.
2779 2008-04-01 Jan Hubicka <jh@suse.cz>
2780 Jim Wilson <wilson@tuliptree.org>
2781 Andreas Tobler <andreast@gcc.gnu.org>
2784 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
2785 rtl.emit instead cfun->emit.
2786 * sparc/sparc.h (INIT_EXPANDERS): Likewise.
2787 * ia64/ia64.h (INIT_EXPANDERS): Likewise.
2789 2008-04-01 Ben Elliston <bje@au.ibm.com>
2791 * doc/c-tree.texi (Function Basics): Fix grammatical error.
2793 2008-03-31 Seongbae Park <seongbae.park@gmail.com>
2795 * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
2797 (fprofile-use): Add var flag_profile_use
2798 * coverage.c (coverage_begin_output): Do not open a gcno file for
2799 output only if -ftest-coverage is set.
2800 Do not add getpwd() to gcda file path.
2801 (build_gcov_info): Check the new flag
2802 flag_profile_datafile_relative_path.
2803 (coverage_init): Use profile_data_prefix.
2804 Read profile counter only if flag_profile_use is set.
2805 * opts.c (common_handle_option): New option fprofile-use=,
2806 fprofile-dir=, fprofile-generate=.
2807 * toplev.c (profile_data_prefix): New variable definition.
2808 * toplev.h (profile_data_prefix): New declaration.
2809 * doc/invoke.tex (Option Summary, Optimization Options):
2812 2008-03-31 James E. Wilson <wilson@tuliptree.org>
2814 * varasm.c (output_constant_pool_1): In LABEL_REF check,
2815 use tmp consistently.
2818 * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
2819 * config/ia64/ia64.c (rtx_needs_barrier): Handle
2820 UNSPEC_FR_RECIP_APPROX_RES.
2821 * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
2823 2008-03-31 Volker Reichelt <v.reichelt@netcologne.de>
2826 * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
2828 2008-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
2831 * fold-const.c (fold_indirect_ref_1): Support accessing non first
2832 element of the vector via a pointer.
2834 2008-03-31 Ian Lance Taylor <iant@google.com>
2836 * tlink.c (scan_linker_output): Look for symbol name in single quotes.
2838 2008-03-31 Jan Hubicka <jh@suse.cz>
2840 * builtins.c (expand_builtin_setjmp_receiver): Update call of
2841 get_arg_pointer_save_area.
2842 * expr.c (init_expr): Just clear out rtl.expr.
2843 * function.c (free_after_compilation): Clear out whole RTL structure.
2844 (get_func_frame_size): Merge into ...
2845 (get_frame_size): ... this one.
2846 (assign_stack_local_1): Merge into ...
2847 (assign_stack_local): ... this one.
2848 (expand_function_end): Update call of get_arg_pointer_save_area.
2849 (get_art_pointer_save_area): Remove cfun argument.
2850 * function.h (emit_status): regno_pointer_align does not need length
2851 attribute. Move x_regno_reg_rtx to ...
2852 (regno_reg_rtx): ... new global array.
2853 (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
2854 (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
2855 apply_args_value, forced_labels, stack_pointer_delta):
2857 (struct varasm_status): Move here from varasm.c
2858 (struct rtl_data): New. Move here some fields from struct function.
2859 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
2860 frame_offset, stack_check_probe_note, arg_pointer_save_area,
2861 used_temp_slots avail_temp_slots, temp_slot_level,
2862 nonlocal_goto_handler_labels): Update accesstors.
2863 (rtl): New global variable.
2864 (struct function): Move some fileds to rtl_data.
2865 (get_arg_pointer_save_area): Update prototype.
2866 * emit-rtl.c (rtl): Declare.
2867 (regno_reg_rtx): Declare.
2868 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
2870 (gen_reg_rtx): Update.
2871 (init_virtual_regs): Do not tate emit_status argument.
2872 (init_emit): Do not allocate emit.
2873 * varasm.c (varasm_statuc): Move to function.h.
2874 (n_deferred_constatns): Update accestor.
2875 (init_varasm_status): Do not allocate varasm_status.
2876 (force_const_mem, get_pool_size, output_constant_pool): Update.
2877 * stmt.c (force_label_rtx): Do not use x_ prefixes.
2878 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
2880 2008-03-31 Zdenek Dvorak <ook@ucw.cz>
2882 PR rtl-optimization/35729
2883 * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
2886 2008-03-31 H.J. Lu <hongjiu.lu@intel.com>
2889 * config/i386/i386.md (*movti_internal): Emit unaligned SSE
2890 load/store if memory is unaligned.
2891 (*movti_rex64): Likewise.
2893 * config/i386/predicates.md (misaligned_operand): New.
2895 2008-03-31 Andrew Pinski <pinskia@gmail.com>
2898 * tree-ssa-phiopt.c (conditional_replacement): Return early for
2901 2008-03-31 Jan Beulich <jbeulich@novell.com>
2903 * config/ia64/constraints.md: Add 'j' constraint.
2904 * config/ia64/ia64.md (movsi_internal): Add addp4 case.
2905 (movdi_internal): Likewise.
2907 2008-03-30 Volker Reichelt <v.reichelt@netcologne.de>
2910 * c-typeck.c (build_c_cast): Skip invalid fields in unions.
2912 2008-03-30 H.J. Lu <hongjiu.lu@intel.com>
2915 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
2916 proper error message for the third argument on blendpd and
2919 * config/i386/sse.md (blendbits): New.
2920 (sse4_1_blendp<ssemodesuffixf2c>): Use it.
2922 2008-03-30 Eric Botcazou <ebotcazou@adacore.com>
2924 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
2926 2008-03-30 Richard Guenther <rguenther@suse.de>
2929 * fold-const.c (fold_sign_changed_comparison): Do leave
2930 conversions to base-types alone.
2932 2008-03-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
2934 * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
2935 the link register if one altivec register is be saved.
2937 2008-03-30 Ben Elliston <bje@au.ibm.com>
2939 * final.c (final_scan_insn): Remove if (0) code.
2941 2008-03-28 Volker Reichelt <v.reichelt@netcologne.de>
2943 * c-parser.c (c_parser_next_token_is_keyword): Simplify.
2945 2008-03-28 H.J. Lu <hongjiu.lu@intel.com>
2947 * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
2948 of V4SFmode to ix86_binary_operator_ok.
2950 2008-03-28 Uros Bizjak <ubizjak@gmail.com>
2952 * config/i386/i386.c (override_options): Initialize
2953 ix86_veclib_handler to ix86_veclibabi_svml when
2954 -mveclibabi=svml is used.
2955 (ix86_veclibabi_svml): New function for SVML ABI style
2956 vectorization support.
2957 * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
2959 2008-03-28 Rafael Espindola <espindola@google.com>
2961 * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
2962 (tree_binary_nonnegative_warnv_p): Make it public.
2963 (tree_single_nonnegative_warnv_p): Make it public.
2964 (tree_invalid_nonnegative_warnv_p): Make it public.
2965 (tree_unary_nonzero_warnv_p): Make it public.
2966 (tree_binary_nonzero_warnv_p): Make it public
2967 (tree_single_nonzero_warnv_p): Make it public.
2968 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
2969 (extract_range_from_binary_expr): Split the expr argument.
2970 (extract_range_from_unary_expr): Split the expr argument.
2971 (extract_range_from_comparison): Split the expr argument.
2972 (extract_range_from_expr): Use the new aux functions.
2973 (vrp_evaluate_conditional_warnv): Use
2974 vrp_evaluate_conditional_warnv_with_ops.
2975 * tree.h (tree_unary_nonzero_warnv_p): Declare.
2976 (tree_binary_nonzero_warnv_p): Declare.
2977 (tree_single_nonzero_warnv_p): Declare.
2978 (tree_expr_nonzero_warnv_p): Declare.
2979 (tree_unary_nonnegative_warnv_p): Declare.
2980 (tree_binary_nonnegative_warnv_p): Declare.
2981 (tree_single_nonnegative_warnv_p): Declare.
2982 (tree_invalid_nonnegative_warnv_p): Declare.
2984 2008-03-28 Richard Guenther <rguenther@suse.de>
2986 PR tree-optimization/30317
2987 PR tree-optimization/30911
2988 PR tree-optimization/34793
2989 * tree-vrp.c (set_and_canonicalize_value_range): New function.
2990 (struct assert_locus_d): New member EXPR.
2991 (register_new_assert_for): Add EXPR parameter to support
2992 ASSERT_EXPR <name, expr OP limit>.
2993 (register_edge_assert_for_1): Adjust callers.
2994 (find_assert_locations): Likewise.
2995 (process_assert_insertions_for): Build condition from expression.
2996 (extract_range_from_assert): Handle ASSERT_EXPRs
2997 of the form ASSERT_EXPR <name, expr OP limit>.
2998 (register_edge_assert_for_2): New helper registering
2999 asserts for comparisons. Recognize range tests of the form
3000 (unsigned)i - CST1 OP CST2.
3001 (register_edge_assert_for_1): Use it.
3002 (register_edge_assert_for): Likewise.
3003 (needs_overflow_infinity): Integer sub-types
3004 do not need overflow infinities.
3005 (vrp_val_is_max): The extreme values of integer sub-types
3006 are those of the base type.
3007 (vrp_val_is_min): Likewise.
3008 * tree.def (ASSERT_EXPR): Document extra allowed conditional
3011 2008-03-28 Nick Clifton <nickc@redhat.com>
3014 * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
3015 Return GENERAL_REGS for stack adjustment reloads.
3017 2008-03-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
3020 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
3021 const_vector when all the vectors are constant.
3023 2008-03-27 Bob Wilson <bob.wilson@acm.org>
3025 * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
3027 * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
3028 (any_scc_sf): Add uneq, unlt, unle and unordered operators.
3030 (s<code>_sf): Use new scc_sf attribute for opcode names.
3032 2008-03-27 Tom Tromey <tromey@redhat.com>
3034 * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
3035 configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
3036 config/spu/t-spu-elf, config/i386/t-interix,
3037 config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
3038 config/i386/x-darwin, config/i386/x-mingw32,
3039 config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
3040 config/sh/t-sh, config/sh/t-symbian, config/x-linux,
3041 config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
3042 config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
3043 config/rs6000/x-rs6000, config/rs6000/x-darwin64,
3044 config/rs6000/x-darwin, config/rs6000/t-rs6000,
3045 config/score/t-score-elf, config/arm/t-strongarm-pe,
3046 config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
3047 config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
3048 Revert automatic dependency patch.
3050 2008-03-27 H.J. Lu <hongjiu.lu@intel.com>
3053 * config/i386/i386.c (ix86_function_arg_boundary): Align
3054 decimal floating point to its natural boundary.
3056 2008-03-27 Richard Guenther <rguenther@suse.de>
3059 * fold-const.c (fold_comparison): Restrict distinct decl
3060 comparison folding to VAR_DECLs and PARM_DECLs. Do not
3061 solely rely on operand_equal_p.
3063 2008-03-27 Richard Guenther <rguenther@suse.de>
3066 * c-common.c (handle_weak_attribute): Reject combination of
3069 2008-03-27 Richard Guenther <rguenther@suse.de>
3071 PR tree-optimization/32810
3072 * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
3073 conversions from DECL_INITIAL.
3074 (fold_const_aggregate_ref): Likewise from constructor elements.
3076 2008-03-27 Zdenek Dvorak <ook@ucw.cz>
3078 * tree-affine.h (aff_combination_expand): Declare.
3079 (get_inner_reference_aff): Likewise.
3080 * tree-affine.c (aff_combination_expand): Split out from
3081 tree_to_aff_combination_expand.
3082 (get_inner_reference_aff): New function.
3083 * tree-parloops.c (loop_parallel_p): Free vectorizer info.
3084 * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
3085 (struct lim_aux_data): sm_done field removed.
3086 (mem_ref_loc_p, mem_ref_locs_p): New types.
3087 (struct mem_ref): Added id, stored, accesses_in_loop,
3088 indep_loop, dep_loop, indep_ref, dep_ref fields.
3089 Removed is_stored, locs and next fields.
3090 (memory_accesses): New variable.
3091 (movement_possibility): Do not allow moving statements
3092 that store to memory.
3093 (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
3095 (determine_max_movement): For statements with memory references,
3096 find the outermost loop in that the reference is independent.
3097 (move_computations_stmt): Mark the virtual operands for renaming.
3098 (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
3099 gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
3100 vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
3101 add_vop_ref_mapping, create_vop_ref_mapping_loop,
3102 create_vop_ref_mapping, analyze_memory_references,
3103 cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
3104 get_all_locs_in_loop, ref_always_accessed_p,
3105 refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
3106 ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
3107 store_motion_loop, store_motion): New functions.
3108 (struct vop_to_refs_elt): New type.
3109 (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
3110 memref_hash, memref_eq, hoist_memory_references): Rewritten.
3111 (schedule_sm): Replaced by...
3112 (execute_sm): ... this.
3113 (determine_lsm_ref, hoist_memory_references,
3114 loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
3115 find_more_ref_vops, free_mem_ref, free_mem_refs,
3116 determine_lsm_loop, determine_lsm): Removed.
3117 (tree_ssa_lim_finalize): Free data structures used by store motion.
3118 (tree_ssa_lim): Call analyze_memory_references. Use
3119 store_motion instead of determine_lsm.
3121 2008-03-27 Paolo Bonzini <bonzini@gnu.org>
3123 * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
3124 rename tmake_file to m68hc11/t-m68hc11.
3125 (mcore): Set inhibit_libc to true.
3126 * config.host (alpha*-dec-*vms*): Set extra_programs.
3127 (interix3*): Don't use host_xmake_file.
3128 * configure.ac: Let config.gcc override inhibit_libc.
3129 * configure: Regenerate.
3131 * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
3132 * config/t-openbsd-thread: Remove commented out lines.
3134 * config/x-interix: Remove.
3136 * config/m68hc11/t-m68hc11-gas: Rename to...
3137 * config/m68hc11/t-m68hc11: ... this. Remove T_CPPFLAGS.
3139 * config/mcore/t-mcore: Remove T_CFLAGS.
3140 * config/mcore/t-mcore-pe: Likewise.
3142 2008-03-27 Paolo Bonzini <bonzini@gnu.org>
3144 * configure.ac: Replace custom __GNU_SOURCE test with
3145 AC_USE_SYSTEM_EXTENSIONS. Move it earlier.
3146 * aclocal.m4: Regenerate.
3147 * configure: Regenerate.
3148 * config.in: Regenerate.
3150 2008-03-27 Richard Guenther <rguenther@suse.de>
3152 * fold-const.c (target.h): Include.
3153 (fold_comparison): Fold comparison of addresses of decls
3154 that bind locally or of constants. Consolidate address folding code.
3155 * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
3156 results from fold_binary_to_constant.
3157 (compare_values_warnv): Likewise.
3159 2008-03-27 Andrew Pinski <pinskia@gmail.com>
3162 * fold-const.c (fold_truthop): Check for integeral types when folding
3163 a == 0 && b == 0 and a != 0 || b != 0 .
3165 2008-03-26 Eric Botcazou <ebotcazou@adacore.com>
3167 * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
3169 2008-03-26 Andreas Schwab <schwab@suse.de>
3171 * doc/invoke.texi: Fix use of @item vs. @itemx.
3173 2008-03-26 Tom Tromey <tromey@redhat.com>
3175 * Makefile.in (build/gensupport.o, build/print-rtl.o,
3176 build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
3177 build/genattrtab.o, build/genautomata.o, build/gencheck.o,
3178 build/gencodes.o, build/genconditions.o, build/genconfig.o,
3179 build/genconstants.o, build/genemit.o, build/genextract.o,
3180 build/genflags.o, build/genmddeps.o, build/genopinit.o,
3181 build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
3184 2008-03-26 Richard Guenther <rguenther@suse.de>
3187 2008-03-26 Richard Guenther <rguenther@suse.de>
3189 * fold-const.c (target.h): Include.
3190 (fold_comparison): Fold comparison of addresses of two decls
3191 that bind locally. Consolidate address folding code.
3193 2008-03-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3195 * builtins.c (expand_builtin_pow, fold_builtin_cabs,
3196 fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
3197 fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
3198 dconstsqrt2, dconstthird, dconste and/or dconst10.
3199 * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
3200 * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
3201 dconstsqrt2, dconste): Delete.
3202 (init_emit_once): Likewise. Simplify initializing dconstm1.
3204 * real.c (get_real_const): New.
3205 * real.h (dconst3, dconst10, dconstm2, dconstthird,
3206 dconstsqrt2, dconste): Delete.
3207 (real_value_const, get_real_const): New.
3209 2008-03-26 H.J. Lu <hongjiu.lu@intel.com>
3211 * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
3213 * config/i386/i386.c (ix86_function_arg_boundary): Check
3214 BIGGEST_ALIGNMENT instead of 128.
3215 (setup_incoming_varargs_64): Likewise.
3217 2008-03-26 Tom Tromey <tromey@redhat.com>
3219 * Makefile.in (DEPFILES): Add missing '/'.
3221 2008-03-26 Richard Guenther <rguenther@suse.de>
3223 * fold-const.c (target.h): Include.
3224 (fold_comparison): Fold comparison of addresses of two decls
3225 that bind locally. Consolidate address folding code.
3227 2008-03-26 Nick Clifton <nickc@redhat.com>
3230 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
3231 not allow INT+INT as a legitimate addressing mode.
3233 2008-03-26 Richard Guenther <rguenther@suse.de>
3235 * tree-flow.h (widen_bitfield): Remove declaration.
3236 * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
3237 (widen_bitfield): Remove function.
3238 * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
3241 2008-03-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
3244 * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
3247 2008-03-25 Richard Sandiford <rsandifo@nildram.co.uk>
3249 PR rtl-optimization/35232
3250 * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
3251 (forget_old_reloads_1, forget_marked_reloads): Don't clear
3252 reg_reloaded_call_part_clobbered here.
3253 (reload_regs_reach_end_p): New function.
3254 (reload_reg_rtx_for_input): New variable.
3255 (reload_reg_rtx_for_output): Likewise.
3256 (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
3257 when reassigning a pseudo register. Load reloadreg from
3258 reload_reg_rtx_for_input, moving the mode and register
3260 (do_input_reload): ...here. Use the mode-adjusted reg_rtx
3261 instead of the original when deciding whether an input reload
3262 would be a no-op or whether an output reload can be deleted.
3263 (emit_output_reload_insns): Use the mode-adjusted reg_rtx
3264 when setting up new_spill_reg_store. Load it from
3265 reload_reg_rtx_for_output, moving the mode and register
3267 (do_output_reload): ...here. Use the mode-adjusted reg_rtx
3268 instead of the original when deciding whether an output reload
3269 would be a no-op. Do the same when modifying insn notes.
3270 Use rtx_equal_p instead of == to compare the registers.
3271 (inherit_piecemeal_p): Take a mode and two register numbers
3273 (emit_reload_insns): Clear new_spill_reg_store for every hard
3274 register in the reload register. Remove spill registers
3275 from reg_reloaded_valid before considering whether to record
3276 inheritance information for them. Use reload_reg_rtx_for_output
3277 instead of reg_rtx when recording output reloads. Use
3278 reload_reg_rtx_for_input instead of reg_rtx when recording
3279 input reloads. Set or clear reg_reloaded_call_part_clobbered
3280 at the same time as setting reg_reloaded_valid.
3281 (delete_output_reload): Add a new_reload_reg parameter and use it
3282 instead of rld[j].reg_rtx.
3283 (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
3286 2008-03-25 Tom Tromey <tromey@redhat.com>
3288 * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
3289 (build/genattr.o): Likewise.
3290 (build/genattrtab.o): Likewise.
3291 (build/gencodes.o): Likewise.
3292 (build/genconfig.o): Likewise.
3293 (build/genconstants.o): Likewise.
3294 (build/genemit.o): Likewise.
3295 (build/genextract.o): Likewise.
3296 (build/genflags.o): Likewise.
3298 2008-03-25 Bob Wilson <bob.wilson@acm.org>
3300 * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
3301 instead of size_int for integer types.
3302 (xtensa_gimplify_va_arg_expr): Likewise. Convert index to sizetype
3303 to match type of MINUS_EXPR.
3305 2008-03-25 Tom Tromey <tromey@redhat.com>
3307 * configure: Rebuilt.
3308 * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
3311 2008-03-25 Tom Tromey <tromey@redhat.com>
3313 * config/x-solaris (host-solaris.o): Update.
3314 * config/x-linux (host-linux.o): Update.
3315 * config/x-hpux (host-hpux.o): Update.
3316 * config/x-darwin (host-darwin.o): Update.
3317 * config/v850/t-v850e (v850-c.o): Update.
3318 * config/v850/t-v850 (v850-c.o): Update.
3319 * config/t-vxworks (vxworks.o): Update.
3320 * config/t-sol2 (sol2-c.o, sol2.o): Update.
3321 * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
3322 * config/spu/t-spu-elf (spu-c.o): Update.
3324 * config/sh/t-symbian (sh-c.o): Update.
3325 (symbian.o): Update.
3326 * config/sh/t-sh (sh-c.o): Update.
3327 * config/score/t-score-elf (score7.o, score3.o): Update.
3328 * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
3329 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
3330 * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
3331 * config/rs6000/t-rs6000 (rs6000-c.o): Update.
3333 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
3334 * config/m32c/t-m32c (m32c-pragma.o): Update.
3335 * config/ia64/t-ia64 (ia64-c.o): Update.
3336 * config/i386/x-mingw32 (host-mingw32.o): Update.
3337 * config/i386/x-i386 (driver-i386.o): Update.
3338 * config/i386/x-darwin (host-i386-darwin.o): Update.
3339 * config/i386/x-cygwin (host-cygwin.o): Update.
3340 * config/i386/t-nwld (nwld.o): Update.
3341 * config/i386/t-netware (netware.o): Update.
3342 * config/i386/t-interix (winnt.o): Update.
3343 * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
3344 * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
3345 msformat-c.o): Update.
3346 * config/bfin/t-bfin-linux (generated_files): Add
3347 linux-sysroot-suffix.h.
3348 * config/arm/t-wince-pe (pe.o): Update.
3349 * config/arm/t-strongarm-pe (pe.o): Update.
3350 * config/arm/t-pe (pe.o): Update.
3351 * config/arm/t-arm (arm-c.o): Update.
3352 * doc/install.texi (Prerequisites): Require make 3.80.
3353 * Makefile.in: Remove .o targets.
3354 (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
3355 (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
3356 (simple_generated_h, simple_generated_c): Move earlier.
3357 (generated_files): New variable.
3358 (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
3359 TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
3360 BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
3361 ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
3362 REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
3363 CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
3364 CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
3365 INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
3366 PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
3367 TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
3368 DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
3369 VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
3371 (COMPILE.base, COMPILE): New variables.
3372 (%.o): New pattern rule.
3373 (ALL_HOST_OBJS): New variable.
3374 (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
3375 (dummy-checksum.o, cc1-checksum.o): Remove.
3376 (DRIVER_SHLIB): New variable.
3377 (DRIVER_DEFINES): Use it.
3378 (gencondmd.c): Move out of build/.
3379 (s-conditions): Update.
3380 (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
3381 (ALL_BUILD_OBJS): Likewise.
3382 (build/%.o): Use BUILDCOMPILE.
3383 (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
3384 build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
3385 build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
3386 build/gencheck.o, build/gencodes.o, build/genconditions.o,
3387 build/genconfig.o, build/genconstants.o, build/genemit.o,
3388 build/genextract.o, build/genflags.o, build/genmddeps.o,
3389 build/genopinit.o, build/genoutput.o, build/genpeep.o,
3390 build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
3391 build/gen-protos.o, build/scan.o, build/fix-header.o,
3392 build/scan-decls.o): Simplify.
3393 (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
3394 cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
3395 prefix.o, toplev.o): Reduce to variable setting.
3396 (libbackend.o): Use COMPILE. Remove most dependencies. Move later.
3397 ($(out_object_file), gcc-options.o): New targets.
3398 ($(ALL_HOST_OBJS)): New target. Include dependency files.
3399 * configure: Rebuilt.
3400 * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
3401 * doc/sourcebuild.texi (Front End Directory): Document new variable.
3403 2008-03-25 Douglas Gregor <doug.gregor@gmail.com>
3405 * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
3406 complain when we hit an error, return ERROR_MARK_NODE.
3408 2008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
3410 * config/sh/constraints.md (Pso, Psz): New constraints.
3411 * config/sh/sh.c (print_operand): Add %V and %W operand codes.
3412 * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
3414 2008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
3416 * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
3417 * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
3419 2008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
3421 * config/sh/sh.md (prefetch): Add condition for SH2A target.
3422 (prefetch_sh2a): New.
3424 2008-03-25 Jayant Sonar <Jayant.sonar@kpitcummins.com>
3425 Naveen.H.S <naveen.hs@kpitcummins.com>
3427 * config/sh/constraints.md (I28): New constraint.
3428 * config/sh/sh.c (broken_move): Add support for movi20s.
3429 * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
3431 2008-03-25 Anil Paranjape <anil.paranjape@kpitcummins.com>
3432 Jayant Sonar <Jayant.sonar@kpitcummins.com>
3433 Naveen.H.S <naveen.hs@kpitcummins.com>
3435 * config/sh/sh.c (SH_ATTRIBUTES): Define.
3436 (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
3437 (print_operand): Handle resbank in %@ operand code.
3438 (sh_encode_section_info): New.
3439 (push_regs): Add conditions for resbank.
3440 (sh_expand_epilogue): Likewise.
3441 (sh_insert_attributes): Likewise.
3442 (sh_attribute_table): Likewise.
3443 (sh_handle_resbank_handler_attribute): New.
3444 (sh2a_handle_function_vector_handler_attribute): New.
3445 (sh2a_is_function_vector_call): New.
3446 (sh2a_get_function_vector_number): New.
3447 (sh2a_function_vector_p): New.
3448 (sh_cfun_resbank_handler_p): New.
3449 * config/sh/sh.md (calli): Emit jsr/n if possible.
3450 (calli_tbr_rel): New.
3451 (calli_pcrel): Emit jsr/n if possible.
3452 (return_i): Emit rts/n if possible.
3453 (call_valuei_tbr_rel): New.
3454 (call_valuei_pcrel): Add condition for SH2A target.
3455 (call_value): Likewise.
3456 * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
3457 (sh2a_get_function_vector_number): Likewise.
3458 (sh2a_is_function_vector_call): Likewise.
3459 * doc/extend.texi: Document TBR relative addressing of SH2A.
3460 (resbank): Add description for SH2A.
3462 2008-03-24 Richard Guenther <rguenther@suse.de>
3465 * gimplify.c (gimplify_modify_expr): For frontend type-correct
3466 pointer assignments change conversions according to middle-end rules.
3467 (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
3468 * configure.ac: Include type checking in yes.
3469 * configure: Regenerate.
3471 2008-03-24 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3473 * diagnostic.c (diagnostic_count_diagnostic): Delete.
3474 (diagnostic_report_diagnostic): Update. Handle ICEs here.
3476 2008-03-24 Nathan Sidwell <nathan@codesourcery.com>
3478 * gthr-vxworks.h (UNUSED): Define.
3480 2008-03-23 H.J. Lu <hongjiu.lu@intel.com>
3482 * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
3484 2008-03-23 Zuxy Meng <zuxy.meng@gmail.com>
3486 * doc/extend.texi (Function Attributes): Add missing comma in the
3487 example of the "alloc_size" attribute.
3489 2008-03-23 Uros Bizjak <ubizjak@gmail.com>
3492 2008-03-05 H.J. Lu <hongjiu.lu@intel.com>
3494 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
3497 2008-03-19 Uros Bizjak <ubizjak@gmail.com>
3500 * stor-layout.c (update_alignment_for_field): Set minimum alignment
3501 of the underlying type of a MS bitfield layout to the natural
3502 alignment of the type.
3504 2008-03-22 Uros Bizjak <ubizjak@gmail.com>
3506 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
3507 to their natural alignment to avoid store forwarding stalls.
3509 2008-03-22 Richard Guenther <rguenther@suse.de>
3511 * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
3512 For PHI nodes verify the address is invariant.
3513 * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
3514 (get_symbol_constant_value): Use is_gimple_min_invariant.
3515 (maybe_fold_stmt_indirect): Likewise.
3517 2008-03-22 Richard Sandiford <rsandifo@nildram.co.uk>
3519 PR rtl-optimization/33927
3520 * Makefile.in (dse.o): Depend on $(TM_P_H).
3521 * expr.h (extract_low_bits): Declare.
3522 * expmed.c (extract_low_bits): New function.
3523 * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
3524 * dse.c: Include tm_p.h.
3525 (find_shift_sequence): Remove the read_reg argument and return the
3526 read value. Emit the instructions instead of returning them.
3527 Iterate on new_mode rather than calculating it each time.
3528 Check MODES_TIEABLE_P. Use simplify_gen_subreg to convert the
3529 source to NEW_MODE and extract_low_bits to convert the shifted
3531 (replace_read): Allow the load and store to have different mode
3532 classes. Use extract_low_bits when SHIFT == 0. Create the shift
3533 or extraction instructions before trying the replacement. Update
3534 dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
3536 2008-03-22 Uros Bizjak <ubizjak@gmail.com>
3538 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
3539 to their natural alignment to avoid store forwarding stalls.
3541 2008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
3544 * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
3545 encouraging but not allowing gprs for input;
3546 change the input constraint to !f#r.
3547 (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
3549 change the output constraint to !f#r.
3551 2008-03-21 Uros Bizjak <ubizjak@gmail.com>
3554 * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
3555 corresponding post-reload splitters.
3556 ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
3557 when x87 FP math is selected.
3558 * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
3559 New function prototype.
3560 * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
3561 unreachable function to ease macroization of insn patterns.
3563 2008-03-21 Martin Jambor <mjambor@suse.cz>
3565 * tree-data-ref.c (dump_data_dependence_relation): Avoid data
3566 reference dumps if ddr is NULL or dependence is unknown.
3568 2008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
3570 * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
3571 unsigned extension into account.
3572 (ATOMIC_COMPARE_AND_SWAP): Likewise.
3573 (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
3574 Do computations on a scratch register.
3576 2008-03-21 Richard Guenther <rguenther@suse.de>
3578 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
3579 Use is_gimple_min_invariant instead of TREE_INVARIANT.
3580 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
3581 * tree-ssa-dom.c (record_equality): Likewise.
3582 * tree-inline.c (copy_body_r): Likewise.
3583 * tree-ssa-pre.c (make_values_for_stmt): Remove test for
3586 2008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
3588 * config/sh/sh.c (split_branches): Pass zero to redirect_jump
3589 as 'delete_unused' argument.
3591 2008-03-20 Richard Guenther <rguenther@suse.de>
3593 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
3594 special casing of constant qualifiers.
3595 * tree-ssa.c (useless_type_conversion_p_1): Instead do not
3596 care about them in general.
3597 * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
3598 regardless of their type.
3599 (fold_stmt_r): Forcefully fold *& if we end up with that.
3601 2008-03-20 Paul Brook <paul@codesourcery.com>
3603 * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
3604 * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
3606 * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
3608 (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
3609 * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
3611 2008-03-20 Volker Reichelt <v.reichelt@netcologne.de>
3613 * common.opt (Wmudflap): New option.
3614 * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
3615 (mx_register_decls): Likewise.
3616 (mudflap_finish_file): Likewise.
3617 * doc/invoke.texi: Document -Wno-mudflap.
3619 2008-03-20 Kai Tietz <kai.tietz@onevision.com>
3621 * c-format.c (replace_format_name_to_system_name): New.
3623 (convert_format_name_to_system_name): New.
3624 (decode_format_attr): Add use of convert_format_name_to_system_name.
3625 (format_types_orig): Add gnu_ prefix to names.
3626 (check_format_info_main): Special treating of \0 escaped names for
3627 supporting multi-character format specifiers as I32, I64.
3628 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
3629 (gnu_target_overrides_format_attributes): New.
3630 * c-format.h: Add structure target_ovr_attr to hold
3631 system specific formatter names.
3632 * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
3633 msformat-c.o file to c_target_objs and cxx_target_objs.
3634 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
3635 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
3636 (TARGET_N_FORMAT_TYPES): New.
3637 * config/i386/msformat-c.c: New.
3638 * config/i386/t-cygming: Add build rule for msformat-c.o.
3639 * doc/extend.texi: Add new format names gnu_* and ms_* and
3641 * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
3643 2008-03-20 Ira Rosen <irar@il.ibm.com>
3645 * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
3646 optimizations turned on under -O3.
3647 (ftree-vectorize): Add that the flag is turned on with -O3.
3649 2008-03-20 Ben Elliston <bje@au.ibm.com>
3651 * regmove.c (try_auto_increment): Fix spelling error in comment.
3652 * final.c (final_scan_insn): Likewise.
3654 2008-03-20 Uros Bizjak <ubizjak@gmail.com>
3657 * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
3658 allocator preferences for "y" and "r" class registers.
3659 ("*mov<mode>_internal"): Ditto.
3660 ("*movv2sf_internal_rex64"): Ditto.
3661 ("*movv2sf_internal"): Ditto.
3663 2008-03-19 Michael Matz <matz@suse.de>
3666 * calls.c (expand_call): Check overlap of arguments with call
3667 address for sibcalls.
3669 2008-03-19 Uros Bizjak <ubizjak@gmail.com>
3672 * stor-layout.c (update_alignment_for_field): Set minimum alignment
3673 of the underlying type of a MS bitfield layout to the natural
3674 alignment of the type.
3676 2008-03-19 Jan Hubicka <jh@suse.cz>
3679 * toplev.c (decode_d_option): Handle all CPP flags.
3680 * tree-vrp.c: Update tree_pass descriptors.
3681 * regrename.c: Update tree_pass descriptors.
3682 * fwprop.c: Update tree_pass descriptors.
3683 * doc/invoke.texi: Remove documentation of dropped -d? flags.
3684 * tree-into-ssa.c: Update tree_pass descriptors.
3685 * tree-dump.c: Update tree_pass descriptors.
3686 * tree-complex.c: Update tree_pass descriptors.
3687 * tree-dump.h: Update tree_pass descriptors.
3688 * see.c: Update tree_pass descriptors.
3689 * cgraphbuild.c: Update tree_pass descriptors.
3690 * tracer.c: Update tree_pass descriptors.
3691 * tree-loop-distribution.c: Update tree_pass descriptors.
3692 * cgraph.c: Update tree_pass descriptors.
3693 * postreload-gcse.c: Update tree_pass descriptors.
3694 * postreload.c: Update tree_pass descriptors.
3695 * tree-ssa-loop-ch.c: Update tree_pass descriptors.
3696 * tree-tailcall.c: Update tree_pass descriptors.
3697 * tree-pass.h (tree_opt_pass): Rename to ...
3698 (opt_pass) ... this one; add "type" field and remove letter field.
3699 (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
3700 (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
3701 all_lowering_passes): Update declaration.
3702 * ipa-cp.c: Update tree_pass descriptors.
3703 * final.c: Update tree_pass descriptors.
3704 * omp-low.c: Update tree_pass descriptors.
3705 * tree-ssa-dse.c: Update tree_pass descriptors.
3706 * ipa-reference.c: Update tree_pass descriptors.
3707 * tree-ssa-uncprop.c: Update tree_pass descriptors.
3708 * auto-inc-dec.c: Update tree_pass descriptors.
3709 * reorg.c: Update tree_pass descriptors.
3710 * cgraphunit.c: Update tree_pass descriptors.
3711 * tree-ssa-copyrename.c: Update tree_pass descriptors.
3712 * tree-ssa-ccp.c: Update tree_pass descriptors.
3713 * df-core.c: Update tree_pass descriptors.
3714 * mode-switching.c: Update tree_pass descriptors.
3715 * tree-nomudflap.c: Update tree_pass descriptors.
3716 * modulo-sched.c: Update tree_pass descriptors.
3717 * ipa-pure-const.c: Update tree_pass descriptors.
3718 * cse.c: Update tree_pass descriptors.
3719 * web.c: Update tree_pass descriptors.
3720 * tree-stdarg.c: Update tree_pass descriptors.
3721 * tree-ssa-math-opts.c: Update tree_pass descriptors.
3722 * tree-ssa-dom.c: Update tree_pass descriptors.
3723 * tree-nrv.c: Update tree_pass descriptors.
3724 * tree-ssa-alias.c: Update tree_pass descriptors.
3725 * loop-init.c: Update tree_pass descriptors.
3726 * gimple-low.c: Update tree_pass descriptors.
3727 * ipa-inline.c: Update tree_pass descriptors.
3728 * tree-ssa-sink.c: Update tree_pass descriptors.
3729 * global.c: Update tree_pass descriptors.
3730 * ifcvt.c: Update tree_pass descriptors.
3731 * jump.c: Update tree_pass descriptors.
3732 * predict.c: Update tree_pass descriptors.
3733 * tree-ssa-loop.c: Update tree_pass descriptors.
3734 * recog.c: Update tree_pass descriptors.
3735 * dse.c: Update tree_pass descriptors.
3736 * tree-ssa-ifcombine.c: Update tree_pass descriptors.
3737 * tree-eh.c: Update tree_pass descriptors.
3738 * regmove.c: Update tree_pass descriptors.
3740 * function.c: Update tree_pass descriptors.
3741 * tree-vectorizer.c: Update tree_pass descriptors.
3742 * gcse.c: Update tree_pass descriptors.
3743 * ipa-type-escape.c: Update tree_pass descriptors.
3744 * tree-if-conv.c: Update tree_pass descriptors.
3745 * init-regs.c: Update tree_pass descriptors.
3746 * ipa.c: Update tree_pass descriptors.
3747 * tree-ssa-phiopt.c: Update tree_pass descriptors.
3748 * rtl-factoring.c: Update tree_pass descriptors.
3749 * lower-subreg.c: Update tree_pass descriptors.
3750 * bt-load.c: Update tree_pass descriptors.
3751 * tree-dfa.c: Update tree_pass descriptors.
3752 * except.c: Update tree_pass descriptors.
3753 * emit-rtl.c: Update tree_pass descriptors.
3754 * cfgexpand.c: Update tree_pass descriptors.
3755 * tree-cfgcleanup.c: Update tree_pass descriptors.
3756 * cfgcleanup.c: Update tree_pass descriptors.
3757 * tree-ssa-pre.c: Update tree_pass descriptors.
3758 * tree-sra.c: Update tree_pass descriptors.
3759 * tree-mudflap.c: Update tree_pass descriptors.
3760 * tree-ssa-copy.c: Update tree_pass descriptors.
3761 * cfglayout.c: Update tree_pass descriptors.
3762 * tree-ssa-forwprop.c: Update tree_pass descriptors.
3763 * tree-ssa-dce.c: Update tree_pass descriptors.
3764 * tree-ssa.c: Update tree_pass descriptors.
3765 * regclass.c: Update tree_pass descriptors.
3766 * integrate.c: Update tree_pass descriptors.
3767 * tree-optimize.c: Update tree_pass descriptors.
3768 * tree-ssa-phiprop.c: Update tree_pass descriptors.
3769 * tree-object-size.c: Update tree_pass descriptors.
3770 * combine.c: Update tree_pass descriptors.
3771 * tree-outof-ssa.c: Update tree_pass descriptors.
3772 * bb-reorder.c: Update tree_pass descriptors.
3773 * stack-ptr-mod.c: Update tree_pass descriptors.
3774 * var-tracking.c: Update tree_pass descriptors.
3775 * tree-profile.c: Update tree_pass descriptors.
3776 * tree-vect-generic.c: Update tree_pass descriptors.
3777 * reg-stack.c: Update tree_pass descriptors.
3778 * sched-rgn.c: Update tree_pass descriptors.
3779 * tree-ssa-structalias.c: Update tree_pass descriptors.
3780 * tree-cfg.c: Update tree_pass descriptors.
3781 * passes.c (current_pass): Update declaration.
3782 (finish_optimization_passes): Update.
3783 (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
3784 (register_one_dump_file, register_dump_files_1, next_pass_1):
3786 (init_optimization_passes): Update handling of new types.
3787 (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
3788 * ipa-struct-reorg.c: Update tree_pass descriptors.
3789 * tree-ssa-reassoc.c: Update tree_pass descriptors.
3790 * combine-stack-adj.c: Update tree_pass descriptors.
3791 * cfgrtl.c: Update tree_pass descriptors.
3792 * dce.c: Update tree_pass descriptors.
3793 * tree-ssanames.c: Update tree_pass descriptors.
3795 2008-03-19 Richard Guenther <rguenther@suse.de>
3798 * tree-ssa.c (walk_data): New structure.
3799 (warn_uninitialized_var): If not always_executed warn with "maybe"
3801 (execute_early_warn_uninitialized): Compute post-dominators.
3802 Initialize always_executed before processing each basic block.
3804 2008-03-18 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
3807 * config/i386/i386.c (x86_this_parameter): Calculate correct location
3808 of "this" pointer when "regparm = N" or "fastcall" is in effect.
3810 2008-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3812 * doc/include/texinfo.tex: Update to version 2008-03-17.10.
3814 2008-03-18 Paolo Bonzini <bonzini@gnu.org>
3816 * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
3818 (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
3819 (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
3820 is true. Add "&& !ignore" condition to reduce_bit_field. Modify
3821 target after ignore has been set, and move there also the commputation
3822 of subtarget and original_target.
3823 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
3824 (LANG_HOOKS_INITIALIZER): Remove it.
3825 * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
3827 2008-03-18 Richard Guenther <rguenther@suse.de>
3829 * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
3830 found an expression with constants, note that in the VN for the lhs.
3831 * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
3832 fold them to constants if possible. Run cleanup_cfg if done so.
3833 (execute_pre): Return todo.
3835 (execute_fre): Likewise.
3836 * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
3838 (get_prop_source_stmt): Look through pointer conversions.
3840 2008-03-18 Jan Hubicka <jh@suse.cz>
3842 * tree-pretty-print.c: Include predict.h.
3843 (dump_generic_node): Dump predictor.
3844 * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
3845 * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
3846 * gimple-low.c (lower_stmt): Likewise.
3847 * expr.c (expand_expr_real): Likewise.
3848 * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
3850 (build_predict_expr, build_predict_expr): New.
3851 * predict.h (predictor_name, build_predict_expr): Update.
3852 * c-typeck.c (c_finish_bc_stmt): Add prediction.
3853 * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
3854 * predict.def (PRED_CONTINUE): Update hitrate.
3855 * tree.def (PREDICT_EXPR): Define.
3856 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
3857 do not handle BIND_EXPR.
3858 * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
3859 * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
3860 * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
3863 2008-03-18 Michael Matz <matz@suse.de>
3865 * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
3867 2008-03-18 Richard Guenther <rguenther@suse.de>
3869 * tree-gimple.h (is_gimple_invariant_address): Declare.
3870 (is_gimple_constant): Likewise.
3871 * tree-gimple.c (is_gimple_constant): New function.
3872 (is_gimple_invariant_address): Likewise.
3873 (is_gimple_min_invariant): Implement in terms of is_gimple_constant
3874 and is_gimple_invariant_address.
3875 * tree-ssa-loop-niter.c (expand_simple_operations): Revert
3877 * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
3878 an addressable base.
3880 2008-03-18 Jakub Jelinek <jakub@redhat.com>
3883 * gimplify.c (gimplify_expr): Gimplify second operand of
3886 2008-03-17 Richard Guenther <rguenther@suse.de>
3888 PR tree-optimization/19637
3889 * fold-const.c (fold_unary): Remove restrictions of removing
3890 intermediate pointer-conversions (P2)(P1)P0.
3891 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
3892 conversion to void pointer.
3893 (get_maxval_strlen): Handle addresses of the form &(*p)[0].
3895 2008-03-16 James E. Wilson <wilson@tuliptree.org>
3898 * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
3899 emulated thread local variables.
3901 2008-03-16 Richard Guenther <rguenther@suse.de>
3904 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
3905 expand TREE_INVARIANT operations that are not gimple invariant.
3907 2008-03-16 Hans-Peter Nilsson <hp@axis.com>
3909 * doc/extend.texi (Alignment): Say that the ABI controls
3910 the __alignof__ for non-strict-alignment targets rather
3911 than being a recommendation.
3913 2008-03-15 Paul Brook <paul@codesourcery.com>
3915 * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
3917 (arm_output_fn_unwind): Mark functions that can not be unwound.
3919 2008-03-15 Paul Brook <paul@codesourcery.com>
3921 * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
3922 extension instructions.
3924 2008-03-15 Richard Guenther <rguenther@suse.de>
3926 * tree-ssa-ccp.c (ccp_fold): Also read from constant values
3927 and fold constant aggregate refs.
3928 (fold_const_aggregate_ref): Handle string constants
3929 and constructors in ARRAY_REFs. Handle INDIRECT_REF.
3930 (evaluate_stmt): Simplify now that ccp_fold folds constant
3933 2008-03-15 Paul Brook <paul@codesourcery.com>
3935 * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
3936 (extzv): Use gen_extzv_t2.
3937 (insv_t2, insv_zero, extv, extzv_t2): New patterns.
3939 2008-03-15 Richard Guenther <rguenther@suse.de>
3941 * tree-ssa-ccp.c (get_symbol_constant_value): Export.
3942 (fold_const_aggregate_ref): Likewise.
3943 (get_value): Return NULL if we don't have any values.
3944 (ccp_finalize): Set const_val to NULL after freeing it.
3945 * tree-flow.h (get_symbol_constant_value): Declare.
3946 (fold_const_aggregate_ref): Likewise.
3947 * tree-ssa-sccvn.c (try_to_simplify): Use them.
3949 2008-03-15 Richard Guenther <rguenther@suse.de>
3952 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
3953 to not produce negative array indices if not allowed. Add
3954 parameter to indicate that.
3955 (maybe_fold_offset_to_component_ref): Allow negative array
3956 indices only for the first member of a structure.
3957 (maybe_fold_offset_to_reference): Allow negative array indices.
3958 (maybe_fold_stmt_addition): Likewise.
3960 2008-03-15 Bjoern Haase <bjoern.m.haase@web.de>
3961 Anatoly Sokolov <aesok@post.ru>
3963 * config/avr/avr.c (avr_arch_types): Add avr6 entry.
3964 (avr_arch): Add ARCH_AVR6.
3965 (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
3966 (initial_elimination_offset): Initialize and use 'avr_pc_size'
3967 instead of fixed value 2.
3968 (print_operand_address): Use gs() asm specifier instead of pm().
3969 (avr_assemble_integer): (Ditto.).