OSDN Git Service

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