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
3412         * config/x-solaris (host-solaris.o): Update.
3413         * config/x-linux (host-linux.o): Update.
3414         * config/x-hpux (host-hpux.o): Update.
3415         * config/x-darwin (host-darwin.o): Update.
3416         * config/v850/t-v850e (v850-c.o): Update.
3417         * config/v850/t-v850 (v850-c.o): Update.
3418         * config/t-vxworks (vxworks.o): Update.
3419         * config/t-sol2 (sol2-c.o, sol2.o): Update.
3420         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
3421         * config/spu/t-spu-elf (spu-c.o): Update.
3422         (spu.o): Remove.
3423         * config/sh/t-symbian (sh-c.o): Update.
3424         (symbian.o): Update.
3425         * config/sh/t-sh (sh-c.o): Update.
3426         * config/score/t-score-elf (score7.o, score3.o): Update.
3427         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
3428         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
3429         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
3430         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
3431         (rs6000.o): Remove.
3432         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
3433         * config/m32c/t-m32c (m32c-pragma.o): Update.
3434         * config/ia64/t-ia64 (ia64-c.o): Update.
3435         * config/i386/x-mingw32 (host-mingw32.o): Update.
3436         * config/i386/x-i386 (driver-i386.o): Update.
3437         * config/i386/x-darwin (host-i386-darwin.o): Update.
3438         * config/i386/x-cygwin (host-cygwin.o): Update.
3439         * config/i386/t-nwld (nwld.o): Update.
3440         * config/i386/t-netware (netware.o): Update.
3441         * config/i386/t-interix (winnt.o): Update.
3442         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
3443         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
3444         msformat-c.o): Update.
3445         * config/bfin/t-bfin-linux (generated_files): Add
3446         linux-sysroot-suffix.h.
3447         * config/arm/t-wince-pe (pe.o): Update.
3448         * config/arm/t-strongarm-pe (pe.o): Update.
3449         * config/arm/t-pe (pe.o): Update.
3450         * config/arm/t-arm (arm-c.o): Update.
3451         * doc/install.texi (Prerequisites): Require make 3.80.
3452         * Makefile.in: Remove .o targets.
3453         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
3454         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
3455         (simple_generated_h, simple_generated_c): Move earlier.
3456         (generated_files): New variable.
3457         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
3458         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
3459         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
3460         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
3461         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
3462         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
3463         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
3464         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
3465         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
3466         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
3467         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
3468         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
3469         (.c.o): Remove.
3470         (COMPILE.base, COMPILE): New variables.
3471         (%.o): New pattern rule.
3472         (ALL_HOST_OBJS): New variable.
3473         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
3474         (dummy-checksum.o, cc1-checksum.o): Remove.
3475         (DRIVER_SHLIB): New variable.
3476         (DRIVER_DEFINES): Use it.
3477         (gencondmd.c): Move out of build/.
3478         (s-conditions): Update.
3479         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
3480         (ALL_BUILD_OBJS): Likewise.
3481         (build/%.o): Use BUILDCOMPILE.
3482         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
3483         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
3484         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
3485         build/gencheck.o, build/gencodes.o, build/genconditions.o,
3486         build/genconfig.o, build/genconstants.o, build/genemit.o,
3487         build/genextract.o, build/genflags.o, build/genmddeps.o,
3488         build/genopinit.o, build/genoutput.o, build/genpeep.o,
3489         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
3490         build/gen-protos.o, build/scan.o, build/fix-header.o,
3491         build/scan-decls.o): Simplify.
3492         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
3493         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
3494         prefix.o, toplev.o): Reduce to variable setting.
3495         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
3496         ($(out_object_file), gcc-options.o): New targets.
3497         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
3498         * configure: Rebuilt.
3499         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
3500         * doc/sourcebuild.texi (Front End Directory): Document new variable.
3501
3502 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
3503
3504         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
3505         complain when we hit an error, return ERROR_MARK_NODE.
3506
3507 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
3508
3509         * config/sh/constraints.md (Pso, Psz): New constraints.
3510         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
3511         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
3512
3513 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
3514
3515         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
3516         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
3517
3518 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
3519
3520         * config/sh/sh.md (prefetch): Add condition for SH2A target.
3521         (prefetch_sh2a): New.   
3522
3523 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
3524             Naveen.H.S  <naveen.hs@kpitcummins.com>
3525
3526         * config/sh/constraints.md (I28): New constraint.
3527         * config/sh/sh.c (broken_move): Add support for movi20s.
3528         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
3529
3530 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
3531             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
3532             Naveen.H.S  <naveen.hs@kpitcummins.com>
3533
3534         * config/sh/sh.c (SH_ATTRIBUTES): Define.
3535         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
3536         (print_operand): Handle resbank in %@ operand code.
3537         (sh_encode_section_info): New.
3538         (push_regs): Add conditions for resbank.
3539         (sh_expand_epilogue): Likewise.
3540         (sh_insert_attributes): Likewise.
3541         (sh_attribute_table): Likewise.
3542         (sh_handle_resbank_handler_attribute): New.
3543         (sh2a_handle_function_vector_handler_attribute): New.
3544         (sh2a_is_function_vector_call): New.
3545         (sh2a_get_function_vector_number): New.
3546         (sh2a_function_vector_p): New.
3547         (sh_cfun_resbank_handler_p): New.
3548         * config/sh/sh.md (calli): Emit jsr/n if possible.
3549         (calli_tbr_rel): New.
3550         (calli_pcrel): Emit jsr/n if possible.
3551         (return_i): Emit rts/n if possible.
3552         (call_valuei_tbr_rel): New.
3553         (call_valuei_pcrel): Add condition for SH2A target.
3554         (call_value): Likewise.
3555         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
3556         (sh2a_get_function_vector_number): Likewise.
3557         (sh2a_is_function_vector_call): Likewise.
3558         * doc/extend.texi: Document TBR relative addressing of SH2A.
3559         (resbank): Add description for SH2A.
3560
3561 2008-03-24  Richard Guenther  <rguenther@suse.de>
3562
3563         PR c/22371
3564         * gimplify.c (gimplify_modify_expr): For frontend type-correct
3565         pointer assignments change conversions according to middle-end rules.
3566         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
3567         * configure.ac: Include type checking in yes.
3568         * configure: Regenerate.
3569
3570 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3571
3572         * diagnostic.c (diagnostic_count_diagnostic): Delete.
3573         (diagnostic_report_diagnostic): Update. Handle ICEs here.
3574         
3575 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
3576
3577         * gthr-vxworks.h (UNUSED): Define.
3578
3579 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
3580
3581         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
3582
3583 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
3584
3585         * doc/extend.texi (Function Attributes): Add missing comma in the
3586         example of the "alloc_size" attribute.
3587         
3588 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
3589
3590         Revert:
3591         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
3592
3593         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
3594         32bit host.
3595
3596         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
3597
3598         PR target/35496
3599         * stor-layout.c (update_alignment_for_field): Set minimum alignment
3600         of the underlying type of a MS bitfield layout to the natural
3601         alignment of the type.
3602
3603         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
3604
3605         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
3606         to their natural alignment to avoid store forwarding stalls.
3607
3608 2008-03-22  Richard Guenther  <rguenther@suse.de>
3609
3610         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
3611         For PHI nodes verify the address is invariant.
3612         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
3613         (get_symbol_constant_value): Use is_gimple_min_invariant.
3614         (maybe_fold_stmt_indirect): Likewise.
3615
3616 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
3617
3618         PR rtl-optimization/33927
3619         * Makefile.in (dse.o): Depend on $(TM_P_H).
3620         * expr.h (extract_low_bits): Declare.
3621         * expmed.c (extract_low_bits): New function.
3622         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
3623         * dse.c: Include tm_p.h.
3624         (find_shift_sequence): Remove the read_reg argument and return the
3625         read value.  Emit the instructions instead of returning them.
3626         Iterate on new_mode rather than calculating it each time.
3627         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
3628         source to NEW_MODE and extract_low_bits to convert the shifted
3629         value to READ_MODE.
3630         (replace_read): Allow the load and store to have different mode
3631         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
3632         or extraction instructions before trying the replacement.  Update
3633         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
3634
3635 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
3636
3637         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
3638         to their natural alignment to avoid store forwarding stalls.
3639
3640 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3641
3642         PR target/27946
3643         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
3644         encouraging but not allowing gprs for input;
3645         change the input constraint to !f#r.
3646         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
3647         gprs for output;
3648         change the output constraint to !f#r.
3649
3650 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
3651
3652         PR target/13958
3653         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
3654         corresponding post-reload splitters.
3655         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
3656         when x87 FP math is selected.
3657         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
3658         New function prototype.
3659         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
3660         unreachable function to ease macroization of insn patterns.
3661
3662 2008-03-21  Martin Jambor  <mjambor@suse.cz>
3663
3664         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
3665         reference dumps if ddr is NULL or dependence is unknown.
3666
3667 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
3668
3669         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
3670         unsigned extension into account.
3671         (ATOMIC_COMPARE_AND_SWAP): Likewise.
3672         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
3673         Do computations on a scratch register.
3674
3675 2008-03-21  Richard Guenther  <rguenther@suse.de>
3676
3677         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
3678         Use is_gimple_min_invariant instead of TREE_INVARIANT.
3679         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
3680         * tree-ssa-dom.c (record_equality): Likewise.
3681         * tree-inline.c (copy_body_r): Likewise.
3682         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
3683         TREE_INVARIANT.
3684
3685 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
3686
3687         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
3688         as 'delete_unused' argument.
3689
3690 2008-03-20  Richard Guenther  <rguenther@suse.de>
3691
3692         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
3693         special casing of constant qualifiers.
3694         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
3695         care about them in general.
3696         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
3697         regardless of their type.
3698         (fold_stmt_r): Forcefully fold *& if we end up with that.
3699
3700 2008-03-20  Paul Brook  <paul@codesourcery.com>
3701
3702         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
3703         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
3704         linker flags.
3705         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
3706         definition.
3707         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
3708         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
3709
3710 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
3711
3712         * common.opt (Wmudflap): New option.
3713         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
3714         (mx_register_decls): Likewise.
3715         (mudflap_finish_file): Likewise.
3716         * doc/invoke.texi: Document -Wno-mudflap.
3717
3718 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
3719
3720         * c-format.c (replace_format_name_to_system_name): New.
3721         (cmp_attribs): New.
3722         (convert_format_name_to_system_name): New.
3723         (decode_format_attr): Add use of convert_format_name_to_system_name.
3724         (format_types_orig): Add gnu_ prefix to names.
3725         (check_format_info_main): Special treating of \0 escaped names for
3726         supporting multi-character format specifiers as I32, I64.
3727         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
3728         (gnu_target_overrides_format_attributes): New.
3729         * c-format.h: Add structure target_ovr_attr to hold
3730         system specific formatter names.
3731         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
3732         msformat-c.o file to c_target_objs and cxx_target_objs.
3733         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
3734         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
3735         (TARGET_N_FORMAT_TYPES): New.
3736         * config/i386/msformat-c.c: New.
3737         * config/i386/t-cygming: Add build rule for msformat-c.o.
3738         * doc/extend.texi: Add new format names gnu_* and ms_* and
3739         further details.
3740         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
3741
3742 2008-03-20  Ira Rosen  <irar@il.ibm.com>
3743
3744         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
3745         optimizations turned on under -O3.
3746         (ftree-vectorize): Add that the flag is turned on with -O3.
3747
3748 2008-03-20  Ben Elliston  <bje@au.ibm.com>
3749
3750         * regmove.c (try_auto_increment): Fix spelling error in comment.
3751         * final.c (final_scan_insn): Likewise.
3752
3753 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
3754
3755         PR target/14552
3756         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
3757         allocator preferences for "y" and "r" class registers.
3758         ("*mov<mode>_internal"): Ditto.
3759         ("*movv2sf_internal_rex64"): Ditto.
3760         ("*movv2sf_internal"): Ditto.
3761
3762 2008-03-19  Michael Matz  <matz@suse.de>
3763
3764         PR middle-end/35616
3765         * calls.c (expand_call): Check overlap of arguments with call
3766         address for sibcalls.
3767
3768 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
3769
3770         PR target/35496
3771         * stor-layout.c (update_alignment_for_field): Set minimum alignment
3772         of the underlying type of a MS bitfield layout to the natural
3773         alignment of the type.
3774
3775 2008-03-19  Jan Hubicka  <jh@suse.cz>
3776
3777         PR other/35094
3778         * toplev.c (decode_d_option): Handle all CPP flags.
3779         * tree-vrp.c: Update tree_pass descriptors.
3780         * regrename.c: Update tree_pass descriptors.
3781         * fwprop.c: Update tree_pass descriptors.
3782         * doc/invoke.texi: Remove documentation of dropped -d? flags.
3783         * tree-into-ssa.c: Update tree_pass descriptors.
3784         * tree-dump.c: Update tree_pass descriptors.
3785         * tree-complex.c: Update tree_pass descriptors.
3786         * tree-dump.h: Update tree_pass descriptors.
3787         * see.c: Update tree_pass descriptors.
3788         * cgraphbuild.c: Update tree_pass descriptors.
3789         * tracer.c: Update tree_pass descriptors.
3790         * tree-loop-distribution.c: Update tree_pass descriptors.
3791         * cgraph.c: Update tree_pass descriptors.
3792         * postreload-gcse.c: Update tree_pass descriptors.
3793         * postreload.c: Update tree_pass descriptors.
3794         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
3795         * tree-tailcall.c: Update tree_pass descriptors.
3796         * tree-pass.h (tree_opt_pass): Rename to ...
3797         (opt_pass) ... this one; add "type" field and remove letter field.
3798         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
3799         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
3800         all_lowering_passes): Update declaration.
3801         * ipa-cp.c: Update tree_pass descriptors.
3802         * final.c: Update tree_pass descriptors.
3803         * omp-low.c: Update tree_pass descriptors.
3804         * tree-ssa-dse.c: Update tree_pass descriptors.
3805         * ipa-reference.c: Update tree_pass descriptors.
3806         * tree-ssa-uncprop.c: Update tree_pass descriptors.
3807         * auto-inc-dec.c: Update tree_pass descriptors.
3808         * reorg.c: Update tree_pass descriptors.
3809         * cgraphunit.c: Update tree_pass descriptors.
3810         * tree-ssa-copyrename.c: Update tree_pass descriptors.
3811         * tree-ssa-ccp.c: Update tree_pass descriptors.
3812         * df-core.c: Update tree_pass descriptors.
3813         * mode-switching.c: Update tree_pass descriptors.
3814         * tree-nomudflap.c: Update tree_pass descriptors.
3815         * modulo-sched.c: Update tree_pass descriptors.
3816         * ipa-pure-const.c: Update tree_pass descriptors.
3817         * cse.c: Update tree_pass descriptors.
3818         * web.c: Update tree_pass descriptors.
3819         * tree-stdarg.c: Update tree_pass descriptors.
3820         * tree-ssa-math-opts.c: Update tree_pass descriptors.
3821         * tree-ssa-dom.c: Update tree_pass descriptors.
3822         * tree-nrv.c: Update tree_pass descriptors.
3823         * tree-ssa-alias.c: Update tree_pass descriptors.
3824         * loop-init.c: Update tree_pass descriptors.
3825         * gimple-low.c: Update tree_pass descriptors.
3826         * ipa-inline.c: Update tree_pass descriptors.
3827         * tree-ssa-sink.c: Update tree_pass descriptors.
3828         * global.c: Update tree_pass descriptors.
3829         * ifcvt.c: Update tree_pass descriptors.
3830         * jump.c: Update tree_pass descriptors.
3831         * predict.c: Update tree_pass descriptors.
3832         * tree-ssa-loop.c: Update tree_pass descriptors.
3833         * recog.c: Update tree_pass descriptors.
3834         * dse.c: Update tree_pass descriptors.
3835         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
3836         * tree-eh.c: Update tree_pass descriptors.
3837         * regmove.c: Update tree_pass descriptors.
3838         * local-alloc.c
3839         * function.c: Update tree_pass descriptors.
3840         * tree-vectorizer.c: Update tree_pass descriptors.
3841         * gcse.c: Update tree_pass descriptors.
3842         * ipa-type-escape.c: Update tree_pass descriptors.
3843         * tree-if-conv.c: Update tree_pass descriptors.
3844         * init-regs.c: Update tree_pass descriptors.
3845         * ipa.c: Update tree_pass descriptors.
3846         * tree-ssa-phiopt.c: Update tree_pass descriptors.
3847         * rtl-factoring.c: Update tree_pass descriptors.
3848         * lower-subreg.c: Update tree_pass descriptors.
3849         * bt-load.c: Update tree_pass descriptors.
3850         * tree-dfa.c: Update tree_pass descriptors.
3851         * except.c: Update tree_pass descriptors.
3852         * emit-rtl.c: Update tree_pass descriptors.
3853         * cfgexpand.c: Update tree_pass descriptors.
3854         * tree-cfgcleanup.c: Update tree_pass descriptors.
3855         * cfgcleanup.c: Update tree_pass descriptors.
3856         * tree-ssa-pre.c: Update tree_pass descriptors.
3857         * tree-sra.c: Update tree_pass descriptors.
3858         * tree-mudflap.c: Update tree_pass descriptors.
3859         * tree-ssa-copy.c: Update tree_pass descriptors.
3860         * cfglayout.c: Update tree_pass descriptors.
3861         * tree-ssa-forwprop.c: Update tree_pass descriptors.
3862         * tree-ssa-dce.c: Update tree_pass descriptors.
3863         * tree-ssa.c: Update tree_pass descriptors.
3864         * regclass.c: Update tree_pass descriptors.
3865         * integrate.c: Update tree_pass descriptors.
3866         * tree-optimize.c: Update tree_pass descriptors.
3867         * tree-ssa-phiprop.c: Update tree_pass descriptors.
3868         * tree-object-size.c: Update tree_pass descriptors.
3869         * combine.c: Update tree_pass descriptors.
3870         * tree-outof-ssa.c: Update tree_pass descriptors.
3871         * bb-reorder.c: Update tree_pass descriptors.
3872         * stack-ptr-mod.c: Update tree_pass descriptors.
3873         * var-tracking.c: Update tree_pass descriptors.
3874         * tree-profile.c: Update tree_pass descriptors.
3875         * tree-vect-generic.c: Update tree_pass descriptors.
3876         * reg-stack.c: Update tree_pass descriptors.
3877         * sched-rgn.c: Update tree_pass descriptors.
3878         * tree-ssa-structalias.c: Update tree_pass descriptors.
3879         * tree-cfg.c: Update tree_pass descriptors.
3880         * passes.c (current_pass): Update declaration.
3881         (finish_optimization_passes): Update.
3882         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
3883         (register_one_dump_file, register_dump_files_1, next_pass_1):
3884         Update arguments.
3885         (init_optimization_passes): Update handling of new types.
3886         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
3887         * ipa-struct-reorg.c: Update tree_pass descriptors.
3888         * tree-ssa-reassoc.c: Update tree_pass descriptors.
3889         * combine-stack-adj.c: Update tree_pass descriptors.
3890         * cfgrtl.c: Update tree_pass descriptors.
3891         * dce.c: Update tree_pass descriptors.
3892         * tree-ssanames.c: Update tree_pass descriptors.
3893
3894 2008-03-19  Richard Guenther  <rguenther@suse.de>
3895
3896         PR middle-end/35609
3897         * tree-ssa.c (walk_data): New structure.
3898         (warn_uninitialized_var): If not always_executed warn with "maybe"
3899         instead of "is".
3900         (execute_early_warn_uninitialized): Compute post-dominators.
3901         Initialize always_executed before processing each basic block.
3902
3903 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
3904
3905         PR target/35504
3906         * config/i386/i386.c (x86_this_parameter): Calculate correct location
3907         of "this" pointer when "regparm = N" or "fastcall" is in effect.
3908
3909 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3910
3911         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
3912
3913 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
3914
3915         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
3916         is true.
3917         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
3918         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
3919         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
3920         target after ignore has been set, and move there also the commputation
3921         of subtarget and original_target.
3922         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
3923         (LANG_HOOKS_INITIALIZER): Remove it.
3924         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
3925
3926 2008-03-18  Richard Guenther  <rguenther@suse.de>
3927
3928         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
3929         found an expression with constants, note that in the VN for the lhs.
3930         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
3931         fold them to constants if possible.  Run cleanup_cfg if done so.
3932         (execute_pre): Return todo.
3933         (do_pre): Likewise.
3934         (execute_fre): Likewise.
3935         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
3936         of constants.
3937         (get_prop_source_stmt): Look through pointer conversions.
3938
3939 2008-03-18  Jan Hubicka  <jh@suse.cz>
3940
3941         * tree-pretty-print.c: Include predict.h.
3942         (dump_generic_node): Dump predictor.
3943         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
3944         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
3945         * gimple-low.c (lower_stmt): Likewise.
3946         * expr.c (expand_expr_real): Likewise.
3947         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
3948         them.
3949         (build_predict_expr, build_predict_expr): New.
3950         * predict.h (predictor_name, build_predict_expr): Update.
3951         * c-typeck.c (c_finish_bc_stmt): Add prediction.
3952         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
3953         * predict.def (PRED_CONTINUE): Update hitrate.
3954         * tree.def (PREDICT_EXPR): Define.
3955         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
3956         do not handle BIND_EXPR.
3957         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
3958         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
3959         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
3960         operands.
3961
3962 2008-03-18  Michael Matz  <matz@suse.de>
3963
3964         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
3965
3966 2008-03-18  Richard Guenther  <rguenther@suse.de>
3967
3968         * tree-gimple.h (is_gimple_invariant_address): Declare.
3969         (is_gimple_constant): Likewise.
3970         * tree-gimple.c (is_gimple_constant): New function.
3971         (is_gimple_invariant_address): Likewise.
3972         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
3973         and is_gimple_invariant_address.
3974         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
3975         previous change.
3976         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
3977         an addressable base.
3978
3979 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
3980
3981         PR middle-end/35611
3982         * gimplify.c (gimplify_expr): Gimplify second operand of
3983         OMP_ATOMIC_LOAD.
3984
3985 2008-03-17  Richard Guenther  <rguenther@suse.de>
3986
3987         PR tree-optimization/19637
3988         * fold-const.c (fold_unary): Remove restrictions of removing
3989         intermediate pointer-conversions (P2)(P1)P0.
3990         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
3991         conversion to void pointer.
3992         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
3993
3994 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
3995
3996         PR debug/31510
3997         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
3998         emulated thread local variables.
3999
4000 2008-03-16  Richard Guenther  <rguenther@suse.de>
4001
4002         PR middle-end/35607
4003         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
4004         expand TREE_INVARIANT operations that are not gimple invariant.
4005
4006 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
4007
4008         * doc/extend.texi (Alignment): Say that the ABI controls
4009         the __alignof__ for non-strict-alignment targets rather
4010         than being a recommendation.
4011
4012 2008-03-15  Paul Brook  <paul@codesourcery.com>
4013
4014         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
4015         annotations.
4016         (arm_output_fn_unwind): Mark functions that can not be unwound.
4017
4018 2008-03-15  Paul Brook  <paul@codesourcery.com>
4019
4020         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
4021         extension instructions.
4022
4023 2008-03-15  Richard Guenther  <rguenther@suse.de>
4024
4025         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
4026         and fold constant aggregate refs.
4027         (fold_const_aggregate_ref): Handle string constants
4028         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
4029         (evaluate_stmt): Simplify now that ccp_fold folds constant
4030         aggregate refs.
4031
4032 2008-03-15  Paul Brook  <paul@codesourcery.com>
4033
4034         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
4035         (extzv): Use gen_extzv_t2.
4036         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
4037
4038 2008-03-15  Richard Guenther  <rguenther@suse.de>
4039
4040         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
4041         (fold_const_aggregate_ref): Likewise.
4042         (get_value): Return NULL if we don't have any values.
4043         (ccp_finalize): Set const_val to NULL after freeing it.
4044         * tree-flow.h (get_symbol_constant_value): Declare.
4045         (fold_const_aggregate_ref): Likewise.
4046         * tree-ssa-sccvn.c (try_to_simplify): Use them.
4047
4048 2008-03-15  Richard Guenther  <rguenther@suse.de>
4049
4050         PR middle-end/35593
4051         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
4052         to not produce negative array indices if not allowed.  Add
4053         parameter to indicate that.
4054         (maybe_fold_offset_to_component_ref): Allow negative array
4055         indices only for the first member of a structure.
4056         (maybe_fold_offset_to_reference): Allow negative array indices.
4057         (maybe_fold_stmt_addition): Likewise.
4058
4059 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
4060             Anatoly Sokolov <aesok@post.ru>
4061
4062         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
4063         (avr_arch): Add ARCH_AVR6.
4064         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
4065         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
4066         instead of fixed value 2.
4067         (print_operand_address): Use gs() asm specifier instead of pm().
4068         (avr_assemble_integer): (Ditto.).
4069         (avr_output_addr_vec_elt): (Ditto.).
4070         (print_operand): Handle "!" code.
4071         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
4072         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
4073         (AVR_HAVE_EIJMP_EICALL): Define.
4074         (AVR_3_BYTE_PC): Redefine.
4075         (AVR_2_BYTE_PC): (Ditto.).
4076         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
4077         (LINK_SPEC): Add atmega2560 and atmega2561.
4078         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
4079         (crtm2561.o).
4080         * config/avr/avr.md (call_insn): Use eicall instead of icall 
4081         for 3 byte PC devices.
4082         (call_value_insn): (Ditto.).
4083         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
4084         (indirect_jump): Use only for for 2 byte PC devices.
4085         (*tablejump): (Ditto.).
4086         (*indirect_jump_avr6): Add insn.
4087         (*tablejump_rjmp): Don't use for 3 byte PC devices.
4088         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
4089         instead of ijmp for 3 byte PC devices.
4090         (__tablejump2__): (Ditto.).
4091         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
4092         (MULITLIB_DIRNAMES): (Ditto.). 
4093         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
4094
4095 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
4096
4097         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
4098         "sse2_umulsidi3".  Use V1DI mode for operand 0.
4099         ("mmx_psadbw"): Use V1DI mode for operand 0.
4100         * config/i386/i386-modes.def (V1SI): New vector mode.
4101         * config/i386/i386.c (struct builtin_description)
4102         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
4103         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
4104         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
4105         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
4106         v1di_ftype_v8qi_v8qi type.
4107         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
4108
4109         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
4110         __builtin_ia32_pmuludq]: Fix the mode of return value.
4111
4112 2008-03-15  Richard Guenther  <rguenther@suse.de>
4113
4114         PR middle-end/35595
4115         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
4116         being a PHI_NODE.
4117
4118 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
4119         
4120         * doc/invoke.texi (Option Summary, Xtensa Options): Document
4121         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
4122         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
4123         unless TARGET_SERIALIZE_VOLATILE is enabled.
4124         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
4125         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
4126         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
4127
4128 2008-03-14  Richard Guenther  <rguenther@suse.de>
4129
4130         PR tree-optimization/34172
4131         * tree-flow.h (refs_may_alias_p): Declare.
4132         (get_single_def_stmt): Likewise.
4133         (get_single_def_stmt_from_phi): Likewise.
4134         (get_single_def_stmt_with_phi): Likewise.
4135         * tree-dfa.c (refs_may_alias_p): New function.
4136         (get_single_def_stmt): Likewise.
4137         (get_single_def_stmt_from_phi): Likewise.
4138         (get_single_def_stmt_with_phi): Likewise.
4139         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
4140         (vn_reference_lookup_1): New helper function.
4141         (vn_reference_lookup): Walk the virtual use-def chain to
4142         continue searching for a match if the def does not alias the
4143         reference we are looking for.
4144
4145 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
4146
4147         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
4148         archive and Perzl.  Update The Written Word listing.
4149
4150 2008-03-14  Richard Guenther  <rguenther@suse.de>
4151
4152         PR tree-optimization/34043
4153         PR tree-optimization/33989
4154         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
4155         when doing FRE.
4156         (bitmap_find_leader): Use extra argument to verify dominance
4157         relationship inside a basic-block.
4158         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
4159         (find_leader_in_sets): Adjust.
4160         (create_component_ref_by_pieces): Take extra argument for
4161         dominance check, handle lookup failures.
4162         (find_or_generate_expression): Likewise.
4163         (create_expression_by_pieces): Likewise.
4164         (insert_into_preds_of_block): Adjust.
4165         (create_value_expr_from): If asked for, verify all operands
4166         are in the blocks AVAIL_OUT set.
4167         (make_values_for_stmt): Check for SSA_NAMEs that are life
4168         over an abnormal edge.
4169         (compute_avail): Remove such check.
4170         (do_SCCVN_insertion): New function.
4171         (eliminate): If we do not find a leader suitable for replacement
4172         insert a replacement expression from SCCVN if available.
4173         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
4174         (struct vn_ssa_aux): Add needs_insertion flag.
4175         * tree-ssa-sccvn.c (may_insert): New global flag.
4176         (copy_reference_ops_from_ref): Value-number union member access
4177         based on its size, not type and member if insertion is allowed.
4178         (visit_reference_op_load): For a weak match from union type
4179         punning lookup a view-converted value and insert a SSA_NAME
4180         for that value if that is not found.
4181         (visit_use): Make dumps shorter.  Do not disallow value numbering
4182         SSA_NAMEs that are life over an abnormal edge to constants.
4183         (free_scc_vn): Release inserted SSA_NAMEs.
4184         (run_scc_vn): New flag to specify whether insertion is allowed.
4185         Process SSA_NAMEs in forward order.
4186         * tree-ssa-loop-im.c (for_each_index): Handle invariant
4187         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
4188         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
4189         pointer type to/from integral types that do not change the
4190         precision to regular conversions.
4191
4192 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
4193
4194         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
4195         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
4196         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
4197         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
4198         input arguments and the mode of return value.  Built-in functions
4199         that operate on whole 64-bit MMX register now use V1DI mode.
4200
4201 2008-03-13  Alon Dayan  <alond@il.ibm.com>
4202             Olga Golovanevsky  <olga@il.ibm.com>
4203
4204         PR tree-optimization/35041
4205         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
4206         to locate the right position in a statement.
4207
4208 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
4209
4210         PR target/34000
4211         PR target/35553
4212         * config/i386/xmmintrin.h:  Change all static inline functions to
4213         extern inline and add __gnu_inline__ attribute.
4214         * config/i386/bmintrin.h: Ditto.
4215         * config/i386/smmintrin.h: Ditto.
4216         * config/i386/tmmintrin.h: Ditto.
4217         * config/i386/mmintrin-common.h: Ditto.
4218         * config/i386/ammintrin.h: Ditto.
4219         * config/i386/emmintrin.h: Ditto.
4220         * config/i386/pmmintrin.h: Ditto.
4221         * config/i386/mmintrin.h: Ditto.
4222         * config/i386/mm3dnow.h: Ditto.
4223
4224 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
4225
4226         PR middle-end/35185
4227         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
4228         (lower_omp_2): New function.
4229         (lower_omp_1, lower_omp): Rewritten.
4230
4231 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
4232
4233         PR 35054
4234         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
4235         with the phrase "Microsoft Windows compilers".
4236         (Push/Pop Macro Pragmas): New subsection. Document
4237         #pragma push_macro and pragma pop_macro.
4238
4239 2008-03-12  Paul Brook  <paul@codesourcery.com>
4240
4241         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
4242
4243 2008-03-12  Paul Brook  <paul@codesourcery.com>
4244
4245         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
4246         (thumb2_alusi3_short): Exclude PLUS and MINUS.
4247         (thumb2_addsi_shortim): Rename ...
4248         (thumb2_addsi_short): ... to this.  Allow register operands.
4249         (thumb2_subsi_short): New pattern.
4250         (thumb2_one_cmplsi2_short,
4251         thumb2_negsi2_short): New patterns and peepholes.
4252
4253 2008-03-12  Paul Brook  <paul@codesourcery.com>
4254
4255         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
4256
4257 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
4258
4259         * config/i386/i386.md (int_cond): New code iterator.
4260         (fp_cond): Ditto.
4261         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
4262         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
4263         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
4264         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
4265         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
4266         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
4267         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
4268         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
4269
4270 2008-03-12  Paul Brook  <paul@codesourcery.com>
4271
4272         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
4273         instead of {arm,thumb}_compute_save_reg_mask.
4274         (output_return_instruction): Ditto.
4275         (thumb_unexpanded_epilogue): Ditto.
4276         (thumb1_expand_prologue): Ditto.
4277         (thumb1_output_function_prologue): Ditto.
4278         (arm_set_return_address): Ditto.
4279         (thumb_set_return_address): Ditto.
4280         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
4281         regs to achieve stack alignment.
4282         (thumb1_compute_save_reg_mask): Fix compiler warning.
4283         (arm_output_epilogue): Use offsets->saved_regs_mask.
4284         Adjust stack pointer by poping call clobered registers.
4285         (arm_expand_prologue): Use offsets->saved_regs_mask.
4286         Adjust stack pointer by pushing extra registers.
4287         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
4288
4289 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
4290
4291         PR tree-opt/35422
4292         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
4293         conversion to the operands of a multiplication.
4294
4295 2008-03-12  Richard Guenther  <rguenther@suse.de>
4296
4297         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
4298         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
4299         * timevar.def (TV_TREE_PHIPROP): Add.
4300         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
4301         pass description.  Use TV_TREE_PHIPROP.
4302         * tree-ssa-forwprop.c: Remove phiprop code.
4303
4304 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
4305
4306         PR middle-end/35549
4307         * omp-low.c (maybe_lookup_decl): Constify first argument.
4308         (use_pointer_for_field): Change last argument from bool to
4309         omp_context *.  Disallow shared copy-in/out in nested
4310         parallel if decl is shared in outer parallel too.
4311         (build_outer_var_ref, scan_sharing_clauses,
4312         lower_rec_input_clauses, lower_copyprivate_clauses,
4313         lower_send_clauses, lower_send_shared_vars): Adjust callers.
4314
4315 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
4316             Ira Rosen  <irar@il.ibm.com>
4317
4318         * tree-vectorizer.c (free_stmt_vec_info): New function.
4319         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
4320         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
4321         * tree-vectorizer.h (free_stmt_vec_info): Declare.
4322         * tree-vect-transform.c (vectorizable_conversion): Free
4323         vec_oprnds0 if it was allocated.
4324         (vect_permute_store_chain): Remove unused VECs.
4325         (vectorizable_store): Free VECs that are allocated in the..
4326         function.
4327         (vect_transform_strided_load, vectorizable_load): Likewise.
4328         (vect_remove_stores): Simplify the code.
4329         (vect_transform_loop): Move code to vect_remove_stores().
4330         Call vect_remove_stores() and free_stmt_vec_info().
4331
4332 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4333
4334         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
4335         TARGET_HPUX.  Revise comment.
4336         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
4337         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
4338         Use sr4 variant of `be' instruction when not generating PIC code.
4339         (attr_length_call): Adjust for above change.
4340
4341 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4342
4343         * ipa-reference.c (static_execute): Remove module_statics_const and
4344         associated setting code.
4345
4346 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
4347
4348         PR target/35540
4349         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
4350         predicate for operand 1.
4351         (paritysi2_cmp): Use register_operand predicate for operand 2.
4352         Use earlyclobber modifier for operand 1.  Remove support for
4353         memory operands.
4354         (paritydi2_cmp): Use register_operand predicate for operand 3.
4355         Use earlyclobber modifier for operand 1.  Remove support for
4356         memory operands.
4357
4358 2008-03-11  Paul Brook  <paul@codesourcery.com>
4359             Vladimir Prus  <vladimir@codesourcery.com>
4360
4361         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
4362         (arm_compute_save_reg0_reg12_mask): Always
4363         check if register 11 must be saved.  Always safe hard frame pointer
4364         when frame_pointer_needeed.
4365         (arm_compute_save_reg_mask): Save IP and PC
4366         only with apcs frames.
4367         (arm_output_epilogue): Adjust Thumb2 codepath to
4368         be also invoked and work for ARM non-apcs frames.
4369         (arm_expand_prologue): Don't bother saving IP
4370         for non-apcs frame, since it's not clobbered by
4371         prologue code.  Implement non-apcs frame
4372         layout.
4373
4374 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
4375
4376         PR rtl-optimization/35281
4377         * expr.c (convert_move): Use a new pseudo for the intermediate
4378         from_mode->word_mode result.
4379
4380 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
4381
4382         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
4383         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
4384         * toplev.c (compile_file): Don't call it.
4385
4386 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
4387
4388         PR middle-end/35526
4389         * expr.c (store_expr): Call emit_block_move if the mode
4390         of "temp" RTX is BLKmode.
4391
4392 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4393             Richard Guenther  <rguenther@suse.de>
4394
4395         PR tree-optimization/31358
4396         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
4397         the step with a NULL_TREE.
4398         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
4399         to sizetype if type is a pointer type.
4400         (add_candidate_1): Don't convert the base and step to
4401         the generic type if the orginal type is a pointer type.
4402         (add_iv_value_candidates): Use sizetype for the step
4403         if type is a pointer type.
4404         (cand_value_at): Likewise.
4405         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
4406         for pointer types.
4407         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
4408         Don't convert the tem affine to the type.
4409         (add_elt_to_tree): Use sizetype for the step if a pointer.
4410         Use POINTER_PLUS_EXPR for pointers.
4411         (aff_combination_to_tree): Use sizetype for the step if a
4412         pointer.
4413
4414 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
4415
4416         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
4417         Remove commutativity hint.
4418
4419 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
4420
4421         PR c/35438
4422         PR c/35439
4423         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
4424         errorneous type.  Check that v is a VAR_DECL.
4425
4426         PR middle-end/35099
4427         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
4428
4429 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
4430
4431         PR tree-optimization/35494
4432         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
4433         may be overriden at link and run time.
4434
4435 2008-03-10  Richard Guenther  <rguenther@suse.de>
4436
4437         PR tree-optimization/34677
4438         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
4439         (poolify_tree): Likewise.
4440         (modify_expr_template): Likewise.
4441         (poolify_modify_stmt): Likewise.
4442         (insert_fake_stores): Handle all component-ref style stores
4443         in addition to INDIRECT_REF.  Also handle complex types.
4444         Do not poolify the inserted load.
4445         (realify_fake_stores): Do not rebuild the tree but only
4446         make it a SSA_NAME copy.
4447         (init_pre): Remove initialzation of modify_expr_template.
4448         Do not allocate modify_expr_node_pool.
4449         (fini_pre): Do not free modify_expr_node_pool.
4450
4451 2008-03-10  Paul Brook  <paul@codesourcery.com>
4452
4453         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
4454         to avoid conflicts.
4455
4456 2008-03-10  Paul Brook  <paul@codesourcery.com>
4457             Mark Shinwell  <shinwell@codesourcery.com>
4458
4459         * config/arm/cortex-r4.md: New.
4460         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
4461         insn attributes.
4462         * config/arm/arm.md: Include cortex-r4.md.
4463         (insn): Add smmls, sdiv and udiv values.
4464         (generic_sched): Don't use generic scheduling for Cortex-R4.
4465         (arm_issue_rate): New function.
4466         (TARGET_SCHED_ISSUE_RATE): Define.
4467
4468 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
4469
4470         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
4471
4472 2008-03-10  Richard Guenther  <rguenther@suse.de>
4473
4474         * tree-ssa-pre.c (get_sccvn_value): Simplify.
4475         (compute_avail): Do not add stmt uses to AVAIL_OUT.
4476
4477 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
4478
4479         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
4480         Set default to true.
4481
4482 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4483
4484         * c.opt (Wsynth): Deprecate.
4485         * doc/invoke.texi (Option Summary, Warning Options): Document
4486         -Wno-format-contains-nul.
4487
4488 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
4489
4490         PR target/35496
4491         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
4492         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
4493
4494 2008-03-09  Ira Rosen  <irar@il.ibm.com>
4495
4496         * config/rs6000/rs6000.c (builtin_description): Rename vector
4497         left shift operations.
4498         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
4499         (altivec_vsl<VI_char>): Rename to ...
4500         (ashl<mode>3): ... new name.
4501         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
4502         gen_ashlv4si3.
4503         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
4504
4505 2008-03-08  Richard Guenther  <rguenther@suse.de>
4506
4507         * coverage.h (tree_coverage_counter_addr): Declare.
4508         * coverage.c (tree_coverage_counter_addr): New function.
4509         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
4510         before using again.
4511         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
4512         (tree_gen_one_value_profiler): Likewise.
4513         (tree_gen_ic_profiler): Likewise.
4514         (tree_gen_average_profiler): Likewise.
4515         (tree_gen_ior_profiler): Likewise.
4516
4517 2008-03-08  Richard Guenther  <rguenther@suse.de>
4518
4519         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
4520         (vn_binary_op_insert): Likewise.
4521         (vn_unary_op_lookup): Likewise.
4522         (vn_unary_op_insert): Likewise.
4523         (vn_nary_op_lookup): Declare.
4524         (vn_nary_op_insert): Likewise.
4525         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
4526         and binary hashes, use a single obstack for unary_op_pool
4527         and binary_op_pool.
4528         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
4529         a single struct vn_nary_op_s.  Store tree code length and
4530         a variable number of operands.
4531         (struct vn_reference_op_struct): Remove unused op2.
4532         (vn_reference_op_eq): Do not compare op2.
4533         (vn_reference_op_compute_hash): Do not compute hash of op2.
4534         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
4535         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
4536         with vn_nary_op_compute_hash.
4537         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
4538         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
4539         vn_nary_op_lookup.
4540         (vn_unary_op_insert, vn_binary_op_insert): Replace with
4541         vn_nary_op_insert.
4542         (visit_unary_op): Call nary functions.
4543         (visit_binary_op): Likewise.
4544         (process_scc): Adjust for struct vn_tables_s changes.
4545         (allocate_vn_table): Likewise.
4546         (free_vn_table): Likewise.
4547         * tree-vn.c (vn_add): Call nary functions.
4548         (vn_lookup): Likewise.
4549
4550 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
4551
4552         PR target/35498
4553         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
4554         wdst back after sync_compare_and_swapqhi_internal.
4555
4556 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
4557
4558         PR target/22152
4559         * config/i386/i386-modes.def (V1DI): New vector mode.
4560         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
4561         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
4562         (MMXMODE248): Ditto.
4563         (MMXMODE): Add V1DI mode.
4564         (mmxvecsize): Change DI mode to V1DI mode.
4565         ("mov<mode>): Use MMXMODEI8 mode iterator.
4566         ("*mov<mode>_internal_rex64"): Ditto.
4567         ("*mov<mode>_internal"): Ditto.
4568         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
4569         ("mmx_sub<mode>3"): Ditto.
4570         ("mmx_adddi3"): Remove insn pattern.
4571         ("mmx_subdi3"): Ditto.
4572         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
4573         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
4574         ("mmx_ashl<mode>3"): Ditto.
4575         ("mmx_lshrdi3"): Remove insn pattern.
4576         ("mmx_ashldi3"): Ditto.
4577         * config/i386/i386.c (classify_argument): Handle V1DImode.
4578         (function_arg_advance_32): Ditto.
4579         (function_arg_32): Ditto.
4580         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
4581         mmx_addv1di3 insn pattern.
4582         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
4583         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
4584         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
4585         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
4586         Remove definitions of built-in functions.
4587         (V1DI_type_node): New node.
4588         (v1di_ftype_v1di_int): Ditto.
4589         (v1di_ftype_v1di_v1di): Ditto.
4590         (v2si_ftype_v2si_si): Ditto.
4591         (v4hi_ftype_v4hi_di): Remove node.
4592         (v2si_ftype_v2si_di): Ditto.
4593         (ix86_init_mmx_sse_builtins): Handle V1DImode.
4594         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
4595         Redefine builtins using def_builtin_const with *_ftype_*_int node.
4596         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
4597         Add new builtins using def_builtin_const.
4598         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
4599         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
4600         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
4601         * config/i386/mmintrin.h (__v1di): New typedef.
4602         (_mm_add_si64): Cast arguments to __v1di type.
4603         (_mm_sub_si64): Ditto.
4604         (_mm_sll_pi16): Cast __count to __v4hi type.
4605         (_mm_sll_pi32): Cast __count to __v2si type.
4606         (_mm_sll_si64): Cast arguments to __v1di type.
4607         (_mm_srl_pi16): Cast __count to __v4hi type.
4608         (_mm_srl_pi32): Cast __count to __v2si type.
4609         (_mm_srl_si64): Cast arguments to __v1di type.
4610         (_mm_sra_pi16): Cast __count to __v4hi type.
4611         (_mm_sra_pi32): Cast __count to __v2si type.
4612         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
4613         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
4614         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
4615         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
4616         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
4617         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
4618         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
4619         (_mm_srai_pi32): Use __builtin_ia32_psradi.
4620         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
4621         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
4622         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
4623         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
4624
4625 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
4626
4627         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
4628
4629 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
4630
4631         PR target/35373
4632         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
4633         reg+const addressing for Altivec modes.  Don't generate reg+reg
4634         addressing for TFmode or TDmode quantities.
4635
4636 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
4637
4638         * c-common.c (vector_types_convertible_p): Call langhook
4639         instead of comptypes.
4640
4641 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4642
4643         PR tree-opt/35402
4644         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
4645         integral and scalar float variables which have a
4646         NULL DECL_INITIAL.
4647
4648 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
4649
4650         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
4651         dwarf_register_span hook when emitting unwind information for
4652         register-to-memory saves.
4653         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
4654         (rs6000_frame_related): Remove call to spe_synthesize_frame.
4655
4656 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
4657
4658         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
4659         for the same VAR_DECL.
4660
4661 2008-03-06  Tom Tromey  <tromey@redhat.com>
4662
4663         * treelang: Delete.
4664         * doc/standards.texi (Standards): Don't mention treelang.
4665         * doc/invoke.texi (Overall Options): Don't mention treelang.
4666         * doc/install.texi (Prerequisites): Don't mention bison or
4667         treelang.
4668         (Configuration): Don't mention treelang.
4669         (Building): Likewise.
4670         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
4671
4672 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
4673
4674         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
4675         word-extractions out of a multi-word object.
4676
4677 2008-03-06  Richard Guenther  <rguenther@suse.de>
4678
4679         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
4680         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
4681         result type and precision.
4682         * expr.c (get_inner_reference): Set unsignedp based on the result
4683         type of BIT_FIELD_REF.
4684         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
4685         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
4686         (try_instantiate_multiple_fields): Likewise.  Use the correct type
4687         for BIT_FIELD_REF.
4688         (sra_build_assignment): Likewise.
4689         (sra_build_elt_assignment): Likewise.
4690         (sra_explode_bitfield_assignment): Likewise.
4691         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
4692         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
4693         set BIT_FIELD_REF_UNSIGNED.
4694         (vectorizable_load): Likewise.
4695
4696 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
4697
4698         * cse.c (cse_extended_basic_block): Invalidate artificial defs
4699         at bb start.
4700
4701 2008-03-06  Richard Guenther  <rguenther@suse.de>
4702
4703         * alias.c (struct alias_set_entry): Move has_zero_child field
4704         to pack with alias_set.
4705
4706 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
4707
4708         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
4709         32bit host.
4710
4711 2008-03-05  Ian Lance Taylor  <iant@google.com>
4712
4713         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
4714
4715 2008-03-05  Kenneth Zadeck <zadeck@naturalbridge.com>
4716
4717         * fwprop.c (update_df): Support width and offset parameters of
4718         df_ref_create.
4719         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
4720         global_conflicts): Change DF_REF_EXTRACT to either
4721         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
4722         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
4723         * df-scan.c (df_ref_record, df_defs_record,
4724         df_ref_create_structure, df_def_record_1, df_uses_record,
4725         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
4726         df_bb_refs_collect, df_entry_block_defs_collect,
4727         df_exit_block_uses_collect): Support new width and offset fields.
4728         (ref_extract_pool): New storage pool.
4729         (df_free_ref): New function.
4730         (df_reg_chain_unlink, df_free_collection_rec,
4731         df_sort_and_compress_refs): Call df_free_ref.
4732         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
4733         of df_ref_extract.
4734         (df_ref_create_structure): Allocate df_ref_extract if offset and
4735         width fields are used.
4736         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
4737         (df_uses_record): Get offset and width from ZERO_EXTRACT 
4738         and SIGN_EXTRACT.
4739         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
4740         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
4741         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
4742         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
4743         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
4744         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
4745         (df_ref_extract): New structure.
4746         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
4747         (df_ref_create): Add width and offset parameters.
4748         
4749 2008-03-05  Richard Guenther  <rguenther@suse.de>
4750
4751         * tree-ssa-structalias.c (get_constraint_for_component_ref):
4752         Use ranges_overlap_p.
4753         (offset_overlaps_with_access): Rename
4754         to ranges_overlap_p and move ...
4755         * tree-flow-inline.h (ranges_overlap_p): ... here.
4756
4757         * tree.h (get_inner_reference, handled_component_p): Update
4758         comments.
4759
4760         * tree.h (record_component_aliases, get_alias_set,
4761         alias_sets_conflict_p, alias_sets_must_conflict_p,
4762         objects_must_conflict_p): Move declarations ...
4763         * alias.h (record_component_aliases, get_alias_set,
4764         alias_sets_conflict_p, alias_sets_must_conflict_p,
4765         objects_must_conflict_p): ... here.
4766         Include coretypes.h.
4767         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
4768
4769 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
4770
4771         * cfg.c: Include tree-flow.h.
4772         (remove_edge_raw): Call redirect_edge_var_map_clear.
4773         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
4774         * tree-flow-inline.h (redirect_edge_var_map_def): New.
4775         (redirect_edge_var_map_result): New.
4776         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
4777         PENDING_STMT use with redirect_edge_var_map_*.
4778         * tree-ssa.c (edge_var_maps): New definition.
4779         (redirect_edge_var_map_add): New.
4780         (redirect_edge_var_map_clear): New.
4781         (redirect_edge_var_map_dup): New.
4782         (redirect_edge_var_map_vector): New.
4783         (redirect_edge_var_map_destroy): New.
4784         (ssa_redirect_edge): Replace PENDING_STMT use with
4785         redirect_edge_var_map_*.
4786         (flush_pending_stmts): Same.
4787         (delete_tree_ssa): Destroy edge var map.
4788         * tree-flow.h (struct _edge_var_map): New.
4789         Define edge_var_map vector type.
4790         Declare redirect_edge_var_map_* prototypes.
4791         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
4792         * tree-cfg.c (reinstall_phi_args): Replace
4793         PENDING_STMT use with redirect_edge_var_map_*.
4794
4795 2008-03-05  Richard Guenther  <rguenther@suse.de>
4796
4797         PR tree-optimization/35472
4798         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
4799         whose single use_stmt has a overlapping set of loaded and
4800         stored symbols as that use_stmt might be a noop assignment then.
4801
4802 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
4803
4804         * gthr-rtems.h: Implement __gthread_mutex_destroy.
4805
4806 2008-03-05  Richard Guenther  <rguenther@suse.de>
4807
4808         PR c++/35336
4809         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
4810         should be constants.
4811         * tree-cfg.c (verify_expr): Verify it.
4812         * fold-const.c (fold_truthop): Remove code generating
4813         BIT_FIELD_REFs of structure bases.
4814         (fold_binary): Likewise.
4815         (fold_ternary): Position and size of BIT_FIELD_REFs are
4816         always host integers.
4817         (make_bit_field_ref): Remove.
4818         (optimize_bit_field_compare): Remove.
4819         (all_ones_mask_p): Remove.
4820
4821 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
4822
4823         PR gcc/33009
4824         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
4825         (split_block_and_df_analyze): New. Split basic block and rebuild
4826         dataflow.
4827         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
4828         SPLIT_BLOCK.
4829         (split_pattern_seq): Likewise.
4830         (erase_matching_seqs): Likewise.
4831         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
4832
4833 2008-03-04  Geoff Keating  <geoffk@apple.com>
4834
4835         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
4836         declaration and code.
4837         (tree_invalid_nonnegative_warnv_p): Likewise.
4838
4839 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
4840
4841         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
4842         examples.  Truncate option-names then causing overfull hbox.
4843
4844 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4845
4846         PR target/35222
4847         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
4848         on hpux10.
4849         * configure: Rebuilt.
4850
4851 2008-03-04  Rafael Espindola  <espindola@google.com>
4852
4853         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
4854         (tree_unary_nonnegative_warnv_p): New.
4855         (tree_binary_nonnegative_warnv_p): New.
4856         (tree_single_nonnegative_warnv_p): New.
4857         (tree_invalid_nonnegative_warnv_p): New.
4858         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
4859
4860 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4861
4862         PR 28322
4863         * opts.c (handle_option): Postpone 'unknown option' errors only for
4864         warning options.
4865
4866 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
4867
4868         PR target/35453
4869         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
4870         (_SIDD_XXX): This.
4871
4872 2008-03-04  Rafael Espindola  <espindola@google.com>
4873
4874         * fold-const.c (tree_unary_nonzero_warnv_p): New.
4875         (tree_binary_nonzero_warnv_p): New.
4876         (tree_single_nonzero_warnv_p): New.
4877         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
4878
4879 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
4880
4881         PR middle-end/35456
4882         * fold-const.c (fold_cond_expr_with_comparison): Prevent
4883         transformations for modes that have signed zeros.
4884         * ifcvt.c (noce_try_abs): Ditto.
4885
4886 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
4887
4888         * config/i386/i386.c (override_options): Force
4889         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
4890
4891 2008-03-04  Jan Hubicka  <jh@suse.cz>
4892
4893         PR c++/35262
4894         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
4895         in last commit.
4896
4897 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
4898
4899         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
4900         label to probe the stack.
4901
4902 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
4903
4904         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
4905         (__gthr_win32_mutex_destroy): Declare.
4906         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
4907         __gthr_win32_mutex_destroy.
4908         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
4909
4910 2008-03-03  Jan Hubicka  <jh@suse.cz>
4911
4912         PR c++/35262
4913         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
4914         aggressive on inlining cold calls.
4915
4916 2008-03-03  Richard Guenther  <rguenther@suse.de>
4917
4918         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
4919         struct copies into the expression table.
4920         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
4921         (try_to_simplify): Likewise.
4922         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
4923         integral and pointer arguments which do not change the
4924         precision to NOP_EXPRs.
4925         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
4926         VIEW_CONVERT_EXPR case.
4927
4928 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
4929
4930         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
4931         defined in a loop at depth 0 is invariant.
4932         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
4933         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
4934         be called at loop depth 0.
4935
4936 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
4937
4938         PR driver/35420
4939         * gcc.c (process_command): Update copyright notice dates.
4940         * gcov.c (print_version): Likewise.
4941         * gcov-dump.c (print_version): Likewise.
4942         * mips-tfile.c (main): Likewise.
4943         * mips-tdump.c (main): Likewise.
4944
4945 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4946
4947         PR 24924
4948         * c-common.c (flag_permissive): Delete.
4949         (constant_expression_warnings): Check flags first.
4950         (constant_expression_error): New.
4951         * c-common.h (flag_permissive): Delete.
4952         (constant_expression_error): Declare.
4953         * flags.h (flag_permissive): Declare. Update description.
4954         * diagnostic.c (pedwarn): Update.
4955         (permerror): New.
4956         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
4957         (permissive_error_kind): New.
4958         * toplev.c (flag_permissive): Define. Update description.
4959         * toplev.h (permissive_error_kind): Declare.
4960         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
4961         (pedwarn_c90): Use pedantic_warning_kind.
4962         * c-opts.c (c_common_post_options): flag_permissive does not affect
4963         flag_pedantic_errors.
4964
4965 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
4966
4967         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
4968         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
4969         __absvsi2, __absvDI2): Use unsigned arithmetic.
4970
4971 2008-03-02  Andi Kleen  <ak@suse.de>
4972             Richard Guenther  <rguenther@suse.de>
4973
4974         * struct-equiv.c: Remove file.
4975         * cfg_cleanup.c (condjump_equiv_p): Remove.
4976         * Makefile.in (OBJS-common): Remove struct-equiv.o.
4977         (struct-equiv.o): Remove rule.
4978         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
4979         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
4980         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
4981
4982 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
4983
4984         * ifcvt.c (noce_process_if_block): Try to handle only the then
4985         block if the else block exists but isn't suitable.
4986
4987 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
4988
4989         PR gcc/35063
4990         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
4991         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
4992         regression from previous patch.
4993
4994 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
4995
4996         PR gcc/35063
4997         * gthr.h: Add __gthread_mutex_destroy as a function that must be
4998         implemented.
4999         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
5000         * gthr-single.h (__gthread_mutex_destroy): Likewise.
5001         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
5002         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
5003         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
5004         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
5005         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
5006         (__gthread_mutex_destroy_function): Rename to
5007         __gthread_mutex_destroy.
5008         * gthr-dce.h (__gthread_mutex_destroy): Call
5009         pthread_mutex_destroy.
5010         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
5011         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
5012         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
5013
5014 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
5015
5016         * df-scan.c (df_ref_chain_change_bb): Simplify.
5017         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
5018         set_block_for_insn if there's any change.
5019         * df.h ((df_insn_change_bb): Fix prototype.
5020         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
5021         df_insn_change_bb, don't call set_block_for_insn.
5022         * emit-rtl.c (reorder_insns): Likewise.
5023         * haifa-sched.c (move_insn): Likewise.
5024
5025 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
5026
5027         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
5028
5029 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
5030
5031         * tree-flow-inline.h (next_readonly_imm_use): Return
5032         NULL_USE_OPERAND_P after the end.
5033
5034 2008-03-01  Richard Guenther  <rguenther@suse.de>
5035
5036         PR tree-optimization/35411
5037         * tree-sra.c (sra_build_assignment): Split conversion to
5038         final type to a separate statement if we are not assigning
5039         to a register.
5040
5041 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
5042
5043         * fold-const.c (fold_convertible_p): Correct the logic to follow
5044         that in fold_convert().
5045
5046 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
5047
5048         PR c++/35315
5049         * tree-inline.c (build_duplicate_type): When we make a
5050         duplicate type, make it unique in the canonical types system.
5051
5052 2008-02-29  Tom Tromey  <tromey@redhat.com>
5053
5054         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
5055         input_file_stack_history, input_file_stack_restored): Remove.
5056         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
5057         * input.h (struct file_stack): Remove.
5058         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
5059         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
5060         Likewise.
5061         * diagnostic.h (struct diagnostic_context) <last_module>: Change
5062         type.
5063         (diagnostic_last_module_changed): Add 'map' argument.
5064         (diagnostic_set_last_function): Likewise.
5065         * diagnostic.c (undiagnostic_report_current_module): Iterate using
5066         line map, not input_file_stack.
5067         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
5068
5069 2008-02-29  Paul Brook  <paul@codesourcery.com>
5070
5071         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
5072
5073 2008-02-29  Paul Brook  <paul@codesourcery.com>
5074
5075         * config/arm/ieee754-df.S (muldf3): Use RET macros.
5076
5077 2008-02-29  Richard Guenther  <rguenther@suse.de>
5078
5079         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
5080         vn_lookup_or_add.
5081         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
5082         value for comparing for a store match.
5083         (simplify_unary_expression): Do nothing for SSA_NAMEs.
5084         (try_to_simplify): Do not do a full-blown reference lookup.
5085
5086 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
5087
5088         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
5089         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
5090
5091         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
5092
5093 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
5094
5095         * tree-loop-linear.c (try_interchange_loops): Compare memory access
5096         strides against cache sizes.
5097
5098 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
5099
5100         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
5101         constant to fpul.
5102
5103 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
5104
5105         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
5106         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
5107         is smaller than the original promoted value.
5108         (simplify_subreg): If OP is a SUBREG, try to preserve its
5109         SUBREG_PROMOTED_VAR_P information.
5110
5111 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
5112
5113         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
5114         (VN_INFO_GET): Allocate new objects on the obstack.
5115         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
5116         for rpo_numbers_temp, for consistency.
5117         (free_scc_vn): Free the obstack.
5118
5119 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
5120
5121         * doc/invoke.texi: Document -ftree-loop-distribution.
5122         * tree-loop-distribution.c: New.
5123         * tree-pass.h (pass_loop_distribution): New.
5124         * graphds.h (struct graph): Add htab_t indices.
5125         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
5126         * tree-vectorizer.c (rename_variables_in_loop): Extern.
5127         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
5128         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
5129         * tree-data-ref.c (debug_data_dependence_relations): New.
5130         (dump_data_dependence_relation): Also print data references.
5131         (free_data_ref): Extern.
5132         (same_access_functions): Moved...
5133         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
5134         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
5135         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
5136         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
5137         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
5138         (stmts_from_loop): Skip LABEL_EXPR.
5139         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
5140         New.
5141         (build_rdg): Initialize rdg->indices htab.
5142         (free_rdg, stores_from_loop, ref_base_address,
5143         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
5144         have_similar_memory_accesses_1, ref_base_address_1,
5145         remove_similar_memory_refs): New.
5146         * tree-data-ref.h: Depend on tree-chrec.h.
5147         (debug_data_dependence_relations, free_data_ref): Declared.
5148         (same_access_functions): ... here.
5149         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
5150         New.
5151         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
5152         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
5153         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
5154         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
5155         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
5156         rdg_vertex_for_stmt): Declared.
5157         (struct rdg_edge): Add level.
5158         (RDGE_LEVEL): New.
5159         (free_rdg, stores_from_loop, remove_similar_memory_refs,
5160         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
5161         Declared.
5162         (rdg_has_similar_memory_accesses): New.
5163         * tree-vect-analyze.c: Remove unused static decls.
5164         * lambda.h (dependence_level): New.
5165         * common.opt (ftree-loop-distribution): New.
5166         * tree-flow.h (mark_virtual_ops_in_bb, 
5167         slpeel_tree_duplicate_loop_to_edge_cfg,
5168         rename_variables_in_loop): Declared.
5169         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
5170         (OBJS-common): Add tree-loop-distribution.o.
5171         (tree-loop-distribution.o): New rule.
5172         * tree-cfg.c (mark_virtual_ops_in_bb): New.
5173         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
5174         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
5175
5176 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
5177
5178         PR target/33963
5179         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
5180         other than structures and unions.
5181
5182 2008-02-28  Richard Guenther  <rguenther@suse.de>
5183
5184         Revert:
5185         2008-02-26  Richard Guenther  <rguenther@suse.de>
5186
5187         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
5188         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
5189         (lookup_decl_from_uid): Declare.
5190         (remove_decl_from_map): Likewise.
5191         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
5192         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
5193         (decl_for_uid_map): New global hashtable mapping DECL_UID
5194         to the decl tree.
5195         (init_ttree): Allocate it.
5196         (insert_decl_to_uid_decl_map): New helper function.
5197         (make_node_stat): Insert new decls into the map.
5198         (copy_node_stat): Likewise.
5199         (lookup_decl_from_uid): New function.
5200         (remove_decl_from_map): Likewise.
5201         (print_decl_for_uid_map_statistics): New helper.
5202         (dump_tree_statistics): Call it.
5203
5204         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
5205         (referenced_var_iterator): Adjust.
5206         (FOR_EACH_REFERENCED_VAR): Adjust.
5207         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
5208         (num_referenced_vars): Adjust.
5209         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
5210         (first_referenced_var): Remove.
5211         (end_referenced_vars_p): Likewise.
5212         (next_referenced_var): Likewise.
5213         (referenced_var_iterator_set): New helper function.
5214         * tree-dfa.c (referenced_var_lookup): Adjust.
5215         (referenced_var_check_and_insert): Likewise.
5216         (remove_referenced_var): Likewise.
5217         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
5218         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5219         (verify_call_clobbering): Likewise.
5220         (verify_memory_partitions): Likewise.
5221         (init_tree_ssa): Allocate bitmap instead of hashtable for
5222         referenced_vars.
5223         (delete_tree_ssa): Adjust.
5224         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
5225         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5226         (compute_tag_properties): Likewise.
5227         (set_initial_properties): Likewise.
5228         (find_partition_for): Likewise.
5229         (update_reference_counts): Likewise.
5230         (dump_may_aliases_for): Likewise.
5231         * tree-ssa-operands.c (add_virtual_operand): Likewise.
5232         (add_call_clobber_ops): Likewise.
5233         (add_call_read_ops): Likewise.
5234         (get_asm_expr_operands): Likewise.
5235         * tree-into-ssa.c (dump_decl_set): Likewise.
5236         (update_ssa): Likewise.
5237         * tree-sra.c (scan_function): Likewise.
5238         (decide_instantiations): Likewise.
5239         (scalarize_parms): Likewise.
5240         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
5241         (dsa_named_for): Likewise.
5242         * tree-ssa-structalias.c (update_alias_info): Likewise.
5243         (merge_smts_into): Likewise.
5244
5245 2008-02-27  David Daney  <ddaney@avtrex.com>
5246
5247         PR target/34409
5248         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
5249         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
5250         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
5251         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
5252         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
5253
5254 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
5255
5256         PR target/25477
5257         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
5258         (BUILT_IN_NEXTTOWARD): Remove.
5259         (BUILT_IN_NEXTTOWARDF): Ditto.
5260         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
5261         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
5262
5263 2008-02-27  Tom Tromey  <tromey@redhat.com>
5264
5265         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
5266         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
5267
5268 2008-02-27  Jan Beulich  <jbeulich@novell.com>
5269
5270         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
5271         update the respective field on newdecl.
5272
5273 2008-02-27  Revital Eres  <eres@il.ibm.com>
5274
5275         PR rtl-optimization/34999
5276         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
5277         crossing edges that ends with a call insn.
5278         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
5279         call insn and clear the EDGE_CROSSING flag of the crossing edge
5280         when fixing fallthru edges.
5281
5282 2008-02-27  Richard Guenther  <rguenther@suse.de>
5283
5284         PR middle-end/35390
5285         * fold-const.c (fold_unary): Return the correct argument,
5286         converted to the result type.
5287
5288 2008-02-27  Richard Guenther  <rguenther@suse.de>
5289
5290         PR middle-end/34971
5291         * expr.c (expand_expr_real_1): Assert on rotates that operate
5292         on partial modes.
5293         * fold-const.c (fold_binary): Use the types precision, not the
5294         bitsize of the mode if folding rotate expressions.  Build rotates
5295         only for full modes.
5296
5297 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
5298
5299         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
5300         and CPP_PRAGMA_EOL.
5301         * c-pragma.c (pragma_ns_name): New typedef.
5302         (registered_pp_pragmas): New variable.
5303         (c_pp_lookup_pragma): New function.
5304         (c_register_pragma_1): If flag_preprocess_only, do nothing
5305         for non-expanded pragmas, for expanded ones push pragma's
5306         namespace and name into registered_pp_pragmas vector.
5307         (c_invoke_pragma_handler): Register OpenMP pragmas even when
5308         flag_preprocess_only, don't register GCC pch_preprocess
5309         pragma if flag_preprocess_only.
5310         * c-opts.c (c_common_init): Call init_pragma even if
5311         flag_preprocess_only.
5312         * c-pragma.c (c_pp_lookup_pragma): New prototype.
5313         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
5314         cpp_register_pragma if flag_preprocess_only.
5315
5316 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5317
5318         PR c/28800
5319         * c-parser.c (c_parser_translation_unit): Warn for empty
5320         translation unit, not empty source file.
5321
5322 2008-02-26  Paul Brook  <paul@codesourcery.com>
5323
5324         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
5325         operand for Thumb-2.
5326         * config/arm/arm.h (reg_class): Add CORE_REGS.
5327         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
5328         (BASE_REG_CLASS): Use CORE_REGS.
5329         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
5330         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
5331         (REGNO_OK_FOR_INDEX_P): Exclude SP.
5332         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
5333         ARM_REGNO_OK_FOR_INDEX_P.
5334         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
5335         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
5336         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
5337         (ldm/stm peepholes): Ditto.
5338         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
5339         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
5340         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
5341         * config/arm/constraints.md: Enable "k" constraint on ARM.
5342
5343 2008-02-27  Ben Elliston  <bje@au.ibm.com>
5344
5345         * config/rs6000/rs6000.c: Annotate cache line size field in all
5346         instances of struct processor_costs.
5347
5348 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
5349
5350         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
5351         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
5352         jump_bypass): New counters.
5353         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
5354         * dce.c (gate_ud_dce): Same.
5355         (gate_fast_dce): Same.
5356         * dse.c (gate_dse1): New function.
5357         (gate_dse2): New function.
5358         (gate_dse): Merge results of new gate functions.
5359         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
5360         (gate_handle_jump_bypass): Add dbg_cnt.
5361         (gate_handle_gcse): Add dbg_cnt.
5362         * ifcvt.c (gate_handle_if_conversion): Same.
5363         (gate_handle_if_after_combine): Same.
5364         (gate_handle_if_after_reload): Same.
5365         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
5366
5367 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
5368
5369         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
5370         line sizes.
5371         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
5372
5373 2008-02-26  Jason Merrill  <jason@redhat.com>
5374
5375         PR c++/35315
5376         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
5377         alone if it's the naming decl for the type's main variant.
5378
5379 2008-02-26  Tom Tromey  <tromey@redhat.com>
5380
5381         * system.h (USE_MAPPED_LOCATION): Poison.
5382         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
5383         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
5384         (make_goto_expr_edges): Likewise.
5385         (remove_bb): Likewise.
5386         (execute_warn_function_return): Likewise.
5387         * basic-block.h (struct edge_def) <goto_locus>: Change type to
5388         location_t.
5389         * c-common.c (fname_decl): Remove old location code.
5390         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
5391         location code.
5392         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
5393         variant.
5394         (ASM_INPUT_SOURCE_LOCATION): Likewise.
5395         (gen_rtx_ASM_INPUT): Likewise.
5396         (gen_rtx_ASM_INPUT_loc): Likewise.
5397         (get_rtx_asm_OPERANDS): Remove.
5398         * cfglayout.c (insn_locators_alloc): Remove old location code.
5399         (set_curr_insn_source_location): Likewise.
5400         (curr_insn_locator): Likewise.
5401         * print-tree.c (print_node): Remove old location code.
5402         * tree-mudflap.c (mf_varname_tree): Remove old location code.
5403         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
5404         * cfgexpand.c (expand_gimple_cond_expr): Don't use
5405         location_from_locus.
5406         (construct_exit_block): Remove old location code.
5407         * emit-rtl.c (force_next_line_note): Remove old location code.
5408         * profile.c (branch_prob): Remove old location code.
5409         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
5410         LOC_LINE): Remove old-location variants.
5411         * langhooks.c (lhd_print_error_function): Remove old location
5412         code.
5413         * configure, config.in: Rebuilt.
5414         * configure.ac (--enable-mapped-location): Remove.
5415         * c-decl.c (c_init_decl_processing): Remove old location code.
5416         (finish_function): Likewise.
5417         * recog.c (decode_asm_operands): Remove old location code.
5418         * c-pch.c (c_common_read_pch): Remove old location code.
5419         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
5420         variants.
5421         * gimple-low.c (lower_function_body): Remove old location code.
5422         * toplev.c (unknown_location): Remove.
5423         (push_srcloc): Remove old-location variant.
5424         (process_options): Remove old location code.
5425         (lang_dependent_init): Likewise.
5426         * input.h (UNKNOWN_LOCATION): Move definition.
5427         (location_t): Undeprecate.
5428         (source_locus): Remove.
5429         (location_from_locus): Remove.
5430         (struct location_s): Remove.
5431         Remove all old-location code.
5432         (input_line, input_filename): Remove.
5433         * final.c (final_scan_insn): Remove old location code.
5434         * diagnostic.c (diagnostic_build_prefix): Remove
5435         USE_MAPPED_LOCATION test.
5436         * tree.h (gimple_stmt) <locus>: Now a location_t.
5437         (tree_exp) <locus>: Likewise.
5438         (DECL_IS_BUILTIN): Remove old-location variant.
5439         (annotate_with_file_line, annotate_with_locus): Likewise.
5440         (expr_locus, set_expr_locus): Update.
5441         * tree.c (build1_stat): Remove old location code.
5442         (last_annotated_node): Remove.
5443         (annotate_with_file_line): Remove old-location variant.
5444         (annotate_with_locus): Likewise.
5445         (expr_location): Remove old location code.
5446         (set_expr_location): Likewise.
5447         (expr_has_location): Likewise.
5448         (expr_locus): Likewise.
5449         (set_expr_locus): Likewise.
5450         (expr_filename): Don't use location_from_locus.
5451         (expr_lineno): Likewise.
5452         * rtl-error.c (location_for_asm): Remove old location code.
5453         * c-lex.c (cb_line_change): Remove old location code.
5454         (fe_file_change): Likewise.
5455         (cb_def_pragma): Likewise.
5456         (c_lex_with_flags): Likewise.
5457         * gengtype.c (do_typedef): Don't special-case location types.
5458         (define_location_structures): Remove.
5459         (main): Don't call define_location_structures.
5460         * tree-pretty-print.c (dump_implicit_edges): Remove old location
5461         code.
5462
5463 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5464
5465         PR 26264
5466         * builtins.def (BUILT_IN_STDARG_START): Remove.
5467         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
5468         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
5469         * tree-inline.c (inline_forbidden_p_1): Likewise.
5470         
5471 2008-02-26  Richard Guenther  <rguenther@suse.de>
5472
5473         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
5474         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
5475         (lookup_decl_from_uid): Declare.
5476         (remove_decl_from_map): Likewise.
5477         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
5478         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
5479         (decl_for_uid_map): New global hashtable mapping DECL_UID
5480         to the decl tree.
5481         (init_ttree): Allocate it.
5482         (insert_decl_to_uid_decl_map): New helper function.
5483         (make_node_stat): Insert new decls into the map.
5484         (copy_node_stat): Likewise.
5485         (lookup_decl_from_uid): New function.
5486         (remove_decl_from_map): Likewise.
5487         (print_decl_for_uid_map_statistics): New helper.
5488         (dump_tree_statistics): Call it.
5489
5490         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
5491         (referenced_var_iterator): Adjust.
5492         (FOR_EACH_REFERENCED_VAR): Adjust.
5493         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
5494         (num_referenced_vars): Adjust.
5495         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
5496         (first_referenced_var): Remove.
5497         (end_referenced_vars_p): Likewise.
5498         (next_referenced_var): Likewise.
5499         (referenced_var_iterator_set): New helper function.
5500         * tree-dfa.c (referenced_var_lookup): Adjust.
5501         (referenced_var_check_and_insert): Likewise.
5502         (remove_referenced_var): Likewise.
5503         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
5504         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5505         (verify_call_clobbering): Likewise.
5506         (verify_memory_partitions): Likewise.
5507         (init_tree_ssa): Allocate bitmap instead of hashtable for
5508         referenced_vars.
5509         (delete_tree_ssa): Adjust.
5510         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
5511         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5512         (compute_tag_properties): Likewise.
5513         (set_initial_properties): Likewise.
5514         (find_partition_for): Likewise.
5515         (update_reference_counts): Likewise.
5516         (dump_may_aliases_for): Likewise.
5517         * tree-ssa-operands.c (add_virtual_operand): Likewise.
5518         (add_call_clobber_ops): Likewise.
5519         (add_call_read_ops): Likewise.
5520         (get_asm_expr_operands): Likewise.
5521         * tree-into-ssa.c (dump_decl_set): Likewise.
5522         (update_ssa): Likewise.
5523         * tree-sra.c (scan_function): Likewise.
5524         (decide_instantiations): Likewise.
5525         (scalarize_parms): Likewise.
5526         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
5527         (dsa_named_for): Likewise.
5528         * tree-ssa-structalias.c (update_alias_info): Likewise.
5529         (merge_smts_into): Likewise.
5530
5531 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5532
5533         PR 34351
5534         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
5535         * c-opts.c (c_common_handle_option): Wall enables
5536         Wvolatile-register-var.
5537         * common.opt: Move Wvolatile-register-var to...
5538         * c.opt: ...here.
5539         
5540 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5541
5542         * common.opt (Wlarger-than=): New.
5543         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
5544         -Wlarger-than=.
5545         * opts.c (common_handle_option): Handle -Wlarger-than=.
5546         * optc-gen.awk: Likewise.
5547         * opth-gen.awk: Likewise.
5548         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
5549         * tree-optimize.c (tree_rest_of_compilation): Likewise.
5550         
5551 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5552
5553         * c-common.c (match_case_to_enum_1): Add appropriate
5554         OPT_W* parameter to warning.
5555         (c_do_switch_warnings): Likewise.
5556         * c-typeck.c (warning_init): Add one more parameter following
5557         'warning' function.
5558         (push_init_level): Update call to warning_init.
5559         (pop_init_level): Likewise.
5560         (add_pending_init): Likewise.
5561         (output_init_element: Likewise.
5562
5563 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5564
5565         PR 28322
5566         * toplev.c (toplev_main): If there are warnings or error, print
5567         errors for ignored options.
5568         * opts.c (ignored_options): New static variable.
5569         (postpone_unknown_option_error): New.
5570         (print_ignored_options): New.
5571         (handle_option): Postpone errors for unknown -Wno-* options.
5572         * opts.h (print_ignored_options): Declare.
5573         
5574 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
5575
5576         * config/mips/mips.md (loadgp_blockage, blockage): Change type
5577         to "ghost".
5578
5579 2008-02-25  Richard Guenther  <rguenther@suse.de>
5580
5581         Revert:
5582         2008-02-25  Richard Guenther  <rguenther@suse.de>
5583
5584         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
5585         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
5586         (lookup_decl_from_uid): Declare.
5587         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
5588         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
5589         (decl_for_uid_map): New global hashtable mapping DECL_UID
5590         to the decl tree.
5591         (init_ttree): Allocate it.
5592         (insert_decl_to_uid_decl_map): New helper function.
5593         (make_node_stat): Insert new decls into the map.
5594         (copy_node_stat): Likewise.
5595         (lookup_decl_from_uid): New function.
5596         (print_decl_for_uid_map_statistics): New helper.
5597         (dump_tree_statistics): Call it.
5598
5599         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
5600         (referenced_var_iterator): Adjust.
5601         (FOR_EACH_REFERENCED_VAR): Adjust.
5602         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
5603         (num_referenced_vars): Adjust.
5604         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
5605         (first_referenced_var): Remove.
5606         (end_referenced_vars_p): Likewise.
5607         (next_referenced_var): Likewise.
5608         (referenced_var_iterator_set): New helper function.
5609         * tree-dfa.c (referenced_var_lookup): Adjust.
5610         (referenced_var_check_and_insert): Likewise.
5611         (remove_referenced_var): Likewise.
5612         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
5613         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5614         (verify_call_clobbering): Likewise.
5615         (verify_memory_partitions): Likewise.
5616         (init_tree_ssa): Allocate bitmap instead of hashtable for
5617         referenced_vars.
5618         (delete_tree_ssa): Adjust.
5619         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
5620         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5621         (compute_tag_properties): Likewise.
5622         (set_initial_properties): Likewise.
5623         (find_partition_for): Likewise.
5624         (update_reference_counts): Likewise.
5625         (dump_may_aliases_for): Likewise.
5626         * tree-ssa-operands.c (add_virtual_operand): Likewise.
5627         (add_call_clobber_ops): Likewise.
5628         (add_call_read_ops): Likewise.
5629         (get_asm_expr_operands): Likewise.
5630         * tree-into-ssa.c (dump_decl_set): Likewise.
5631         (update_ssa): Likewise.
5632         * tree-sra.c (scan_function): Likewise.
5633         (decide_instantiations): Likewise.
5634         (scalarize_parms): Likewise.
5635         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
5636         (dsa_named_for): Likewise.
5637         * tree-ssa-structalias.c (update_alias_info): Likewise.
5638         (merge_smts_into): Likewise.
5639
5640 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
5641
5642         PR fortran/29549
5643         * doc/invoke.texi (-fcx-limited-range): Document new option.
5644         * toplev.c (process_options): Handle -fcx-fortran-rules.
5645         * common.opt: Add documentation for -fcx-fortran-rules.
5646
5647 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
5648
5649         PR c/35162
5650         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
5651         actual behaviour and C99.
5652         
5653 2008-02-26  Ben Elliston  <bje@au.ibm.com>
5654
5655         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
5656         (ASM_CPU_POWER6_SPEC): Likewise.
5657         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
5658         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
5659         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
5660
5661 2008-02-25  Richard Guenther  <rguenther@suse.de>
5662
5663         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
5664         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
5665         (lookup_decl_from_uid): Declare.
5666         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
5667         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
5668         (decl_for_uid_map): New global hashtable mapping DECL_UID
5669         to the decl tree.
5670         (init_ttree): Allocate it.
5671         (insert_decl_to_uid_decl_map): New helper function.
5672         (make_node_stat): Insert new decls into the map.
5673         (copy_node_stat): Likewise.
5674         (lookup_decl_from_uid): New function.
5675         (print_decl_for_uid_map_statistics): New helper.
5676         (dump_tree_statistics): Call it.
5677
5678         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
5679         (referenced_var_iterator): Adjust.
5680         (FOR_EACH_REFERENCED_VAR): Adjust.
5681         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
5682         (num_referenced_vars): Adjust.
5683         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
5684         (first_referenced_var): Remove.
5685         (end_referenced_vars_p): Likewise.
5686         (next_referenced_var): Likewise.
5687         (referenced_var_iterator_set): New helper function.
5688         * tree-dfa.c (referenced_var_lookup): Adjust.
5689         (referenced_var_check_and_insert): Likewise.
5690         (remove_referenced_var): Likewise.
5691         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
5692         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5693         (verify_call_clobbering): Likewise.
5694         (verify_memory_partitions): Likewise.
5695         (init_tree_ssa): Allocate bitmap instead of hashtable for
5696         referenced_vars.
5697         (delete_tree_ssa): Adjust.
5698         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
5699         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5700         (compute_tag_properties): Likewise.
5701         (set_initial_properties): Likewise.
5702         (find_partition_for): Likewise.
5703         (update_reference_counts): Likewise.
5704         (dump_may_aliases_for): Likewise.
5705         * tree-ssa-operands.c (add_virtual_operand): Likewise.
5706         (add_call_clobber_ops): Likewise.
5707         (add_call_read_ops): Likewise.
5708         (get_asm_expr_operands): Likewise.
5709         * tree-into-ssa.c (dump_decl_set): Likewise.
5710         (update_ssa): Likewise.
5711         * tree-sra.c (scan_function): Likewise.
5712         (decide_instantiations): Likewise.
5713         (scalarize_parms): Likewise.
5714         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
5715         (dsa_named_for): Likewise.
5716         * tree-ssa-structalias.c (update_alias_info): Likewise.
5717         (merge_smts_into): Likewise.
5718
5719 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
5720
5721         PR target/35258
5722         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
5723         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
5724         * alias.h (nonoverlapping_memrefs_p): Likewise.
5725
5726 2008-02-25  Jan Beulich  <jbeulich@novell.com>
5727
5728         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
5729         * config/i386/netware-libgcc.exp: Add __bswap?i2,
5730         __emultls_get_address, __emultls_register_common,
5731         __floatundi?f, and _Unwind_GetIPInfo.
5732         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
5733         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
5734         (gen_regparm_prefix): Likewise.
5735         (i386_nlm_encode_section_info): Sync with
5736         config/i386/winnt.c:i386_pe_encode_section_info().
5737         (i386_nlm_maybe_mangle_decl_assembler_name): New.
5738         i386_nlm_mangle_decl_assembler_name): New.
5739         (netware_override_options): New.
5740         * config/i386/netware.h (netware_override_options): Declare.
5741         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
5742         (i386_nlm_mangle_decl_assembler_name): Declare.
5743         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
5744
5745 2008-02-25  Ben Elliston  <bje@au.ibm.com>
5746
5747         PR other/32948
5748         * c-decl.c (grokdeclarator): Remove unused local variables
5749         `typedef_type' and `type_as_written'.
5750         * bb-reorder.c
5751         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
5752         unused local variable `has_hot_blocks'.
5753         (fix_crossing_conditional_branches): Remove unused local variable
5754         `prev_bb'.
5755         
5756 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
5757
5758         PR middle-end/19984
5759         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
5760         using DEF_C99_BUILTIN.
5761         (BUILT_IN_NANF): Ditto.
5762         (BUILT_IN_NANL): Ditto.
5763
5764 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
5765             Revital Eres  <eres@il.ibm.com>
5766
5767         * modulo-sched.c (calculate_must_precede_follow): Address TODO
5768         regarding the order of two dependent insns in the same row.
5769
5770 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
5771
5772         * stor-layout.c (layout_decl): Do not bump the alignment of a
5773         bit-field to more than byte alignment if it is packed.
5774
5775 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
5776
5777         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
5778         e300c2 and e300c3.
5779
5780 2008-02-24  Diego Novillo  <dnovillo@google.com>
5781
5782         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
5783
5784         PR 33738
5785         * tree-vrp.c (vrp_evaluate_conditional): With
5786         -Wtype-limits, emit a warning when comparing against a
5787         constant outside the natural range of OP0's type.
5788         * c.opt (Wtype-limits): Move ...
5789         * common.opt (Wtype-limits): ... here.
5790
5791 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
5792
5793         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
5794         * config/rs6000/e300c2c3.md: New file.
5795         * config/rs6000/rs6000.c (processor_costs): Add new costs for
5796         e300c2 and e300c3.
5797         (rs6000_override_options): Add e300c2 and e300c3 cases to
5798         processor_target_table. Do not allow usage of Altivec or Spe
5799         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
5800         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
5801         * config/rs6000/rs6000.h (processor_type): Add
5802         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
5803         (ASM_CPU_SPEC): Add e300c2 and e300c3.
5804         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
5805         and ppce300c3. Include e300c2c3.md.
5806
5807 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
5808
5809         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
5810         instead of TARGET_STRICT_ALIGN.
5811
5812 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
5813
5814         * explow.c (memory_address): Assert that the generated address is
5815         valid.
5816
5817 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
5818
5819         PR target/25477
5820         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
5821         * config/darwin-ppc-ldouble-patch.def: New file.
5822         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
5823         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
5824         SUBTARGET_INIT_BUILTINS if defined.
5825         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
5826         New functions.
5827
5828 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5829
5830         PR rtl-opt/33512
5831         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
5832         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
5833
5834 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5835
5836         PR pch/35027
5837         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
5838         file" warning condtional on -Winvalid-PCH.
5839
5840 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
5841
5842         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
5843
5844 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
5845
5846         PR target/22076
5847         PR target/34256 
5848         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
5849         prevent reload from using MMX registers.
5850         (*mov<mode>_internal): Ditto.
5851         (*movv2sf_internal_rex64): Ditto.
5852         (*movv2sf_internal): Ditto.
5853
5854 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5855
5856         PR documentation/31569
5857         * doc/install.texi2html: Use makeinfo --no-number-sections.
5858
5859 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
5860
5861         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
5862         ensure that we can address an entire entity > 8 bytes.  Don't
5863         generate reg+reg addressing for such data.
5864
5865 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
5866
5867         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
5868         strings when optimizing for size, unless the target cares about
5869         alignment.
5870
5871 2008-02-22  Tom Tromey  <tromey@redhat.com>
5872
5873         * regclass.c (current_pass): Remove declaration.
5874
5875 2008-02-22  Anatoly Sokolov <aesok@post.ru>
5876
5877         * config/avr/libgcc.S (__RAMPZ__): Define.
5878         (__do_copy_data): Add for devices with 128KB code memory.
5879
5880 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
5881
5882         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
5883         Use spe_abi.
5884         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
5885
5886 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
5887
5888         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
5889         GENNONACR_REGS.
5890
5891 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5892
5893         PR c/19999
5894         * c-typeck.c (build_binary_op): Warn about floating point
5895         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
5896
5897 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
5898
5899         PR target/34526
5900         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
5901         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
5902         add vrsave.
5903         (rs6000_override_options): Set altivec_abi as default, not override,
5904         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
5905         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
5906         is used; use new member spe_abi.
5907         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
5908         spe_abi and altivec_abi.
5909
5910 2008-02-22  Tomas Bily  <tbily@suse.cz>
5911
5912         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
5913
5914 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5915
5916         PR bootstrap/35273
5917         * config.build (build_file_translate): Set to `CMD //c' only if
5918         it works.
5919         * Makefile.in (build_file_translate): Improve comment.
5920
5921 2008-02-21  Jan Hubicka  <jh@suse.cz>
5922
5923         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
5924         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
5925         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
5926
5927 2008-02-21  Michael Matz  <matz@suse.de>
5928
5929         PR target/35264
5930         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
5931
5932 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
5933
5934         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
5935         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
5936         as insn constraint.
5937         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
5938         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
5939         SSE_VEC_FLOAT_MODE_P as insn constraint.
5940         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
5941         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
5942         sse4a_movntdf using MODEF mode iterator.
5943         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
5944         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
5945         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
5946         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
5947         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
5948         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
5949         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
5950
5951 2008-02-21  Richard Guenther  <rguenther@suse.de>
5952
5953         * tree.def (PAREN_EXPR): New tree code.
5954         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
5955         and PAREN_EXPR.
5956         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
5957         * expr.c (expand_expr_real_1): Likewise.
5958         * tree-inline.c (estimate_num_insns_1): Likewise.
5959         * tree-complex.c (expand_complex_move): Likewise.
5960         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
5961         as plain x.
5962
5963 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
5964
5965         PR target/35225
5966         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
5967
5968 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
5969
5970         PR target/35190
5971         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
5972
5973         * config/sh/sh.c (find_barrier): Don't go past
5974         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
5975
5976 2008-02-20  DJ Delorie  <dj@redhat.com>
5977
5978         * config/h8300/h8300.md (insv): Force source operand to be a register.
5979
5980         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
5981         as a jump, not as a plain insn.
5982         
5983 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
5984
5985         * doc/invoke.texi (Warning Options): Add new option
5986         -Wframe-larger-than=.
5987         (-Wframe-larger-than): Document.
5988
5989         * flags.h (warn_frame_larger_than, frame_larger_than_size):
5990         Add declarations for new option variables.
5991
5992         * final.c (final_start_function): Check the frame size
5993         before emission and issue a Wframe-larger-than warning.
5994
5995         * opts.c (warn_frame_larger_than, frame_larger_than_size):
5996         Add definitions for new option variables.
5997         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
5998
5999         * common.opt (Wframe-larger-than=): New option.
6000
6001 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
6002
6003         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
6004         (<sse>_div<mode>3): Ditto.
6005         (<sse>_vmdiv<mode>3): Ditto.
6006         (<sse>_vmsqrt<mode>2): Ditto.
6007         (*smax<mode>3): Ditto.
6008         (sse5_frcz<mode>2): Ditto.
6009         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
6010         as insn constraint.
6011
6012 2008-02-20  Richard Guenther  <rguenther@suse.de>
6013
6014         PR middle-end/35265
6015         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
6016         be happy with INTEGRAL_TYPE_P.
6017
6018 2008-02-20  Richard Guenther  <rguenther@suse.de>
6019
6020         * fold-const.c (split_tree): Associate floatig-point expressions
6021         if flag_associative_math is set.
6022
6023 2008-02-20  Richard Guenther  <rguenther@suse.de>
6024
6025         * tree.h (fold_real_zero_addition_p): Declare.
6026         * fold-const.c (fold_real_zero_addition_p): Export.
6027         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
6028         floating-point operations with zero and one.
6029
6030 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
6031
6032         * doc/install.texi: Correct references to CFLAGS, replacing them
6033         with BOOT_CFLAGS.  Document flags used during bootstrap for
6034         target libraries.
6035                                 
6036 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
6037
6038         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
6039         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
6040         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
6041         insn constraint.
6042         (smin<mode>3): Ditto from similar patterns.
6043         (smax<mode>3): Ditto.
6044         (*ieee_smin<mode>3): Ditto.
6045         (*ieee_smax<mode>3): Ditto.
6046         * config/i386/sse.md (sse): New mode attribute.
6047         (mov<mode>): Macroize expander from movv4sf and movv2df using
6048         SSEMODEF2P mode iterator.
6049         (<sse>_movnt<mode>): Ditto from similar patterns. Use
6050         SSE_VEC_FLOAT_MODE_P as insn constraint.
6051         (storent<mode>): Ditto.
6052         (storent<mode>): Macroize expander from storentsf and storentdf using
6053         MODEF mode iterator.
6054         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
6055         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
6056         (abs<mode>2): Ditto from similar patterns.
6057         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
6058         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
6059         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
6060         (<sse>_vmsqrt<mode>2): Ditto.
6061         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
6062         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
6063         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
6064         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
6065         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
6066         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
6067         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
6068         insn constraint.
6069         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
6070         iterator and SSE_FLOAT_MODE_P as insn constraint.
6071         (<sse>_ucomi): Ditto from similar patterns.
6072         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
6073         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
6074         SSE_VEC_FLOAT_MODE_P as insn constraint.
6075         (vcond<mode>): Ditto from similar patterns.
6076         (and<mode>3, *and<mode>3): Ditto.
6077         (<sse>_nand<mode>3): Ditto.
6078         (ior<mode>3, *ior<mode>3): Ditto.
6079         (xor<mode>3, *xor<mode>3): Ditto.
6080         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
6081         iterator and SSE_FLOAT_MODE_P as insn constraint.
6082         (*nand<mode>3): Ditto from similar patterns.
6083         (*ior<mode>3): Ditto.
6084         (*xor<mode>3): Ditto.
6085
6086 2008-02-20  Ira Rosen  <irar@il.ibm.com>
6087
6088         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
6089         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
6090         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
6091
6092 2008-02-19  Jan Hubicka  <jh@suse.cz>
6093
6094         * predict.c (tree_bb_level_predictions): Remove variable next
6095         mistakely introduced by previous commit.
6096
6097 2008-02-19  Jan Hubicka  <jh@suse.cz>
6098
6099         * predict.c (predict_paths_leading_to): Rewrite.
6100         (predict_paths_for_bb): New.
6101         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
6102
6103 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6104
6105         PR bootstrap/35218
6106         * Makefile.in (build_file_translate): New.
6107         (gcc-vers.texi): Use it for translating $(abs_srcdir).
6108         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
6109         * configure.ac (build_file_translate): Substitute it.
6110         * configure: Regenerate.
6111
6112 2008-02-19  Jan Hubicka  <jh@suse.cz>
6113
6114         PR rtl-optimization/34408
6115         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
6116         invalid sharing.
6117
6118 2008-02-19  Jan Hubicka  <jh@suse.cz>
6119
6120         PR middle-end/28779
6121         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
6122         call_expr.
6123
6124 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
6125
6126         PR Ada/35186
6127         * config/i386/i386-modes.def: Revert the last DI alignment
6128         change until Ada people can look into it.
6129
6130 2008-02-19  Nick Clifton  <nickc@redhat.com>
6131
6132         * opts.c (print_specific_help): Fix typo in --help text.
6133
6134 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
6135
6136         PR target/35239
6137         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
6138         32-bit inline asm without asm alternatives for host GCC < 3.0.
6139
6140 2008-02-19  Richard Guenther  <rguenther@suse.de>
6141
6142         PR tree-optimization/34989
6143         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
6144         Allow propagation to INDIRECT_REF if we can simplify only.
6145
6146 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6147
6148         * c-common.c (warn_for_collisions_1): Use appropriate option when
6149         warning.
6150
6151 2008-02-19  Nick Clifton  <nickc@redhat.com>
6152
6153         PR other/31349
6154         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
6155         (handle_options): Fix indentation.
6156         (print_filtered_help): If no language-specific options were
6157         displayed tell the user how to list all the options supported by
6158         the language's front-end.
6159         (print_specific_help): Fix indentation and remove duplicate line.
6160         (common_handle_option): Handle the -v option.
6161         For --help enable the display of undocumented options if the -v
6162         switch has been included on the command line.
6163         For --help= check for overlaps in the arguments between the option
6164         classes and the language names and issue a warning when they
6165         cannot be disambiguated.
6166         * c.opt (v): Pass on to the common option handler.
6167
6168 2008-02-19  Revital Eres  <eres@il.ibm.com> 
6169
6170         * modulo-sched.c (sms_schedule): Change dump message when
6171         create_ddg function fails.
6172         (try_scheduling_node_in_cycle): Rename row to cycle.
6173         (print_partial_schedule): Rename CYCLE to ROW.
6174
6175 2008-02-19  Christian Bruel  <christian.bruel@st.com>
6176             Zdenek Dvorak  <ook@ucw.cz>
6177
6178         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
6179
6180 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
6181
6182         PR target/33555
6183         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
6184         (*x86_movdicc_0_m1_se): Ditto.
6185
6186 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
6187
6188         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
6189         (CMPtype): Define as __gcc_CMPtype.
6190         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
6191         (CMPtype): Define as __gcc_CMPtype.
6192
6193 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
6194
6195         Support valgrind 3.3 for --enable-checking=valgrind.
6196         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
6197         here.
6198         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
6199         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
6200         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
6201         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
6202         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
6203         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
6204         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
6205         respectively.
6206         * ggc-zone.c: Similar.
6207         * ggc-page.c: Similar.
6208
6209 2008-02-19  Paul Brook  <paul@codesourcery.com>
6210
6211         PR target/35071
6212         * config/arm/ieee754-df.S: Fix do_it typo.
6213         * config/arm/ieee754-sf.S: Fix do_it typo.
6214
6215 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
6216
6217         PR target/35189
6218         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
6219         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
6220         (OPTION_MASK_ISA_SSE_SET): Likewise.
6221         (OPTION_MASK_ISA_SSE2_SET): Likewise.
6222         (OPTION_MASK_ISA_SSE3_SET): Likewise.
6223         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
6224         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
6225         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
6226         (OPTION_MASK_ISA_SSE4_SET): Likewise.
6227         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
6228         (OPTION_MASK_ISA_SSE5_SET): Likewise.
6229         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
6230         (OPTION_MASK_ISA_MMX_UNSET): Updated.
6231         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
6232         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
6233         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
6234         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
6235         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
6236         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
6237         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
6238         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
6239         (OPTION_MASK_ISA_SSE4): Removed.
6240         (ix86_handle_option): Turn on bits in ix86_isa_flags and
6241         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
6242         (override_options): Don't turn on implied SSE/MMX bits in
6243         ix86_isa_flags.
6244
6245 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
6246
6247         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
6248         32bit host.
6249
6250 2008-02-18  Joey Ye  <joey.ye@intel.com>
6251
6252         PR middle-end/34921
6253         * tree-nested.c (insert_field_into_struct): Set type alignment
6254         to field alignment if the former is less than the latter.
6255
6256 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
6257
6258         * BASE-VER: Set to 4.4.0.
6259
6260 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6261
6262         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
6263         * doc/cfg.texi: Likewise.
6264         * doc/extend.texi: Likewise.
6265         * doc/gty.texi: Likewise.
6266         * doc/invoke.texi: Likewise.
6267         * doc/loop.texi: Likewise.
6268         * doc/md.texi: Likewise.
6269         * doc/passes.texi: Likewise.
6270         * doc/rtl.texi: Likewise.
6271         * doc/sourcebuild.texi: Likewise.
6272         * doc/tm.texi: Likewise.
6273         * doc/tree-ssa.texi: Likewise.
6274
6275 2008-02-17  Richard Guenther  <rguenther@suse.de>
6276
6277         PR middle-end/35227
6278         * tree-complex.c (init_parameter_lattice_values): Handle parameters
6279         without default definition.
6280
6281 2008-02-17  Richard Guenther  <rguenther@suse.de>
6282
6283         PR tree-optimization/35231
6284         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
6285         if A | B != 1.
6286
6287 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
6288
6289         Revert:
6290         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
6291         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
6292         libgcc_cmp_return mode.
6293
6294 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6295
6296         PR c/28368
6297         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
6298
6299 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
6300
6301         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
6302         multilibs.
6303
6304 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6305
6306         * doc/c-tree.texi: Use `@.' where appropriate.
6307         * doc/extend.texi: Likewise.
6308         * doc/install.texi: Likewise.
6309         * doc/invoke.texi: Likewise.
6310         * doc/loop.texi: Likewise.
6311         * doc/makefile.texi: Likewise.
6312         * doc/md.texi: Likewise.
6313         * doc/passes.texi: Likewise.
6314         * doc/standards.texi: Likewise.
6315         * doc/tm.texi: Likewise.
6316
6317 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
6318
6319         PR middle-end/35196
6320         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
6321         in entry_bb.
6322         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
6323         rather than in entry_bb.
6324
6325 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
6326
6327         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
6328         libgcc_cmp_return mode.
6329
6330 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
6331
6332         PR middle-end/35130
6333         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
6334         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
6335
6336 2008-02-15  Richard Guenther  <rguenther@suse.de>
6337             Zdenek Dvorak  <ook@ucw.cz>
6338
6339         PR tree-optimization/35164
6340         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
6341         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
6342         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
6343         Only propagate addresses which do not have abnormal SSA_NAMEs
6344         in their operands.
6345
6346 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
6347
6348         PR target/35088
6349         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
6350
6351 2008-02-15  Jan Hubicka  <jh@suse.cz>
6352
6353         PR middle-end/35149
6354         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
6355
6356 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
6357
6358         PR middle-end/34621
6359         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
6360         when calculating alignment_pad.
6361
6362 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
6363
6364         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
6365         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
6366         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
6367         and STACK_BOUNDARY define.
6368
6369 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
6370
6371         PR preprocessor/35061
6372         * c-pragma.c (handle_pragma_pop_macro): Check that
6373         pushed_macro_table has been allocated.
6374
6375 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
6376
6377         PR middle-end/35136
6378         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
6379         (force_gimple_operand): Likewise.
6380         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
6381         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
6382         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
6383         (find_interesting_uses_address): Check addressability and alignment
6384         of the base expression only after substituting bases of IVs into it.
6385
6386 2008-02-14  Michael Matz  <matz@suse.de>
6387
6388         PR target/34930
6389         * function.c (instantiate_virtual_regs_in_insn): Reload address
6390         before falling back to reloading the whole operand.
6391
6392 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
6393
6394         * config/s390/s390.c (s390_mainpool_start): Emit the pool
6395         before the first section switch note.
6396
6397 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6398
6399         * doc/bugreport.texi: Update copyright years.
6400         * doc/c-tree.texi: Likewise.
6401         * doc/cfg.texi: Likewise.
6402         * doc/cpp.texi: Likewise.
6403         * doc/cppinternals.texi: Likewise.
6404         * doc/fragments.texi: Likewise.
6405         * doc/frontends.texi: Likewise.
6406         * doc/gcc.texi: Likewise.
6407         * doc/gty.texi: Likewise.
6408         * doc/hostconfig.texi: Likewise.
6409         * doc/implement-c.texi: Likewise.
6410         * doc/libgcc.texi: Likewise.
6411         * doc/loop.texi: Likewise.
6412         * doc/makefile.texi: Likewise.
6413         * doc/options.texi: Likewise.
6414         * doc/passes.texi: Likewise.
6415         * doc/rtl.texi: Likewise.
6416         * doc/sourcebuild.texi: Likewise.
6417         * doc/standards.texi: Likewise.
6418         * doc/tree-ssa.texi: Likewise.
6419         * doc/trouble.texi: Likewise.
6420
6421         * doc/extend.texi: Use @: or add comma where appropriate.
6422         * doc/invoke.texi: Likewise.
6423         * doc/tm.texi: Likewise.
6424
6425 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
6426
6427         PR target/34393
6428         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
6429         to a reg.
6430
6431 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
6432
6433         * doc/md.texi (clz, ctz): Add reference.
6434         * doc/rtl.texi (clz, ctz): Likewise.
6435
6436 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6437
6438         PR other/35148
6439         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
6440         srcdir.
6441
6442 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
6443
6444         * config/s390/s390.c (struct constant_pool): New field
6445         emit_pool_after added.
6446         (s390_mainpool_start): Set the emit_pool_after flag according
6447         to the section switch notes.
6448         (s390_mainpool_finish): Consider emit_pool_after when emitting
6449         the literal pool at the end of the function.
6450         (s390_chunkify_start): Force literal pool splits at section
6451         switch notes.
6452
6453 2008-02-13  Michael Matz  <matz@suse.de>
6454
6455         PR debug/35065
6456         * var-tracking.c (clobber_variable_part): Correctly traverse the
6457         list.
6458
6459 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6460
6461         PR 29673
6462         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
6463         Add -fdump-ipa-inline.
6464         * tree-dump.c (dump_files): Remove tree-inlined dump.
6465         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
6466         
6467 2008-02-12  Richard Guenther  <rguenther@suse.de>
6468
6469         PR tree-optimization/35171
6470         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
6471         default defs.
6472
6473 2008-02-12  Richard Guenther  <rguenther@suse.de>
6474
6475         PR middle-end/35163
6476         * fold-const.c (fold_widened_comparison): Use get_unwidened in
6477         value-preserving mode.  Disallow final truncation.
6478
6479 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
6480
6481         PR middle-end/35136
6482         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
6483         code from here to...
6484         (force_gimple_operand): ...here.
6485
6486 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
6487
6488         PR c++/35144
6489         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
6490         non-compatible pointers.
6491         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
6492         different FIELD_DECLs, try harder by comparing field offsets, sizes
6493         and types.
6494
6495         PR inline-asm/35160
6496         * function.c (match_asm_constraints_1): Don't replace the same input
6497         multiple times.
6498
6499 2008-02-12  Anatoly Sokolov <aesok@post.ru>
6500
6501         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
6502         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
6503         (expand_epilogue): Restore RAMPZ register.
6504         * config/avr/avr.md (RAMPZ_ADDR): New constant.
6505
6506 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
6507
6508         * config/i386/cygwin.asm: (__alloca): Correct calling
6509         convention and alignment.
6510         (__chkstk): Force 8 byte stack alignment.
6511
6512 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
6513             Richard Guenther  <rguenther@suse.de>
6514
6515         PR tree-optimization/33992
6516         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
6517         the zero we compare against.
6518
6519 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
6520
6521         PR libfortran/35063
6522         * gthr-win32.h (__gthread_mutex_destroy_function): New function
6523         to CloseHandle after unlocking to prevent accumulation of handle
6524         count.
6525
6526 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6527
6528         PR middle_end/34150
6529         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
6530         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
6531         and update LABEL_NUSES during and after reload.
6532
6533 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
6534
6535         PR middle-end/34627
6536         * combine.c (simplify_if_then_else): Make sure the comparison is
6537         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
6538
6539 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
6540
6541         PR bootstrap/35051
6542         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
6543         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
6544         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
6545         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
6546         * tree.h (get_type_static_bounds): Likewise.
6547
6548 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6549
6550         * doc/invoke.texi (Option Summary, C++ Dialect Options)
6551         (Objective-C and Objective-C++ Dialect Options, Warning Options):
6552         Make -Wfoo language annotations match what the compiler outputs.
6553
6554 2008-02-08  Sa Liu  <saliu@de.ibm.com>
6555
6556         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
6557         intrinsics spu_convts, spu_convtu, spu_convtf.
6558
6559 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
6560
6561         * doc/extend.texi (Function Attributes) <noinline>: Mention
6562         asm ("") as method to keep calls.
6563
6564 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6565
6566         PR other/32754
6567         * doc/options.texi (Options): Replace references to opts.sh with
6568         optc-gen.awk.
6569         * opts-common.c: Likewise.
6570         * optc-gen.awk: Likewise.
6571         
6572 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
6573
6574         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
6575
6576 2008-02-07  Richard Henderson  <rth@redhat.com>
6577
6578         PR rtl-opt/33410
6579         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
6580         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
6581         funny mode.
6582
6583 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
6584
6585         PR tree-optimization/35085
6586         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
6587         for operand entry oe2 in addition to operand entry oe3 in order to
6588         expose more opportunities for vectorizer sum reduction.
6589
6590 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6591
6592         PR other/35107
6593         * Makefile.in (LIBS): Remove $(GMPLIBS).
6594         (cc1-dummy, cc1): Add $(GMPLIBS).
6595
6596 2008-02-06  Jan Hubicka  <jh@suse.cz>
6597
6598         PR target/23322
6599         * i386.md (moddf_integer): Do not produce partial memory stalls for
6600         targets where it hurts.
6601
6602 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
6603
6604         PR target/35083
6605         * optabs.c (expand_float): Do not check for decimal modes when
6606         expanding unsigned integer through signed conversion.
6607
6608 2008-02-06  Nick Clifton  <nickc@redhat.com>
6609
6610         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
6611         inside the clobber with a match_operand and duplicated operand
6612         number in the constraint.
6613         (ineqbranchsi): Delete redundant comment.
6614
6615 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
6616
6617         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
6618         builtin_define ("__USE_INIT_FINI__").
6619         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
6620         -msx multilibs.
6621         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
6622
6623 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6624
6625         PR documentation/30330
6626         * doc/invoke.texi (C++ Dialect Options)
6627         (Objective-C and Objective-C++ Dialect Options, Warning Options):
6628         For each warning option -Wfoo that allows -Wno-foo, ensure both
6629         -Wfoo and -Wno-foo are listed in the option index.  Fix index
6630         entry of -Wswitch-default, index -Wnormalized= including the
6631         `=', and -Wlarger-than-@var{len} including @var{len}.
6632
6633 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
6634
6635         * config/i386/i386.md (floatunssisf2): Use
6636         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
6637         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
6638         Macroize expander using MODEF mode iterator.
6639
6640 2008-02-05  Diego Novillo  <dnovillo@google.com>
6641
6642         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
6643
6644         PR 33738
6645         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
6646
6647 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6648
6649         PR other/35070
6650         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
6651
6652 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
6653
6654         PR target/35084
6655         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
6656         to indicate if a message should be generated.
6657         (init_cumulative_args): Updated.
6658         (function_value_32): Likewise.
6659
6660 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
6661
6662         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
6663
6664 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
6665
6666         PR target/35083
6667         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
6668         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
6669
6670 2008-02-04  Diego Novillo  <dnovillo@google.com>
6671
6672         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
6673
6674         PR 33738
6675         * tree-vrp.c (vrp_evaluate_conditional): With
6676         -Wtype-limits, emit a warning when comparing against a
6677         constant outside the natural range of OP0's type.
6678
6679 2008-02-04  Richard Guenther  <rguenther@suse.de>
6680
6681         PR middle-end/33631
6682         * expr.c (count_type_elements): Give for unions instead of
6683         guessing.
6684
6685 2008-02-04  Richard Guenther  <rguenther@suse.de>
6686
6687         PR middle-end/35043
6688         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
6689         to TYPE_DOMAINs base type instead of using bitsizetype here.
6690
6691 2008-02-03  Jason Merrill  <jason@redhat.com>
6692
6693         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
6694
6695 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6696
6697         PR other/29972
6698         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
6699         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
6700         (RS/6000 and PowerPC Options): Fix typos and markup.
6701         * doc/passes.texi (Tree-SSA passes): Likewise.
6702
6703 2008-02-02  Michael Matz  <matz@suse.de>
6704
6705         PR target/35045
6706         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
6707         from record_last_reg_set_info.
6708         (record_last_reg_set_info): Take an RTX argument, iterate over all
6709         constituent hardregs.
6710         (record_last_set_info, record_opr_changes): Change calls to
6711         new signature or to record_last_reg_set_info_regno.
6712
6713 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
6714
6715         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
6716
6717 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
6718
6719         PR rtl-optimization/34773
6720         * reg-notes.def (EQUAL): Mention significance of combination of
6721         REG_EQUAL and REG_RETVAL.
6722         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
6723         insn that has a REG_RETVAL.
6724
6725 2008-02-01  Roger Sayle  <roger@eyesopen.com>
6726
6727         PR bootstrap/33781
6728         * configure.ac (--enable-fixed-point): Disable unless explicitly
6729         requested on IRIX.
6730         * configure: Regenerate.
6731
6732 2008-02-01  Richard Guenther  <rguenther@suse.de>
6733
6734         PR other/35042
6735         * invoke.texi (-finline-limit): Remove no longer true parts
6736         of the documentation.  Note that there is no default value.
6737
6738 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
6739             Mark Mitchell  <mark@codesourcery.com>
6740             Ben Elliston  <bje@au.ibm.com>
6741
6742         PR c/29326
6743         * doc/extend.texi (Other Builtins): Document.
6744
6745 2008-01-31  Tom Browder <tom.browder@gmail.com>
6746
6747         * doc/c-tree.texi (Types): Fix grammar.
6748         (Expression trees): Ditto.
6749         * doc/passes.texi (Tree-SSA passes): Ditto.
6750         
6751         * doc/configterms.texi (Configure Terms): Fix typo.
6752         * doc/cpp.texi (Common Predefined Macros): Ditto.
6753         * doc/md.texi (Machine Constraints): Ditto.
6754         
6755         * doc/makefile.texi (Makefile): Add comma.
6756
6757 2008-01-31  Tom Browder  <tom.browder@gmail.com>
6758             Gerald Pfeifer  <gerald@pfeifer.com>
6759         
6760         * doc/sourcebuild.texi (Front End): Remove references to CVS
6761         and CVSROOT/modules.
6762         (Texinfo Manuals): Replace reference to CVS by one to SVN.
6763         (Back End): Remove reference to CVS.
6764
6765 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
6766
6767         PR target/34900
6768         * config/mips/mips.c (gen_load_const_gp): New function, taking a
6769         comment from...
6770         (mips16_gp_pseudo_reg): ...here.
6771         * config/mips/mips.md (load_const_gp): Replace with...
6772         (load_const_gp_<mode>): ...this :P-based insn.
6773
6774 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6775
6776         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
6777         options. Minor fixes.
6778         (-std): Move reference to standards closer to where language
6779         standards are first mentioned.
6780         
6781 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
6782
6783         PR rtl-optimization/34995
6784         * reload.c (alternative_allows_const_pool_ref): Take an rtx
6785         parameter and return a bool.  If the rtx parameter is nonnull,
6786         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
6787         (find_reloads): Update call accordingly.  Pass the new operand
6788         if it needed no address reloads, otherwise pass null.
6789
6790 2008-01-30  Richard Henderson  <rth@redhat.com>
6791
6792         PR c/34993
6793         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
6794         for unbounded arrays.
6795
6796 2008-01-30  Silvius Rus  <rus@google.com>
6797
6798         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
6799
6800 2008-01-30  Jan Hubicka  <jh@suse.cz>
6801
6802         PR target/34982
6803         * i386.c (init_cumulative_args): Use real function declaration when
6804         calling locally.
6805
6806 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
6807
6808         PR rtl-optimization/34998
6809         * global.c (build_insn_chain): Treat non-subreg_lowpart
6810         SUBREGs of pseudos as clobbering all the words covered by the
6811         SUBREG, not just all the bytes.
6812         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
6813         original df_ref rather than an extract parameter.
6814         (global_conflicts): Update call accordingly.
6815
6816 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
6817
6818         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
6819         the overflow check to make it easier to read.
6820         (__fixtfdi): Change the type of the ll member in union
6821         long_double to UDItype_x.
6822
6823 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
6824
6825         PR middle-end/34969
6826         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
6827         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
6828         * tree-inline.c (fold_marked_statements): Call
6829         cgraph_update_edges_for_call_stmt if folding a call statement.
6830         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
6831         debug_generic_stmt calls, reset it back afterwards.
6832
6833         PR c/35017
6834         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
6835         static decls.
6836         * c-typeck.c (build_external_ref): Don't pedwarn about
6837         static vars in current function's scope.
6838
6839 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
6840
6841         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
6842
6843 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
6844
6845         PR c/35002
6846         * ipa-struct-reorg.c: Fix spelling.
6847         * params.def: Ditto.
6848
6849 2008-01-29  Richard Guenther  <rguenther@suse.de>
6850
6851         PR middle-end/35006
6852         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
6853         field.
6854         * tree-inline.c (remap_type): Increment remapping_type_depth
6855         around remapping types.
6856         (copy_body_r): Only add referenced variables if they are referenced
6857         from code, not types.
6858
6859 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
6860
6861         PR c++/34055
6862         PR c++/34103
6863         PR c++/34219
6864         PR c++/34606
6865         PR c++/34753
6866         PR c++/34754
6867         PR c++/34755
6868         PR c++/34919
6869         PR c++/34961
6870         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
6871         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
6872
6873 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
6874
6875         PR target/34412
6876         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
6877         pointer for tiny stack.
6878
6879 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
6880
6881         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
6882
6883 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
6884
6885         * config/vx-common.h: Fix typo in comment.
6886
6887 2008-01-28  Ian Lance Taylor  <iant@google.com>
6888
6889         PR c++/34862
6890         PR c++/33407
6891         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
6892         coalesce pointers if they have different DECL_NO_TBAA_P values.
6893         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
6894         between variables with different DECL_NO_TBAA_P values.
6895
6896 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
6897
6898         PR 31535
6899         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
6900         are not legitimate small data references on SPE targets.
6901
6902 2008-01-28  David Daney  <ddaney@avtrex.com>
6903
6904         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
6905
6906 2008-01-28  David Daney  <ddaney@avtrex.com>
6907
6908         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
6909
6910 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
6911
6912         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
6913         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
6914         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
6915         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
6916         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
6917         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
6918         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
6919         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
6920
6921 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
6922
6923         * basic-block.h (condjump_equiv_p): Fix comment.
6924
6925 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
6926
6927         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
6928         print_generic_stmt_indented): Fix comment.
6929
6930 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
6931
6932         * configure.ac (__stack_chk_fail): Add detecion for availability
6933         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
6934         * configure: Regenerate.
6935
6936 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
6937
6938         PR middle-end/34688
6939         * final.c (output_addr_const): Handle TRUNCATE.
6940
6941 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
6942
6943         PR target/34711
6944         * tree-ssa-loop-ivopts.c (comp_cost): New type.
6945         (zero_cost, infinite_cost): New constants.
6946         (struct cost_pair): Change type of cost to comp_cost.
6947         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
6948         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
6949         New functions.
6950         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
6951         split_address_cost, ptr_difference_cost, difference_cost,
6952         get_computation_cost_at, get_computation_cost,
6953         determine_use_iv_cost_generic, determine_use_iv_cost_address,
6954         determine_use_iv_cost_condition, determine_use_iv_costs,
6955         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
6956         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
6957         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
6958         Change type of cost to comp_cost.
6959         (determine_iv_cost): Increase cost of non-original ivs, instead
6960         of decreasing the cost of original ones.
6961         (get_address_cost): Indicate the complexity of the addressing mode 
6962         in comp_cost.
6963         (try_add_cand_for): Prefer using ivs not specific to some object.
6964         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
6965
6966 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
6967             Janis Johnson  <janis187@us.ibm.com>
6968
6969         PR target/34814
6970         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
6971         (TARGET_INSTANTIATE_DECLS): Likewise.
6972         * target.h (expand_to_rtl_hook): New target hook.
6973         (instantiate_decls): Likewise.
6974         * function.c (instantiate_decl): Make non-static.  Rename to...
6975         (instantiate_decl_rtl): ... this.
6976         (instantiate_expr): Use instantiate_decl_rtl.
6977         (instantiate_decls_1): Likewise.
6978         (instantiate_decls): Likewise.
6979         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
6980         * function.h (instantiate_decl_rtl): Add prototype.
6981         * cfgexpand.c (target.h): New include.
6982         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
6983         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
6984         (TARGET_INSTANTIATE_DECLS): Likewise.
6985         (TARGET_INITIALIZER): New target hooks added.
6986         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
6987         New prototype.
6988         * config/rs6000/rs6000.c (tree-flow.h): New include.
6989         (machine_function): Add sdmode_stack_slot field.
6990         (rs6000_alloc_sdmode_stack_slot): New function.
6991         (rs6000_instantiate_decls): Likewise.
6992         (rs6000_secondary_memory_needed_rtx): Likewise.
6993         (rs6000_check_sdmode): Likewise.
6994         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
6995         (TARGET_INSTANTIATE_DECLS): Likewise.
6996         (rs6000_hard_regno_mode_ok): Allow SDmode.
6997         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
6998         (rs6000_emit_move): Handle SDmode.
6999         (function_arg_advance): Likewise.
7000         (function_arg): Likewise.
7001         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
7002         SDmode var args for 32-bit compiles.
7003         (rs6000_secondary_reload_class): Handle SDmode.
7004         (rs6000_output_function_epilogue): Likewise.
7005         (rs6000_function_value): Simplify if statement.
7006         (rs6000_libcall_value): Likewise.
7007         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
7008         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
7009         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
7010         (movsd_hardfloat): New define_insn.
7011         (movsd_softfloat): Likewise.
7012         (movsd_store): Likewise.
7013         (movsd_load): Likewise.
7014         (extendsddd2): Likewise.
7015         (extendsdtd2): Likewise.
7016         (truncddsd2): Likewise.
7017         (movdd_hardfloat64): Fixup comment.
7018         (UNSPEC_MOVSD_LOAD): New constant.
7019         (UNSPEC_MOVSD_STORE): Likewise.
7020
7021 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
7022
7023         PR c++/34965
7024         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
7025         TRUTH_XOR_EXPR.
7026         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
7027         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
7028         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
7029         and TRUTH_XOR_EXPR.
7030
7031 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
7032
7033         PR target/34794
7034         * config.gcc: Separate AIX 5.3 from AIX 6.1.
7035         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
7036         __LONGDOUBLE128 too.
7037         * config/rs6000/aix61.h: New file.
7038
7039 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
7040
7041         PR rtl-optimization/34959
7042         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
7043         popcount and parity rtxes the same mode as their operand.
7044         Truncate or extend the result to the return value's mode
7045         if necessary.
7046
7047 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
7048
7049         PR target/34981
7050         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
7051         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
7052         to GOT_VERSION_REGNUM.
7053         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
7054         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
7055         * config/mips/mips.c (mips_emit_call_insn): New function.
7056         (mips_call_tls_get_addr): Call mips_expand_call directly.
7057         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
7058         emit_call_insn.
7059         (mips16_build_call_stub): Likewise.  Return the call insn or null.
7060         (mips_expand_call): Update the call to mips16_build_call_stub
7061         accordingly and a remove redundant condition.  Assert that MIPS16
7062         stubs do not use lazy binding.  Use mips_emit_call_insn and return
7063         the call insn.
7064         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
7065         TARGET_USE_GOT.
7066         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
7067         (mips_avoid_hazard): Remove hazard_set handling.
7068         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
7069         (UNSPEC_RESTORE_GP): ...this.
7070         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
7071         (FAKE_CALL_REGNO): Rename to...
7072         (GOT_VERSION_REGNUM): ...this.
7073         (type): Add "ghost" value.  Add an associated insn reservation.
7074         (hazard_set): Remove.
7075         (exception_receiver): Rename to...
7076         (restore_gp): ...this and update the unspec identifier accordingly.
7077         (exception_receiver, nonlocal_got_receiver): New expanders.
7078         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
7079         FAKE_CALL_REGNO.  Remove hazard_set attribute.
7080         (set_got_version, update_got_version): New patterns.
7081
7082 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
7083
7084         PR target/34970
7085         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
7086
7087 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
7088
7089         PR other/31955
7090         * doc/install.texi2html: Generate gcc-vers.texi.
7091
7092 2008-01-25  DJ Delorie  <dj@redhat.com>
7093
7094         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
7095
7096 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
7097
7098         * config/c4x: Remove directory.
7099         * config.gcc (crx-*, mt-*): Mark obsolete.
7100         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
7101         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
7102         sh-*-rtemscoff*): Remove cases.
7103         * defaults.h (C4X_FLOAT_FORMAT): Remove.
7104         * real.c (encode_c4x_single, decode_c4x_single,
7105         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
7106         c4x_extended_format): Remove.
7107         * real.h (c4x_single_format, c4x_extended_format): Remove.
7108         * doc/extend.texi (interrupt, naked): Remove mention of attributes
7109         on C4x.
7110         (Pragmas): Remove comment about c4x pragmas.
7111         * doc/install.texi (c4x): Remove target-specific instructions.
7112         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
7113         * doc/md.texi (Machine Constraints): Remove C4x documentation.
7114         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
7115         refer to C4x source files as examples.
7116         (C4X_FLOAT_FORMAT): Remove documentation.
7117
7118 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
7119
7120         * config/bfin/bfin.c (override_options): Reorder tests so that
7121         flag_pic gets enabled for -msep-data.
7122
7123 2008-01-25  Richard Guenther  <rguenther@suse.de>
7124
7125         PR middle-end/32244
7126         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
7127         to its bitfield precision if required.
7128
7129 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
7130
7131         PR middle-end/33880
7132         * tree-nested.c (walk_omp_for): New function.
7133         (convert_nonlocal_reference, convert_local_reference): Call
7134         walk_omp_for on OMP_FOR.
7135         (convert_call_expr): Call walk_body on OMP_FOR's
7136         OMP_FOR_PRE_INIT_BODY.
7137
7138 2008-01-25  Richard Guenther  <rguenther@suse.de>
7139
7140         PR tree-optimization/34966
7141         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
7142         default defs and PHI_NODEs we have to insert after the
7143         defining statement.
7144
7145 2008-01-24  Nick Clifton  <nickc@redhat.com>
7146
7147         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
7148         Provide a default definition.
7149         (LIBGCC2_UNITS_PER_WORD): Likewise.
7150
7151         * config/stormy16/stormy16.c: Include df.h for the prototype
7152         for df_regs_ever_live_p.
7153         (xstormy16_expand_builtin_va_start): Convert the stack offset
7154         into a component_ref and then use POINTER_PLUS_EXPR to add it
7155         to the incoming_virtual_args_rtx.
7156         (xstormy16_gimplify_va_arg_expr): Rename to
7157         xstormy16_gimplify_va_arg_expr.
7158         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
7159         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
7160         xstormy16_gimplify_va_arg_expr.
7161         Fix up some formatting issues.
7162
7163         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
7164         Move to predicates.md.
7165         (xs_hi_general_operand): Likewise.
7166         (xs_hi_nonmemory_operand): Likewise.
7167         * config/stormy16/predicates.md:
7168         (xstormy16_carry_plus_operand): New predicate.
7169         (xs_hi_general_operand): New predicate.
7170         (xs_hi_nonmemory_operand): New predicate.
7171         * config/stormy16/stormy16-protos.h:
7172         (xstormy16_carry_plus_operand): Delete prototype.
7173         (xs_hi_general_operand): Likewise.
7174         (xs_hi_nonmemory_operand): Likewise.
7175
7176         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
7177         modifiers as they are no longer needed and they can trigger
7178         reload spill failures.
7179
7180         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
7181         with a match_operand in order to help reload.
7182
7183         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
7184         constraint with 'e' for the 8th alternative as this version of
7185         the mov.w instruction only accepts the lower 8 registers.
7186
7187 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
7188
7189         PR target/34856
7190         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
7191         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
7192         vector elements.
7193
7194 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
7195
7196         PR middle-end/33333
7197         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
7198
7199 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
7200
7201         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
7202         New functions.
7203         (remove_structure): Update allocations list before removing structure.
7204         
7205 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
7206
7207         * ipa-struct-reorg.c (is_safe_cond_expr, 
7208         create_new_stmts_for_cond_expr): Use integer_zerop function,
7209         that recognize not only zero-pointer, but zero-integer too.
7210
7211 2008-01-25  Ben Elliston  <bje@au.ibm.com>
7212
7213         PR other/22232
7214         * fixproto: Escape "." in sed expression that strips leading "./".
7215
7216 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
7217
7218         PR driver/34904
7219         * gcc.c (SWITCH_OK): Removed.
7220         (SWITCH_LIVE): Changed to bit.
7221         (SWITCH_FALSE): Likewise.
7222         (SWITCH_IGNORE): Likewise.
7223         (switchstr): Change live_cond to unsigned int.
7224         (process_command): Replace SWITCH_OK with 0.
7225         (do_self_spec): Likewise.
7226         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
7227         (give_switch): Likewise.
7228         (used_arg): Likewise.
7229         (do_spec_1): Set the SWITCH_IGNORE bit.
7230         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
7231         bits.  Set the SWITCH_LIVE bit.
7232
7233 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
7234
7235         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
7236
7237 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
7238
7239         PR tree-optimization/34472
7240         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
7241         parameter to a "bool *" and set *DATA to false if there is
7242         an unsafe access.  Do not delete the structure here.
7243         (check_cond_exprs): Delete it here instead.
7244         (check_cond_exprs, exclude_cold_structs): Do not increase
7245         I when removing a structure.
7246
7247 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
7248
7249         PR target/34856
7250         * config/i386/i386.c (ix86_expand_vector_init): Consider only
7251         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
7252
7253 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
7254
7255         PR middle-end/34934
7256         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
7257         a fixed vector for stack.
7258
7259 2008-01-24  Ben Elliston  <bje@au.ibm.com>
7260
7261         PR c++/25701
7262         * doc/gcc.texi (Software development): Add a direntry for g++.
7263         
7264 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
7265
7266         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
7267         stale and straggling -fforce-addr comments above.
7268
7269         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
7270         define.
7271         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
7272         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
7273
7274 2008-01-23  Michael Matz  <matz@suse.de>
7275
7276         PR debug/34895
7277         * dwarf2out.c (force_type_die): Use modified_type_die instead of
7278         gen_type_die.
7279
7280 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
7281
7282         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
7283         malloc result type.
7284
7285 2008-01-23 Anatoly Sokolov <aesok@post.ru>
7286
7287         * config/avr/avr.c (avr_current_arch): New variable.
7288         (avr_arch_types): Add 'avr31' and 'avr51' entries.
7289         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
7290         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
7291         (avr_override_options): Init 'avr_current_arch'. 
7292         (base_arch_s): Move from here...
7293         * config/avr/avr.h (base_arch_s): ... here. Add new members 
7294         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
7295         'mega' to 'have_jmp_call'.
7296         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
7297         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
7298         macros.
7299         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
7300         architectures.
7301         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
7302         MULTILIB_MATCHES): (Ditto.).
7303
7304 2008-01-23  Richard Guenther  <rguenther@suse.de>
7305
7306         PR middle-end/31529
7307         * cgraphunit.c (cgraph_reset_node): Always mark the node
7308         not reachable if it is not queued already.
7309
7310 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
7311
7312         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
7313         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
7314         (cputype_selected): New static variable.
7315         (bfin_handle_option): Set it if -mcpu is used.
7316         (override_option): Select default set of workarounds if no cpu type
7317         selected on the command line.
7318         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
7319
7320         From  Michael Frysinger  <michael.frysinger@analog.com>
7321         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
7322         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
7323
7324         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
7325         for bf547, bf523, bf524, and bf526.
7326         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
7327         bf526.
7328         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
7329         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
7330         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
7331         __ADSPBF547__ and __ADSPBF54x__ for bf547.
7332         * doc/invoke.texi (Blackfin Options): Document that
7333         -mcpu now accept bf547, bf523, bf524, and bf526.
7334
7335 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
7336
7337         PR rtl-optimization/34628
7338         * combine.c (try_combine): Stop and undo after the first combination
7339         if an autoincrement side-effect on the first insn has effectively
7340         been lost.
7341
7342 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
7343
7344         PR target/34529
7345         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
7346         Offset addresses are not valid for Altivec or paired float modes.
7347
7348 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
7349
7350         PR c++/34607
7351         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
7352         if DECL_INITIAL (decl) is error_mark_node.
7353
7354         PR c++/34914
7355         * c-common.c (handle_vector_size_attribute): Only allow
7356         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
7357         the same way as pointer, array etc. types.
7358         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
7359
7360         PR c++/34917
7361         * tree.c (build_type_attribute_qual_variant): Call
7362         build_qualified_type if attributes are equal, but quals are not.
7363
7364 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7365
7366         PR 32102
7367         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
7368         * flags.h (warn_strict_aliasing): Remove.
7369         (warn_strict_overflow): Remove.
7370         * opts.c (warn_strict_aliasing): Remove.
7371         (warn_strict_overflow): Remove.
7372         * c-opts.c (c_common_handle_option): -Wall only sets
7373         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
7374         (c_common_post_options): Give default values to -Wstrict-aliasing
7375         and -Wstrict-overflow if they are uninitialized.
7376         * common.opt (Wstrict-aliasing): Specify Var and Init.
7377         (Wstrict-overflow): Likewise.
7378
7379 2008-01-22  Kenneth Zadeck <zadeck@naturalbridge.com>
7380
7381         PR rtl-optimization/26854
7382         PR rtl-optimization/34400
7383         PR rtl-optimization/34884
7384         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
7385         DF_RD->gen.
7386         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
7387         (df_rd_bb_info.expanded_lr_out): Deleted
7388         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
7389         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
7390         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
7391         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
7392         Removed code to allocate, initialize or free expanded_lr_out.
7393         (df_rd_bb_local_compute_process_def): Restructured to make more
7394         understandable.
7395         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
7396         sets if the sets are being trimmed.
7397
7398 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
7399
7400         PR bootstrap/32287
7401         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
7402         (as_vers): Likewise.
7403         * configure: Regenerated.
7404
7405 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7406
7407         PR middle-end/33092
7408         * tree-pass.h (pass_build_alias): New pass.
7409         * tree-ssa-alias.c (gate_build_alias): New.
7410         (pass_build_alias): New.
7411         * passes.c (init_optimization_passes): Add pass_build_alias after
7412         pass_create_structure_vars.
7413
7414 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
7415
7416         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
7417         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
7418         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
7419         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
7420         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
7421         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
7422         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
7423         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
7424         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
7425         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
7426         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
7427         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
7428         * config/s390/s390.md (FP_ALL): New mode iterator.
7429         (_d): New mode attribute.
7430         ("*signbit<mode>2>"): Changed mode of first operand.
7431         ("isinf<mode>2"): Changed mode of first operand.
7432         ("*TDC_insn"): Adaptation for DFP modes.
7433
7434 2008-01-22  Ben Elliston  <bje@au.ibm.com>
7435
7436         * tree.c (check_qualified_type): Improve function description.
7437
7438 2008-01-21  Jason Merrill  <jason@redhat.com>
7439
7440         PR c++/34196
7441         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
7442         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
7443         if it is set.
7444
7445 2008-01-21  DJ Delorie  <dj@redhat.com>
7446
7447         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
7448         return zero.
7449
7450 2008-01-21  Richard Guenther  <rguenther@suse.de>
7451
7452         PR middle-end/34856
7453         * tree-cfg.c (verify_expr): Allow all invariant expressions
7454         instead of just constant class ones as reference argument.
7455         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
7456         like any other constant.
7457         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
7458
7459 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
7460
7461         * regmove.c (fixup_match_1): Update call crossed frequencies.
7462
7463 2008-01-21  Richard Guenther  <rguenther@suse.de>
7464
7465         PR c/34885
7466         * tree-inline.c (setup_one_parameter): Deal with mismatched
7467         types using a VIEW_CONVERT_EXPR.
7468
7469 2008-01-21  Alon Dayan  <alond@il.ibm.com>
7470             Olga Golovanevsky  <olga@il.ibm.com>
7471         
7472         PR tree-optimization/34701
7473         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
7474         when the structure size is not a power of 2.
7475
7476 2008-01-20  Kenneth Zadeck <zadeck@naturalbridge.com>
7477
7478         * doc/install.texi: Add doc for --enable-checking=df.
7479         
7480 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7481
7482         PR rtl-optimization/34808
7483         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
7484
7485 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
7486
7487         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
7488         input.
7489
7490 2008-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
7491
7492         PR rtl-optimization/26854
7493         PR rtl-optimization/34400
7494         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
7495         DF_RD->gen.
7496         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
7497         (df_rd_bb_info.expanded_lr_out): New.
7498         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
7499         * loop_iv.c (iv_analysis_loop_init): Ditto.
7500         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
7501         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
7502         Added code to allocate, initialize or free expanded_lr_out.
7503         (df_rd_bb_local_compute_process_def): Restructured to make
7504         more understandable.
7505         (df_rd_confluence_n): Add code to do nothing with fake edges and
7506         code to no apply invalidate_by_call sets if the sets are being trimmed.
7507         (df_lr_local_finalize): Renamed to df_lr_finalize.
7508         (df_live_local_finalize): Renamed to df_live_finalize.
7509
7510 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
7511
7512         PR target/34831
7513         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
7514         deciding whether to use reciprocal instructions.
7515
7516 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
7517
7518         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
7519         dwarf2out_note_section_used if cold_text_section is NULL.
7520
7521 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
7522
7523         PR gcov-profile/34610
7524         * tree-cfg.c (make_edges): Mark both outgoing edges from
7525         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
7526         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
7527         from OMP_FOR and OMP_CONTINUE outgoing edges.
7528
7529         * tree-profile.c (tree_profiling): Return early if
7530         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
7531         at the end.
7532         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
7533         from cfun to child_cfun.
7534         * function.h (struct function): Add after_tree_profile bit.
7535
7536 2008-01-19 Anatoly Sokolov <aesok@post.ru>
7537
7538         * config/avr/avr.S (_exit): Disable interrupt.
7539
7540 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
7541             Steven Bosscher  <stevenb.gcc@gmail.com>
7542
7543         PR rtl-optimization/26854
7544         PR rtl-optimization/34400
7545         * df-problems.c (df_live_scratch): New scratch bitmap.
7546         (df_live_alloc): Allocate df_live_scratch when doing df_live.
7547         (df_live_reset): Clear the proper bitmaps.
7548         (df_live_bb_local_compute): Only process the artificial defs once
7549         since the order is not important.
7550         (df_live_init): Init the df_live sets only with the variables
7551         found live by df_lr.
7552         (df_live_transfer_function): Use the df_lr sets to prune the
7553         df_live sets as they are being computed.  
7554         (df_live_free): Free df_live_scratch.
7555
7556 2008-01-18  Ian Lance Taylor  <iant@google.com>
7557
7558         * common.opt: Add fmerge-debug-strings.
7559         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
7560         flag_merge_debug_strings rather than flag_merge_constants.
7561         * doc/invoke.texi (Option Summary): Mention
7562         -fmerge-debug-strings.
7563         (Debugging Options): Document -fmerge-debug-strings.
7564
7565 2008-01-18  Ian Lance Taylor  <iant@google.com>
7566
7567         PR c++/33407
7568         * tree.h (DECL_IS_OPERATOR_NEW): Define.
7569         (struct tree_function_decl): Add new field operator_new_flag.
7570         * tree-inline.c (expand_call_inline): When inlining a call to
7571         operator new, force the return value to go into a variable, and
7572         set DECL_NO_TBAA_P on that variable.
7573         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
7574
7575 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
7576
7577         PR debug/34484
7578         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
7579         DWARF2_DEBUGGING_INFO.
7580         (dwarf2out_note_section_used): Ditto.  Add prototype.
7581         (have_multiple_function_sections, text_section_used,
7582         cold_text_section_used, *cold_text_sections): Move declarations
7583         before their uses.
7584
7585 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
7586
7587         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
7588         field and add signal_ra.
7589         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
7590         assignments to frame state pc.  Move end of stack check after
7591         MD_FALLBACK_FRAME_STATE_FOR.
7592         (uw_update_context_1): Use frame state signal_regs if set, instead
7593         of checking signal_frame flag.
7594         (uw_update_context): Use frame state signal_ra if set.
7595         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
7596         * config/xtensa/linux-unwind.h: New file.
7597
7598 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
7599
7600         * modulo-sched.c (get_sched_window): Fix comment typo.
7601
7602 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
7603
7604         PR tree-optimization/34648
7605         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
7606
7607 2008-01-17  Anatoly Sokolov <aesok@post.ru>
7608
7609         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
7610         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
7611
7612 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
7613
7614         PR rtl-optimization/34400
7615         * df-core.c (df_worklist_dataflow_overeager,
7616         df_worklist_dataflow_doublequeue): New functions.
7617         (df_worklist_dataflow): Two different worklist solvers.
7618         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
7619         New param.
7620
7621 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
7622
7623         PR testsuite/34821
7624         * doc/invoke.texi: Document the dependence on pthread for fopenmp
7625         and ftree-parallelize-loops.
7626
7627 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
7628
7629         PR rtl-optimization/34826
7630         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
7631
7632 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
7633
7634         * global.c (find_reg): Mark the eh regs as used if necessary.
7635         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
7636         * ra.h (struct allocno): no_eh_reg field added.  Changed
7637         no_stack_reg type to bitfield.
7638
7639 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
7640
7641         * tree.c (substitute_in_expr): Add missing 'break'.
7642
7643 2008-01-17  Richard Guenther  <rguenther@suse.de>
7644
7645         PR tree-optimization/34825
7646         * tree-ssa-math-opts.c (is_division_by): Do not recognize
7647         x / x as division to handle.
7648
7649 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7650
7651         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
7652         "-pthread" is specified.
7653         * pa-hpux11.h (LIB_SPEC): Likewise.
7654
7655 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
7656             Peter Bergner  <bergner@vnet.ibm.com>
7657
7658         PR rtl-optimization/33796
7659         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
7660
7661 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7662
7663         PR libgfortran/34699
7664         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
7665         static links.
7666         * pa-hpux10.h (LINK_SPEC): Likewise.
7667         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
7668
7669 2008-01-16  Richard Guenther  <rguenther@suse.de>
7670
7671         PR middle-end/32628
7672         * fold-const.c (fold_convert_const_int_from_int): Do not
7673         set overflow if that occured only because of a sign extension
7674         change when converting from/to a sizetype with the same
7675         precision and signedness.
7676
7677 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
7678
7679         PR debug/34249
7680         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
7681         location address to the correct place.  Update copyright year.
7682
7683 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
7684
7685         * lambda-code.c (lambda_transform_legal_p): Handle the case of
7686         no dependences in the dependence_relations vector.
7687
7688 2008-01-16  Jan Hubicka  <jh@suse.cz>
7689
7690         PR rtl-optimization/31396
7691         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
7692         * cfg.c (dump_reg_info): Print it.
7693         * regs.h (struct reg_info_t): add freq_calls_crossed.
7694         (REG_FREQ_CALLS_CROSSED): New macro.
7695         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
7696         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
7697         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
7698         regmove_optimize): Update call crossed frequencies.
7699         * local-alloc.c (struct qty): Add freq_calls_crossed.
7700         (alloc_qty): Copute freq_calls_crossed.
7701         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
7702         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
7703         * ra.h (struct allocno): Add freq_calls_crossed.
7704
7705 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
7706
7707         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
7708         libgomp when compiling with ftree-parallelize-loops.
7709         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
7710
7711 2008-01-16  Richard Guenther  <rguenther@suse.de>
7712
7713         PR tree-optimization/34769
7714         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
7715         * tree.c (int_cst_value): Instead make this function more
7716         permissive in what it accepts as valid input.  Document this
7717         function always sign-extends the value.
7718
7719 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
7720             Richard Guenther  <rguenther@suse.de>
7721
7722         PR c/34668
7723         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
7724         (gimple_fold_indirect_ref_rhs): ... this.
7725         (gimple_fold_indirect_ref): New function with foldings
7726         that preserve lvalueness.
7727         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
7728         * tree-flow.h (gimple_fold_indirect_ref): Declare.
7729         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
7730         to fold an INDIRECT_REF, fall back to the old use of
7731         fold_indirect_ref_1.
7732
7733 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
7734
7735         * tree-data-ref.c (subscript_dependence_tester_1): Call 
7736         free_conflict_function.
7737         (compute_self_dependence): Same.
7738
7739 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
7740
7741         PR debug/34249
7742         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
7743         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
7744         function global.
7745         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
7746         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
7747         for DWARF2_UNWIND_INFO targets.
7748
7749 2008-01-16  Richard Guenther  <rguenther@suse.de>
7750
7751         PR c/34768
7752         * c-typeck.c (common_pointer_type): Do not merge inconsistent
7753         type qualifiers for function types.
7754
7755 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
7756
7757         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
7758         loop_iterator li from previous commit.
7759
7760 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
7761
7762         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
7763
7764 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
7765
7766         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
7767         (parallelize_loops): Don't parallelize irreducible components.
7768
7769 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7770
7771         PR c++/24924
7772         * c-opts (c_common_post_options): Do not enable CPP
7773         flag_pedantic_errors by default.
7774         
7775 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
7776
7777         PR rtl-optimization/31944
7778         * cse.c (remove_pseudo_from_table): New function.
7779         (merge_equiv_classes): Use above function to remove pseudo-registers.
7780         (invalidate): Likewise.
7781
7782 2008-01-13  Richard Guenther  <rguenther@suse.de>
7783
7784         PR middle-end/34601
7785         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
7786         instead of TYPE_MODE to deal with calls from expand_one_error_var.
7787
7788 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
7789
7790         * gcse.c (cprop_jump): Call validate_unshare_change instead of
7791         validate_change to unshare the source of the PC set.
7792
7793 2008-01-12  Jan Hubicka  <jh@suse.cz>
7794
7795         PR middle-end/32135
7796         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
7797         references above array bounds.  This might trigger bounds checks for
7798         pointers to arrays.
7799
7800 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
7801
7802         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
7803         new_replaceable_dependencies.
7804
7805 2008-01-12  Doug Kwan  <dougkwan@google.com>
7806
7807         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
7808         instead of OPT_Wreturn_type in warning due to ignored return type
7809         qualifiers.
7810         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
7811         options included in -Wextra.
7812         * c.opt: New option -Wignored_qualifiers.
7813         * doc/invoke.texi (Warning Options, -Wextra): Add new option
7814         -Wignore_qualifiers.
7815         (-Wignored-qualifiers): Document.
7816         (-Wreturn-type): Remove description of functionality now handled
7817         by -Wignored-qualifiers.
7818
7819 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
7820
7821         PR ada/33788
7822         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
7823         NOP_EXPR if it is between integral types with the same precision.
7824
7825 2008-01-12  Jan Hubicka  <jh@suse.cz>
7826
7827         PR other/28023
7828         * invoke.texi (max-inline-recursive-depth): Fix default value.
7829
7830 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
7831
7832         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
7833         correct type.
7834
7835 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
7836         
7837         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
7838         
7839 2008-01-11  James E. Wilson  <wilson@specifix.com>
7840
7841         PR target/26015
7842         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
7843
7844 2008-01-11  Anatoly Sokolov <aesok@post.ru>
7845
7846         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
7847         save/restore frame pointer register and don't use 'call-prologues' 
7848         optimization in function with "OS_task" attribute.
7849
7850 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
7851
7852         PR middle-end/31309
7853         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
7854         when copying to memory.
7855
7856 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
7857
7858         PR rtl-optimization/30905
7859         * cfgcleanup.c: Include dce.h
7860         (crossjumps_occured): New global variable.
7861         (try_crossjump_bb): Exit loop after finding a fallthru edge.
7862         If something changed, set crossjumps_occured to true.
7863         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
7864         Don't add/remove fake edges to exit here...
7865         (cleanup_cfg): ...but do it here, when crossjumping.
7866         Run a fast DCE when successful crossjumps occured in the latest
7867         iteration of try_optimize_cfg.
7868
7869 2008-01-11  Richard Guenther  <rguenther@suse.de>
7870
7871         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
7872         (struct vn_unary_op_s): Likewise.
7873         (vn_reference_insert): Free old reference on hash collision.
7874
7875 2008-01-10  Raksit Ashok  <raksit@google.com>
7876
7877         PR rtl-optimization/27971
7878         * combine.c (find_split_point): Split PLUS expressions which are
7879         inside a MEM rtx, and whose first operand is complex.
7880
7881 2008-01-10  DJ Delorie  <dj@redhat.com>
7882
7883         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
7884         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
7885         (m32c_hard_regno_ok): Call the underlying function.
7886
7887 2008-01-10  Richard Guenther  <rguenther@suse.de>
7888
7889         PR middle-end/34683
7890         * tree-cfg.c (tree_merge_blocks): Do not go through the
7891         full-blown folding and stmt updating path if we just deal
7892         with virtual operands.
7893         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
7894         test for abnormal SSA_NAMEs.
7895
7896 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
7897
7898         PR middle-end/34641
7899         * reload.c (push_reload): Add assertions.  All constants from
7900         reg_equiv_constant should have been used for replacing the respective
7901         pseudo earlier.
7902         (find_reloads_address): Invoke find_reloads_address_part for
7903         constant taken from the reg_equiv_constant array.
7904
7905 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
7906
7907         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
7908         field (valnum) the first in the struct.  Replace bools with
7909         unit bit fields.
7910
7911 2008-01-10  Richard Guenther  <rguenther@suse.de>
7912
7913         PR tree-optimization/34651
7914         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
7915         types and ordering for masking and converting.
7916
7917 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
7918
7919         PR tree-optimization/34017
7920         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
7921         also for PHI_NODE expressions.
7922
7923 2008-01-09  Jan Hubicka  <jh@suse.cz>
7924
7925         PR tree-optimization/34708
7926         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
7927         based on number of case labels.
7928         (init_inline_once): Remove switch_cost.
7929         * tree-inline.h (eni_weights_d): Remove switch_cost.
7930
7931 2008-01-09  Richard Guenther  <rguenther@suse.de>
7932         Andrew Pinski  <andrew_pinski@playstation.sony.com>
7933
7934         PR middle-end/30132
7935         * gimplify.c (gimplify_cond_expr): Do not create an addressable
7936         temporary if an rvalue is ok or an lvalue is not required.
7937
7938 2008-01-09  Richard Guenther  <rguenther@suse.de>
7939
7940         PR middle-end/34458
7941         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
7942         adjust return type.
7943
7944 2008-01-09  Richard Guenther  <rguenther@suse.de>
7945
7946         PR middle-end/34679
7947         * tree.c (host_integerp): Check for sizetype only if the
7948         type is an integer type.
7949
7950 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
7951
7952         PR debug/26364
7953         * opts.c (decode_options): Disable inlining of functions called
7954         once if not in unit-at-a-time mode.
7955
7956 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
7957
7958         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
7959
7960 2008-01-08  Richard Guenther  <rguenther@suse.de>
7961
7962         PR middle-end/31863
7963         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
7964         out early if the result will be unused.
7965
7966 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
7967
7968         PR target/34709
7969         Revert:
7970
7971         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
7972         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
7973         for TARGET_RECIP.       
7974         
7975 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
7976         
7977         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
7978         for vectorization tuned.
7979         
7980 2008-01-08  Richard Guenther  <rguenther@suse.de>
7981
7982         PR tree-optimization/34683
7983         * tree-ssa-operands.c (operand_build_cmp): Export.
7984         * tree-ssa-operands.h (operand_build_cmp): Declare.
7985         * tree-vn.c (vuses_compare): Remove.
7986         (sort_vuses): Use operand_build_cmp.
7987         (sort_vuses_heap): Likewise.
7988         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
7989         to re-use old VEC if available.  Do not sort already sorted VUSEs.
7990         (vdefs_to_vec): Do not sort already sorted VDEFs.
7991
7992 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
7993
7994         PR middle-end/34694
7995         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
7996
7997 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
7998
7999         PR target/34702
8000         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
8001         limitations of reciprocal sequences on x86 targets.
8002
8003 2008-01-08  Richard Guenther  <rguenther@suse.de>
8004
8005         PR tree-optimization/34683
8006         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
8007
8008 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
8009
8010         PR target/34622
8011         * config/darwin.c (darwin_mergeable_string_section): Don't use
8012         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
8013
8014 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
8015
8016         PR target/34682
8017         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
8018         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
8019         predicates of op0 and op1 to register_operand.
8020         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
8021         expander using X87MODEF mode iterator.  Change predicates of
8022         op0 and op1 to register_operand.
8023         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
8024         corresponding patterns and macroize using MODEF macro.  Change
8025         predicates of op0 and op1 to register_operand and remove
8026         "m" constraint. Disparage "r" alternative with "!".
8027         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
8028         macroize using X87MODEF macro.  Change predicates of op0 and op1
8029         to register_operand and remove "m" constraint.  Disparage "r"
8030         alternative with "!".
8031         (absneg splitter with memory operands): Remove.
8032         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
8033         patterns and macroize using X87MODEF mode iterator.
8034         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
8035         Change predicate of op1 to register_operand.
8036         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
8037         for memory operands.
8038
8039 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
8040
8041         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
8042
8043 2008-01-07  Richard Guenther  <rguenther@suse.de>
8044
8045         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
8046         fields.
8047
8048 2008-01-07  Richard Guenther  <rguenther@suse.de>
8049
8050         PR tree-optimization/34683
8051         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
8052         VOPs of the needed size to save memory.  Use VEC_quick_push
8053         to save compile-time.
8054         (vdefs_to_vec): Likewise.
8055
8056 2008-01-07  Sa Liu  <saliu@de.ibm.com>
8057
8058         * config/spu/spu.md (divdf3): Genetate inline code for double
8059         division.  The implementation doesn't handle INF or NAN, therefore it
8060         only applies when -ffinite-math-only is given.
8061
8062 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
8063
8064         PR libstdc++/34680
8065         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
8066         * doc/cpp.texi ([Common Predefined Macros]): Document.
8067
8068 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
8069
8070         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
8071         order to use commutative addition instead of subtraction.
8072
8073 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8074             Mircea Namolaru  <namolaru@il.ibm.com>
8075             Vladimir Yanovsky  <yanov@il.ibm.com>
8076             Revital Eres  <eres@il.ibm.com>
8077
8078         PR tree-optimization/34263
8079         * tree-outof-ssa.c (process_single_block_loop_latch,
8080         contains_tree_r): New functions.
8081         (analyze_edges_for_bb): Call process_single_block_loop_latch
8082         function to empty single-basic-block latch block if possible.
8083
8084 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
8085
8086         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
8087         for TARGET_RECIP.
8088         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
8089
8090 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
8091
8092         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
8093
8094 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
8095
8096         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
8097
8098 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
8099
8100         PR tree-optimization/34618
8101         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
8102         flag from T.
8103
8104 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
8105
8106         PR target/34673
8107         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
8108         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
8109         Update copyright year.
8110
8111         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
8112         Update copyright year.
8113         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
8114         using NR fixup.
8115
8116 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
8117
8118         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
8119         edge does not point to current bb before changing need_assert.
8120
8121 2008-01-04  Richard Guenther  <rguenther@suse.de>
8122
8123         PR middle-end/34029
8124         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
8125         for verifying purposes if they are is_gimple_min_invariant.
8126
8127 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
8128
8129         PR tree-optimization/34448
8130         PR tree-optimization/34465
8131         * gimplify.c (gimplify_init_constructor): Add new parameter
8132         notify_temp_creation.  Use it.
8133         (gimplify_modify_expr_rhs): Take volatiles into account when
8134         optimizing constructors.
8135         Do not optimize constructors if gimplify_init_constructor will dump to
8136         memory.
8137         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
8138         * gcc.c-torture/compile/pr34448.c: New.
8139
8140 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
8141
8142         PR gcov-profile/34609
8143         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
8144         return_slot if result is TREE_ADDRESSABLE.
8145
8146 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
8147
8148         * config/mips/mips.md (sqrt_condition): Tweak comment.
8149         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
8150
8151 2008-01-03  Tom Tromey  <tromey@redhat.com>
8152
8153         PR c/34457
8154         * c-common.c (c_type_hash): Handle VLAs.
8155
8156 2008-01-03  Jan Hubicka  <jh@suse.cz>
8157
8158         PR tree-optimization/31081
8159         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
8160         0 when inlining and not inlining to first basic block.
8161         (remap_decl): When var is initialized to 0, don't set default_def.
8162         (expand_call_inline): Set entry_bb.
8163         * tree-inline.h (copy_body_data): Add entry_bb.
8164
8165 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
8166
8167         PR c++/34619
8168         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
8169         before returning.
8170
8171         PR tree-optimization/29484
8172         * tree-inline.c (inline_forbidden_p_2): New function.
8173         (inline_forbidden_p): Disallow inlining if some static var
8174         has an address of a local LABEL_DECL in its initializer.
8175         * doc/extend.texi (Labels as Values): Document &&foo behaviour
8176         vs. inlining.
8177
8178 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
8179
8180         PR tree-optimization/34635
8181         * tree-data-ref.c (add_other_self_distances): Make sure that the
8182         evolution step is constant.
8183
8184 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
8185
8186         PR middle-end/34608
8187         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
8188
8189 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
8190
8191         * tree-sra.c (scalarize_init): Insert the generate_element_init
8192         statements after the generate_element_zero statements.
8193
8194 2008-01-02  Richard Guenther  <rguenther@suse.de>
8195
8196         PR middle-end/34093
8197         PR middle-end/31976
8198         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
8199         for very large number of operands instead of ICEing.
8200
8201 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
8202
8203         PR target/34013
8204         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
8205         while stack probing.
8206
8207 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
8208
8209         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
8210         in C++0x mode.
8211
8212 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
8213
8214         PR libmudflap/26442
8215         * tree-mudflap.c (mx_register_decls): Guard warning by
8216         !DECL_ARTIFICIAL check.
8217
8218 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
8219
8220         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
8221         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
8222         sse5_perm<mode>): Fix constraints.