OSDN Git Service

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