OSDN Git Service

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