OSDN Git Service

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