OSDN Git Service

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