OSDN Git Service

2008-05-05 Andrew Pinski <Andrew.Pinski@playstation.sony.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
2
3         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have the
4         same size types for the indirect reference on the rhs, then create a VCE.
5
6 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
7
8         * config/i386/i386.md
9         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
10         one insn template instead of template series.
11         (*xordi_1_rex64): Ditto.
12         (*xordi_2_rex64): Ditto.
13
14 2008-05-05  Ira Rosen  <irar@il.ibm.com>
15
16         PR tree-optimization/36119
17         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
18         in case of SLP.
19
20 2008-06-04  Jan Hubicka  <jh@suse.cz>
21
22         tree-optimization/36100
23         * tree-pass.h (pass_O0_always_inline): Declare.
24         * ipa-inline.c (inline_transform): Remove dead code.
25         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
26         pass_O0_always_inline): New.
27         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
28
29 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
30
31         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
32         mnemonic in this_param move for TARGET_64BIT.
33
34 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
35
36         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
37         (*strmovsi_rex_1): Ditto.
38         (*strsetsi_1): Ditto.
39         (*strsetsi_rex_1): Ditto.
40
41         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
42         adddicc expanders using SWI mode iterator.
43
44 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
45
46         PR target/36121
47         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
48         argument handling.
49
50 2008-05-04  David S. Miller  <davem@davemloft.net>
51
52         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
53         (sparc*-*-linux*): Use linux.h in tm_file.
54         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
55         compiler defaulting to 32-bit.
56         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
57         no longer needed.
58         * config/sparc/linux.h: Remove definitions now obtained
59         properly from linux.h
60         * config/sparc/linux64.h: Likewise.
61         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
62         don't want this setting for 32-bit builds in a biarch compiler.
63         * doc/install.texi: Add sparc-linux to list of targets
64         supporting --enable-targets=all.
65
66 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
67
68         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
69
70 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
71
72         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
73         after V4SI_FTYPE_V8HI.
74         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
75         case V4SI_FTYPE_V2DF.
76
77 2008-05-03  Kenneth Zadeck <zadeck@naturalbridge.com>
78
79         * doc/invoke.texi (max-flow-memory-locations): Removed.
80         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
81         
82 2008-05-03  Richard Guenther  <rguenther@suse.de>
83
84         PR middle-end/34973
85         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
86
87 2008-05-02  David S. Miller  <davem@davemloft.net>
88
89         * config.gcc (need_64bit_hwint): Document libcpp dependency.
90
91 2008-05-02  Simon Baldwin <simonb@google.com>
92
93         PR bootstrap/36108
94         * c-common.h (warn_array_subscript_range): Removed.
95         * c-common.c (warn_array_subscript_range): Ditto.
96         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
97         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
98
99 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
100
101         * config/i386/i386.c (ix86_special_builtin_type): New.
102         (bdesc_special_args): Likewise.
103         (ix86_expand_special_args_builtin): Likewise.
104         (ix86_init_mmx_sse_builtins): Updated.
105         (ix86_expand_builtin): Updated.
106         (ix86_expand_store_builtin): Removed.
107         (ix86_expand_unop_builtin): Likewise.
108
109         * config/i386/mm3dnow.h (__v2sf): Moved to ...
110         * config/i386/mmintrin.h (__v2sf): Here.
111
112         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
113         const __v2sf.
114         (_mm_loadl_pi): Likewise.
115         (_mm_storeh_pi): Replace __v2si with __v2sf.
116         (_mm_storel_pi): Likewise.
117
118         * doc/extend.texi: Correct __builtin_ia32_loadhps,
119         __builtin_ia32_loadlps, __builtin_ia32_storehps,
120         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
121         __builtin_ia32_loadlpd.
122
123 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
124
125         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
126         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
127         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
128         (ix86_init_mmx_sse_builtins): Updated.
129         (ix86_expand_args_builtin): Likewise.
130         (ix86_expand_builtin): Likewise.
131         (ix86_expand_unop1_builtin): Renamed to ...
132         (ix86_expand_unop_vec_merge_builtin): This.
133
134 2008-05-01  Jan Hubicka  <jh@suse.cz>
135
136         PR bootstrap/36100
137         * ipa-inline.c (inline_generate_summary): Make static.
138         (inline_transform): Do not call inlining at -O0; make static.
139         * passes.c (execute_todo): Add sanity check.
140         (execute_one_ipa_transform_pass): Execute proper flags.
141
142 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
143
144         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
145         (DECL_NONADDRESSABLE_P): Likewise.
146         * alias.c (record_component_aliases): Fix comment.
147
148 2008-05-01  Simon Baldwin <simonb@google.com>
149
150         * c-common.h (warn_array_subscript_range): New function.
151         * c-common.c (warn_array_subscript_range): Ditto.
152         * tree-vrp.c (check_array_ref): Corrected code to agree with
153         comment, ignoring only arrays of size 0 or size 1.
154         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
155
156 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
157
158         * config/i386/i386.c (ix86_builtin_type): Replace
159         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
160         (bdesc_args): Updated.
161         (ix86_init_mmx_sse_builtins): Likewise.
162         (ix86_expand_args_builtin): Likewise.
163
164         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
165         with __v1di.
166
167         * doc/extend.texi: Correct __builtin_ia32_palignr.
168
169 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
170
171         PR target/36095
172         * config/i386/i386.c (bdesc_crc32): Removed.
173         (ix86_expand_crc32): Likewise.
174         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
175         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
176         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
177         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
178         UINT_FTYPE_UINT_UCHAR.
179         (bdesc_args): Updated. Add crc32 builtins.
180         (ix86_init_mmx_sse_builtins): Updated.
181         (ix86_expand_args_builtin): Updated to support subreg.
182
183         * doc/extend.texi: Correct __builtin_ia32_crc32di.
184
185 2008-05-01  Jan Hubicka  <jh@suse.cz>
186
187         * tree-pass.h (opt_pass): Add IPA_PASS.
188         (varpool_node, cgraph_node): Forward declare.
189         (ipa_opt_pass): Define.
190         (pass_ipa_inline): Turn into ipa_opt_pass.
191         (pass_apply_inline): Remove.
192         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
193         (apply_inline): Turn into ....
194         (inline_transform): ... this one.
195         (inline_generate_summary): New function.
196         (pass_apply_inline): Remove.
197         * function.h (ipa_opt_pass): Forward declare structure; typedef;
198         vector.
199         (struct function): Add ipa_transforms_to_apply.
200         * passes.c (register_one_dump_file): Work on IPA_PASS.
201         (init_optimization_passes): Remove pass_inline_parameters and
202         pass_apply_inline.
203         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
204         (execute_one_pass) ... here; apply transforms when possible.
205         (add_ipa_transform_pass, execute_ipa_summary_asses,
206         execute_one_ipa_transform_pass): New.
207         (execute_ipa_pass_list): Update for IPA_PASS type.
208
209 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
210
211         * config/i386/i386.c (ix86_builtin_type): Add
212         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
213         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
214         (bdesc_args): Add SSE4a builtins.
215         (ix86_init_mmx_sse_builtins): Updated.
216         (ix86_expand_args_builtin): Likewise.
217         (ix86_expand_builtin): Likewise.
218
219 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
220
221         * config/i386/i386.c (ix86_builtin_type): Add
222         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
223         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
224         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
225         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
226         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
227         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
228         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
229         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
230         and DI_FTYPE_DI_DI_INT.
231         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
232         (ix86_init_mmx_sse_builtins): Updated.
233         (ix86_expand_args_builtin): Likewise.
234         (ix86_expand_builtin): Likewise.
235         (ix86_expand_binop_imm_builtin): Removed.
236
237         * doc/extend.texi: Correct __builtin_ia32_palignr128.
238
239 2008-04-30  Richard Guenther  <rguenther@suse.de>
240
241         PR tree-optimization/32921
242         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
243
244 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
245
246         * config/arm/arm.c (arm_unwind_emit): Use
247         crtl->all_throwers_are_sibcalls instead of
248         cfun->all_throwers_are_sibcalls.
249         (arm_output_fn_unwind): Likewise.
250         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
251         instead of cfun->uses_pic_offset_table.
252         (frv_expand_prologue): Likewise.
253         (frv_frame_pointer_required): Likewise.
254         (frv_expand_fdpic_call): Likewise.
255         (frv_emit_movsi): Likewise.
256         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
257         cfun->returns_pcc_struct instead of
258         current_function_returns_pcc_struct.
259         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
260         instead of cfun->calls_eh_return.
261         (m32c_pushm_popm): Likewise.
262         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
263         "extern" declaration.
264
265 2008-04-30  Richard Guenther  <rguenther@suse.de>
266
267         PR tree-optimization/21636
268         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
269         constant address.
270         (evaluate_stmt): Print the likely value.
271         (ccp_visit_stmt): Avoid excessive vertical spacing.
272
273 2008-04-30  Rafael Espindola  <espindola@google.com>
274
275         * builtins.c (fold_call_expr): Return realret.
276         * tree-ssa-threadedge.c
277         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
278         __builtin_object_size.
279
280 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
281
282         * gcc.c (wrapper_string): New variable.
283         (insert_wrapper): New function.
284         (execute): New option -wrapper.
285         * doc/invoke.texi (Overall Options): New driver option -wrapper.
286
287 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
288
289         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
290         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
291         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
292         from...
293         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
294         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
295         config/rs6000/e500crtres64gprctr.asm,
296         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
297         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
298         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
299         config/rs6000/e500crtsav64gprctr.asm,
300         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
301         config/rs6000/e500crtsavg64gprctr.asm: New files.
302         * config/rs6000/t-ppccomm: Add build rules for new files.
303         (LIB2FUNCS_STATIC_EXTRA): Add new files.
304         * config/rs6000/t-netbsd: Add build rules for new files.
305         (LIB2FUNCS_STATIC_EXTRA): New variable.
306         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
307         (CRTSAVRES_DEFAULT_SPEC): Likewise.
308         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
309
310 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
311
312         * config/i386/i386.c (ix86_builtin_type): Add
313         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
314         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
315         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
316         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
317         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
318         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
319         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
320         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
321         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
322         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
323         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
324         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
325         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
326         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
327         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
328         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
329         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
330         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
331         V1DI_FTYPE_V2SI_V2SI.
332         (bdesc_2arg): Moved to ...
333         (bdesc_args): Here.
334         (ix86_init_mmx_sse_builtins): Updated.
335         (ix86_expand_args_builtin): Updated.  Take a pointer
336         to const struct builtin_description.  Handle comparison
337         builtin functions.
338         (ix86_expand_sse_compare): Take a new argument for swapping operands.
339         (ix86_expand_builtin): Updated.
340
341         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
342         (ssse3_pmaddubsw128): This.
343         (ssse3_pmaddubswv4hi3): Renamed to ...
344         (ssse3_pmaddubsw): This.
345
346         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
347         (__builtin_ia32_packssdw128): Likewise.
348         (__builtin_ia32_packuswb128): Likewise.
349         (__builtin_ia32_pmaddubsw): Likewise.
350         (__builtin_ia32_pmaddubsw128): Likewise.
351
352 2008-04-30  Richard Guenther  <rguenther@suse.de>
353
354         PR tree-optimization/14847
355         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
356         (recognize_bits_test): Use it.
357         (recognize_single_bit_test): Likewise.
358
359 2008-04-30  Martin Jambor  <mjambor@suse.cz>
360
361         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
362         instead of setting number of formal parameters to zero.
363         (ipcp_init_stage): Do not set the number of actual parameters to zero 
364         either.
365         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
366         which are called with variable number of arguments.
367         (ipcp_insert_stage): Explicitely skipping all nodes which are
368         called with variable number of arguments.
369         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
370         number of parameters.
371
372         * ipa-prop.h (struct ipa_node_params): Added flag
373         called_with_var_arguments
374         (ipa_set_param_count): Added.  Changed sole setter to use it.
375         (ipa_get_param_count): Added.  All readers of param_count
376         converted to use it instead.
377         (ipa_set_called_with_variable_arg): Added.
378         (ipa_is_called_with_var_arguments): Added.
379         (ipa_get_ith_param): Added.  All readers of param_decls converted
380         to use it instead.
381         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
382         changed to use it. 
383         (ipa_get_cs_argument_count): Added, all readers of argument_count
384         changed to cal it.
385         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
386         to use it.
387         
388         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
389         (struct ipcp_lattice): Renamed cval_type to type
390         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
391
392         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
393         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
394         (ipcp_insert_stage): Changed the type of variable cvalue to tree
395         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
396         (build_const_val): Changed the type of parameter cvalue to tree
397         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
398         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
399         
400         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
401         constant 
402
403         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
404         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
405         (ipa_add_method): Renamed to ipa_push_func_to_list
406         (ipa_remove_method): Renamed to ipa_pop_func_from_list
407         (ipa_callsite_param_count): Removed.
408         (ipa_callsite_param_count_set): Removed.
409         (ipa_callsite_param): Removed.
410         (ipa_callsite_callee): Removed.
411         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
412         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
413         (ipa_method_formal_count): Removed.
414         (ipa_method_formal_count_set): Removed.
415         (ipa_method_get_tree): Removed.
416         (ipa_method_tree_map_create): Removed.
417         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
418         (ipa_create_param_decls_array): Creates the array itself
419         (ipa_create_param_decls_array): Temporary variable info instead of 
420         a few dereferences.
421         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
422         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
423         (get_type): Removed.
424         (ipa_jf_get_info_type): Removed.
425         (ipa_node_create): Renamed to ipa_create_node_params
426         (ipa_free): Renamed to ipa_free_all_node_params
427         (ipa_nodes_create): Renamed to ipa_create_all_node_params
428         (ipa_edges_create): Renamed to ipa_create_all_edge_args
429         (ipa_edges_free): Renamed to ipa_free_all_edge_args
430         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
431         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
432         ipa_free_all_edge_args
433         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
434         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
435         (ipa_create_methodlist_node): Removed.
436         (ipa_methodlist_method): Removed.
437         (ipa_methodlist_method_set): Removed.
438         (ipa_methodlist_next_method): Removed.
439         (ipa_methodlist_next_method_set): Removed.
440         (ipa_method_is_modified): Removed.
441         (ipa_method_modify_create): Removed.
442         (ipa_method_modify_init): Temporary variable info instead of a few 
443         dereferences.
444         (ipa_detect_param_modifications): Temporary variable info instead of 
445         a few dereferences.
446         (ipa_compute_jump_functions): Temporary variable info instead of 
447         a few dereferences.
448         (ipa_method_modify_set): Removed.
449         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
450         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
451         than craph_node as the first parameter.
452         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
453         (ipa_method_modify_init): Removed.
454         (ipa_compute_jump_functions): Added a temp variable instead of 
455         repeatadly dereferencing the cgraph_edge.aux pointer
456         (ipa_callsite_param_set_type): Removed.
457         (ipa_compute_jump_functions): i renamed to index and moved to 
458         an inner block
459         (ipa_callsite_param_set_info_type_formal): Removed.
460         (ipa_callsite_param_set_info_type): Removed.
461         (ipa_callsite_param_map_create): Removed.
462         (ipa_callsite_tree): Removed.
463         (ipa_callsite_caller): Removed.
464         (ipa_pop_func_from_list): return_method removed to return_func
465
466         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
467         prefixed all values with IPA_. Changed all users.
468         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
469         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
470         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
471         (union parameter_info): Renamed to jump_func_value.
472         (union jump_func_value): Renamed value to constant
473         (struct ipa_jump_func): Renamed info_type to value
474         (struct ipa_node): Renamed to ipa_node_params
475         (struct ipa_node_params): Renamed ipa_arg_num to param_count
476         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
477         (struct ipa_node_params): Renamed ipa_mod to modified_flags
478         (struct ipa_edge): Renamed to ipa_edge_args
479         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
480         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
481         (struct ipa_methodlist): Renamed to ipa_func_list
482         (struct ipa_func_list): method_p renamed to node, next_method
483         renamed to next
484         (ipa_methodlist_p): Removed, switched all users to struct pointer
485         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
486
487 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
488
489         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
490         (rs6000_emit_epilogue): Use backchain to restore only when we
491         have a large frame.  Make use of frame pointer to restore if we
492         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
493
494 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
495
496         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
497         Add mode to zero_extract.
498         (sign bit tests peepholes): (Ditto.).
499
500 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
501
502         * config/i386/i386.c (ix86_builtins): Replace Prescott New
503         Instructions in comments with SSE3.
504         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
505         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
506         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
507         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
508         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
509         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
510         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
511         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
512         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
513         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
514         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
515         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
516         (bdesc_sse_args): Renamed to ...
517         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
518         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
519         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
520         IX86_BUILTIN_FABSQ.
521         (bdesc_1arg): Moved to ...
522         (bdesc_args): Here.
523         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
524         Instructions in comments with SSE3.
525         (ix86_expand_sse_operands_builtin): Renamed to ...
526         (ix86_expand_args_builtin): This.  Updated.
527         (ix86_expand_unop1_builtin): Update comments.
528         (ix86_expand_builtin): Updated.
529
530 2008-04-29  Richard Guenther  <rguenther@suse.de>
531
532         PR tree-optimization/36078
533         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
534         Update virtual SSA form after cleaning up the CFG.
535
536 2008-04-29  Richard Guenther  <rguenther@suse.de>
537
538         PR middle-end/15255
539         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
540
541 2008-04-29  Richard Guenther  <rguenther@suse.de>
542
543         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
544         (compute_may_aliases): Do not call finalize_ref_all_pointers.
545         (compute_flow_insensitive_aliasing): Do not treat
546         PTR_IS_REF_ALL pointers special.
547         (get_smt_for): Likewise.
548         (may_alias_p): Re-structure.
549         (is_escape_site): A ref-all pointer conversion is not an escape site.
550         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
551         PTR_IS_REF_ALL pointers special.
552         * tree-ssa-structalias.h (struct alias_info): Remove
553         ref_all_symbol_mem_tag field.
554         (PTR_IS_REF_ALL): Remove.
555
556 2008-04-29  Richard Guenther  <rguenther@suse.de>
557
558         PR middle-end/36077
559         * fold-const.c (extract_muldiv_1): In combining division constants
560         make sure to never overflow.
561
562 2008-04-29  Nick Clifton  <nickc@redhat.com>
563
564         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
565
566 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
567
568         PR bootstrap/35169
569         * optc-gen.awk: Work around HP-UX/IA awk bug.
570
571 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
572
573         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
574         2008-04-25 commit.
575
576 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
577
578         PR target/36073
579         * config/i386/i386.md
580         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
581         Change operand 1 predicate to nonimmediate_operand.
582
583 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
584
585         PR debug/36060
586         * dwarf2out.c (struct die_struct): Mark as chain_circular through
587         die_sub field.
588         * gengtype.c (walk_type, write_func_for_structure): Handle
589         chain_circular.
590         * doc/gty.texi: Document chain_circular.
591
592 2008-04-28  Richard Guenther  <rguenther@suse.de>
593
594         PR tree-optimization/36066
595         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
596         SCEV and loop.
597
598 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
599
600         PR target/36064
601         * config/i386/i386.md
602         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
603         Use match_scratch instead of match_operand for operands 3 and 4.
604
605 2008-04-27  Richard Guenther  <rguenther@suse.de>
606
607         PR tree-optimization/18754
608         PR tree-optimization/34223
609         * tree-pass.h (pass_complete_unrolli): Declare.
610         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
611         loop size before and after unconditionally of UL_NO_GROWTH in effect.
612         Rewrite loop into loop closed SSA form if it is not already.
613         (tree_unroll_loops_completely): Re-structure to iterate over
614         innermost loops with intermediate CFG cleanups.
615         Unroll outermost loops only if requested or the code does not grow
616         doing so.
617         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
618         loops are available.
619         (tree_vectorize): Instead do so here.
620         (tree_complete_unroll): Also unroll outermost loops.
621         (tree_complete_unroll_inner): New function.
622         (gate_tree_complete_unroll_inner): Likewise.
623         (pass_complete_unrolli): New pass.
624         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
625         uses outside of the loop.
626         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
627         form if it is available.  
628         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
629         * passes.c (init_optimization_passes): Schedule complete inner
630         loop unrolling pass before the first CCP pass after final inlining.
631
632 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
633
634         * targhooks.h (default_emutls_var_fields,
635         default_emutls_var_init): Declare.
636         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
637         * target.h (struct gcc_target): Add struct emutls member.
638         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
639         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
640         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
641         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
642         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
643         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
644         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
645         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
646         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
647         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
648         emit debug information.
649         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
650         * varasm.c: Include targhooks.h.
651         (emutls_object_section, emutls_tmpl_section): New.
652         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
653         (EMUTLS_SEPARATOR): New.
654         (prefix_name): New.
655         (get_emutls_object_name): New.
656         (default_emutls_var_fields): New, broken out of ...
657         (get_emutls_object_type): ... here.  Adjust to use target hooks.
658         (get_emutls_init_templ_addr): Adjust to use target hooks.
659         (emutls_decl): Adjust to use target hooks.
660         (emutls_finish): Likewise.
661         (default_emutls_var_init): New, broken out of ...
662         (assemble_variable): ... here.  Adjust to use target hooks.
663         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
664         SECCAT_EMUTLS_TMPL.
665         * c-common.c (handle_section_attribute): Prevent overriding
666         sections for emulated tls with special sections.
667         * config/i386/i386.c (x86_64_elf_select_section): Add
668         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
669         (x86_64_elf_unique_section): Likewise.
670         * config/vxworks.c: Include tree.h.
671         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
672         (vxworks_override_options): Set TLS scheme.
673         * doc/tm.texi (Emulated TLS): New node.
674
675 2008-04-26  Simon Baldwin <simonb@google.com>
676
677         PR c/35652
678         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
679         with propagated string constants.
680
681 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
682
683         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
684         constraint for operand 2 when operand 0 is memory operand.
685         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
686         operand 0 is memory operand.
687         (fix_trunc<mode>_i387_with_temp): Ditto.
688         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
689         operand 2 when operand 1 is memory operand.
690         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
691         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
692         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
693         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
694         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
695         operands 2,3 and 4 when operand 1 is memory operand.
696         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
697         is memory operand.
698         (fistdi2_floor_with_temp): Ditto.
699         (fist<mode>2_floor_with_temp): Ditto.
700         (fistdi2_ceil_with_temp): Ditto.
701         (fist<mode>2_ceil_with_temp): Ditto.
702         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
703
704 2008-04-26  David Daney  <ddaney@avtrex.com>
705
706         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
707         unspec_volitile.
708         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
709         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
710         UNSPEC_UPDATE_GOT_VERSION): Renumber.
711         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
712         (compare_and_swap_12): New insn.
713         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
714         * config/mips/mips.c (mips_force_binary): New function.
715         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
716         (mips_expand_compare_and_swap_12): New function.
717         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
718
719 2008-04-25  Jan Hubicka  <jh@suse.cz>
720
721         PR testsuite/35843
722         * cfgexpand.c (pass_expand): Turn into RTL pass.
723         * passes.c (execute_one_pass): Do pass typechecking after execution.
724         * tree-pass.h (pass_expand): Turn into RTL pass.
725
726         * function.h (struct rtl_data): Move here fields
727         accesses_prior_frames, calls_eh_return, saves_all_registers,
728         has_nonlocal_goto, has_asm_statement, is_thunk,
729         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
730         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
731         arg_pointer_save_area_init from struct function; turn into bool.
732         (struct function): Move
733         calls_eh_return, saves_all_registers, has_nonlocal_goto,
734         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
735         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
736         tail_call_emit, arg_pointer_save_area_init
737         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
738         (current_function_returns_struct, current_function_returns_pcc_struct,
739         current_function_calls_setjmp, current_function_calls_alloca,
740         current_function_accesses_prior_frames,
741         current_function_calls_eh_return, current_function_is_thunk,
742         current_function_stdarg, current_function_profile,
743         current_function_limit_stack, current_function_uses_pic_offset_table,
744         current_function_uses_const_pool, current_function_has_nonlocal_label,
745         current_function_saves_all_registers,
746         current_function_has_nonlocal_goto,
747         current_function_has_asm_statement): Remove accesor macros.
748         * ra-conflict.c (global_conflicts): Update.
749         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
750         (suitable_for_tail_call_opt_p): Update.
751         * builtins.c (expand_builtin_return_addr): Update.
752         (expand_builtin_setjmp_setup): Update.
753         (expand_builtin_nonlocal_goto): Update.
754         * final.c (final_start_function): Update.
755         (profile_function): Update.
756         (leaf_function_p): Update.
757         (only_leaf_regs_used): Update.
758         * df-scan.c (df_get_exit_block_use_set): Update.
759         * dojump.c (clear_pending_stack_adjust): Update.
760         * tree-stdarg.c (gate_optimize_stdarg): Update.
761         * gimple-low.c (lower_function_body): Update.
762         * global.c (compute_regsets): Update.
763         (global_alloc): Update.
764         * dwarf2out.c (dwarf2out_begin_prologue): Update.
765         * expr.c (expand_assignment): Update.
766         * dse.c (dse_step0): Update.
767         (dse_step1): Update.
768         * c-decl.c (store_parm_decls): Update.
769         * local-alloc.c (combine_regs): Update.
770         (find_free_reg): Update.
771         * function.c (assign_parms_augmented_arg_list): Update.
772         (assign_parm_find_data_types): Update.
773         (assign_parms): Update.
774         (allocate_struct_function): Update.
775         (expand_function_start): Update.
776         (expand_function_end): Update.
777         (get_arg_pointer_save_area): Update.
778         (thread_prologue_and_epilogue_insns): Update.
779         (rest_of_match_asm_constraints): Update.
780         * stor-layout.c (variable_size): Update.
781         * gcse.c (gcse_main): Update.
782         (bypass_jumps): Update.
783         * gimplify.c (gimplify_function_tree): Update.
784         * calls.c (emit_call_1): Update.
785         (expand_call): Update.
786         * bt-load.c (compute_defs_uses_and_gen): Update.
787         * except.c (sjlj_assign_call_site_values): Update.
788         (sjlj_emit_function_enter): Update.
789         (can_throw_external): Update.
790         (set_nothrow_function_flags): Update.
791         (expand_builtin_unwind_init): Update.
792         (expand_eh_return): Update.
793         (convert_to_eh_region_ranges): Update.
794         (output_function_exception_table): Update.
795         * emit-rtl.c (gen_tmp_stack_mem): Update.
796         * cfgexpand.c (expand_used_vars): Update.
797         (tree_expand_cfg): Update.
798         * cfgcleanup.c (rest_of_handle_jump): Update.
799         * explow.c (allocate_dynamic_stack_space): Update.
800         * varasm.c (assemble_start_function): Update.
801         (force_const_mem): Update.
802         (mark_constant_pool): Update.
803         * tree-optimize.c (tree_rest_of_compilation): Update.
804         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
805         * tree-cfg.c (notice_special_calls): Update.
806         (is_ctrl_altering_stmt): Update.
807         (tree_can_make_abnormal_goto): Update.
808         (tree_purge_dead_abnormal_call_edges): Update.
809         * config/alpha/predicates.md: Update.
810         * config/alpha/alpha.c (alpha_sa_mask): Update.
811         (alpha_sa_size): Update.
812         (alpha_does_function_need_gp): Update.
813         (alpha_expand_prologue): Update.
814         (alpha_start_function): Update.
815         (alpha_output_function_end_prologue): Update.
816         (alpha_expand_epilogue): Update.
817         * config/frv/frv.c (frv_stack_info): Update.
818         (frv_expand_epilogue): Update.
819         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
820         (s390_register_info): Update.
821         (s390_frame_info): Update.
822         (s390_init_frame_layout): Update.
823         (s390_can_eliminate): Update.
824         (save_gprs): Update.
825         * config/spu/spu.c (spu_split_immediate): Update.
826         (need_to_save_reg): Update.
827         (spu_expand_prologue): Update.
828         (spu_expand_epilogue): Update.
829         * config/sparc/sparc.md: Update.
830         * config/sparc/sparc.c (eligible_for_return_delay): Update.
831         (sparc_tls_got): Update.
832         (legitimize_pic_address): Update.
833         (sparc_emit_call_insn): Update.
834         (sparc_expand_prologue): Update.
835         (output_return): Update.
836         (print_operand): Update.
837         (sparc_function_ok_for_sibcall): Update.
838         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
839         * config/m32r/m32r.md: Update.
840         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
841         (m32r_compute_frame_size): Update.
842         (m32r_expand_prologue): Update.
843         (m32r_expand_epilogue): Update.
844         (m32r_legitimize_pic_address): Update.
845         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
846         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
847         * config/i386/i386.c (ix86_frame_pointer_required): Update.
848         (gen_push): Update.
849         (ix86_save_reg): Update.
850         (ix86_compute_frame_layout): Update.
851         (ix86_expand_prologue): Update.
852         (ix86_expand_epilogue): Update.
853         * config/sh/sh.c (output_stack_adjust): Update.
854         (calc_live_regs): Update.
855         (sh5_schedule_saves): Update.
856         (sh_expand_prologue): Update.
857         (sh_expand_epilogue): Update.
858         (sh_setup_incoming_varargs): Update.
859         (sh_allocate_initial_value): Update.
860         (sh_get_pr_initial_val): Update.
861         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
862         * config/sh/sh.md (label:): Update.
863         * config/avr/avr.c (out_movhi_mr_r): Update.
864         * config/crx/crx.h (enum): Update.
865         * config/xtensa/xtensa.h (along): Update.
866         * config/stormy16/stormy16.c Update.
867         (xstormy16_compute_stack_layout): Update.
868         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
869         (fr30_expand_prologue): Update.
870         * config/cris/cris.c (cris_conditional_register_usage): Update.
871         (cris_reg_saved_in_regsave_area): Update.
872         (cris_initial_frame_pointer_offset): Update.
873         (cris_simple_epilogue): Update.
874         (cris_expand_prologue): Update.
875         (cris_expand_epilogue): Update.
876         (cris_expand_pic_call_address): Update.
877         (cris_asm_output_symbol_ref): Update.
878         (cris_asm_output_label_ref): Update.
879         * config/cris/cris.md Update.
880         * config/iq2000/iq2000.c (compute_frame_size): Update.
881         (iq2000_expand_epilogue): Update.
882         * config/mt/mt.h (save_direction): Update.
883         * config/mn10300/mn10300.c (mn10300_function_value): Update.
884         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
885         (ia64_secondary_reload_class): Update.
886         * config/m68k/m68k.c (m68k_save_reg): Update.
887         (m68k_expand_prologue): Update.
888         (m68k_expand_epilogue): Update.
889         (legitimize_pic_address): Update.
890         * config/rs6000/rs6000.c (rs6000_got_register): Update.
891         (first_reg_to_save): Update.
892         (first_altivec_reg_to_save): Update.
893         (compute_vrsave_mask): Update.
894         (compute_save_world_info): Update.
895         (rs6000_stack_info): Update.
896         (spe_func_has_64bit_regs_p): Update.
897         (rs6000_ra_ever_killed): Update.
898         (rs6000_emit_eh_reg_restore): Update.
899         (rs6000_emit_allocate_stack): Update.
900         (rs6000_emit_prologue): Update.
901         (rs6000_emit_epilogue): Update.
902         (rs6000_output_function_epilogue): Update.
903         (output_profile_hook): Update.
904         (rs6000_elf_declare_function_name): Update.
905         * config/rs6000/rs6000.h (rs6000_args): Update.
906         * config/rs6000/rs6000.md: Update.
907         * config/mcore/mcore.c (mcore_expand_prolog): Update.
908         * config/arc/arc.c (arc_output_function_epilogue): Update.
909         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
910         * config/darwin.c (machopic_function_base_name): Update.
911         * config/score/score3.c (score3_compute_frame_size): Update.
912         (rpush): Update.
913         (rpop): Update.
914         (score3_epilogue): Update.
915         * config/score/score7.c (score7_compute_frame_size): Update.
916         (score7_prologue): Update.
917         (score7_epilogue): Update.
918         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
919         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
920         * config/arm/arm.c (use_return_insn): Update.
921         (require_pic_register): Update.
922         (arm_load_pic_register): Update.
923         (arm_compute_save_reg0_reg12_mask): Update.
924         (arm_compute_save_reg_mask): Update.
925         (thumb1_compute_save_reg_mask): Update.
926         (output_return_instruction): Update.
927         (arm_output_function_prologue): Update.
928         (arm_output_epilogue): Update.
929         (arm_get_frame_offsets): Update.
930         (arm_expand_prologue): Update.
931         (thumb_pushpop): Update.
932         (thumb_exit): Update.
933         (thumb1_expand_prologue): Update.
934         (thumb1_expand_epilogue): Update.
935         (arm_unwind_emit): Update.
936         (arm_output_fn_unwind): Update.
937         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
938         * config/arm/arm.md: Update.
939         * config/pa/pa.md: Update.
940         * config/pa/pa.c (legitimize_pic_address): Update.
941         (compute_frame_size): Update.
942         (hppa_expand_prologue): Update.
943         (hppa_expand_epilogue): Update.
944         (borx_reg_operand): Update.
945         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
946         (HARD_REGNO_RENAME_OK): Update.
947         * config/mips/mips.c (mips_global_pointer): Update.
948         (mips_save_reg_p): Update.
949         (mips_compute_frame_info): Update.
950         (mips_frame_pointer_required): Update.
951         (mips_expand_prologue): Update.
952         (mips_expand_epilogue): Update.
953         (mips_can_use_return_insn): Update.
954         (mips_reorg_process_insns): Update.
955         * config/v850/v850.c (compute_register_save_size): Update.
956         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
957         * config/mmix/mmix.c (along): Update.
958         (mmix_expand_epilogue): Update.
959         * config/bfin/bfin.c (legitimize_pic_address): Update.
960         (must_save_p): Update.
961         (stack_frame_needed_p): Update.
962         (add_to_reg): Update.
963         (bfin_expand_prologue): Update.
964         * stmt.c (expand_asm_operands): Update.
965         * reload1.c (reload): Update.
966         (init_elim_table): Update.
967
968 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
969         
970         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
971         
972 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
973
974         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
975         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
976         (mov<mode>): Removed.
977         (*movv4sf_internal): Likewise.
978         (*movv2df_internal): Likewise.
979
980 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
981
982         * config.gcc (crx-*-elf): Remove deprecation.
983
984 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
985
986         * config/i386/cygming-crtend.c (register_frame_ctor): Register
987         __gcc_deregister_frame with atexit.
988         (deregister_frame_dtor): Remove.
989
990 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
991             Nathan Sidwell  <nathan@codesourcery.com>
992
993         * config/rs6000/rs6000.opt (mspe): Remove Var property.
994         (misel): Likewise.
995         * config/rs6000/rs6000.h (rs6000_spe): Declare.
996         (rs6000_isel): Likewise.
997         * config/rs6000/rs6000.c (rs6000_spe): New variable.
998         (rs6000_isel): New variable.
999         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
1000
1001 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
1002
1003         PR c++/35758
1004         * c-common.c (handle_vector_size_attribute): Call
1005         lang_hooks.types.reconstruct_complex_type instead of
1006         reconstruct_complex_type.
1007         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
1008         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
1009         * langhooks.h (struct lang_hooks_for_types): Add
1010         reconstruct_complex_type hook.
1011         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
1012         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
1013
1014 2008-04-24  Richard Guenther  <rguenther@suse.de>
1015
1016         * c-common.h (check_builtin_function_arguments): Declare.
1017         * c-common.c (validate_nargs): New function.
1018         (check_builtin_function_arguments): Likewise.
1019         * c-typeck.c (build_function_call): Call
1020         check_builtin_function_arguments.
1021         * builtins.c (fold_builtin_classify): Remove error reporting code.
1022         (fold_builtin_unordered_cmp): Likewise.
1023         (fold_builtin_1): Likewise.
1024         (fold_builtin_n): Likewise.
1025
1026 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
1027
1028         PR tree-optimization/36008
1029         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
1030         the original op1, rather than delta by step.
1031
1032 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
1033             Sebastian Pop  <sebastian.pop@amd.com>
1034
1035         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
1036         eliminate_local_variables_stmt, eliminate_local_variables,
1037         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
1038         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
1039         of code delimited by two edges in the CFG.
1040         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
1041         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
1042         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
1043         the case of parallelisation of reductions.
1044         (expr_invariant_in_region_p): New.
1045
1046         * tree-flow.h (gather_blocks_in_sese_region): Declared.
1047         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
1048
1049 2008-04-24  Ira Rosen  <irar@il.ibm.com>
1050             Richard Guenther  <rguenther@suse.de>
1051
1052         PR tree-optimization/36034
1053         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
1054         incapable of dealing with loads with gaps.
1055
1056 2008-04-24  Rafael Espindola  <espindola@google.com>
1057
1058         * tree-flow.h (vrp_evaluate_conditional): Change signature.
1059         * tree-ssa-propagate.c (fold_predicate_in): Update call to
1060         vrp_evaluate_conditional.
1061         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
1062         (vrp_evaluate_conditional): Split the cond argument.
1063         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
1064         (simplify_stmt_for_jump_threading): Update call to
1065         vrp_evaluate_conditional.
1066
1067 2008-04-24  Ira Rosen  <irar@il.ibm.com>
1068
1069         PR tree-optimization/35982
1070         * tree-vect-analyze.c (vect_check_interleaving): Check that the
1071         interleaved data-refs are of the same type.
1072
1073 2008-04-24  Danny Smith  <dannysmith@users.net>
1074
1075         * c-format.c (check_format_info_main): Use strncmp rather than a
1076         magic prefix to handle multichar length specs.
1077         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
1078         Don't prefix "I64" and "I32" with '\0'.
1079
1080 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
1081
1082         PR target/36015
1083         * config/i386/i386.c (init_cumulative_args): Don't pass anything
1084         in registers for -m32 only if stdarg_p (fntype).
1085
1086 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
1087
1088         PR rtl-optimization/36006
1089         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
1090         temp to op0 in order to avoid invalid rtx sharing.
1091
1092 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
1093
1094         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
1095         check TREE_INVARIANT.
1096         * tree-gimple.c (is_gimple_address): New.
1097         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
1098         * tree-gimple.h (is_gimple_address): New.
1099         * tree.h (decl_address_invariant_p): New.
1100         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
1101         (build_string): Likewise.
1102         (decl_address_invariant_p): New, from is_gimple_invariant_address.
1103         (tree_invariant_p_1): Likewise.
1104         (save_expr): Use it.
1105         (tree_invariant_p): New.
1106         (skip_simple_arithmetic): Use it.
1107         (stabilize_reference_1): Use it.
1108         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
1109         simplify.
1110         (build1_stat): Drop code to compute TREE_INVARIANT.
1111         (build2_stat): Drop code to compute TREE_INVARIANT.
1112         (build3_stat): Drop code to compute TREE_INVARIANT.
1113         (build4_stat): Drop code to compute TREE_INVARIANT.
1114         (build5_stat): Drop code to compute TREE_INVARIANT.
1115         (build7_stat): Drop code to compute TREE_INVARIANT.
1116         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
1117         * tree.h (struct tree_base): Remove invariant_flag.
1118         (TREE_INVARIANT): Remove.
1119         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
1120         (fold_builtin_expect): Check TREE_CONSTANT.
1121         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
1122         * c-tree.h (c_expr_to_decl): Drop third parameter.
1123         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
1124         (build_c_cast): Don't set TREE_INVARIANT.
1125         (pop_init_level): Don't set TREE_INVARIANT.
1126         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
1127         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
1128         TREE_CONSTANT.
1129         (gimplify_init_constructor): Don't set TREE_INVARIANT.
1130         (gimplify_addr_expr): Adjust comment.
1131         * tree-mudflap.c (mf_build_string):
1132         * print-tree.c (print_node): Don't print TREE_INVARIANT.
1133         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
1134         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
1135         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
1136         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
1137         * langhooks.h (struct lang_hooks): Drop third parameter from
1138         expr_to_decl.
1139
1140 2008-04-23  Richard Guenther  <rguenther@suse.de>
1141
1142         PR tree-optimization/27799
1143         PR tree-optimization/32921
1144         PR tree-optimization/32624
1145         * tree-ssa-structalias.c (merge_smts_into): Only merge the
1146         SMTs aliases and the tag itself into the solution.
1147         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
1148         merge the points-to solution back into the SMT aliases.
1149         (may_alias_p): Use alias_set_subset_of instead of
1150         aliases_conflict_p.  A pointer which points to
1151         memory with alias set zero may access any variable.
1152
1153 2008-04-23  Richard Guenther  <rguenther@suse.de>
1154
1155         * alias.c (alias_set_subset_of): Correctly handle asking
1156         if zero is a subset of an alias set with zero child.
1157         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
1158         (compute_flow_insensitive_aliasing): Correctly walk all
1159         pointers.  Do not unnecessarily union sets.
1160
1161 2008-04-23  Richard Guenther  <rguenther@suse.de>
1162
1163         PR middle-end/36021
1164         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
1165
1166 2008-04-22  Tomas Bily  <tbily@suse.cz>
1167
1168         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
1169         unreachable case.
1170         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
1171         NON_LVALUE_EXPR.
1172         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
1173         * tree-ssa-structalias.c (get_constraint_for): Likewise.
1174         * tree-inline.c (estimate_num_insns_1): Likewise.
1175         * varasm.c (const_hash_1, compare_constant, copy_constant)
1176         (compute_reloc_for_constant, output_addressed_constants): Likewise.
1177         * emit-rtl.c (component_ref_for_mem_expr)
1178         (set_mem_attributes_minus_bitpos): Likewise.
1179         * expr.c (highest_pow2_factor, expand_expr_real_1, )
1180         (is_aligning_offset): Likewise.
1181         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
1182         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
1183         * dojump.c (do_jump): Likewise.
1184         * builtins.c (get_pointer_alignment, get_memory_rtx)
1185         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
1186         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
1187
1188 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
1189
1190         PR rtl-optimization/36017
1191         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
1192         expanding the library call.
1193
1194 2008-04-22  Ian Lance Taylor  <iant@google.com>
1195
1196         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
1197         than size_in_bytes.
1198
1199 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
1200
1201         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
1202         of LR/CTR moves for Power6.
1203
1204 2008-04-22  Kenneth Zadeck <zadeck@naturalbridge.com>
1205
1206         PR middle-end/36003
1207         * passes.c (init_optimization_passes): Remove
1208         pass_fast_rtl_byte_dce.
1209         
1210 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
1211
1212         PR target/29096
1213         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
1214         builtin functions to generate faster code.
1215         (_mm_cvtpu16_ps): Ditto.
1216         (_mm_cvtpi32x2_ps): Ditto.
1217
1218 2008-04-22  Nick Clifton  <nickc@redhat.com>
1219
1220         * common.opt (ftree-loop-distribution): Add Optimization
1221         attribute.
1222
1223         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
1224         (frv_expand_builtin_va_start): Likewise.
1225
1226         * config/arm/arm.c (thumb_find_work_register): Fix location of
1227         argument register count.
1228
1229 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
1230
1231         Support scheduling for ColdFire V1 and V3 microarchitecture.
1232         Improve scheduling of multiplication instructions.
1233
1234         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
1235         (mac): New instruction attribute.
1236         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
1237         (m68k_sched_mac): New variable.
1238         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
1239         Handle cfv1 and cfv3.
1240         (max_insn_size): New static variable.
1241         (struct _sched_ib): New type.
1242         (sched_ib): New static variable.
1243         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
1244         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
1245         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
1246         Update.
1247         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
1248         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
1249         new variables.  Update.
1250         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
1251         Add modeling of cfv3 instruction buffer.  Update.
1252         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
1253         * config/m68k/m68k.h (TUNE_CFV3): New macro.
1254         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
1255         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
1256         a particular reservation applies to.
1257         (type2): Reorganize attribute values.  Rename alu to alu_reg,
1258         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
1259         to mul_l and mul_w.
1260         (cf_ib_*): Simplify description of instruction buffer.
1261         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
1262         (cf_mem): Split into cf_mem1 and cf_mem2.
1263         (cf_v2_move_??): Rename to cfv12_alu_??.
1264         (cf_v2_move_l_??): Rename to cfv12_omove_??.
1265         (cf_v2_mul_??): Remove reservations.
1266         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
1267         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
1268         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
1269         appropriate place.
1270         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
1271         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
1272         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
1273         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
1274         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
1275         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
1276         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
1277         expansions of the above reservations for instructions of sizes
1278         1, 2 and 3 words.
1279
1280 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
1281
1282         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
1283
1284 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
1285
1286         * coverage.c: Include tree-pass.h.
1287         (coverage_counter_alloc): Print da_file_name to the dump file.
1288
1289 2008-04-21  Kenneth Zadeck <zadeck@naturalbridge.com>
1290
1291         * sbitmap.c (sbitmap_range_empty_p): New function.
1292         * sbitmap.h (sbitmap_range_empty_p): New function.
1293         * bitmap.h: Now includes obstack.h.
1294
1295 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
1296             Kenneth Zadeck <zadeck@naturalbridge.com>
1297
1298         * dbgcnt.def (ra_byte_scan): Added.
1299         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
1300         when the last hit happens for a counter.  
1301         * timevar.def (TV_DF_BYTE_LR): New variable.
1302         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
1303         * passes.c (pass_fast_rtl_byte_dce): New pass.
1304         * fwprop.c (update_df): Added mode to call df_ref_create.
1305         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
1306         DF_REF_EXTRACT_OFFSET.
1307         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
1308         DF_BYTE_LR_OUT, df_byte_lr): New macro.
1309         (df_mm): New enum.
1310         (df_ref_extract): Added mode field.
1311         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
1312         DF_REF_EXTRACT_OFFSET.
1313         (DF_REF_EXTRACT_MODE): New macro.
1314         (df_byte_lr_bb_info): New structure.
1315         (df_print_byte_regset, df_compute_accessed_bytes, 
1316         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
1317         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
1318         df_byte_lr_simulate_uses,
1319         df_byte_lr_simulate_artificial_refs_at_top,
1320         df_byte_lr_simulate_artificial_refs_at_end,
1321         df_compute_accessed_bytes): New function.
1322         (df_ref_create): Add parameter.
1323         (df_byte_lr_get_bb_info): New inline function.
1324         * df-scan.c (df_ref_record, df_uses_record,
1325         df_ref_create_structure): Added mode parameter.
1326         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
1327         df_defs_record, df_uses_record, df_get_conditional_uses,
1328         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
1329         df_entry_block_defs_collect, df_exit_block_uses_collect):
1330         Added mode parameter to calls to df_ref_record, df_uses_record,
1331         df_ref_create_structure.
1332         (df_ref_equal_p, df_ref_compare): Added test for modes.
1333         (df_ref_create_structure): Added code to set mode.  Renamed
1334         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
1335         DF_REF_EXTRACT_OFFSET.
1336         * df-core.c (df_print_byte_regset): New function.
1337         * df-byte-scan.c: New file.
1338         * df-problems.c (df_rd_transfer_function): Removed unnecessary
1339         calls to BITMAP_FREE.  
1340         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
1341         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
1342         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
1343         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
1344         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
1345         df_byte_lr_local_compute, df_byte_lr_init,
1346         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
1347         df_byte_lr_transfer_function, df_byte_lr_free, 
1348         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
1349         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
1350         df_byte_lr_simulate_uses,
1351         df_byte_lr_simulate_artificial_refs_at_top,
1352         df_byte_lr_simulate_artificial_refs_at_end): New function.
1353         * dce.c (byte_dce_process_block): New function.
1354         (dce_process_block): au is now passed in rather than computed
1355         locally.  Changed loops that look at artificial defs to not look
1356         for conditional or partial ones, because there never are any.  
1357         (fast_dce): Now is able to drive byte_dce_process_block or 
1358         dce_process_block depending on the kind of dce being done.
1359         (rest_of_handle_fast_dce): Add parameter to fast_dce.
1360         (rest_of_handle_fast_byte_dce): New function.
1361         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
1362         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
1363
1364 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
1365
1366         PR fortran/35019
1367         * gcc.h: Added fortran options that take arguments to
1368         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
1369         macros.
1370
1371 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
1372
1373         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
1374         scalarization if on the LHS and not a full access.
1375
1376 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1377
1378         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
1379
1380 2008-04-18  Rafael Espindola  <espindola@google.com>
1381
1382         * tree-vrp.c (find_case_label_index): Fix the binary search.
1383         (find_case_label_range): New.
1384         (vrp_visit_switch_stmt): Use find_case_label_range.
1385         (simplify_switch_using_ranges): Use find_case_label_range.
1386
1387 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1388
1389         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
1390         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
1391
1392 2008-04-18  Tom Tromey  <tromey@redhat.com>
1393
1394         PR libcpp/15500:
1395         * doc/cpp.texi (Implementation-defined behavior): Mention
1396         -finput-charset.
1397
1398 2008-04-18  Ian Lance Taylor  <iant@google.com>
1399
1400         * fold-const.c (pointer_may_wrap_p): New static function.
1401         (fold_comparison): Add another test for pointer overflow.  Use
1402         pointer_may_wrap_p to disable some false positives.
1403
1404 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
1405           
1406         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
1407         (fname_as_string): Match updated cpp_interpret_string prototype.
1408         (fix_string_type): Support char16_t* and char32_t*.
1409         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
1410         derivative) nodes.  Register as builtin if C++0x.
1411         (c_parse_error): Support CPP_CHAR{16,32}.
1412         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
1413         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
1414         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
1415         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
1416         CTI_CHAR32_ARRAY_TYPE>: New elements.
1417         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
1418         char32_type_node, signed_char32_type_node, char16_array_type_node,
1419         char32_array_type_node): New defines.
1420         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
1421         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
1422         (lex_string): Support CPP_STRING{16,32}, match updated
1423         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
1424         (lex_charconst): Support CPP_CHAR{16,32}.
1425         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
1426         and CPP_STRING{16,32}.
1427
1428 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
1429
1430         PR bootstrap/35457
1431         * aclocal.m4: Regenerate.
1432         * configure: Regenerate.
1433
1434 2008-04-18  Jan Hubicka  <jh@suse.cz>
1435
1436         * except.c (dw2_size_of_call_site_table,
1437         sjlj_size_of_call_site_table): Use vector API for call_site_record.
1438
1439         * cgraphbuild.c (build_cgraph_edges): Update.
1440         * tree-pass.h: Update comment.
1441         * final.c (leaf_function_p): Update.
1442         (leaf_renumber_regs): Update.
1443         (rest_of_clean_state): Update.
1444         * omp-low.c (expand_omp_parallel): Update.
1445         * ipa-reference.c (analyze_function): Update.
1446         * reorg.c (find_end_label): Update.
1447         (optimize_skip): Update.
1448         (fill_simple_delay_slots): Update.
1449         (fill_simple_delay_slots): Update.
1450         (make_return_insns): Update.
1451         (dbr_schedule): Update.
1452         * gimple-low.c (record_vars_into): Update.
1453         * cfgbuild.c (make_edges): Update.
1454         * function.c (assign_stack_local): Update.
1455         (assign_parm_adjust_stack_rtl): Update.
1456         (locate_and_pad_parm): Update.
1457         (allocate_struct_function): Do not initialize stack_alignment_needed
1458         and preferred_stack_boundary here.
1459         (stack_protect_prologue): Update.
1460         (stack_protect_epilogue): Update.
1461         (expand_function_start): Initialize stack_alignment_needed,
1462         preferred_stack_boundary and max_jumptable_ents.
1463         (expand_function_end): Update.
1464         (free_after_compilation): Do not NULLify epilogue_delay_list.
1465         * function.h (struct rtl_data): Add stack_protect_guard,
1466         stack_alignment_needed,
1467         preferred_stack_boundary, epilogue_delay_list.
1468         (struct function): Remove value_histograms, stack_alignment_needed,
1469         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
1470         last_label_uid,
1471         unexpanded_var_list, stack_protect_guard.
1472         (current_function_epilogue_delay_list): Remove.
1473         * ipa-type-escape.c (analyze_function): Update.
1474         * gimplify.c (pop_gimplify_context): Update comment.
1475         * calls.c (expand_call): Update.
1476         (emit_library_call_value_1): Update.
1477         * except.c (set_nothrow_function_flags): Update.
1478         * cfgexpand.c (get_decl_align_unit): Update.
1479         (create_stack_guard): Update.
1480         (estimated_stack_frame_size): Update.
1481         (expand_used_vars): Update.
1482         (tree_expand_cfg): Free histogram earliers, init expansion variables.
1483         * explow.c (allocate_dynamic_stack_space): Update.
1484         * tree-ssa-live.c (remove_unused_locals): Update.
1485         * varasm.c (mark_constant_pool): Update.
1486         * tree-inline.c (remap_decls): Update.
1487         (initialize_cfun): Update.
1488         (declare_return_variable): Update.
1489         (inline_forbidden_p): Update.
1490         (expand_call_inline): Update.
1491         (declare_inline_vars): Update.
1492         (tree_function_versioning): Update.
1493         * tree-flow.h (value_histograms): New.
1494         (VALUE_HISTOGRAMS): New macro.
1495         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
1496         last_label_uid.
1497         * tree-cfg.c (set_bb_for_stmt): Update.
1498         (replace_by_duplicate_decl): Update.
1499         (move_block_to_fn): Update.
1500         (new_label_mapper): Update.
1501         (dump_function_to_file): Update.
1502         * ipa-struct-reorg.c (build_data_structure): Update.
1503         * cfgrtl.c (print_rtl_with_bb): Update.
1504         * reload1.c (reload): Update.
1505         (reload): Update.
1506         * config/i386/i386.c (setup_incoming_varargs_64,
1507         ix86_compute_frame_layout): Update.
1508         * config/arc/arc.c (arc_output_function_epilogue): Update.
1509
1510 2008-04-18  Marius Strobl <marius@FreeBSD.org>
1511
1512         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
1513         for FreeBSD as well.
1514         * gthr-posix95.h: Likewise.
1515
1516 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
1517
1518         PR rtl-optimization/35838
1519         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
1520         out the byte offset of the first subreg.
1521
1522 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
1523
1524         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
1525         to split_ti instead of three separate calls with single member arrays.
1526         (subti3 splitter): Ditto.
1527         (adddi3 splitter): Ditto with split_di.
1528         (subdi3 splitter): Ditto.
1529         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
1530         two separate calls with single member arrays.  Swap match_dup
1531         operands 1 and 2 to better fit into the array.
1532         (negdi2 splitter): Ditto with split_di.
1533         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
1534         two separate calls with single member arrays.  Swap match_dup operands
1535         6 and 7 to better fit into the array.
1536
1537 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
1538
1539         * config/i386/i386.c (sse_builtin_type): New.
1540         (bdesc_sse_args): Likewise.
1541         (bdesc_sse_3arg): Removed.
1542         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
1543         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
1544         IX86_BUILTIN_ROUNDPS.
1545         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
1546         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
1547         IX86_BUILTIN_ROUNDPS.
1548         (ix86_expand_sse_4_operands_builtin): Removed.
1549         (ix86_expand_sse_operands_builtin): New.
1550         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
1551         and CODE_FOR_sse4_1_roundps.
1552         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
1553         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
1554
1555 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
1556
1557         PR target/35907
1558         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
1559         regs before frame pop when needed.  If use_backchain_to_restore_sp
1560         then load backchain into a temp reg to restore vr and vrsave.  Add
1561         code to restore vr after frame pop if possible.
1562
1563 2008-04-17  Richard Guenther  <rguenther@suse.de>
1564
1565         * tree-vn.c (expressions_equal_p): Do not check type
1566         equality or compatibility before calling operand_equal_p.
1567         * fold-const.c (operand_equal_p): Check equivalence of
1568         integer constants before bailing out due to signedness or
1569         precision differences.
1570         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
1571         spurious differences in type qualification.  Ignore types
1572         for COMPONENT_REFs at all.
1573
1574 2008-04-17  Christian Bruel  <christian.bruel@st.com>
1575
1576         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
1577         msw_skip comparison.
1578         
1579 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
1580
1581         PR c/35739
1582         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
1583         reg type.
1584
1585         PR tree-optimization/35899
1586         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
1587         rather than TREE_OPERAND.
1588
1589 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
1590
1591         PR target/35944
1592         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
1593         temporary registers.  Change operand predicate to general_operand.
1594         (remainderxf3): Ditto.
1595
1596 2008-04-16  Richard Guenther  <rguenther@suse.de>
1597
1598         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
1599         * tree-affine.c (aff_combination_expand): Look through some
1600         conversions.
1601
1602 2008-04-15  Doug Kwan  <dougkwan@google.com>
1603
1604         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
1605         for hex printing.
1606         * tree-pretty-print.c (dump_generic_node): Ditto.
1607         * final.c (output_addr_const): Ditto.
1608         * dwarf2out.c (output_cfi): Ditto.
1609         * c-pretty-print.c (pp_c_integer_constant): Ditto.
1610         * print-rtl.c (print_rtx): Ditto.
1611         * print-tree.c (print_node_brief, print_node): Ditto.
1612         * c-common.c (match_case_to_enum_1): Ditto.
1613         * sched-vis.c (print_value): Ditto.
1614         * config/i386/i386.c (print_operand): Cast to long unsigned int
1615         for hex printing.
1616
1617 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
1618         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
1619         MS Windows VirtualProtect function.
1620
1621 2008-04-15  Jan Hubicka  <jh@suse.cz>
1622
1623         * gengtype.c (write_root): Param_is argument is OK.
1624         * expr.c (expand_expr_real_1): Update call of get_exception_*.
1625         * function.h: Include varray.h
1626         (rtl_eh): New stucture based on except.c one.
1627         (call_site_record): New forward declaration and vector type.
1628         * calls.c (emit_call_1): Do not call
1629         note_current_region_may_contain_throw.
1630         * except.c (eh_status): Remove cur_region, try_region since they are
1631         unused.
1632         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
1633         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
1634         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
1635         Remove call_site_data_used, call_site_data_size.
1636         Turn call_site_record into vector in function.h.
1637         (note_current_region_may_contain_throw): Remove.
1638         (get_exception_pointer, get_exception_filter): Do not take struct
1639         function argument; update.
1640         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
1641         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
1642         build_post_landing_pads, dw2_build_landing_pads,
1643         sjlj_assign_call_site_values, sjlj_mark_call_sites,
1644         sjlj_emit_function_enter, sjlj_emit_function_enter, 
1645         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
1646         sjlj_build_landing_pads, finish_eh_generation,
1647         remove_exception_handler_label, remove_eh_handler,
1648         maybe_remove_eh_handler, add_reachable_handler,
1649         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
1650         add_action_record, collect_one_action_chain, add_call_site,
1651         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
1652         sjlj_output_call_site_table, output_function_exception_table,
1653         * except.h (note_current_region_may_contain_throw): Remove
1654         (get_exception_pointer, get_exception_filter): Do not take struct
1655         function argument.
1656         * Makefile.in (GTFILES): Put varargs before struct function.
1657
1658 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
1659
1660         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
1661         punt for STRING_CST.
1662         (get_constraint_for): Deal with STRING_CST here instead.
1663
1664 2008-04-15  Richard Guenther  <rguenther@suse.de>
1665
1666         * tree-ssa-propagate.c (substitute_and_fold): Substitute
1667         statements in a basic-block with a backward walk.  Do not
1668         substitute into dead statements but instead remove those.
1669
1670 2008-04-15  Richard Guenther  <rguenther@suse.de>
1671
1672         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
1673         to zero, thus disable creation of SFTs.
1674
1675 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
1676
1677         * tree-predcom.c (suitable_reference_p): Return false if the
1678         reference can throw.
1679
1680 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
1681
1682         PR c/35751
1683         * c-decl.c (finish_decl): If extern or static var has variable
1684         size, set TREE_TYPE (decl) to error_mark_node.
1685
1686 2008-04-15  Rafael Espindola  <espindola@google.com>
1687
1688         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
1689         variable arg1.
1690
1691 2008-04-15  Richard Guenther  <rguenther@suse.de>
1692
1693         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
1694         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
1695         (visit_reference_op_load): Do walk vuse-vdef chains on
1696         vn_reference_lookup.
1697         (visit_reference_op_store): But do not here.
1698         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
1699         vn_reference_lookup.
1700         (vn_lookup_with_vuses): But do so here.
1701
1702 2008-04-14  Ian Lance Taylor  <iant@google.com>
1703
1704         * fold-const.c (fold_overflow_warning): Remove assertion.
1705
1706 2008-04-15  Ben Elliston  <bje@au.ibm.com>
1707
1708         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
1709         temp1 local variables.
1710
1711 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
1712
1713         PR target/35661
1714         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
1715         ".text.unlikely" section as executable.
1716
1717 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
1718
1719         * config/ia64/ia64.c (rtx_needs_barrier): Handle
1720         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
1721         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
1722         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
1723         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
1724         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
1725         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
1726
1727 2008-04-14  Ian Lance Taylor  <iant@google.com>
1728
1729         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
1730         * fold-const.c (fold_comparison): If appropriate, test
1731         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
1732         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
1733         reassociating a pointer type.
1734         * doc/invoke.texi (Optimize Options): Document that
1735         -fstrict-overflow applies to pointer wraparound.
1736
1737 2008-04-13  Jan Hubicka  <jh@suse.cz>
1738
1739         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
1740
1741 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
1742
1743         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
1744         we are going to "save the world".
1745
1746 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
1747
1748         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
1749         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
1750         operand 0 constraint, not "=".
1751
1752 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
1753
1754         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
1755
1756 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
1757
1758         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
1759         of size of positions_needed * CHAR_BIT.
1760
1761 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
1762
1763         PR middle-end/35897
1764         * dse.c (store_info): Change positions_needed to unsigned
1765         HOST_WIDE_INT.
1766         (lowpart_bitmask): New.
1767         (record_store): Cast to unsigned HOST_WIDE_INT for
1768         positions_needed.  Assert width <= size of positions_needed *
1769         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
1770         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
1771         lowpart_bitmask to set mask.
1772
1773 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
1774
1775         * config/bfin/constraints.md: New file.
1776         * config/bfin/bfin.md: Include it.
1777         (adddi3): Use satisfies_constraint functions instead of the old macros.
1778         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
1779         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
1780         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
1781         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
1782         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
1783         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
1784         EXTRA_CONSTRAINT): Delete.
1785         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
1786         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
1787         of the old macros.
1788         * config/bfin/bfin.c: Include "tm-constrs.h".
1789         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
1790         Use satisfies_constraint functions instead of the old macros.
1791         * doc/md.texi (Blackfin Constraints): Update file name reference.
1792
1793 2008-04-11  Richard Guenther  <rguenther@suse.de>
1794
1795         PR tree-optimization/35869
1796         * tree-vrp.c (execute_vrp): Move switch statement update after
1797         jump threading.  Schedule another cfg cleanup run.
1798
1799 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
1800
1801         PR c/35744
1802         * attribs.c (decl_attributes): Return early on errorneous node.
1803
1804 2008-04-10  Oleg Ryjkov  <olegr@google.com>
1805
1806         * tree.h (struct tree_base): Added a new flag default_def_flag.
1807         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
1808
1809 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
1810
1811         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
1812
1813 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1814
1815         PR target/35768
1816         * pa.md: Define mode iterator P.  Define mode attribute dwc.
1817         (dcacheflush): Update pattern to use iterator P and attribute dwc.
1818         (icacheflush): Likewise.
1819         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
1820         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
1821
1822 2008-04-11  Ben Elliston  <bje@au.ibm.com>
1823
1824         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
1825
1826 2008-04-10  Rafael Espindola  <espindola@google.com>
1827
1828         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
1829         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
1830         (extract_range_from_expr): The same.
1831
1832 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
1833
1834         * config/mips/mips.md (GPR2): New mode iterator.
1835         (seq): Add comment.
1836         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
1837         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
1838         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
1839         Rewrite these to take two modes, the mode of comparison and the
1840         mode of the destination.
1841         * config/mips/mips.c (mips_expand_scc): Instead of having
1842         paradoxical subreg as destination, expand "narrowing" scc if mode
1843         of comparison is SI and target is requested in DI mode.
1844         (mips_emit_int_order_test): Update comment.  Make mode of
1845         comparison match CMP0 rather than TARGET.  When creating inverse
1846         target use mode of TARGET.
1847
1848 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
1849
1850         * gcov-dump.c (tag_summary): Only print summaries for the first
1851         GCOV_COUNTERS_SUMMABLE counters.
1852
1853 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
1854
1855         * config/i386/i386.md (absneg): New code iterator.
1856         (absnegprefix): New code attribute.
1857         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
1858         patterns using absneg code iterator.
1859         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
1860         using absneg code iterator.
1861         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
1862         *neg<mode>2 patterns using absneg code iterator.
1863         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
1864         *negextendsfdf2 patterns using absneg code iterator.
1865         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
1866         *negextendsfxf2 patterns using absneg code iterator.
1867         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
1868         *negextendsfdf2 patterns using absneg code iterator.
1869         * config/i386/sse.md (<code><mode>2): Macroize expander from
1870         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
1871
1872 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
1873
1874         * config/s390/s390.h: Remove the remains of the recent search
1875         & replace action of current_function_outgoing_args_size.
1876
1877 2008-04-10  Ira Rosen  <irar@il.ibm.com>
1878
1879         PR tree-optimization/35821
1880         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
1881         NEW_STMT_LIST is not NULL.
1882
1883 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
1884
1885         PR libstdc++/35597
1886         * toplev.c (process_options): Remove -ffunction-sections debugging
1887         warning.
1888
1889 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
1890
1891         PR middle-end/PR28690
1892         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
1893         than gen_rtx_fmt_ee to perform more canonicalizations.
1894
1895 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1896
1897         PR driver/35665
1898         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
1899
1900 2008-04-09  Richard Guenther  <rguenther@suse.de>
1901
1902         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
1903         (dump_function_to_file): Dump function arguments with types.
1904
1905 2008-04-08  Richard Guenther  <rguenther@suse.de>
1906
1907         * fold-const.c (fold_widened_comparison): Do not allow
1908         sign-changes that change the result.
1909
1910 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
1911
1912         PR target/35839
1913         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
1914         kinds of indirect references.
1915
1916 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
1917
1918         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
1919         GNU Fortran language string.
1920
1921 2008-04-08  Rafael Espindola  <espindola@google.com>
1922
1923         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
1924         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
1925         * tree.h (tree_call_nonnegative_warnv_p): New.
1926
1927 2008-04-08  Jan Hubicka  <jh@suse.cz>
1928
1929         * function.c (free_after_compilation): Clear out regno_reg_rtx
1930         pointer.
1931
1932 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
1933
1934         Revert
1935         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
1936
1937         PR middle-end/PR28690
1938         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
1939         same precedence as REG_POINTER and MEM_POINTER operands.
1940
1941 2008-04-08  Richard Guenther  <rguenther@suse.de>
1942
1943         PR middle-end/35834
1944         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
1945         for adding index to base.
1946
1947 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
1948
1949         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
1950         (MINGW_ENABLE_EXECUTE_STACK): New.
1951         (IN_LIBGCC2): For libgcc include windows.h file for
1952         function declarations.
1953
1954 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
1955
1956         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
1957         and tem2 if tem1 is not a REG or MULT.
1958
1959 2008-04-08  Jan Hubicka  <jh@suse.cz>
1960
1961         * function.h (incomming_args): Break out of struct function.
1962         (function_subsections): Break out of struct function.
1963         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
1964         return_rtx and hard_reg_initial_vals from struct function.
1965         Kill inl_max_label_num.
1966         (current_function_pops_args, current_function_args_info,
1967         current_function_args_size, current_function_args_size,
1968         current_function_pretend_args_size,
1969         current_function_outgoing_args_size,
1970         current_function_internal_arg_pointer, current_function_return_rtx):
1971         Kill compatibility accestor macros.
1972         * builtins.c (expand_builtin_apply_args_1): Update.
1973         (expand_builtin_next_arg): Update.
1974         * df-scan.c (df_get_call_refs): Update.
1975         * dbxout.c (dbxout_function_end): Update.
1976         * dwarf2out.c (dwarf2out_switch_text_section): Update.
1977         (output_line_info): Update.
1978         (secname_for_decl): Update.
1979         (dwarf2out_var_location): Update.
1980         * function.c (free_after_compilation): Update.
1981         (assign_parm_find_stack_rtl): Update.
1982         (assign_parms): Update.
1983         (expand_dummy_function_end): Update.
1984         (expand_function_end): Update.
1985         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
1986         (expand_call): Update.
1987         (emit_library_call_value_1): Update.
1988         (store_one_arg): Update.
1989         * varasm.c (initialize_cold_section_name): Update.
1990         (unlikely_text_section): Update.
1991         (unlikely_text_section_p): Update.
1992         (assemble_start_function): Update.
1993         (assemble_end_function): Update.
1994         (default_section_type_flags): Update.
1995         (switch_to_section): Update.
1996         * integrate.c (set_decl_abstract_flags): Update.
1997         (get_hard_reg_initial_val): Update.
1998         (has_hard_reg_initial_val): Update.
1999         (allocate_initial_values): Update.
2000         * resource.c (init_resource_info): Update.
2001         * config/alpha/alpha.c (NUM_ARGS): Update.
2002         (direct_return): Update.
2003         (alpha_va_start): Update.
2004         (alpha_sa_size): Update.
2005         (alpha_initial_elimination_offset): Update.
2006         (alpha_expand_prologue): Update.
2007         (alpha_start_function): Update.
2008         (alpha_expand_epilogue): Update.
2009         (unicosmk_initial_elimination_offset):
2010         * config/alpha/alpha.md (call expander): Update.
2011         * config/s390/s390.c (s390_register_info): Update.
2012         (s390_register_info): Update.
2013         (s390_frame_info): Update.
2014         (s390_initial_elimination_offset): Update.
2015         (s390_build_builtin_va_list): Update.
2016         (s390_va_start): Update.
2017         * config/spu/spu.c (direct_return): Update.
2018         (spu_expand_prologue): Update.
2019         (spu_initial_elimination_offset): Update.
2020         (spu_build_builtin_va_list): Update.
2021         (spu_va_start): Update.
2022         * config/sparc/sparc.c (sparc_init_modes): Update.
2023         (sparc_compute_frame_size): Update.
2024         (function_value): Update.
2025         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
2026         * config/i386/i386.md (return expander): Update.
2027         * config/i386/i386.c (ix86_va_start): Update.
2028         (ix86_can_use_return_insn_p): Update.
2029         (ix86_compute_frame_layout): Update.
2030         (ix86_expand_epilogue): Update.
2031         * config/sh/sh.c (output_stack_adjust): Update.
2032         (calc_live_regs): Update.
2033         (sh_expand_prologue): Update.
2034         (sh_builtin_saveregs): Update.
2035         (sh_va_start): Update.
2036         (initial_elimination_offset): Update.
2037         (sh_allocate_initial_value): Update.
2038         (sh_function_ok_for_sibcall): Update.
2039         (sh_get_pr_initial_val): Update.
2040         * config/sh/sh.md (return expander): Update.
2041         * config/avr/avr.c (frame_pointer_required_p): UPdate.
2042         * config/crx/crx.c (crx_compute_frame): UPdate.
2043         (crx_initial_elimination_offset): UPdate.
2044         * config/xtensa/xtensa.c (compute_frame_size): Update
2045         (xtensa_builtin_saveregs): Update.
2046         (xtensa_va_start): Update.
2047         (order_regs_for_local_alloc): Update.
2048         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
2049         (xstormy16_expand_builtin_va_start): Update.
2050         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
2051         * config/m68hc11/m68hc11.md (return expanders): Update.
2052         * config/m68hc11/m68hc11.c (expand_prologue): Update.
2053         (expand_epilogue): Update.
2054         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
2055         (cris_simple_epilogue): Update.
2056         (cris_expand_prologue): Update.
2057         (cris_expand_epilogue): Update.
2058         * config/iq2000/iq2000.c (iq2000_va_start): Update.
2059         (compute_frame_size): Update.
2060         * config/mt/mt.c (mt_compute_frame_size): Update.
2061         * config/mn10300/mn10300.c (expand_prologue): Update.
2062         (expand_epilogue): Update.
2063         (initial_offset): Update.
2064         (mn10300_builtin_saveregs):
2065         * config/mn10300/mn10300.md (return expander): Update.
2066         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
2067         (ia64_initial_elimination_offset): Update.
2068         (ia64_initial_elimination_offset): Update.
2069         (ia64_expand_prologue): Update.
2070         * config/m68k/m68k.md (return expander): Update.
2071         * config/rs6000/rs6000.c (rs6000_va_start): Update.
2072         (rs6000_stack_info): Update.
2073         * config/mcore/mcore.c (layout_mcore_frame): Update.
2074         (mcore_expand_prolog): Update.
2075         * config/arc/arc.c (arc_compute_frame_size): Update.
2076         * config/score/score3.c (score3_compute_frame_size): Update.
2077         * config/score/score7.c (score7_compute_frame_size): Update.
2078         * config/arm/arm.c (use_return_insn): Update.
2079         (thumb_find_work_register): Update.
2080         (arm_compute_save_reg_mask): Update.
2081         (arm_output_function_prologue): Update.
2082         (arm_output_epilogue): Update.
2083         (arm_size_return_regs): Update.
2084         (arm_get_frame_offsets): Update.
2085         (arm_expand_prologue): Update.
2086         (thumb_exit): Update.
2087         (thumb_unexpanded_epilogue): Update.
2088         (thumb1_output_function_prologue): Update.
2089         * config/pa/pa.md (return expander): Update.
2090         * config/pa/pa.c (compute_frame_size): Update.
2091         (hppa_builtin_saveregs): Update.
2092         * config/mips/mips.c (mips_va_start): Update.
2093         (mips16_build_function_stub): Update.
2094         (mips_compute_frame_info): Update.
2095         (mips_restore_gp): Update.
2096         (mips_output_function_prologue): Update.
2097         (mips_expand_prologue): Update.
2098         * config/v850/v850.c (compute_frame_size): Update.
2099         (expand_prologue): * config/mmix/mmix.c (along): update.
2100         (mmix_initial_elimination_offset): update.
2101         (mmix_reorg): update.
2102         (mmix_use_simple_return): update.
2103         (mmix_expand_prologue): update.
2104         (mmix_expand_epilogue): Update.
2105         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
2106         (emit_link_insn): Update.
2107
2108 2008-04-08  Anatoly Sokolov <aesok@post.ru>
2109
2110         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
2111         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
2112         instructions.
2113         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
2114         atmega103 device.
2115
2116 2008-04-07  Jan Hubicka  <jh@suse.cz>
2117
2118         * function.h (rtl): Rename to x_rtl.
2119         (crtl): New define.
2120         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
2121         frame_offset, stack_check_probe_note, arg_pointer_save_area,
2122         used_temp_slots avail_temp_slots, temp_slot_level,
2123         nonlocal_goto_handler_labels): Update accesstors.
2124         (rtl): New global variable.
2125         (struct function): Move some fileds to rtl_data.
2126         (get_arg_pointer_save_area): Update prototype.
2127         * builtins.c (expand_builtin_setjmp_receiver): Update call of
2128         get_arg_pointer_save_area.
2129         * expr.c (init_expr): Update
2130         * function.c (get_frame_size): Update
2131         (assign_stack_local): Update
2132         (expand_function_end): Update.
2133         (get_art_pointer_save_area): Update
2134         * function.h 
2135         * emit-rtl.c (rtl): Declare.
2136         (regno_reg_rtx): Declare.
2137         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
2138         Update.
2139         (gen_reg_rtx): Update.
2140         * varasm.c (n_deferred_constatns): Update accestor.
2141         (init_varasm_status): Do not allocate varasm_status.
2142         (force_const_mem, get_pool_size, output_constant_pool): Update.
2143         * stmt.c (force_label_rtx): Do not use x_ prefixes.
2144         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
2145         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
2146         * sparc/sparc.h (INIT_EXPANDERS): Update.
2147         * ia64/ia64.h (INIT_EXPANDERS): Update.
2148
2149 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
2150
2151         * reload.c (push_secondary_reload): Add missing break to for loop.
2152
2153 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
2154
2155         PR middle-end/PR28690
2156         * rtlanal.c: Update copyright years.
2157         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
2158         as REG_POINTER and MEM_POINTER operands.
2159         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
2160         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
2161         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
2162         * gcse.c: Update copyright years.
2163         (pre_delete): Call gen_reg_rtx_and_attrs.
2164         (hoist_code): Likewise.
2165         (build_store_vectors): Likewise.
2166         (delete_store): Likewise.
2167         * loop-invariant.c (move_invariant_reg): Likewise.
2168         Update copyright years.
2169
2170 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
2171
2172         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
2173         control string instead of quoted.
2174
2175 2008-04-07  Kenneth Zadeck <zadeck@naturalbridge.com>
2176
2177         * doc/rtl.texi: Rewrite of subreg section.
2178
2179 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
2180
2181         PR/35842
2182         * config/i386/i386.c (legitimize_pic_address): Add treating
2183         of dllimport SYM_REF's.
2184         (legitimize_dllimport_symbol): Add prototype.
2185
2186 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
2187
2188         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
2189         reference in constructor with non self-referential type.
2190
2191 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
2192
2193         Removal of Return with Depressed Stack Pointer support
2194         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
2195         (ECF_SP_DEPRESSED): Likewise.
2196         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
2197         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
2198         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
2199         (expand_call): Do not test ECF_SP_DEPRESSED.
2200         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
2201         * function.c (keep_stack_depressed): Delete.
2202         (handle_epilogue_set): Likewise.
2203         (update_epilogue_consts): Likewise.
2204         (emit_equiv_load): Likewise.
2205         (thread_prologue_and_epilogue_insns): Remove support for Return with
2206         Depressed Stack Pointer.
2207         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
2208
2209 2008-04-06  Richard Guenther  <rguenther@suse.de>
2210
2211         PR tree-optimization/35400
2212         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
2213         information from SSA_NAMEs.
2214
2215 2008-04-06  Anatoly Sokolov <aesok@post.ru>
2216
2217         * config/avr/avr.h (avr_mega_p): Remove declaration.
2218         (AVR_MEGA): Remove macro.
2219         * config/avr/avr.c (avr_mega_p): Remove variable.
2220         (avr_override_options): Remove inicializion of avr_mega_p.
2221         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
2222         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
2223         (avr_jump_mode): (Ditto.).
2224         (avr_output_progmem_section_asm_op): (Ditto.).
2225         (avr_asm_init_sections): (Ditto.).
2226         (avr_asm_init_sections): (Ditto.).
2227         (avr_rtx_costs): (Ditto.).
2228         * config/avr/avr.md: (Ditto.).
2229         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
2230         '__AVR_MEGA__'.
2231
2232 2008-04-06  Richard Guenther  <rguenther@suse.de>
2233
2234         PR tree-optimization/35842
2235         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
2236         is_gimple_invariant_address.
2237
2238 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2239
2240         * gcc.c (default_compilers): Sync Fortran extensions list with
2241         that in fortran/lang-specs.h.
2242         * doc/invoke.texi: Likewise.
2243         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
2244         * dwarf2out.c (gen_compile_unit_die): Likewise.
2245
2246 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
2247
2248         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
2249
2250 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
2251
2252         PR target/12329
2253         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
2254         attribute is used for nested functions.
2255
2256 2008-04-05  Jan Hubicka  <jh@suse.cz>
2257
2258         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
2259
2260         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
2261         letter argument.
2262         (dump_files): Update.
2263         (enable_rtl_dump_file): Do not accept letter argument.
2264         * tree-pass.h (dump_file_info): Remove letter argument.
2265         * toplev.c (decode_d_option): Update -da handling.
2266         * toplev.h (enable_rtl_dump_file): Update prototype.
2267         * passes.c (register_one_dump_file): Do not accept IPA argument; work
2268         it out based on pass type.
2269         (register_dump_files_1): Likewise.
2270         (init_optimization_passes): Update register_one_dump_file calls.
2271         (execute_one_pass): Sanity check that IPA passes are called at IPA
2272         level and RTL passes at RTL level.
2273         (execute_pass_list): IPA pass can not be after or subpass of
2274         GIMPLE/RTL pass.
2275         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
2276         disallov RTL subpasses of IPA subpasses.
2277
2278 2008-04-05  Ben Elliston  <bje@au.ibm.com>
2279
2280         * tree-cfg.c (need_fake_edge_p): Return false for calls to
2281         builtins that return exactly once and do not throw. Cache call to
2282         call_expr_flags.
2283
2284 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
2285
2286         PR rtl-optimization/34916
2287         PR middle-end/35519
2288         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
2289         between instruction pairs.
2290
2291 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
2292
2293         * doc/invoke.texi: Document -mbitops for SH.
2294         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
2295         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
2296         * config/sh/sh.c (print_operand): Add %t operand code.
2297         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
2298         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
2299         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
2300         (extendqihi2): Likewise.
2301         (movqi_i): Likewise.
2302         (insv): Use bset, bclr and bst instructions for SH2A if possible.
2303         (extv): Use bld instruction for SH2A if possible.
2304         (extzv): Likewise.
2305         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
2306         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
2307         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
2308         (bset.b, bclr.b): Define peepholes.
2309         * config/sh/sh.opt (mbitops): New option.
2310
2311 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
2312
2313         PR target/35620
2314         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
2315         and view convert expression.
2316
2317 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
2318
2319         PR target/35364
2320         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
2321
2322 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
2323
2324         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
2325
2326         * config/i386/cpuid.h (bit_AES): New.
2327         (bit_PCLMUL): Likewise.
2328
2329         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
2330         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
2331         SSE2 if AES or PCLMUL is enabled.
2332         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
2333         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
2334         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
2335         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
2336         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
2337         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
2338         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
2339         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
2340         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
2341         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
2342         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
2343         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
2344         __builtin_ia32_aeskeygenassist128 and
2345         __builtin_ia32_pclmulqdq128.
2346         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
2347         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
2348         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
2349
2350         * config/i386/i386.h (TARGET_AES): New.
2351         (TARGET_PCLMUL): Likewise.
2352         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
2353
2354         * config/i386/i386.md (UNSPEC_AESENC): New.
2355         (UNSPEC_AESENCLAST): Likewise.
2356         (UNSPEC_AESDEC): Likewise.
2357         (UNSPEC_AESDECLAST): Likewise.
2358         (UNSPEC_AESIMC): Likewise.
2359         (UNSPEC_AESKEYGENASSIST): Likewise.
2360         (UNSPEC_PCLMUL): Likewise.
2361
2362         * config/i386/i386.opt (maes): New.
2363         (mpclmul): Likewise.
2364
2365         * config/i386/sse.md (aesenc): New pattern.
2366         (aesenclast): Likewise.
2367         (aesdec): Likewise.
2368         (aesdeclast): Likewise.
2369         (aesimc): Likewise.
2370         (aeskeygenassist): Likewise.
2371         (pclmulqdq): Likewise.
2372
2373         * config/i386/wmmintrin.h: New.
2374
2375         * doc/extend.texi: Document AES and PCLMUL built-in function.
2376
2377         * doc/invoke.texi: Document -maes and -mpclmul.
2378
2379 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
2380
2381         * function.c (free_after_parsing): Replace with
2382         cxx_push_function_context from C++ front-end.
2383         (allocate_struct_function): Don't call langhook.
2384         * langhooks.h (struct lang_hooks_for_functions): Delete.
2385         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
2386         member "function".
2387         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
2388         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
2389         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2390         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
2391         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
2392         remove LANG_HOOKS_FUNCTION_INITIALIZER.
2393         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
2394
2395         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
2396         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
2397         
2398 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
2399
2400         PR c/35440
2401         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
2402         for all types.
2403
2404 2008-04-04  Richard Guenther  <rguenther@suse.de>
2405
2406         PR middle-end/35823
2407         * fold-const.c (optimize_minmax_comparison): Use the correct
2408         type for the constant in the simplified comparison.
2409
2410 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
2411
2412         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
2413         Pass L2 size as "--param l2-cache-size" to the compiler.
2414         (decode_l2_cache): New function to decode L2 cache parameters using
2415         0x8000006 extended cpuid function.
2416         (detect_caches_amd): Determine parameters of L2 cache using
2417         decode_l2_caches function.
2418         (decode_caches_intel): Decode L2 cache parameters.
2419         (detect_caches_intel): Determine L2 cache parameters using
2420         decode_caches_intel and decode_l2_caches functions.
2421
2422 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
2423
2424         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
2425         secondary input reload for subword loads from the constant pool.
2426
2427 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
2428
2429         PR target/35713
2430         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
2431           constants of the appropriate size for runtime calculations.
2432
2433         PR c/35712
2434         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
2435           decimal-float literal constant zero.
2436
2437 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
2438
2439         PR c/35738
2440         * c-parser.c (c_parser_omp_atomic): Call
2441         default_function_array_conversion on the RHS.
2442
2443         PR middle-end/35818
2444         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
2445         call is_variable_sized if decl has incomplete type.
2446
2447 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
2448
2449         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
2450
2451 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
2452
2453         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
2454         iterators.
2455         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
2456         (sgt<u>): Merge sgt and sgtu into new expander.
2457         (sgt, sgtu): Remove expanders.
2458         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
2459         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
2460         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
2461         *sgtu_<mode>_mips16 into new pattern.
2462         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
2463         (sge<u>): Merge sge and sgeu into new expander.
2464         (sge, sgeu): Remove expanders.
2465         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
2466         new pattern.
2467         (*sge_<mode>, second *sge_<mode>): Remove patterns.
2468         (slt<u>): Merge slt and sltu into new expander.
2469         (slt, sltu): Remove expanders.
2470         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
2471         (*slt_<mode>, *sltu_<mode>): Remove patterns.
2472         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
2473         *sltu_<mode>_mips16 into new pattern.
2474         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
2475         (sle<u>): Merge sle and sleu into new expander.
2476         (sle, sleu): Remove expanders.
2477         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
2478         (*sle_<mode>, *sleu_<mode>): Remove patterns.
2479         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
2480         *sleu_<mode>_mips16 into new pattern.
2481         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
2482
2483 2008-04-03  Jan Hubicka  <jh@suse.cz>
2484
2485         PR tree-optimization/35795
2486         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
2487         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
2488         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
2489         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
2490         * score/score3.c (score3_output_mi_thunk): Likewise.
2491         * score/score7.c (score7_output_mi_thunk): Likewise.
2492         * mips/mips.c (mips_output_mi_thunk): Likewise.
2493
2494 2008-04-03  Richard Guenther  <rguenther@suse.de>
2495
2496         * tree-vrp.c (extract_range_from_unary_expr): Handle all
2497         conversions.  Simplify code.
2498
2499 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
2500
2501         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
2502
2503 2008-04-03  Tom Tromey  <tromey@redhat.com>
2504             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2505
2506         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
2507         * config/bfin/t-bfin-linux (generated_files): Add
2508         linux-sysroot-suffix.h.
2509         * doc/install.texi (Prerequisites): Require make 3.80.
2510         * doc/sourcebuild.texi (Front End Directory): Document new
2511         variable.
2512         * Makefile.in (generated_files): New variable.
2513         (ALL_HOST_OBJS): New variable.
2514         ($(ALL_HOST_OBJS)): New target.
2515
2516 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
2517
2518         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
2519         (remap_block): Call id->transform_lang_insert_block instead
2520         of langhook.
2521         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
2522         Set id.transform_lang_insert_block to NULL.
2523         (clone_body): Move to cp/optimize.c
2524         * tree-inline.h (struct copy_body_data): Change
2525         transform_lang_insert_block to function pointer.
2526         (copy_generic_body, copy_decl_no_change): Export.
2527         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
2528         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
2529         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
2530
2531         * c-tree.h (insert_block): Kill.
2532         * c-decl.c (insert_block): Kill.
2533
2534 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
2535
2536         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
2537         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
2538         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
2539         argument.
2540         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
2541         argument, call {push,pop}_function_context from here.
2542         * c-parser.c: Use c_{push,pop}_function_context.
2543
2544         * function.c (push_function_context_to): Move meat ...
2545         (push_function_context): ... here.  Simplify.
2546         * function.c (pop_function_context_from): Move meat ...
2547         (pop_function_context): ... here.  Simplify.
2548         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
2549         leave_nested).
2550         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
2551         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
2552         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
2553         * tree.h (push_function_context_to, pop_function_context_from): Remove.
2554
2555 2008-04-03  Ben Elliston  <bje@au.ibm.com>
2556
2557         * expmed.c (extract_force_align_mem_bit_field): Remove.
2558
2559 2008-04-03  Richard Guenther  <rguenther@suse.de>
2560
2561         PR middle-end/35800
2562         * expr.h (try_casesi): Adjust prototype.
2563         * expr.c (try_casesi): Take fallback label as extra parameter.
2564         Use that for gen_casesi if default_label is NULL.
2565         * stmt.c (expand_case): Pass fallback label to try_casesi,
2566         make sure to fill gaps with a fallback label if default_label
2567         is not present.
2568
2569 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
2570
2571         PR target/35801
2572         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
2573
2574 2008-04-03  Ben Elliston  <bje@au.ibm.com>
2575
2576         * expmed.c (extract_split_bit_field): Remove if (0) code.
2577         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
2578         (do_ds_constraint): Likewise.
2579
2580 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
2581
2582         * doc/cppopts.texi (-dU): Document.
2583         * c-common.h (flag_dump_macros): Update comment.
2584         * c-opts.c (handle_OPT_d): Handle -dU.
2585         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
2586         dump_queued_macros, cb_used_define, cb_used_undef): New.
2587         (init_pp_output): Handle -dU.
2588         (cb_line_change): Call dump_queued_macros.
2589         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
2590
2591 2008-04-02  Anatoly Sokolov <aesok@post.ru>
2592
2593         * config/avr/predicates.md (io_address_operand): New predicate. 
2594         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
2595         * config/avr/avr.c (avr_io_address_p): Remove function.
2596         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
2597         'avr_io_address_p' function.
2598         (out_movhi_r_mr): (Ditto.).
2599         (out_movqi_mr_r): (Ditto.).
2600         (out_movhi_mr_r): (Ditto.).
2601         (avr_address_cost): (Ditto.).
2602
2603 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
2604
2605         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
2606         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
2607         in 32bit mode when XMM registers are available to avoid store
2608         forwarding stalls.
2609         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
2610         corresponding post-reload splitters.
2611
2612 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
2613
2614         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
2615         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
2616         __builtin_ia32_roundss.
2617         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
2618         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
2619         __builtin_ia32_roundss.
2620         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
2621         IX86_BUILTIN_SHUFPD here.
2622
2623 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
2624
2625         * config/i386/i386.md (plogic): New.
2626         (plogicprefix): Likewise.
2627
2628         * config/i386/mmx.md (mmx_<code><mode>3): New.
2629         (mmx_and<mode>3): Removed.
2630         (mmx_ior<mode>3): Likewise.
2631         (mmx_xor<mode>3): Likewise.
2632
2633         * config/i386/sse.md (<code><mode>3): New.
2634         (*<code><mode>3): Likewise.
2635         (*<code><mode>3): Likewise.
2636         (<code><mode>3): Likewise.
2637         (*sse_<code><mode>3): Likewise.
2638         (*sse2_<code><mode>3): Likewise.
2639         (<code>tf3): Likewise.
2640         (*<code>tf3): Likewise.
2641         (and<mode>3): Likewise.
2642         (*and<mode>3): Likewise.
2643         (ior<mode>3): Removed.
2644         (*ior<mode>3): Likewise.
2645         (xor<mode>3): Likewise.
2646         (*xor<mode>3): Likewise.
2647         (*and<mode>3): Likewise.
2648         (*ior<mode>3): Likewise.
2649         (*xor<mode>3): Likewise.
2650         (and<mode>3): Likewise.
2651         (*sse_and<mode>3): Likewise.
2652         (*sse2_and<mode>3): Likewise.
2653         (andtf3): Likewise.
2654         (*andtf3): Likewise.
2655         (ior<mode>3): Likewise.
2656         (*sse_ior<mode>3): Likewise.
2657         (*sse2_ior<mode>3): Likewise.
2658         (iortf3): Likewise.
2659         (*iortf3): Likewise.
2660         (xor<mode>3): Likewise.
2661         (*sse_xor<mode>3): Likewise.
2662         (*sse2_xor<mode>3): Likewise.
2663         (xortf3): Likewise.
2664         (*xortf3): Likewise.
2665
2666 2008-04-02  Richard Guenther  <rguenther@suse.de>
2667
2668         PR tree-optimization/14495
2669         PR tree-optimization/34793
2670         * tree-vrp.c (struct switch_update): New structure.
2671         (to_remove_edges, to_update_switch_stmts): New VECs.
2672         (simplify_switch_using_ranges): New function.  Remove not taken
2673         case labels and edges.
2674         (simplify_stmt_using_ranges): Call it.
2675         (identify_jump_threads): Mark edges we have queued for removal
2676         so we don't thread them.
2677         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
2678         case label vector.
2679         * tree-cfg.c (group_case_labels): Deal with missing default label.
2680         (tree_verify_flow_info): Allow missing default label.
2681         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
2682         (emit_case_nodes): Likewise.
2683         (expand_case): Do not rely on the default label to be present.
2684         * expr.c (try_casesi): Deal with NULL default_label.
2685         (do_tablejump): Likewise.
2686
2687 2008-04-02  Richard Guenther  <rguenther@suse.de>
2688
2689         PR tree-optimization/14495
2690         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
2691         SWITCH_EXPR here ...
2692         (vrp_visit_switch_stmt): ... but here (new function).
2693         (find_case_label_index): New helper function.
2694         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
2695
2696 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
2697
2698         * fwprop.c: Fix ISO-C99ism.
2699
2700 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
2701
2702         PR bootstrap/35752
2703         * Makefile.in (objdir): Set it here.
2704         * configure.ac: Not here.  Find dynamic linker characteristics.
2705         * exec-tool.in: Use them.
2706         * aclocal.m4: Regenerate.
2707         * configure: Regenerate.
2708
2709 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
2710
2711         * expr.c (expand_var): Delete it.
2712         * expr.h (expand_var): Delete prototype.
2713         * function.c (expand_function_start): Use expand_decl instead.
2714         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
2715         langhook.
2716
2717 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
2718
2719         PR rtl-optimization/35542
2720         * fwprop.c (forward_propagate_and_simplify): Replace
2721         loc_reg_mentioned_in_p with reg_mentioned_p.
2722
2723 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
2724
2725         PR rtl-optimization/35281
2726         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
2727         (propagate_rtx_1): Handle PR_HANDLE_MEM.
2728         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
2729         (varying_mem_p): Move above propagate_rtx.
2730         (all_uses_available_at): Do not check MEMs.
2731
2732 2008-04-02  Rafael Espindola  <espindola@google.com>
2733
2734         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
2735         (register_edge_assert_for_2): Split the cond argument.
2736         (register_edge_assert_for_1): Adjust for the change in
2737         register_edge_assert_for_2.
2738         (register_edge_assert_for): Split the cond argument.
2739         (find_switch_asserts): Adjust for the change in
2740         register_edge_assert_for.
2741
2742 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
2743
2744         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
2745         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
2746         offsets for 64-bit mingw.
2747         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
2748         abi for x86_64-pc-mingw.
2749
2750 2008-04-02  Richard Guenther  <rguenther@suse.de>
2751
2752         * tree-vrp.c (extract_range_from_assert): Make sure to not
2753         produce range min/max with TREE_OVERFOW set.
2754         If merging a anti-range and a range keep the anti-range if
2755         the range covers all values of the type.
2756         (register_edge_assert_for_2): Only allow sign-changing
2757         conversions in detecting canonical range checks.  Also
2758         register an assert for the unsigned name if useful.
2759
2760         PR tree-optimization/35787
2761         * tree-vrp.c (vrp_val_max): New function.
2762         (vrp_val_min): Likewise.
2763         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
2764         (vrp_val_is_min): Likewise.
2765         (supports_overflow_infinity): Use vrp_val_{min,max}.
2766         (negative_overflow_infinity): Likewise.
2767         (positive_overflow_infinity): Likewise.
2768         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
2769         (is_positive_overflow_infinity): Likewise.
2770         (is_overflow_infinity): Likewise.
2771         (avoid_overflow_infinity): Use vrp_val_{min,max} and
2772         vrp_val_is_{min,max}.
2773         (set_and_canonicalize_value_range): Canonicalize anti-ranges
2774         to ranges if possible.  Avoid empty ranges.
2775
2776 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2777
2778         PR middle-end/35705
2779         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
2780         the expression is a function address.
2781
2782 2008-04-01  George Helffrich  <george@gcc.gnu.org>
2783
2784         PR fortran/35154, fortran/23057
2785         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
2786         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
2787         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
2788         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
2789         in common.
2790         (dbxout_syms): Check for COMMON-based symbol and wrap in
2791         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
2792         in bracket for efficiency.
2793
2794         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
2795         using DW_TAG_common_block + member offset.
2796         (add_pubname_string): New function.
2797         (dw_expand_expr): New function to find block name and offset for
2798         COMMON var.
2799         (common_check): New function to check whether symbol in Fortran COMMON.
2800         (gen_variable_die): If COMMON, use DW_TAG_common_block.
2801
2802 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
2803
2804         PR c/35436
2805         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
2806
2807 2008-04-02  Ben Elliston  <bje@au.ibm.com>
2808
2809         * config/v850/v850.md (casesi): Remove if (0) code.
2810         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
2811         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
2812
2813 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
2814
2815         * config/i386/i386.md (rex64suffix): New mode attribute.
2816         (floathi<mode>2): Disable expander for SSE math.
2817         (*floathi<mode>2_1): New insn insn_and_split pattern.
2818         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
2819         corresponding post-reload splitters.
2820         (*floathi<mode>2_i387): New macroized insn pattern.
2821         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
2822         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
2823         insn_and_split pattern.
2824         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
2825         New macroized instruction patterns and corresponding post-reload
2826         splitters.
2827         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
2828         and corresponding post-reload splitters.
2829         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
2830         New macroized instruction patterns.
2831         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
2832         macroized instruction patterns and corresponding post-reload splitters.
2833         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
2834         corresponding post-reload splitters.
2835         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
2836         New macroized instruction patterns.
2837         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
2838         corresponding post-reload splitters.
2839         (*floatsi<mode>2_i387): New macroized instruction patterns.
2840
2841 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
2842
2843         * config/i386/i386.md (smaxmin): New.
2844         (umaxmin): Likewise.
2845         (maxminiprefix): Likewise.
2846         (maxminfprefix): Likewise.
2847         (<code><mode>3): Likewise.
2848         (smin<mode>3): Removed.
2849         (smax<mode>3): Likewise.
2850
2851         * config/i386/mmx.md (mmx_<code>v2sf3): New.
2852         (mmx_<code>v4hi3): Likewise.
2853         (mmx_<code>v8qi3): Likewise.
2854         (mmx_smaxv2sf3): Removed.
2855         (mmx_sminv2sf3): Likewise.
2856         (mmx_umaxv8qi3): Likewise.
2857         (mmx_smaxv4hi3): Likewise.
2858         (mmx_uminv8qi3): Likewise.
2859         (mmx_sminv4hi3): Likewise.
2860
2861         * config/i386/sse.md (<addsub><mode>3): New.
2862         (*<addsub><mode>3): Likewise.
2863         (<sse>_vm<addsub><mode>3): Likewise.
2864         (<maxmin><mode>3): Likewise.
2865         (*<maxmin><mode>3_finite): Likewise.
2866         (*<maxmin><mode>3): Likewise.
2867         (<sse>_vm<maxmin><mode>3): Likewise.
2868         (sse3_h<addsub>v4sf3): Likewise.
2869         (sse3_h<addsub>v2df3): Likewise.
2870         (<maxmin>v16qi3): Likewise.
2871         (*<maxmin>v16qi3): Likewise.
2872         (<maxmin>v8hi3): Likewise.
2873         (*<maxmin>v8hi3): Likewise.
2874         (*sse4_1_<maxmin><mode>3): Likewise.
2875         (*sse4_1_<maxmin><mode>3): Likewise.
2876         (add<mode>3): Removed.
2877         (*add<mode>3): Likewise.
2878         (<sse>_vmadd<mode>3): Likewise.
2879         (sub<mode>3): Likewise.
2880         (*sub<mode>3): Likewise.
2881         (<sse>_vmsub<mode>3): Likewise.
2882         (smin<mode>3): Likewise.
2883         (*smin<mode>3_finite): Likewise.
2884         (*smin<mode>3): Likewise.
2885         (<sse>_vmsmin<mode>3): Likewise.
2886         (smax<mode>3): Likewise.
2887         (*smax<mode>3_finite): Likewise.
2888         (*smax<mode>3): Likewise.
2889         (<sse>_vmsmax<mode>3): Likewise.
2890         (sse3_haddv4sf3): Likewise.
2891         (sse3_haddv2df3): Likewise.
2892         (sse3_hsubv4sf3): Likewise.
2893         (sse3_hsubv2df3): Likewise.
2894         (umaxv16qi3): Likewise.
2895         (*umaxv16qi3): Likewise.
2896         (smaxv8hi3): Likewise.
2897         (*smaxv8hi3): Likewise.
2898         (*sse4_1_smax<mode>3): Likewise.
2899         (*sse4_1_umax<mode>3): Likewise.
2900         (uminv16qi3): Likewise.
2901         (*uminv16qi3): Likewise.
2902         (sminv8hi3): Likewise.
2903         (*sminv8hi3): Likewise.
2904         (*sse4_1_smin<mode>3): Likewise.
2905         (*sse4_1_umin<mode>3): Likewise.
2906
2907 2008-04-01  Rafael Espindola  <espindola@google.com>
2908
2909         * tree-cfg.c (verify_expr): remove in_phi.
2910         (verify_stmt): Don't call walk_tree with verify_expr. Use
2911         is_gimple_min_invariant instead of is_gimple_val.
2912
2913 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
2914
2915         * doc/include/gpl_v3.texi: Update for manpage generation.
2916         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
2917         gpl.texi.
2918         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
2919         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
2920         gpl_v3.texi instead of gpl.texi.
2921         (gpl.pod): New.
2922
2923 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
2924
2925         PR pch/13675
2926         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
2927
2928 2008-04-01  Rafael Espindola  <espindola@google.com>
2929
2930         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
2931         (extract_code_and_val_from_cond): Use
2932         extract_code_and_val_from_cond_with_ops.
2933
2934 2008-04-01  Jan Hubicka  <jh@suse.cz>
2935
2936         * function.c (free_after_compilation): Free epilogue_delay_list.
2937         (prepare_function_start): Assert that previous compilation was freed.
2938
2939 2008-04-01  Jan Hubicka  <jh@suse.cz>
2940             Jim Wilson  <wilson@tuliptree.org>
2941             Andreas Tobler <andreast@gcc.gnu.org>
2942
2943         PR middle-end/35781
2944         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
2945         rtl.emit instead cfun->emit.
2946         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
2947         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
2948
2949 2008-04-01  Ben Elliston  <bje@au.ibm.com>
2950
2951         * doc/c-tree.texi (Function Basics): Fix grammatical error.
2952
2953 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
2954
2955         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
2956         New options
2957         (fprofile-use): Add var flag_profile_use
2958         * coverage.c (coverage_begin_output): Do not open a gcno file for
2959         output only if -ftest-coverage is set.
2960         Do not add getpwd() to gcda file path.
2961         (build_gcov_info): Check the new flag
2962         flag_profile_datafile_relative_path.
2963         (coverage_init): Use profile_data_prefix.
2964         Read profile counter only if flag_profile_use is set.
2965         * opts.c (common_handle_option): New option fprofile-use=,
2966         fprofile-dir=, fprofile-generate=.
2967         * toplev.c (profile_data_prefix): New variable definition.
2968         * toplev.h (profile_data_prefix): New declaration.
2969         * doc/invoke.tex (Option Summary, Optimization Options):
2970         Add new options.
2971
2972 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
2973
2974         * varasm.c (output_constant_pool_1): In LABEL_REF check,
2975         use tmp consistently.
2976
2977         PR target/35695
2978         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
2979         * config/ia64/ia64.c (rtx_needs_barrier): Handle
2980         UNSPEC_FR_RECIP_APPROX_RES.
2981         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
2982
2983 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
2984
2985         PR c/35750
2986         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
2987
2988 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2989
2990         PR middle-end/30186
2991         * fold-const.c (fold_indirect_ref_1): Support accessing non first
2992         element of the vector via a pointer.
2993
2994 2008-03-31  Ian Lance Taylor  <iant@google.com>
2995
2996         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
2997
2998 2008-03-31  Jan Hubicka  <jh@suse.cz>
2999
3000         * builtins.c (expand_builtin_setjmp_receiver): Update call of
3001         get_arg_pointer_save_area.
3002         * expr.c (init_expr): Just clear out rtl.expr.
3003         * function.c (free_after_compilation): Clear out whole RTL structure.
3004         (get_func_frame_size): Merge into ...
3005         (get_frame_size): ... this one.
3006         (assign_stack_local_1): Merge into ...
3007         (assign_stack_local): ... this one.
3008         (expand_function_end): Update call of get_arg_pointer_save_area.
3009         (get_art_pointer_save_area): Remove cfun argument.
3010         * function.h (emit_status): regno_pointer_align does not need length
3011         attribute. Move x_regno_reg_rtx to ...
3012         (regno_reg_rtx): ... new global array.
3013         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
3014         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
3015         apply_args_value, forced_labels, stack_pointer_delta):
3016         Update accestors.
3017         (struct varasm_status): Move here from varasm.c
3018         (struct rtl_data): New. Move here some fields from struct function.
3019         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
3020         frame_offset, stack_check_probe_note, arg_pointer_save_area,
3021         used_temp_slots avail_temp_slots, temp_slot_level,
3022         nonlocal_goto_handler_labels): Update accesstors.
3023         (rtl): New global variable.
3024         (struct function): Move some fileds to rtl_data.
3025         (get_arg_pointer_save_area): Update prototype.
3026         * emit-rtl.c (rtl): Declare.
3027         (regno_reg_rtx): Declare.
3028         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
3029         Update.
3030         (gen_reg_rtx): Update.
3031         (init_virtual_regs): Do not tate emit_status argument.
3032         (init_emit): Do not allocate emit.
3033         * varasm.c (varasm_statuc): Move to function.h.
3034         (n_deferred_constatns): Update accestor.
3035         (init_varasm_status): Do not allocate varasm_status.
3036         (force_const_mem, get_pool_size, output_constant_pool): Update.
3037         * stmt.c (force_label_rtx): Do not use x_ prefixes.
3038         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
3039
3040 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
3041
3042         PR rtl-optimization/35729
3043         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
3044         references.
3045
3046 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
3047
3048         PR target/32000
3049         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
3050         load/store if memory is unaligned.
3051         (*movti_rex64): Likewise.
3052
3053         * config/i386/predicates.md (misaligned_operand): New.
3054
3055 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
3056
3057         PR tree-opt/35431
3058         * tree-ssa-phiopt.c (conditional_replacement): Return early for
3059         complex types.
3060
3061 2008-03-31  Jan Beulich  <jbeulich@novell.com>
3062
3063         * config/ia64/constraints.md: Add 'j' constraint.
3064         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
3065         (movdi_internal): Likewise.
3066
3067 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
3068
3069         PR c/35748
3070         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
3071
3072 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
3073
3074         PR target/35757
3075         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
3076         proper error message for the third argument on blendpd and
3077         blendps.
3078
3079         * config/i386/sse.md (blendbits): New.
3080         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
3081
3082 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
3083
3084         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
3085
3086 2008-03-30  Richard Guenther  <rguenther@suse.de>
3087
3088         PR middle-end/31023
3089         * fold-const.c (fold_sign_changed_comparison): Do leave
3090         conversions to base-types alone.
3091
3092 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3093
3094         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
3095         the link register if one altivec register is be saved.
3096
3097 2008-03-30  Ben Elliston  <bje@au.ibm.com>
3098
3099         * final.c (final_scan_insn): Remove if (0) code.
3100
3101 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
3102
3103         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
3104
3105 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
3106
3107         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
3108         of V4SFmode to ix86_binary_operator_ok.
3109
3110 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
3111
3112         * config/i386/i386.c (override_options): Initialize
3113         ix86_veclib_handler to ix86_veclibabi_svml when
3114         -mveclibabi=svml is used.
3115         (ix86_veclibabi_svml): New function for SVML ABI style
3116         vectorization support.
3117         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
3118
3119 2008-03-28  Rafael Espindola  <espindola@google.com>
3120
3121         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
3122         (tree_binary_nonnegative_warnv_p): Make it public.
3123         (tree_single_nonnegative_warnv_p): Make it public.
3124         (tree_invalid_nonnegative_warnv_p): Make it public.
3125         (tree_unary_nonzero_warnv_p): Make it public.
3126         (tree_binary_nonzero_warnv_p): Make it public
3127         (tree_single_nonzero_warnv_p): Make it public.
3128         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
3129         (extract_range_from_binary_expr): Split the expr argument.
3130         (extract_range_from_unary_expr): Split the expr argument.
3131         (extract_range_from_comparison): Split the expr argument.
3132         (extract_range_from_expr): Use the new aux functions.
3133         (vrp_evaluate_conditional_warnv): Use
3134         vrp_evaluate_conditional_warnv_with_ops.
3135         * tree.h (tree_unary_nonzero_warnv_p): Declare.
3136         (tree_binary_nonzero_warnv_p): Declare.
3137         (tree_single_nonzero_warnv_p): Declare.
3138         (tree_expr_nonzero_warnv_p): Declare.
3139         (tree_unary_nonnegative_warnv_p): Declare.
3140         (tree_binary_nonnegative_warnv_p): Declare.
3141         (tree_single_nonnegative_warnv_p): Declare.
3142         (tree_invalid_nonnegative_warnv_p): Declare.
3143
3144 2008-03-28  Richard Guenther  <rguenther@suse.de>
3145
3146         PR tree-optimization/30317
3147         PR tree-optimization/30911
3148         PR tree-optimization/34793
3149         * tree-vrp.c (set_and_canonicalize_value_range): New function.
3150         (struct assert_locus_d): New member EXPR.
3151         (register_new_assert_for): Add EXPR parameter to support
3152         ASSERT_EXPR <name, expr OP limit>.
3153         (register_edge_assert_for_1): Adjust callers.
3154         (find_assert_locations): Likewise.
3155         (process_assert_insertions_for): Build condition from expression.
3156         (extract_range_from_assert): Handle ASSERT_EXPRs
3157         of the form ASSERT_EXPR <name, expr OP limit>.
3158         (register_edge_assert_for_2): New helper registering
3159         asserts for comparisons.  Recognize range tests of the form
3160         (unsigned)i - CST1 OP CST2.
3161         (register_edge_assert_for_1): Use it.
3162         (register_edge_assert_for): Likewise.
3163         (needs_overflow_infinity): Integer sub-types
3164         do not need overflow infinities.
3165         (vrp_val_is_max): The extreme values of integer sub-types
3166         are those of the base type.
3167         (vrp_val_is_min): Likewise.
3168         * tree.def (ASSERT_EXPR): Document extra allowed conditional
3169         expressions.
3170
3171 2008-03-28  Nick Clifton  <nickc@redhat.com>
3172
3173         PR target/31110
3174         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
3175         Return GENERAL_REGS for stack adjustment reloads.
3176
3177 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3178
3179         PR target/31334
3180         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
3181         const_vector when all the vectors are constant.
3182
3183 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
3184
3185         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
3186         comparisons.
3187         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
3188         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
3189         (scc_sf): New.
3190         (s<code>_sf): Use new scc_sf attribute for opcode names.
3191
3192 2008-03-27  Tom Tromey  <tromey@redhat.com>
3193
3194         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
3195         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
3196         config/spu/t-spu-elf, config/i386/t-interix,
3197         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
3198         config/i386/x-darwin, config/i386/x-mingw32,
3199         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
3200         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
3201         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
3202         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
3203         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
3204         config/rs6000/x-darwin, config/rs6000/t-rs6000,
3205         config/score/t-score-elf, config/arm/t-strongarm-pe,
3206         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
3207         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
3208         Revert automatic dependency patch.
3209
3210 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3211
3212         PR target/35657
3213         * config/i386/i386.c (ix86_function_arg_boundary): Align
3214         decimal floating point to its natural boundary.
3215
3216 2008-03-27  Richard Guenther  <rguenther@suse.de>
3217
3218         PR middle-end/35716
3219         * fold-const.c (fold_comparison): Restrict distinct decl
3220         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
3221         solely rely on operand_equal_p.
3222
3223 2008-03-27  Richard Guenther  <rguenther@suse.de>
3224
3225         PR c/32511
3226         * c-common.c (handle_weak_attribute): Reject combination of
3227         weak and inline.
3228
3229 2008-03-27  Richard Guenther  <rguenther@suse.de>
3230
3231         PR tree-optimization/32810
3232         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
3233         conversions from DECL_INITIAL.
3234         (fold_const_aggregate_ref): Likewise from constructor elements.
3235
3236 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
3237
3238         * tree-affine.h (aff_combination_expand): Declare.
3239         (get_inner_reference_aff): Likewise.
3240         * tree-affine.c (aff_combination_expand): Split out from
3241         tree_to_aff_combination_expand.
3242         (get_inner_reference_aff): New function.
3243         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
3244         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
3245         (struct lim_aux_data): sm_done field removed.
3246         (mem_ref_loc_p, mem_ref_locs_p): New types.
3247         (struct mem_ref): Added id, stored, accesses_in_loop,
3248         indep_loop, dep_loop, indep_ref, dep_ref fields.
3249         Removed is_stored, locs and next fields.
3250         (memory_accesses): New variable.
3251         (movement_possibility): Do not allow moving statements
3252         that store to memory.
3253         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
3254         New functions.
3255         (determine_max_movement): For statements with memory references,
3256         find the outermost loop in that the reference is independent.
3257         (move_computations_stmt): Mark the virtual operands for renaming.
3258         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
3259         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
3260         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
3261         add_vop_ref_mapping, create_vop_ref_mapping_loop,
3262         create_vop_ref_mapping, analyze_memory_references,
3263         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
3264         get_all_locs_in_loop, ref_always_accessed_p,
3265         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
3266         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
3267         store_motion_loop, store_motion): New functions.
3268         (struct vop_to_refs_elt): New type.
3269         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
3270         memref_hash, memref_eq, hoist_memory_references): Rewritten.
3271         (schedule_sm): Replaced by...
3272         (execute_sm): ... this.
3273         (determine_lsm_ref, hoist_memory_references,
3274         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
3275         find_more_ref_vops, free_mem_ref, free_mem_refs,
3276         determine_lsm_loop, determine_lsm): Removed.
3277         (tree_ssa_lim_finalize): Free data structures used by store motion.
3278         (tree_ssa_lim): Call analyze_memory_references.  Use
3279         store_motion instead of determine_lsm.
3280
3281 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
3282
3283         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
3284         rename tmake_file to m68hc11/t-m68hc11.
3285         (mcore): Set inhibit_libc to true.
3286         * config.host (alpha*-dec-*vms*): Set extra_programs.
3287         (interix3*): Don't use host_xmake_file.
3288         * configure.ac: Let config.gcc override inhibit_libc.
3289         * configure: Regenerate.
3290
3291         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
3292         * config/t-openbsd-thread: Remove commented out lines.
3293         
3294         * config/x-interix: Remove.
3295
3296         * config/m68hc11/t-m68hc11-gas: Rename to...
3297         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
3298
3299         * config/mcore/t-mcore: Remove T_CFLAGS.
3300         * config/mcore/t-mcore-pe: Likewise.
3301
3302 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
3303
3304         * configure.ac: Replace custom __GNU_SOURCE test with
3305         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
3306         * aclocal.m4: Regenerate.
3307         * configure: Regenerate.
3308         * config.in: Regenerate.
3309
3310 2008-03-27  Richard Guenther  <rguenther@suse.de>
3311
3312         * fold-const.c (target.h): Include.
3313         (fold_comparison): Fold comparison of addresses of decls
3314         that bind locally or of constants.  Consolidate address folding code.
3315         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
3316         results from fold_binary_to_constant.
3317         (compare_values_warnv): Likewise.
3318
3319 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
3320
3321         PR middle-end/35429
3322         * fold-const.c (fold_truthop): Check for integeral types when folding
3323         a == 0 && b == 0 and a != 0 || b != 0 .
3324
3325 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
3326
3327         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
3328
3329 2008-03-26  Andreas Schwab  <schwab@suse.de>
3330
3331         * doc/invoke.texi: Fix use of @item vs. @itemx.
3332
3333 2008-03-26  Tom Tromey  <tromey@redhat.com>
3334
3335         * Makefile.in (build/gensupport.o, build/print-rtl.o,
3336         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
3337         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
3338         build/gencodes.o, build/genconditions.o, build/genconfig.o,
3339         build/genconstants.o, build/genemit.o, build/genextract.o,
3340         build/genflags.o, build/genmddeps.o, build/genopinit.o,
3341         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
3342         options.h.
3343
3344 2008-03-26  Richard Guenther  <rguenther@suse.de>
3345
3346         Revert
3347         2008-03-26  Richard Guenther  <rguenther@suse.de>
3348
3349         * fold-const.c (target.h): Include.
3350         (fold_comparison): Fold comparison of addresses of two decls
3351         that bind locally.  Consolidate address folding code.
3352
3353 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3354
3355         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
3356         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
3357         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
3358         dconstsqrt2, dconstthird, dconste and/or dconst10.
3359         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
3360         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
3361         dconstsqrt2, dconste): Delete.
3362         (init_emit_once): Likewise.  Simplify initializing dconstm1.
3363         Constify variable.
3364         * real.c (get_real_const): New.
3365         * real.h (dconst3, dconst10, dconstm2, dconstthird,
3366         dconstsqrt2, dconste): Delete.
3367         (real_value_const, get_real_const): New.
3368
3369 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
3370
3371         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
3372
3373         * config/i386/i386.c (ix86_function_arg_boundary): Check
3374         BIGGEST_ALIGNMENT instead of 128.
3375         (setup_incoming_varargs_64): Likewise.
3376
3377 2008-03-26  Tom Tromey  <tromey@redhat.com>
3378
3379         * Makefile.in (DEPFILES): Add missing '/'.
3380
3381 2008-03-26  Richard Guenther  <rguenther@suse.de>
3382
3383         * fold-const.c (target.h): Include.
3384         (fold_comparison): Fold comparison of addresses of two decls
3385         that bind locally.  Consolidate address folding code.
3386
3387 2008-03-26  Nick Clifton  <nickc@redhat.com>
3388
3389         PR target/31232
3390         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
3391         not allow INT+INT as a legitimate addressing mode.
3392
3393 2008-03-26  Richard Guenther  <rguenther@suse.de>
3394
3395         * tree-flow.h (widen_bitfield): Remove declaration.
3396         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
3397         (widen_bitfield): Remove function.
3398         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
3399         code.
3400
3401 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3402
3403         PR target/31558
3404         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
3405         error_mark_node's.
3406
3407 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
3408
3409         PR rtl-optimization/35232
3410         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
3411         (forget_old_reloads_1, forget_marked_reloads): Don't clear
3412         reg_reloaded_call_part_clobbered here.
3413         (reload_regs_reach_end_p): New function.
3414         (reload_reg_rtx_for_input): New variable.
3415         (reload_reg_rtx_for_output): Likewise.
3416         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
3417         when reassigning a pseudo register.  Load reloadreg from 
3418         reload_reg_rtx_for_input, moving the mode and register
3419         calculation to...
3420         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
3421         instead of the original when deciding whether an input reload
3422         would be a no-op or whether an output reload can be deleted.
3423         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
3424         when setting up new_spill_reg_store.  Load it from
3425         reload_reg_rtx_for_output, moving the mode and register
3426         calculation to...
3427         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
3428         instead of the original when deciding whether an output reload
3429         would be a no-op.  Do the same when modifying insn notes.
3430         Use rtx_equal_p instead of == to compare the registers.
3431         (inherit_piecemeal_p): Take a mode and two register numbers
3432         as argument.
3433         (emit_reload_insns): Clear new_spill_reg_store for every hard
3434         register in the reload register.  Remove spill registers
3435         from reg_reloaded_valid before considering whether to record
3436         inheritance information for them.  Use reload_reg_rtx_for_output
3437         instead of reg_rtx when recording output reloads.  Use
3438         reload_reg_rtx_for_input instead of reg_rtx when recording
3439         input reloads.  Set or clear reg_reloaded_call_part_clobbered
3440         at the same time as setting reg_reloaded_valid.
3441         (delete_output_reload): Add a new_reload_reg parameter and use it
3442         instead of rld[j].reg_rtx.
3443         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
3444         calls accordingly.
3445
3446 2008-03-25  Tom Tromey  <tromey@redhat.com>
3447
3448         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
3449         (build/genattr.o): Likewise.
3450         (build/genattrtab.o): Likewise.
3451         (build/gencodes.o): Likewise.
3452         (build/genconfig.o): Likewise.
3453         (build/genconstants.o): Likewise.
3454         (build/genemit.o): Likewise.
3455         (build/genextract.o): Likewise.
3456         (build/genflags.o): Likewise.
3457
3458 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
3459         
3460         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
3461         instead of size_int for integer types.
3462         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
3463         to match type of MINUS_EXPR.
3464         
3465 2008-03-25  Tom Tromey  <tromey@redhat.com>
3466
3467         * configure: Rebuilt.
3468         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
3469         Makefile.
3470
3471 2008-03-25  Tom Tromey  <tromey@redhat.com>
3472
3473         * config/x-solaris (host-solaris.o): Update.
3474         * config/x-linux (host-linux.o): Update.
3475         * config/x-hpux (host-hpux.o): Update.
3476         * config/x-darwin (host-darwin.o): Update.
3477         * config/v850/t-v850e (v850-c.o): Update.
3478         * config/v850/t-v850 (v850-c.o): Update.
3479         * config/t-vxworks (vxworks.o): Update.
3480         * config/t-sol2 (sol2-c.o, sol2.o): Update.
3481         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
3482         * config/spu/t-spu-elf (spu-c.o): Update.
3483         (spu.o): Remove.
3484         * config/sh/t-symbian (sh-c.o): Update.
3485         (symbian.o): Update.
3486         * config/sh/t-sh (sh-c.o): Update.
3487         * config/score/t-score-elf (score7.o, score3.o): Update.
3488         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
3489         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
3490         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
3491         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
3492         (rs6000.o): Remove.
3493         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
3494         * config/m32c/t-m32c (m32c-pragma.o): Update.
3495         * config/ia64/t-ia64 (ia64-c.o): Update.
3496         * config/i386/x-mingw32 (host-mingw32.o): Update.
3497         * config/i386/x-i386 (driver-i386.o): Update.
3498         * config/i386/x-darwin (host-i386-darwin.o): Update.
3499         * config/i386/x-cygwin (host-cygwin.o): Update.
3500         * config/i386/t-nwld (nwld.o): Update.
3501         * config/i386/t-netware (netware.o): Update.
3502         * config/i386/t-interix (winnt.o): Update.
3503         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
3504         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
3505         msformat-c.o): Update.
3506         * config/bfin/t-bfin-linux (generated_files): Add
3507         linux-sysroot-suffix.h.
3508         * config/arm/t-wince-pe (pe.o): Update.
3509         * config/arm/t-strongarm-pe (pe.o): Update.
3510         * config/arm/t-pe (pe.o): Update.
3511         * config/arm/t-arm (arm-c.o): Update.
3512         * doc/install.texi (Prerequisites): Require make 3.80.
3513         * Makefile.in: Remove .o targets.
3514         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
3515         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
3516         (simple_generated_h, simple_generated_c): Move earlier.
3517         (generated_files): New variable.
3518         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
3519         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
3520         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
3521         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
3522         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
3523         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
3524         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
3525         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
3526         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
3527         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
3528         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
3529         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
3530         (.c.o): Remove.
3531         (COMPILE.base, COMPILE): New variables.
3532         (%.o): New pattern rule.
3533         (ALL_HOST_OBJS): New variable.
3534         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
3535         (dummy-checksum.o, cc1-checksum.o): Remove.
3536         (DRIVER_SHLIB): New variable.
3537         (DRIVER_DEFINES): Use it.
3538         (gencondmd.c): Move out of build/.
3539         (s-conditions): Update.
3540         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
3541         (ALL_BUILD_OBJS): Likewise.
3542         (build/%.o): Use BUILDCOMPILE.
3543         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
3544         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
3545         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
3546         build/gencheck.o, build/gencodes.o, build/genconditions.o,
3547         build/genconfig.o, build/genconstants.o, build/genemit.o,
3548         build/genextract.o, build/genflags.o, build/genmddeps.o,
3549         build/genopinit.o, build/genoutput.o, build/genpeep.o,
3550         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
3551         build/gen-protos.o, build/scan.o, build/fix-header.o,
3552         build/scan-decls.o): Simplify.
3553         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
3554         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
3555         prefix.o, toplev.o): Reduce to variable setting.
3556         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
3557         ($(out_object_file), gcc-options.o): New targets.
3558         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
3559         * configure: Rebuilt.
3560         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
3561         * doc/sourcebuild.texi (Front End Directory): Document new variable.
3562
3563 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
3564
3565         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
3566         complain when we hit an error, return ERROR_MARK_NODE.
3567
3568 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
3569
3570         * config/sh/constraints.md (Pso, Psz): New constraints.
3571         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
3572         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
3573
3574 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
3575
3576         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
3577         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
3578
3579 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
3580
3581         * config/sh/sh.md (prefetch): Add condition for SH2A target.
3582         (prefetch_sh2a): New.   
3583
3584 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
3585             Naveen.H.S  <naveen.hs@kpitcummins.com>
3586
3587         * config/sh/constraints.md (I28): New constraint.
3588         * config/sh/sh.c (broken_move): Add support for movi20s.
3589         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
3590
3591 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
3592             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
3593             Naveen.H.S  <naveen.hs@kpitcummins.com>
3594
3595         * config/sh/sh.c (SH_ATTRIBUTES): Define.
3596         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
3597         (print_operand): Handle resbank in %@ operand code.
3598         (sh_encode_section_info): New.
3599         (push_regs): Add conditions for resbank.
3600         (sh_expand_epilogue): Likewise.
3601         (sh_insert_attributes): Likewise.
3602         (sh_attribute_table): Likewise.
3603         (sh_handle_resbank_handler_attribute): New.
3604         (sh2a_handle_function_vector_handler_attribute): New.
3605         (sh2a_is_function_vector_call): New.
3606         (sh2a_get_function_vector_number): New.
3607         (sh2a_function_vector_p): New.
3608         (sh_cfun_resbank_handler_p): New.
3609         * config/sh/sh.md (calli): Emit jsr/n if possible.
3610         (calli_tbr_rel): New.
3611         (calli_pcrel): Emit jsr/n if possible.
3612         (return_i): Emit rts/n if possible.
3613         (call_valuei_tbr_rel): New.
3614         (call_valuei_pcrel): Add condition for SH2A target.
3615         (call_value): Likewise.
3616         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
3617         (sh2a_get_function_vector_number): Likewise.
3618         (sh2a_is_function_vector_call): Likewise.
3619         * doc/extend.texi: Document TBR relative addressing of SH2A.
3620         (resbank): Add description for SH2A.
3621
3622 2008-03-24  Richard Guenther  <rguenther@suse.de>
3623
3624         PR c/22371
3625         * gimplify.c (gimplify_modify_expr): For frontend type-correct
3626         pointer assignments change conversions according to middle-end rules.
3627         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
3628         * configure.ac: Include type checking in yes.
3629         * configure: Regenerate.
3630
3631 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3632
3633         * diagnostic.c (diagnostic_count_diagnostic): Delete.
3634         (diagnostic_report_diagnostic): Update. Handle ICEs here.
3635         
3636 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
3637
3638         * gthr-vxworks.h (UNUSED): Define.
3639
3640 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
3641
3642         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
3643
3644 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
3645
3646         * doc/extend.texi (Function Attributes): Add missing comma in the
3647         example of the "alloc_size" attribute.
3648         
3649 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
3650
3651         Revert:
3652         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
3653
3654         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
3655         32bit host.
3656
3657         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
3658
3659         PR target/35496
3660         * stor-layout.c (update_alignment_for_field): Set minimum alignment
3661         of the underlying type of a MS bitfield layout to the natural
3662         alignment of the type.
3663
3664         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
3665
3666         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
3667         to their natural alignment to avoid store forwarding stalls.
3668
3669 2008-03-22  Richard Guenther  <rguenther@suse.de>
3670
3671         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
3672         For PHI nodes verify the address is invariant.
3673         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
3674         (get_symbol_constant_value): Use is_gimple_min_invariant.
3675         (maybe_fold_stmt_indirect): Likewise.
3676
3677 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
3678
3679         PR rtl-optimization/33927
3680         * Makefile.in (dse.o): Depend on $(TM_P_H).
3681         * expr.h (extract_low_bits): Declare.
3682         * expmed.c (extract_low_bits): New function.
3683         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
3684         * dse.c: Include tm_p.h.
3685         (find_shift_sequence): Remove the read_reg argument and return the
3686         read value.  Emit the instructions instead of returning them.
3687         Iterate on new_mode rather than calculating it each time.
3688         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
3689         source to NEW_MODE and extract_low_bits to convert the shifted
3690         value to READ_MODE.
3691         (replace_read): Allow the load and store to have different mode
3692         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
3693         or extraction instructions before trying the replacement.  Update
3694         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
3695
3696 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
3697
3698         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
3699         to their natural alignment to avoid store forwarding stalls.
3700
3701 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3702
3703         PR target/27946
3704         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
3705         encouraging but not allowing gprs for input;
3706         change the input constraint to !f#r.
3707         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
3708         gprs for output;
3709         change the output constraint to !f#r.
3710
3711 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
3712
3713         PR target/13958
3714         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
3715         corresponding post-reload splitters.
3716         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
3717         when x87 FP math is selected.
3718         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
3719         New function prototype.
3720         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
3721         unreachable function to ease macroization of insn patterns.
3722
3723 2008-03-21  Martin Jambor  <mjambor@suse.cz>
3724
3725         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
3726         reference dumps if ddr is NULL or dependence is unknown.
3727
3728 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
3729
3730         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
3731         unsigned extension into account.
3732         (ATOMIC_COMPARE_AND_SWAP): Likewise.
3733         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
3734         Do computations on a scratch register.
3735
3736 2008-03-21  Richard Guenther  <rguenther@suse.de>
3737
3738         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
3739         Use is_gimple_min_invariant instead of TREE_INVARIANT.
3740         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
3741         * tree-ssa-dom.c (record_equality): Likewise.
3742         * tree-inline.c (copy_body_r): Likewise.
3743         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
3744         TREE_INVARIANT.
3745
3746 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
3747
3748         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
3749         as 'delete_unused' argument.
3750
3751 2008-03-20  Richard Guenther  <rguenther@suse.de>
3752
3753         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
3754         special casing of constant qualifiers.
3755         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
3756         care about them in general.
3757         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
3758         regardless of their type.
3759         (fold_stmt_r): Forcefully fold *& if we end up with that.
3760
3761 2008-03-20  Paul Brook  <paul@codesourcery.com>
3762
3763         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
3764         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
3765         linker flags.
3766         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
3767         definition.
3768         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
3769         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
3770
3771 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
3772
3773         * common.opt (Wmudflap): New option.
3774         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
3775         (mx_register_decls): Likewise.
3776         (mudflap_finish_file): Likewise.
3777         * doc/invoke.texi: Document -Wno-mudflap.
3778
3779 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
3780
3781         * c-format.c (replace_format_name_to_system_name): New.
3782         (cmp_attribs): New.
3783         (convert_format_name_to_system_name): New.
3784         (decode_format_attr): Add use of convert_format_name_to_system_name.
3785         (format_types_orig): Add gnu_ prefix to names.
3786         (check_format_info_main): Special treating of \0 escaped names for
3787         supporting multi-character format specifiers as I32, I64.
3788         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
3789         (gnu_target_overrides_format_attributes): New.
3790         * c-format.h: Add structure target_ovr_attr to hold
3791         system specific formatter names.
3792         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
3793         msformat-c.o file to c_target_objs and cxx_target_objs.
3794         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
3795         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
3796         (TARGET_N_FORMAT_TYPES): New.
3797         * config/i386/msformat-c.c: New.
3798         * config/i386/t-cygming: Add build rule for msformat-c.o.
3799         * doc/extend.texi: Add new format names gnu_* and ms_* and
3800         further details.
3801         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
3802
3803 2008-03-20  Ira Rosen  <irar@il.ibm.com>
3804
3805         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
3806         optimizations turned on under -O3.
3807         (ftree-vectorize): Add that the flag is turned on with -O3.
3808
3809 2008-03-20  Ben Elliston  <bje@au.ibm.com>
3810
3811         * regmove.c (try_auto_increment): Fix spelling error in comment.
3812         * final.c (final_scan_insn): Likewise.
3813
3814 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
3815
3816         PR target/14552
3817         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
3818         allocator preferences for "y" and "r" class registers.
3819         ("*mov<mode>_internal"): Ditto.
3820         ("*movv2sf_internal_rex64"): Ditto.
3821         ("*movv2sf_internal"): Ditto.
3822
3823 2008-03-19  Michael Matz  <matz@suse.de>
3824
3825         PR middle-end/35616
3826         * calls.c (expand_call): Check overlap of arguments with call
3827         address for sibcalls.
3828
3829 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
3830
3831         PR target/35496
3832         * stor-layout.c (update_alignment_for_field): Set minimum alignment
3833         of the underlying type of a MS bitfield layout to the natural
3834         alignment of the type.
3835
3836 2008-03-19  Jan Hubicka  <jh@suse.cz>
3837
3838         PR other/35094
3839         * toplev.c (decode_d_option): Handle all CPP flags.
3840         * tree-vrp.c: Update tree_pass descriptors.
3841         * regrename.c: Update tree_pass descriptors.
3842         * fwprop.c: Update tree_pass descriptors.
3843         * doc/invoke.texi: Remove documentation of dropped -d? flags.
3844         * tree-into-ssa.c: Update tree_pass descriptors.
3845         * tree-dump.c: Update tree_pass descriptors.
3846         * tree-complex.c: Update tree_pass descriptors.
3847         * tree-dump.h: Update tree_pass descriptors.
3848         * see.c: Update tree_pass descriptors.
3849         * cgraphbuild.c: Update tree_pass descriptors.
3850         * tracer.c: Update tree_pass descriptors.
3851         * tree-loop-distribution.c: Update tree_pass descriptors.
3852         * cgraph.c: Update tree_pass descriptors.
3853         * postreload-gcse.c: Update tree_pass descriptors.
3854         * postreload.c: Update tree_pass descriptors.
3855         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
3856         * tree-tailcall.c: Update tree_pass descriptors.
3857         * tree-pass.h (tree_opt_pass): Rename to ...
3858         (opt_pass) ... this one; add "type" field and remove letter field.
3859         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
3860         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
3861         all_lowering_passes): Update declaration.
3862         * ipa-cp.c: Update tree_pass descriptors.
3863         * final.c: Update tree_pass descriptors.
3864         * omp-low.c: Update tree_pass descriptors.
3865         * tree-ssa-dse.c: Update tree_pass descriptors.
3866         * ipa-reference.c: Update tree_pass descriptors.
3867         * tree-ssa-uncprop.c: Update tree_pass descriptors.
3868         * auto-inc-dec.c: Update tree_pass descriptors.
3869         * reorg.c: Update tree_pass descriptors.
3870         * cgraphunit.c: Update tree_pass descriptors.
3871         * tree-ssa-copyrename.c: Update tree_pass descriptors.
3872         * tree-ssa-ccp.c: Update tree_pass descriptors.
3873         * df-core.c: Update tree_pass descriptors.
3874         * mode-switching.c: Update tree_pass descriptors.
3875         * tree-nomudflap.c: Update tree_pass descriptors.
3876         * modulo-sched.c: Update tree_pass descriptors.
3877         * ipa-pure-const.c: Update tree_pass descriptors.
3878         * cse.c: Update tree_pass descriptors.
3879         * web.c: Update tree_pass descriptors.
3880         * tree-stdarg.c: Update tree_pass descriptors.
3881         * tree-ssa-math-opts.c: Update tree_pass descriptors.
3882         * tree-ssa-dom.c: Update tree_pass descriptors.
3883         * tree-nrv.c: Update tree_pass descriptors.
3884         * tree-ssa-alias.c: Update tree_pass descriptors.
3885         * loop-init.c: Update tree_pass descriptors.
3886         * gimple-low.c: Update tree_pass descriptors.
3887         * ipa-inline.c: Update tree_pass descriptors.
3888         * tree-ssa-sink.c: Update tree_pass descriptors.
3889         * global.c: Update tree_pass descriptors.
3890         * ifcvt.c: Update tree_pass descriptors.
3891         * jump.c: Update tree_pass descriptors.
3892         * predict.c: Update tree_pass descriptors.
3893         * tree-ssa-loop.c: Update tree_pass descriptors.
3894         * recog.c: Update tree_pass descriptors.
3895         * dse.c: Update tree_pass descriptors.
3896         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
3897         * tree-eh.c: Update tree_pass descriptors.
3898         * regmove.c: Update tree_pass descriptors.
3899         * local-alloc.c
3900         * function.c: Update tree_pass descriptors.
3901         * tree-vectorizer.c: Update tree_pass descriptors.
3902         * gcse.c: Update tree_pass descriptors.
3903         * ipa-type-escape.c: Update tree_pass descriptors.
3904         * tree-if-conv.c: Update tree_pass descriptors.
3905         * init-regs.c: Update tree_pass descriptors.
3906         * ipa.c: Update tree_pass descriptors.
3907         * tree-ssa-phiopt.c: Update tree_pass descriptors.
3908         * rtl-factoring.c: Update tree_pass descriptors.
3909         * lower-subreg.c: Update tree_pass descriptors.
3910         * bt-load.c: Update tree_pass descriptors.
3911         * tree-dfa.c: Update tree_pass descriptors.
3912         * except.c: Update tree_pass descriptors.
3913         * emit-rtl.c: Update tree_pass descriptors.
3914         * cfgexpand.c: Update tree_pass descriptors.
3915         * tree-cfgcleanup.c: Update tree_pass descriptors.
3916         * cfgcleanup.c: Update tree_pass descriptors.
3917         * tree-ssa-pre.c: Update tree_pass descriptors.
3918         * tree-sra.c: Update tree_pass descriptors.
3919         * tree-mudflap.c: Update tree_pass descriptors.
3920         * tree-ssa-copy.c: Update tree_pass descriptors.
3921         * cfglayout.c: Update tree_pass descriptors.
3922         * tree-ssa-forwprop.c: Update tree_pass descriptors.
3923         * tree-ssa-dce.c: Update tree_pass descriptors.
3924         * tree-ssa.c: Update tree_pass descriptors.
3925         * regclass.c: Update tree_pass descriptors.
3926         * integrate.c: Update tree_pass descriptors.
3927         * tree-optimize.c: Update tree_pass descriptors.
3928         * tree-ssa-phiprop.c: Update tree_pass descriptors.
3929         * tree-object-size.c: Update tree_pass descriptors.
3930         * combine.c: Update tree_pass descriptors.
3931         * tree-outof-ssa.c: Update tree_pass descriptors.
3932         * bb-reorder.c: Update tree_pass descriptors.
3933         * stack-ptr-mod.c: Update tree_pass descriptors.
3934         * var-tracking.c: Update tree_pass descriptors.
3935         * tree-profile.c: Update tree_pass descriptors.
3936         * tree-vect-generic.c: Update tree_pass descriptors.
3937         * reg-stack.c: Update tree_pass descriptors.
3938         * sched-rgn.c: Update tree_pass descriptors.
3939         * tree-ssa-structalias.c: Update tree_pass descriptors.
3940         * tree-cfg.c: Update tree_pass descriptors.
3941         * passes.c (current_pass): Update declaration.
3942         (finish_optimization_passes): Update.
3943         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
3944         (register_one_dump_file, register_dump_files_1, next_pass_1):
3945         Update arguments.
3946         (init_optimization_passes): Update handling of new types.
3947         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
3948         * ipa-struct-reorg.c: Update tree_pass descriptors.
3949         * tree-ssa-reassoc.c: Update tree_pass descriptors.
3950         * combine-stack-adj.c: Update tree_pass descriptors.
3951         * cfgrtl.c: Update tree_pass descriptors.
3952         * dce.c: Update tree_pass descriptors.
3953         * tree-ssanames.c: Update tree_pass descriptors.
3954
3955 2008-03-19  Richard Guenther  <rguenther@suse.de>
3956
3957         PR middle-end/35609
3958         * tree-ssa.c (walk_data): New structure.
3959         (warn_uninitialized_var): If not always_executed warn with "maybe"
3960         instead of "is".
3961         (execute_early_warn_uninitialized): Compute post-dominators.
3962         Initialize always_executed before processing each basic block.
3963
3964 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
3965
3966         PR target/35504
3967         * config/i386/i386.c (x86_this_parameter): Calculate correct location
3968         of "this" pointer when "regparm = N" or "fastcall" is in effect.
3969
3970 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3971
3972         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
3973
3974 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
3975
3976         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
3977         is true.
3978         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
3979         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
3980         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
3981         target after ignore has been set, and move there also the commputation
3982         of subtarget and original_target.
3983         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
3984         (LANG_HOOKS_INITIALIZER): Remove it.
3985         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
3986
3987 2008-03-18  Richard Guenther  <rguenther@suse.de>
3988
3989         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
3990         found an expression with constants, note that in the VN for the lhs.
3991         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
3992         fold them to constants if possible.  Run cleanup_cfg if done so.
3993         (execute_pre): Return todo.
3994         (do_pre): Likewise.
3995         (execute_fre): Likewise.
3996         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
3997         of constants.
3998         (get_prop_source_stmt): Look through pointer conversions.
3999
4000 2008-03-18  Jan Hubicka  <jh@suse.cz>
4001
4002         * tree-pretty-print.c: Include predict.h.
4003         (dump_generic_node): Dump predictor.
4004         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
4005         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
4006         * gimple-low.c (lower_stmt): Likewise.
4007         * expr.c (expand_expr_real): Likewise.
4008         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
4009         them.
4010         (build_predict_expr, build_predict_expr): New.
4011         * predict.h (predictor_name, build_predict_expr): Update.
4012         * c-typeck.c (c_finish_bc_stmt): Add prediction.
4013         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
4014         * predict.def (PRED_CONTINUE): Update hitrate.
4015         * tree.def (PREDICT_EXPR): Define.
4016         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
4017         do not handle BIND_EXPR.
4018         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
4019         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
4020         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
4021         operands.
4022
4023 2008-03-18  Michael Matz  <matz@suse.de>
4024
4025         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
4026
4027 2008-03-18  Richard Guenther  <rguenther@suse.de>
4028
4029         * tree-gimple.h (is_gimple_invariant_address): Declare.
4030         (is_gimple_constant): Likewise.
4031         * tree-gimple.c (is_gimple_constant): New function.
4032         (is_gimple_invariant_address): Likewise.
4033         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
4034         and is_gimple_invariant_address.
4035         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
4036         previous change.
4037         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
4038         an addressable base.
4039
4040 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
4041
4042         PR middle-end/35611
4043         * gimplify.c (gimplify_expr): Gimplify second operand of
4044         OMP_ATOMIC_LOAD.
4045
4046 2008-03-17  Richard Guenther  <rguenther@suse.de>
4047
4048         PR tree-optimization/19637
4049         * fold-const.c (fold_unary): Remove restrictions of removing
4050         intermediate pointer-conversions (P2)(P1)P0.
4051         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
4052         conversion to void pointer.
4053         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
4054
4055 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
4056
4057         PR debug/31510
4058         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
4059         emulated thread local variables.
4060
4061 2008-03-16  Richard Guenther  <rguenther@suse.de>
4062
4063         PR middle-end/35607
4064         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
4065         expand TREE_INVARIANT operations that are not gimple invariant.
4066
4067 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
4068
4069         * doc/extend.texi (Alignment): Say that the ABI controls
4070         the __alignof__ for non-strict-alignment targets rather
4071         than being a recommendation.
4072
4073 2008-03-15  Paul Brook  <paul@codesourcery.com>
4074
4075         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
4076         annotations.
4077         (arm_output_fn_unwind): Mark functions that can not be unwound.
4078
4079 2008-03-15  Paul Brook  <paul@codesourcery.com>
4080
4081         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
4082         extension instructions.
4083
4084 2008-03-15  Richard Guenther  <rguenther@suse.de>
4085
4086         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
4087         and fold constant aggregate refs.
4088         (fold_const_aggregate_ref): Handle string constants
4089         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
4090         (evaluate_stmt): Simplify now that ccp_fold folds constant
4091         aggregate refs.
4092
4093 2008-03-15  Paul Brook  <paul@codesourcery.com>
4094
4095         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
4096         (extzv): Use gen_extzv_t2.
4097         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
4098
4099 2008-03-15  Richard Guenther  <rguenther@suse.de>
4100
4101         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
4102         (fold_const_aggregate_ref): Likewise.
4103         (get_value): Return NULL if we don't have any values.
4104         (ccp_finalize): Set const_val to NULL after freeing it.
4105         * tree-flow.h (get_symbol_constant_value): Declare.
4106         (fold_const_aggregate_ref): Likewise.
4107         * tree-ssa-sccvn.c (try_to_simplify): Use them.
4108
4109 2008-03-15  Richard Guenther  <rguenther@suse.de>
4110
4111         PR middle-end/35593
4112         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
4113         to not produce negative array indices if not allowed.  Add
4114         parameter to indicate that.
4115         (maybe_fold_offset_to_component_ref): Allow negative array
4116         indices only for the first member of a structure.
4117         (maybe_fold_offset_to_reference): Allow negative array indices.
4118         (maybe_fold_stmt_addition): Likewise.
4119
4120 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
4121             Anatoly Sokolov <aesok@post.ru>
4122
4123         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
4124         (avr_arch): Add ARCH_AVR6.
4125         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
4126         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
4127         instead of fixed value 2.
4128         (print_operand_address): Use gs() asm specifier instead of pm().
4129         (avr_assemble_integer): (Ditto.).
4130         (avr_output_addr_vec_elt): (Ditto.).
4131         (print_operand): Handle "!" code.
4132         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
4133         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
4134         (AVR_HAVE_EIJMP_EICALL): Define.
4135         (AVR_3_BYTE_PC): Redefine.
4136         (AVR_2_BYTE_PC): (Ditto.).
4137         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
4138         (LINK_SPEC): Add atmega2560 and atmega2561.
4139         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
4140         (crtm2561.o).
4141         * config/avr/avr.md (call_insn): Use eicall instead of icall 
4142         for 3 byte PC devices.
4143         (call_value_insn): (Ditto.).
4144         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
4145         (indirect_jump): Use only for for 2 byte PC devices.
4146         (*tablejump): (Ditto.).
4147         (*indirect_jump_avr6): Add insn.
4148         (*tablejump_rjmp): Don't use for 3 byte PC devices.
4149         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
4150         instead of ijmp for 3 byte PC devices.
4151         (__tablejump2__): (Ditto.).
4152         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
4153         (MULITLIB_DIRNAMES): (Ditto.). 
4154         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
4155
4156 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
4157
4158         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
4159         "sse2_umulsidi3".  Use V1DI mode for operand 0.
4160         ("mmx_psadbw"): Use V1DI mode for operand 0.
4161         * config/i386/i386-modes.def (V1SI): New vector mode.
4162         * config/i386/i386.c (struct builtin_description)
4163         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
4164         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
4165         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
4166         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
4167         v1di_ftype_v8qi_v8qi type.
4168         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
4169
4170         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
4171         __builtin_ia32_pmuludq]: Fix the mode of return value.
4172
4173 2008-03-15  Richard Guenther  <rguenther@suse.de>
4174
4175         PR middle-end/35595
4176         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
4177         being a PHI_NODE.
4178
4179 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
4180         
4181         * doc/invoke.texi (Option Summary, Xtensa Options): Document
4182         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
4183         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
4184         unless TARGET_SERIALIZE_VOLATILE is enabled.
4185         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
4186         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
4187         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
4188
4189 2008-03-14  Richard Guenther  <rguenther@suse.de>
4190
4191         PR tree-optimization/34172
4192         * tree-flow.h (refs_may_alias_p): Declare.
4193         (get_single_def_stmt): Likewise.
4194         (get_single_def_stmt_from_phi): Likewise.
4195         (get_single_def_stmt_with_phi): Likewise.
4196         * tree-dfa.c (refs_may_alias_p): New function.
4197         (get_single_def_stmt): Likewise.
4198         (get_single_def_stmt_from_phi): Likewise.
4199         (get_single_def_stmt_with_phi): Likewise.
4200         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
4201         (vn_reference_lookup_1): New helper function.
4202         (vn_reference_lookup): Walk the virtual use-def chain to
4203         continue searching for a match if the def does not alias the
4204         reference we are looking for.
4205
4206 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
4207
4208         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
4209         archive and Perzl.  Update The Written Word listing.
4210
4211 2008-03-14  Richard Guenther  <rguenther@suse.de>
4212
4213         PR tree-optimization/34043
4214         PR tree-optimization/33989
4215         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
4216         when doing FRE.
4217         (bitmap_find_leader): Use extra argument to verify dominance
4218         relationship inside a basic-block.
4219         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
4220         (find_leader_in_sets): Adjust.
4221         (create_component_ref_by_pieces): Take extra argument for
4222         dominance check, handle lookup failures.
4223         (find_or_generate_expression): Likewise.
4224         (create_expression_by_pieces): Likewise.
4225         (insert_into_preds_of_block): Adjust.
4226         (create_value_expr_from): If asked for, verify all operands
4227         are in the blocks AVAIL_OUT set.
4228         (make_values_for_stmt): Check for SSA_NAMEs that are life
4229         over an abnormal edge.
4230         (compute_avail): Remove such check.
4231         (do_SCCVN_insertion): New function.
4232         (eliminate): If we do not find a leader suitable for replacement
4233         insert a replacement expression from SCCVN if available.
4234         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
4235         (struct vn_ssa_aux): Add needs_insertion flag.
4236         * tree-ssa-sccvn.c (may_insert): New global flag.
4237         (copy_reference_ops_from_ref): Value-number union member access
4238         based on its size, not type and member if insertion is allowed.
4239         (visit_reference_op_load): For a weak match from union type
4240         punning lookup a view-converted value and insert a SSA_NAME
4241         for that value if that is not found.
4242         (visit_use): Make dumps shorter.  Do not disallow value numbering
4243         SSA_NAMEs that are life over an abnormal edge to constants.
4244         (free_scc_vn): Release inserted SSA_NAMEs.
4245         (run_scc_vn): New flag to specify whether insertion is allowed.
4246         Process SSA_NAMEs in forward order.
4247         * tree-ssa-loop-im.c (for_each_index): Handle invariant
4248         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
4249         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
4250         pointer type to/from integral types that do not change the
4251         precision to regular conversions.
4252
4253 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
4254
4255         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
4256         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
4257         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
4258         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
4259         input arguments and the mode of return value.  Built-in functions
4260         that operate on whole 64-bit MMX register now use V1DI mode.
4261
4262 2008-03-13  Alon Dayan  <alond@il.ibm.com>
4263             Olga Golovanevsky  <olga@il.ibm.com>
4264
4265         PR tree-optimization/35041
4266         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
4267         to locate the right position in a statement.
4268
4269 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
4270
4271         PR target/34000
4272         PR target/35553
4273         * config/i386/xmmintrin.h:  Change all static inline functions to
4274         extern inline and add __gnu_inline__ attribute.
4275         * config/i386/bmintrin.h: Ditto.
4276         * config/i386/smmintrin.h: Ditto.
4277         * config/i386/tmmintrin.h: Ditto.
4278         * config/i386/mmintrin-common.h: Ditto.
4279         * config/i386/ammintrin.h: Ditto.
4280         * config/i386/emmintrin.h: Ditto.
4281         * config/i386/pmmintrin.h: Ditto.
4282         * config/i386/mmintrin.h: Ditto.
4283         * config/i386/mm3dnow.h: Ditto.
4284
4285 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
4286
4287         PR middle-end/35185
4288         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
4289         (lower_omp_2): New function.
4290         (lower_omp_1, lower_omp): Rewritten.
4291
4292 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
4293
4294         PR 35054
4295         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
4296         with the phrase "Microsoft Windows compilers".
4297         (Push/Pop Macro Pragmas): New subsection. Document
4298         #pragma push_macro and pragma pop_macro.
4299
4300 2008-03-12  Paul Brook  <paul@codesourcery.com>
4301
4302         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
4303
4304 2008-03-12  Paul Brook  <paul@codesourcery.com>
4305
4306         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
4307         (thumb2_alusi3_short): Exclude PLUS and MINUS.
4308         (thumb2_addsi_shortim): Rename ...
4309         (thumb2_addsi_short): ... to this.  Allow register operands.
4310         (thumb2_subsi_short): New pattern.
4311         (thumb2_one_cmplsi2_short,
4312         thumb2_negsi2_short): New patterns and peepholes.
4313
4314 2008-03-12  Paul Brook  <paul@codesourcery.com>
4315
4316         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
4317
4318 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
4319
4320         * config/i386/i386.md (int_cond): New code iterator.
4321         (fp_cond): Ditto.
4322         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
4323         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
4324         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
4325         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
4326         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
4327         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
4328         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
4329         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
4330
4331 2008-03-12  Paul Brook  <paul@codesourcery.com>
4332
4333         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
4334         instead of {arm,thumb}_compute_save_reg_mask.
4335         (output_return_instruction): Ditto.
4336         (thumb_unexpanded_epilogue): Ditto.
4337         (thumb1_expand_prologue): Ditto.
4338         (thumb1_output_function_prologue): Ditto.
4339         (arm_set_return_address): Ditto.
4340         (thumb_set_return_address): Ditto.
4341         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
4342         regs to achieve stack alignment.
4343         (thumb1_compute_save_reg_mask): Fix compiler warning.
4344         (arm_output_epilogue): Use offsets->saved_regs_mask.
4345         Adjust stack pointer by poping call clobered registers.
4346         (arm_expand_prologue): Use offsets->saved_regs_mask.
4347         Adjust stack pointer by pushing extra registers.
4348         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
4349
4350 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
4351
4352         PR tree-opt/35422
4353         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
4354         conversion to the operands of a multiplication.
4355
4356 2008-03-12  Richard Guenther  <rguenther@suse.de>
4357
4358         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
4359         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
4360         * timevar.def (TV_TREE_PHIPROP): Add.
4361         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
4362         pass description.  Use TV_TREE_PHIPROP.
4363         * tree-ssa-forwprop.c: Remove phiprop code.
4364
4365 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
4366
4367         PR middle-end/35549
4368         * omp-low.c (maybe_lookup_decl): Constify first argument.
4369         (use_pointer_for_field): Change last argument from bool to
4370         omp_context *.  Disallow shared copy-in/out in nested
4371         parallel if decl is shared in outer parallel too.
4372         (build_outer_var_ref, scan_sharing_clauses,
4373         lower_rec_input_clauses, lower_copyprivate_clauses,
4374         lower_send_clauses, lower_send_shared_vars): Adjust callers.
4375
4376 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
4377             Ira Rosen  <irar@il.ibm.com>
4378
4379         * tree-vectorizer.c (free_stmt_vec_info): New function.
4380         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
4381         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
4382         * tree-vectorizer.h (free_stmt_vec_info): Declare.
4383         * tree-vect-transform.c (vectorizable_conversion): Free
4384         vec_oprnds0 if it was allocated.
4385         (vect_permute_store_chain): Remove unused VECs.
4386         (vectorizable_store): Free VECs that are allocated in the..
4387         function.
4388         (vect_transform_strided_load, vectorizable_load): Likewise.
4389         (vect_remove_stores): Simplify the code.
4390         (vect_transform_loop): Move code to vect_remove_stores().
4391         Call vect_remove_stores() and free_stmt_vec_info().
4392
4393 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4394
4395         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
4396         TARGET_HPUX.  Revise comment.
4397         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
4398         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
4399         Use sr4 variant of `be' instruction when not generating PIC code.
4400         (attr_length_call): Adjust for above change.
4401
4402 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4403
4404         * ipa-reference.c (static_execute): Remove module_statics_const and
4405         associated setting code.
4406
4407 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
4408
4409         PR target/35540
4410         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
4411         predicate for operand 1.
4412         (paritysi2_cmp): Use register_operand predicate for operand 2.
4413         Use earlyclobber modifier for operand 1.  Remove support for
4414         memory operands.
4415         (paritydi2_cmp): Use register_operand predicate for operand 3.
4416         Use earlyclobber modifier for operand 1.  Remove support for
4417         memory operands.
4418
4419 2008-03-11  Paul Brook  <paul@codesourcery.com>
4420             Vladimir Prus  <vladimir@codesourcery.com>
4421
4422         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
4423         (arm_compute_save_reg0_reg12_mask): Always
4424         check if register 11 must be saved.  Always safe hard frame pointer
4425         when frame_pointer_needeed.
4426         (arm_compute_save_reg_mask): Save IP and PC
4427         only with apcs frames.
4428         (arm_output_epilogue): Adjust Thumb2 codepath to
4429         be also invoked and work for ARM non-apcs frames.
4430         (arm_expand_prologue): Don't bother saving IP
4431         for non-apcs frame, since it's not clobbered by
4432         prologue code.  Implement non-apcs frame
4433         layout.
4434
4435 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
4436
4437         PR rtl-optimization/35281
4438         * expr.c (convert_move): Use a new pseudo for the intermediate
4439         from_mode->word_mode result.
4440
4441 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
4442
4443         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
4444         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
4445         * toplev.c (compile_file): Don't call it.
4446
4447 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
4448
4449         PR middle-end/35526
4450         * expr.c (store_expr): Call emit_block_move if the mode
4451         of "temp" RTX is BLKmode.
4452
4453 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4454             Richard Guenther  <rguenther@suse.de>
4455
4456         PR tree-optimization/31358
4457         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
4458         the step with a NULL_TREE.
4459         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
4460         to sizetype if type is a pointer type.
4461         (add_candidate_1): Don't convert the base and step to
4462         the generic type if the orginal type is a pointer type.
4463         (add_iv_value_candidates): Use sizetype for the step
4464         if type is a pointer type.
4465         (cand_value_at): Likewise.
4466         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
4467         for pointer types.
4468         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
4469         Don't convert the tem affine to the type.
4470         (add_elt_to_tree): Use sizetype for the step if a pointer.
4471         Use POINTER_PLUS_EXPR for pointers.
4472         (aff_combination_to_tree): Use sizetype for the step if a
4473         pointer.
4474
4475 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
4476
4477         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
4478         Remove commutativity hint.
4479
4480 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
4481
4482         PR c/35438
4483         PR c/35439
4484         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
4485         errorneous type.  Check that v is a VAR_DECL.
4486
4487         PR middle-end/35099
4488         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
4489
4490 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
4491
4492         PR tree-optimization/35494
4493         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
4494         may be overriden at link and run time.
4495
4496 2008-03-10  Richard Guenther  <rguenther@suse.de>
4497
4498         PR tree-optimization/34677
4499         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
4500         (poolify_tree): Likewise.
4501         (modify_expr_template): Likewise.
4502         (poolify_modify_stmt): Likewise.
4503         (insert_fake_stores): Handle all component-ref style stores
4504         in addition to INDIRECT_REF.  Also handle complex types.
4505         Do not poolify the inserted load.
4506         (realify_fake_stores): Do not rebuild the tree but only
4507         make it a SSA_NAME copy.
4508         (init_pre): Remove initialzation of modify_expr_template.
4509         Do not allocate modify_expr_node_pool.
4510         (fini_pre): Do not free modify_expr_node_pool.
4511
4512 2008-03-10  Paul Brook  <paul@codesourcery.com>
4513
4514         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
4515         to avoid conflicts.
4516
4517 2008-03-10  Paul Brook  <paul@codesourcery.com>
4518             Mark Shinwell  <shinwell@codesourcery.com>
4519
4520         * config/arm/cortex-r4.md: New.
4521         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
4522         insn attributes.
4523         * config/arm/arm.md: Include cortex-r4.md.
4524         (insn): Add smmls, sdiv and udiv values.
4525         (generic_sched): Don't use generic scheduling for Cortex-R4.
4526         (arm_issue_rate): New function.
4527         (TARGET_SCHED_ISSUE_RATE): Define.
4528
4529 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
4530
4531         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
4532
4533 2008-03-10  Richard Guenther  <rguenther@suse.de>
4534
4535         * tree-ssa-pre.c (get_sccvn_value): Simplify.
4536         (compute_avail): Do not add stmt uses to AVAIL_OUT.
4537
4538 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
4539
4540         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
4541         Set default to true.
4542
4543 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4544
4545         * c.opt (Wsynth): Deprecate.
4546         * doc/invoke.texi (Option Summary, Warning Options): Document
4547         -Wno-format-contains-nul.
4548
4549 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
4550
4551         PR target/35496
4552         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
4553         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
4554
4555 2008-03-09  Ira Rosen  <irar@il.ibm.com>
4556
4557         * config/rs6000/rs6000.c (builtin_description): Rename vector
4558         left shift operations.
4559         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
4560         (altivec_vsl<VI_char>): Rename to ...
4561         (ashl<mode>3): ... new name.
4562         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
4563         gen_ashlv4si3.
4564         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
4565
4566 2008-03-08  Richard Guenther  <rguenther@suse.de>
4567
4568         * coverage.h (tree_coverage_counter_addr): Declare.
4569         * coverage.c (tree_coverage_counter_addr): New function.
4570         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
4571         before using again.
4572         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
4573         (tree_gen_one_value_profiler): Likewise.
4574         (tree_gen_ic_profiler): Likewise.
4575         (tree_gen_average_profiler): Likewise.
4576         (tree_gen_ior_profiler): Likewise.
4577
4578 2008-03-08  Richard Guenther  <rguenther@suse.de>
4579
4580         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
4581         (vn_binary_op_insert): Likewise.
4582         (vn_unary_op_lookup): Likewise.
4583         (vn_unary_op_insert): Likewise.
4584         (vn_nary_op_lookup): Declare.
4585         (vn_nary_op_insert): Likewise.
4586         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
4587         and binary hashes, use a single obstack for unary_op_pool
4588         and binary_op_pool.
4589         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
4590         a single struct vn_nary_op_s.  Store tree code length and
4591         a variable number of operands.
4592         (struct vn_reference_op_struct): Remove unused op2.
4593         (vn_reference_op_eq): Do not compare op2.
4594         (vn_reference_op_compute_hash): Do not compute hash of op2.
4595         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
4596         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
4597         with vn_nary_op_compute_hash.
4598         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
4599         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
4600         vn_nary_op_lookup.
4601         (vn_unary_op_insert, vn_binary_op_insert): Replace with
4602         vn_nary_op_insert.
4603         (visit_unary_op): Call nary functions.
4604         (visit_binary_op): Likewise.
4605         (process_scc): Adjust for struct vn_tables_s changes.
4606         (allocate_vn_table): Likewise.
4607         (free_vn_table): Likewise.
4608         * tree-vn.c (vn_add): Call nary functions.
4609         (vn_lookup): Likewise.
4610
4611 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
4612
4613         PR target/35498
4614         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
4615         wdst back after sync_compare_and_swapqhi_internal.
4616
4617 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
4618
4619         PR target/22152
4620         * config/i386/i386-modes.def (V1DI): New vector mode.
4621         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
4622         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
4623         (MMXMODE248): Ditto.
4624         (MMXMODE): Add V1DI mode.
4625         (mmxvecsize): Change DI mode to V1DI mode.
4626         ("mov<mode>): Use MMXMODEI8 mode iterator.
4627         ("*mov<mode>_internal_rex64"): Ditto.
4628         ("*mov<mode>_internal"): Ditto.
4629         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
4630         ("mmx_sub<mode>3"): Ditto.
4631         ("mmx_adddi3"): Remove insn pattern.
4632         ("mmx_subdi3"): Ditto.
4633         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
4634         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
4635         ("mmx_ashl<mode>3"): Ditto.
4636         ("mmx_lshrdi3"): Remove insn pattern.
4637         ("mmx_ashldi3"): Ditto.
4638         * config/i386/i386.c (classify_argument): Handle V1DImode.
4639         (function_arg_advance_32): Ditto.
4640         (function_arg_32): Ditto.
4641         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
4642         mmx_addv1di3 insn pattern.
4643         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
4644         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
4645         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
4646         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
4647         Remove definitions of built-in functions.
4648         (V1DI_type_node): New node.
4649         (v1di_ftype_v1di_int): Ditto.
4650         (v1di_ftype_v1di_v1di): Ditto.
4651         (v2si_ftype_v2si_si): Ditto.
4652         (v4hi_ftype_v4hi_di): Remove node.
4653         (v2si_ftype_v2si_di): Ditto.
4654         (ix86_init_mmx_sse_builtins): Handle V1DImode.
4655         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
4656         Redefine builtins using def_builtin_const with *_ftype_*_int node.
4657         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
4658         Add new builtins using def_builtin_const.
4659         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
4660         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
4661         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
4662         * config/i386/mmintrin.h (__v1di): New typedef.
4663         (_mm_add_si64): Cast arguments to __v1di type.
4664         (_mm_sub_si64): Ditto.
4665         (_mm_sll_pi16): Cast __count to __v4hi type.
4666         (_mm_sll_pi32): Cast __count to __v2si type.
4667         (_mm_sll_si64): Cast arguments to __v1di type.
4668         (_mm_srl_pi16): Cast __count to __v4hi type.
4669         (_mm_srl_pi32): Cast __count to __v2si type.
4670         (_mm_srl_si64): Cast arguments to __v1di type.
4671         (_mm_sra_pi16): Cast __count to __v4hi type.
4672         (_mm_sra_pi32): Cast __count to __v2si type.
4673         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
4674         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
4675         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
4676         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
4677         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
4678         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
4679         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
4680         (_mm_srai_pi32): Use __builtin_ia32_psradi.
4681         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
4682         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
4683         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
4684         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
4685
4686 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
4687
4688         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
4689
4690 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
4691
4692         PR target/35373
4693         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
4694         reg+const addressing for Altivec modes.  Don't generate reg+reg
4695         addressing for TFmode or TDmode quantities.
4696
4697 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
4698
4699         * c-common.c (vector_types_convertible_p): Call langhook
4700         instead of comptypes.
4701
4702 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4703
4704         PR tree-opt/35402
4705         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
4706         integral and scalar float variables which have a
4707         NULL DECL_INITIAL.
4708
4709 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
4710
4711         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
4712         dwarf_register_span hook when emitting unwind information for
4713         register-to-memory saves.
4714         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
4715         (rs6000_frame_related): Remove call to spe_synthesize_frame.
4716
4717 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
4718
4719         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
4720         for the same VAR_DECL.
4721
4722 2008-03-06  Tom Tromey  <tromey@redhat.com>
4723
4724         * treelang: Delete.
4725         * doc/standards.texi (Standards): Don't mention treelang.
4726         * doc/invoke.texi (Overall Options): Don't mention treelang.
4727         * doc/install.texi (Prerequisites): Don't mention bison or
4728         treelang.
4729         (Configuration): Don't mention treelang.
4730         (Building): Likewise.
4731         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
4732
4733 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
4734
4735         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
4736         word-extractions out of a multi-word object.
4737
4738 2008-03-06  Richard Guenther  <rguenther@suse.de>
4739
4740         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
4741         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
4742         result type and precision.
4743         * expr.c (get_inner_reference): Set unsignedp based on the result
4744         type of BIT_FIELD_REF.
4745         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
4746         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
4747         (try_instantiate_multiple_fields): Likewise.  Use the correct type
4748         for BIT_FIELD_REF.
4749         (sra_build_assignment): Likewise.
4750         (sra_build_elt_assignment): Likewise.
4751         (sra_explode_bitfield_assignment): Likewise.
4752         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
4753         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
4754         set BIT_FIELD_REF_UNSIGNED.
4755         (vectorizable_load): Likewise.
4756
4757 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
4758
4759         * cse.c (cse_extended_basic_block): Invalidate artificial defs
4760         at bb start.
4761
4762 2008-03-06  Richard Guenther  <rguenther@suse.de>
4763
4764         * alias.c (struct alias_set_entry): Move has_zero_child field
4765         to pack with alias_set.
4766
4767 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
4768
4769         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
4770         32bit host.
4771
4772 2008-03-05  Ian Lance Taylor  <iant@google.com>
4773
4774         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
4775
4776 2008-03-05  Kenneth Zadeck <zadeck@naturalbridge.com>
4777
4778         * fwprop.c (update_df): Support width and offset parameters of
4779         df_ref_create.
4780         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
4781         global_conflicts): Change DF_REF_EXTRACT to either
4782         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
4783         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
4784         * df-scan.c (df_ref_record, df_defs_record,
4785         df_ref_create_structure, df_def_record_1, df_uses_record,
4786         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
4787         df_bb_refs_collect, df_entry_block_defs_collect,
4788         df_exit_block_uses_collect): Support new width and offset fields.
4789         (ref_extract_pool): New storage pool.
4790         (df_free_ref): New function.
4791         (df_reg_chain_unlink, df_free_collection_rec,
4792         df_sort_and_compress_refs): Call df_free_ref.
4793         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
4794         of df_ref_extract.
4795         (df_ref_create_structure): Allocate df_ref_extract if offset and
4796         width fields are used.
4797         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
4798         (df_uses_record): Get offset and width from ZERO_EXTRACT 
4799         and SIGN_EXTRACT.
4800         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
4801         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
4802         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
4803         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
4804         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
4805         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
4806         (df_ref_extract): New structure.
4807         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
4808         (df_ref_create): Add width and offset parameters.
4809         
4810 2008-03-05  Richard Guenther  <rguenther@suse.de>
4811
4812         * tree-ssa-structalias.c (get_constraint_for_component_ref):
4813         Use ranges_overlap_p.
4814         (offset_overlaps_with_access): Rename
4815         to ranges_overlap_p and move ...
4816         * tree-flow-inline.h (ranges_overlap_p): ... here.
4817
4818         * tree.h (get_inner_reference, handled_component_p): Update
4819         comments.
4820
4821         * tree.h (record_component_aliases, get_alias_set,
4822         alias_sets_conflict_p, alias_sets_must_conflict_p,
4823         objects_must_conflict_p): Move declarations ...
4824         * alias.h (record_component_aliases, get_alias_set,
4825         alias_sets_conflict_p, alias_sets_must_conflict_p,
4826         objects_must_conflict_p): ... here.
4827         Include coretypes.h.
4828         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
4829
4830 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
4831
4832         * cfg.c: Include tree-flow.h.
4833         (remove_edge_raw): Call redirect_edge_var_map_clear.
4834         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
4835         * tree-flow-inline.h (redirect_edge_var_map_def): New.
4836         (redirect_edge_var_map_result): New.
4837         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
4838         PENDING_STMT use with redirect_edge_var_map_*.
4839         * tree-ssa.c (edge_var_maps): New definition.
4840         (redirect_edge_var_map_add): New.
4841         (redirect_edge_var_map_clear): New.
4842         (redirect_edge_var_map_dup): New.
4843         (redirect_edge_var_map_vector): New.
4844         (redirect_edge_var_map_destroy): New.
4845         (ssa_redirect_edge): Replace PENDING_STMT use with
4846         redirect_edge_var_map_*.
4847         (flush_pending_stmts): Same.
4848         (delete_tree_ssa): Destroy edge var map.
4849         * tree-flow.h (struct _edge_var_map): New.
4850         Define edge_var_map vector type.
4851         Declare redirect_edge_var_map_* prototypes.
4852         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
4853         * tree-cfg.c (reinstall_phi_args): Replace
4854         PENDING_STMT use with redirect_edge_var_map_*.
4855
4856 2008-03-05  Richard Guenther  <rguenther@suse.de>
4857
4858         PR tree-optimization/35472
4859         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
4860         whose single use_stmt has a overlapping set of loaded and
4861         stored symbols as that use_stmt might be a noop assignment then.
4862
4863 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
4864
4865         * gthr-rtems.h: Implement __gthread_mutex_destroy.
4866
4867 2008-03-05  Richard Guenther  <rguenther@suse.de>
4868
4869         PR c++/35336
4870         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
4871         should be constants.
4872         * tree-cfg.c (verify_expr): Verify it.
4873         * fold-const.c (fold_truthop): Remove code generating
4874         BIT_FIELD_REFs of structure bases.
4875         (fold_binary): Likewise.
4876         (fold_ternary): Position and size of BIT_FIELD_REFs are
4877         always host integers.
4878         (make_bit_field_ref): Remove.
4879         (optimize_bit_field_compare): Remove.
4880         (all_ones_mask_p): Remove.
4881
4882 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
4883
4884         PR gcc/33009
4885         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
4886         (split_block_and_df_analyze): New. Split basic block and rebuild
4887         dataflow.
4888         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
4889         SPLIT_BLOCK.
4890         (split_pattern_seq): Likewise.
4891         (erase_matching_seqs): Likewise.
4892         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
4893
4894 2008-03-04  Geoff Keating  <geoffk@apple.com>
4895
4896         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
4897         declaration and code.
4898         (tree_invalid_nonnegative_warnv_p): Likewise.
4899
4900 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
4901
4902         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
4903         examples.  Truncate option-names then causing overfull hbox.
4904
4905 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4906
4907         PR target/35222
4908         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
4909         on hpux10.
4910         * configure: Rebuilt.
4911
4912 2008-03-04  Rafael Espindola  <espindola@google.com>
4913
4914         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
4915         (tree_unary_nonnegative_warnv_p): New.
4916         (tree_binary_nonnegative_warnv_p): New.
4917         (tree_single_nonnegative_warnv_p): New.
4918         (tree_invalid_nonnegative_warnv_p): New.
4919         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
4920
4921 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4922
4923         PR 28322
4924         * opts.c (handle_option): Postpone 'unknown option' errors only for
4925         warning options.
4926
4927 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
4928
4929         PR target/35453
4930         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
4931         (_SIDD_XXX): This.
4932
4933 2008-03-04  Rafael Espindola  <espindola@google.com>
4934
4935         * fold-const.c (tree_unary_nonzero_warnv_p): New.
4936         (tree_binary_nonzero_warnv_p): New.
4937         (tree_single_nonzero_warnv_p): New.
4938         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
4939
4940 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
4941
4942         PR middle-end/35456
4943         * fold-const.c (fold_cond_expr_with_comparison): Prevent
4944         transformations for modes that have signed zeros.
4945         * ifcvt.c (noce_try_abs): Ditto.
4946
4947 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
4948
4949         * config/i386/i386.c (override_options): Force
4950         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
4951
4952 2008-03-04  Jan Hubicka  <jh@suse.cz>
4953
4954         PR c++/35262
4955         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
4956         in last commit.
4957
4958 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
4959
4960         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
4961         label to probe the stack.
4962
4963 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
4964
4965         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
4966         (__gthr_win32_mutex_destroy): Declare.
4967         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
4968         __gthr_win32_mutex_destroy.
4969         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
4970
4971 2008-03-03  Jan Hubicka  <jh@suse.cz>
4972
4973         PR c++/35262
4974         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
4975         aggressive on inlining cold calls.
4976
4977 2008-03-03  Richard Guenther  <rguenther@suse.de>
4978
4979         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
4980         struct copies into the expression table.
4981         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
4982         (try_to_simplify): Likewise.
4983         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
4984         integral and pointer arguments which do not change the
4985         precision to NOP_EXPRs.
4986         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
4987         VIEW_CONVERT_EXPR case.
4988
4989 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
4990
4991         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
4992         defined in a loop at depth 0 is invariant.
4993         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
4994         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
4995         be called at loop depth 0.
4996
4997 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
4998
4999         PR driver/35420
5000         * gcc.c (process_command): Update copyright notice dates.
5001         * gcov.c (print_version): Likewise.
5002         * gcov-dump.c (print_version): Likewise.
5003         * mips-tfile.c (main): Likewise.
5004         * mips-tdump.c (main): Likewise.
5005
5006 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5007
5008         PR 24924
5009         * c-common.c (flag_permissive): Delete.
5010         (constant_expression_warnings): Check flags first.
5011         (constant_expression_error): New.
5012         * c-common.h (flag_permissive): Delete.
5013         (constant_expression_error): Declare.
5014         * flags.h (flag_permissive): Declare. Update description.
5015         * diagnostic.c (pedwarn): Update.
5016         (permerror): New.
5017         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
5018         (permissive_error_kind): New.
5019         * toplev.c (flag_permissive): Define. Update description.
5020         * toplev.h (permissive_error_kind): Declare.
5021         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
5022         (pedwarn_c90): Use pedantic_warning_kind.
5023         * c-opts.c (c_common_post_options): flag_permissive does not affect
5024         flag_pedantic_errors.
5025
5026 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
5027
5028         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
5029         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
5030         __absvsi2, __absvDI2): Use unsigned arithmetic.
5031
5032 2008-03-02  Andi Kleen  <ak@suse.de>
5033             Richard Guenther  <rguenther@suse.de>
5034
5035         * struct-equiv.c: Remove file.
5036         * cfg_cleanup.c (condjump_equiv_p): Remove.
5037         * Makefile.in (OBJS-common): Remove struct-equiv.o.
5038         (struct-equiv.o): Remove rule.
5039         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
5040         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
5041         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
5042
5043 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
5044
5045         * ifcvt.c (noce_process_if_block): Try to handle only the then
5046         block if the else block exists but isn't suitable.
5047
5048 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
5049
5050         PR gcc/35063
5051         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
5052         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
5053         regression from previous patch.
5054
5055 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
5056
5057         PR gcc/35063
5058         * gthr.h: Add __gthread_mutex_destroy as a function that must be
5059         implemented.
5060         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
5061         * gthr-single.h (__gthread_mutex_destroy): Likewise.
5062         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
5063         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
5064         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
5065         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
5066         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
5067         (__gthread_mutex_destroy_function): Rename to
5068         __gthread_mutex_destroy.
5069         * gthr-dce.h (__gthread_mutex_destroy): Call
5070         pthread_mutex_destroy.
5071         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
5072         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
5073         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
5074
5075 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
5076
5077         * df-scan.c (df_ref_chain_change_bb): Simplify.
5078         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
5079         set_block_for_insn if there's any change.
5080         * df.h ((df_insn_change_bb): Fix prototype.
5081         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
5082         df_insn_change_bb, don't call set_block_for_insn.
5083         * emit-rtl.c (reorder_insns): Likewise.
5084         * haifa-sched.c (move_insn): Likewise.
5085
5086 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
5087
5088         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
5089
5090 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
5091
5092         * tree-flow-inline.h (next_readonly_imm_use): Return
5093         NULL_USE_OPERAND_P after the end.
5094
5095 2008-03-01  Richard Guenther  <rguenther@suse.de>
5096
5097         PR tree-optimization/35411
5098         * tree-sra.c (sra_build_assignment): Split conversion to
5099         final type to a separate statement if we are not assigning
5100         to a register.
5101
5102 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
5103
5104         * fold-const.c (fold_convertible_p): Correct the logic to follow
5105         that in fold_convert().
5106
5107 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
5108
5109         PR c++/35315
5110         * tree-inline.c (build_duplicate_type): When we make a
5111         duplicate type, make it unique in the canonical types system.
5112
5113 2008-02-29  Tom Tromey  <tromey@redhat.com>
5114
5115         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
5116         input_file_stack_history, input_file_stack_restored): Remove.
5117         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
5118         * input.h (struct file_stack): Remove.
5119         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
5120         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
5121         Likewise.
5122         * diagnostic.h (struct diagnostic_context) <last_module>: Change
5123         type.
5124         (diagnostic_last_module_changed): Add 'map' argument.
5125         (diagnostic_set_last_function): Likewise.
5126         * diagnostic.c (undiagnostic_report_current_module): Iterate using
5127         line map, not input_file_stack.
5128         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
5129
5130 2008-02-29  Paul Brook  <paul@codesourcery.com>
5131
5132         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
5133
5134 2008-02-29  Paul Brook  <paul@codesourcery.com>
5135
5136         * config/arm/ieee754-df.S (muldf3): Use RET macros.
5137
5138 2008-02-29  Richard Guenther  <rguenther@suse.de>
5139
5140         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
5141         vn_lookup_or_add.
5142         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
5143         value for comparing for a store match.
5144         (simplify_unary_expression): Do nothing for SSA_NAMEs.
5145         (try_to_simplify): Do not do a full-blown reference lookup.
5146
5147 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
5148
5149         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
5150         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
5151
5152         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
5153
5154 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
5155
5156         * tree-loop-linear.c (try_interchange_loops): Compare memory access
5157         strides against cache sizes.
5158
5159 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
5160
5161         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
5162         constant to fpul.
5163
5164 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
5165
5166         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
5167         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
5168         is smaller than the original promoted value.
5169         (simplify_subreg): If OP is a SUBREG, try to preserve its
5170         SUBREG_PROMOTED_VAR_P information.
5171
5172 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
5173
5174         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
5175         (VN_INFO_GET): Allocate new objects on the obstack.
5176         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
5177         for rpo_numbers_temp, for consistency.
5178         (free_scc_vn): Free the obstack.
5179
5180 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
5181
5182         * doc/invoke.texi: Document -ftree-loop-distribution.
5183         * tree-loop-distribution.c: New.
5184         * tree-pass.h (pass_loop_distribution): New.
5185         * graphds.h (struct graph): Add htab_t indices.
5186         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
5187         * tree-vectorizer.c (rename_variables_in_loop): Extern.
5188         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
5189         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
5190         * tree-data-ref.c (debug_data_dependence_relations): New.
5191         (dump_data_dependence_relation): Also print data references.
5192         (free_data_ref): Extern.
5193         (same_access_functions): Moved...
5194         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
5195         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
5196         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
5197         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
5198         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
5199         (stmts_from_loop): Skip LABEL_EXPR.
5200         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
5201         New.
5202         (build_rdg): Initialize rdg->indices htab.
5203         (free_rdg, stores_from_loop, ref_base_address,
5204         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
5205         have_similar_memory_accesses_1, ref_base_address_1,
5206         remove_similar_memory_refs): New.
5207         * tree-data-ref.h: Depend on tree-chrec.h.
5208         (debug_data_dependence_relations, free_data_ref): Declared.
5209         (same_access_functions): ... here.
5210         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
5211         New.
5212         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
5213         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
5214         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
5215         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
5216         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
5217         rdg_vertex_for_stmt): Declared.
5218         (struct rdg_edge): Add level.
5219         (RDGE_LEVEL): New.
5220         (free_rdg, stores_from_loop, remove_similar_memory_refs,
5221         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
5222         Declared.
5223         (rdg_has_similar_memory_accesses): New.
5224         * tree-vect-analyze.c: Remove unused static decls.
5225         * lambda.h (dependence_level): New.
5226         * common.opt (ftree-loop-distribution): New.
5227         * tree-flow.h (mark_virtual_ops_in_bb, 
5228         slpeel_tree_duplicate_loop_to_edge_cfg,
5229         rename_variables_in_loop): Declared.
5230         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
5231         (OBJS-common): Add tree-loop-distribution.o.
5232         (tree-loop-distribution.o): New rule.
5233         * tree-cfg.c (mark_virtual_ops_in_bb): New.
5234         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
5235         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
5236
5237 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
5238
5239         PR target/33963
5240         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
5241         other than structures and unions.
5242
5243 2008-02-28  Richard Guenther  <rguenther@suse.de>
5244
5245         Revert:
5246         2008-02-26  Richard Guenther  <rguenther@suse.de>
5247
5248         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
5249         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
5250         (lookup_decl_from_uid): Declare.
5251         (remove_decl_from_map): Likewise.
5252         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
5253         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
5254         (decl_for_uid_map): New global hashtable mapping DECL_UID
5255         to the decl tree.
5256         (init_ttree): Allocate it.
5257         (insert_decl_to_uid_decl_map): New helper function.
5258         (make_node_stat): Insert new decls into the map.
5259         (copy_node_stat): Likewise.
5260         (lookup_decl_from_uid): New function.
5261         (remove_decl_from_map): Likewise.
5262         (print_decl_for_uid_map_statistics): New helper.
5263         (dump_tree_statistics): Call it.
5264
5265         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
5266         (referenced_var_iterator): Adjust.
5267         (FOR_EACH_REFERENCED_VAR): Adjust.
5268         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
5269         (num_referenced_vars): Adjust.
5270         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
5271         (first_referenced_var): Remove.
5272         (end_referenced_vars_p): Likewise.
5273         (next_referenced_var): Likewise.
5274         (referenced_var_iterator_set): New helper function.
5275         * tree-dfa.c (referenced_var_lookup): Adjust.
5276         (referenced_var_check_and_insert): Likewise.
5277         (remove_referenced_var): Likewise.
5278         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
5279         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5280         (verify_call_clobbering): Likewise.
5281         (verify_memory_partitions): Likewise.
5282         (init_tree_ssa): Allocate bitmap instead of hashtable for
5283         referenced_vars.
5284         (delete_tree_ssa): Adjust.
5285         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
5286         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5287         (compute_tag_properties): Likewise.
5288         (set_initial_properties): Likewise.
5289         (find_partition_for): Likewise.
5290         (update_reference_counts): Likewise.
5291         (dump_may_aliases_for): Likewise.
5292         * tree-ssa-operands.c (add_virtual_operand): Likewise.
5293         (add_call_clobber_ops): Likewise.
5294         (add_call_read_ops): Likewise.
5295         (get_asm_expr_operands): Likewise.
5296         * tree-into-ssa.c (dump_decl_set): Likewise.
5297         (update_ssa): Likewise.
5298         * tree-sra.c (scan_function): Likewise.
5299         (decide_instantiations): Likewise.
5300         (scalarize_parms): Likewise.
5301         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
5302         (dsa_named_for): Likewise.
5303         * tree-ssa-structalias.c (update_alias_info): Likewise.
5304         (merge_smts_into): Likewise.
5305
5306 2008-02-27  David Daney  <ddaney@avtrex.com>
5307
5308         PR target/34409
5309         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
5310         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
5311         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
5312         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
5313         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
5314
5315 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
5316
5317         PR target/25477
5318         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
5319         (BUILT_IN_NEXTTOWARD): Remove.
5320         (BUILT_IN_NEXTTOWARDF): Ditto.
5321         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
5322         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
5323
5324 2008-02-27  Tom Tromey  <tromey@redhat.com>
5325
5326         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
5327         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
5328
5329 2008-02-27  Jan Beulich  <jbeulich@novell.com>
5330
5331         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
5332         update the respective field on newdecl.
5333
5334 2008-02-27  Revital Eres  <eres@il.ibm.com>
5335
5336         PR rtl-optimization/34999
5337         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
5338         crossing edges that ends with a call insn.
5339         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
5340         call insn and clear the EDGE_CROSSING flag of the crossing edge
5341         when fixing fallthru edges.
5342
5343 2008-02-27  Richard Guenther  <rguenther@suse.de>
5344
5345         PR middle-end/35390
5346         * fold-const.c (fold_unary): Return the correct argument,
5347         converted to the result type.
5348
5349 2008-02-27  Richard Guenther  <rguenther@suse.de>
5350
5351         PR middle-end/34971
5352         * expr.c (expand_expr_real_1): Assert on rotates that operate
5353         on partial modes.
5354         * fold-const.c (fold_binary): Use the types precision, not the
5355         bitsize of the mode if folding rotate expressions.  Build rotates
5356         only for full modes.
5357
5358 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
5359
5360         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
5361         and CPP_PRAGMA_EOL.
5362         * c-pragma.c (pragma_ns_name): New typedef.
5363         (registered_pp_pragmas): New variable.
5364         (c_pp_lookup_pragma): New function.
5365         (c_register_pragma_1): If flag_preprocess_only, do nothing
5366         for non-expanded pragmas, for expanded ones push pragma's
5367         namespace and name into registered_pp_pragmas vector.
5368         (c_invoke_pragma_handler): Register OpenMP pragmas even when
5369         flag_preprocess_only, don't register GCC pch_preprocess
5370         pragma if flag_preprocess_only.
5371         * c-opts.c (c_common_init): Call init_pragma even if
5372         flag_preprocess_only.
5373         * c-pragma.c (c_pp_lookup_pragma): New prototype.
5374         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
5375         cpp_register_pragma if flag_preprocess_only.
5376
5377 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5378
5379         PR c/28800
5380         * c-parser.c (c_parser_translation_unit): Warn for empty
5381         translation unit, not empty source file.
5382
5383 2008-02-26  Paul Brook  <paul@codesourcery.com>
5384
5385         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
5386         operand for Thumb-2.
5387         * config/arm/arm.h (reg_class): Add CORE_REGS.
5388         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
5389         (BASE_REG_CLASS): Use CORE_REGS.
5390         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
5391         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
5392         (REGNO_OK_FOR_INDEX_P): Exclude SP.
5393         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
5394         ARM_REGNO_OK_FOR_INDEX_P.
5395         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
5396         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
5397         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
5398         (ldm/stm peepholes): Ditto.
5399         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
5400         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
5401         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
5402         * config/arm/constraints.md: Enable "k" constraint on ARM.
5403
5404 2008-02-27  Ben Elliston  <bje@au.ibm.com>
5405
5406         * config/rs6000/rs6000.c: Annotate cache line size field in all
5407         instances of struct processor_costs.
5408
5409 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
5410
5411         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
5412         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
5413         jump_bypass): New counters.
5414         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
5415         * dce.c (gate_ud_dce): Same.
5416         (gate_fast_dce): Same.
5417         * dse.c (gate_dse1): New function.
5418         (gate_dse2): New function.
5419         (gate_dse): Merge results of new gate functions.
5420         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
5421         (gate_handle_jump_bypass): Add dbg_cnt.
5422         (gate_handle_gcse): Add dbg_cnt.
5423         * ifcvt.c (gate_handle_if_conversion): Same.
5424         (gate_handle_if_after_combine): Same.
5425         (gate_handle_if_after_reload): Same.
5426         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
5427
5428 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
5429
5430         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
5431         line sizes.
5432         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
5433
5434 2008-02-26  Jason Merrill  <jason@redhat.com>
5435
5436         PR c++/35315
5437         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
5438         alone if it's the naming decl for the type's main variant.
5439
5440 2008-02-26  Tom Tromey  <tromey@redhat.com>
5441
5442         * system.h (USE_MAPPED_LOCATION): Poison.
5443         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
5444         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
5445         (make_goto_expr_edges): Likewise.
5446         (remove_bb): Likewise.
5447         (execute_warn_function_return): Likewise.
5448         * basic-block.h (struct edge_def) <goto_locus>: Change type to
5449         location_t.
5450         * c-common.c (fname_decl): Remove old location code.
5451         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
5452         location code.
5453         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
5454         variant.
5455         (ASM_INPUT_SOURCE_LOCATION): Likewise.
5456         (gen_rtx_ASM_INPUT): Likewise.
5457         (gen_rtx_ASM_INPUT_loc): Likewise.
5458         (get_rtx_asm_OPERANDS): Remove.
5459         * cfglayout.c (insn_locators_alloc): Remove old location code.
5460         (set_curr_insn_source_location): Likewise.
5461         (curr_insn_locator): Likewise.
5462         * print-tree.c (print_node): Remove old location code.
5463         * tree-mudflap.c (mf_varname_tree): Remove old location code.
5464         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
5465         * cfgexpand.c (expand_gimple_cond_expr): Don't use
5466         location_from_locus.
5467         (construct_exit_block): Remove old location code.
5468         * emit-rtl.c (force_next_line_note): Remove old location code.
5469         * profile.c (branch_prob): Remove old location code.
5470         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
5471         LOC_LINE): Remove old-location variants.
5472         * langhooks.c (lhd_print_error_function): Remove old location
5473         code.
5474         * configure, config.in: Rebuilt.
5475         * configure.ac (--enable-mapped-location): Remove.
5476         * c-decl.c (c_init_decl_processing): Remove old location code.
5477         (finish_function): Likewise.
5478         * recog.c (decode_asm_operands): Remove old location code.
5479         * c-pch.c (c_common_read_pch): Remove old location code.
5480         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
5481         variants.
5482         * gimple-low.c (lower_function_body): Remove old location code.
5483         * toplev.c (unknown_location): Remove.
5484         (push_srcloc): Remove old-location variant.
5485         (process_options): Remove old location code.
5486         (lang_dependent_init): Likewise.
5487         * input.h (UNKNOWN_LOCATION): Move definition.
5488         (location_t): Undeprecate.
5489         (source_locus): Remove.
5490         (location_from_locus): Remove.
5491         (struct location_s): Remove.
5492         Remove all old-location code.
5493         (input_line, input_filename): Remove.
5494         * final.c (final_scan_insn): Remove old location code.
5495         * diagnostic.c (diagnostic_build_prefix): Remove
5496         USE_MAPPED_LOCATION test.
5497         * tree.h (gimple_stmt) <locus>: Now a location_t.
5498         (tree_exp) <locus>: Likewise.
5499         (DECL_IS_BUILTIN): Remove old-location variant.
5500         (annotate_with_file_line, annotate_with_locus): Likewise.
5501         (expr_locus, set_expr_locus): Update.
5502         * tree.c (build1_stat): Remove old location code.
5503         (last_annotated_node): Remove.
5504         (annotate_with_file_line): Remove old-location variant.
5505         (annotate_with_locus): Likewise.
5506         (expr_location): Remove old location code.
5507         (set_expr_location): Likewise.
5508         (expr_has_location): Likewise.
5509         (expr_locus): Likewise.
5510         (set_expr_locus): Likewise.
5511         (expr_filename): Don't use location_from_locus.
5512         (expr_lineno): Likewise.
5513         * rtl-error.c (location_for_asm): Remove old location code.
5514         * c-lex.c (cb_line_change): Remove old location code.
5515         (fe_file_change): Likewise.
5516         (cb_def_pragma): Likewise.
5517         (c_lex_with_flags): Likewise.
5518         * gengtype.c (do_typedef): Don't special-case location types.
5519         (define_location_structures): Remove.
5520         (main): Don't call define_location_structures.
5521         * tree-pretty-print.c (dump_implicit_edges): Remove old location
5522         code.
5523
5524 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5525
5526         PR 26264
5527         * builtins.def (BUILT_IN_STDARG_START): Remove.
5528         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
5529         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
5530         * tree-inline.c (inline_forbidden_p_1): Likewise.
5531         
5532 2008-02-26  Richard Guenther  <rguenther@suse.de>
5533
5534         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
5535         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
5536         (lookup_decl_from_uid): Declare.
5537         (remove_decl_from_map): Likewise.
5538         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
5539         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
5540         (decl_for_uid_map): New global hashtable mapping DECL_UID
5541         to the decl tree.
5542         (init_ttree): Allocate it.
5543         (insert_decl_to_uid_decl_map): New helper function.
5544         (make_node_stat): Insert new decls into the map.
5545         (copy_node_stat): Likewise.
5546         (lookup_decl_from_uid): New function.
5547         (remove_decl_from_map): Likewise.
5548         (print_decl_for_uid_map_statistics): New helper.
5549         (dump_tree_statistics): Call it.
5550
5551         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
5552         (referenced_var_iterator): Adjust.
5553         (FOR_EACH_REFERENCED_VAR): Adjust.
5554         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
5555         (num_referenced_vars): Adjust.
5556         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
5557         (first_referenced_var): Remove.
5558         (end_referenced_vars_p): Likewise.
5559         (next_referenced_var): Likewise.
5560         (referenced_var_iterator_set): New helper function.
5561         * tree-dfa.c (referenced_var_lookup): Adjust.
5562         (referenced_var_check_and_insert): Likewise.
5563         (remove_referenced_var): Likewise.
5564         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
5565         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5566         (verify_call_clobbering): Likewise.
5567         (verify_memory_partitions): Likewise.
5568         (init_tree_ssa): Allocate bitmap instead of hashtable for
5569         referenced_vars.
5570         (delete_tree_ssa): Adjust.
5571         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
5572         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5573         (compute_tag_properties): Likewise.
5574         (set_initial_properties): Likewise.
5575         (find_partition_for): Likewise.
5576         (update_reference_counts): Likewise.
5577         (dump_may_aliases_for): Likewise.
5578         * tree-ssa-operands.c (add_virtual_operand): Likewise.
5579         (add_call_clobber_ops): Likewise.
5580         (add_call_read_ops): Likewise.
5581         (get_asm_expr_operands): Likewise.
5582         * tree-into-ssa.c (dump_decl_set): Likewise.
5583         (update_ssa): Likewise.
5584         * tree-sra.c (scan_function): Likewise.
5585         (decide_instantiations): Likewise.
5586         (scalarize_parms): Likewise.
5587         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
5588         (dsa_named_for): Likewise.
5589         * tree-ssa-structalias.c (update_alias_info): Likewise.
5590         (merge_smts_into): Likewise.
5591
5592 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5593
5594         PR 34351
5595         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
5596         * c-opts.c (c_common_handle_option): Wall enables
5597         Wvolatile-register-var.
5598         * common.opt: Move Wvolatile-register-var to...
5599         * c.opt: ...here.
5600         
5601 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5602
5603         * common.opt (Wlarger-than=): New.
5604         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
5605         -Wlarger-than=.
5606         * opts.c (common_handle_option): Handle -Wlarger-than=.
5607         * optc-gen.awk: Likewise.
5608         * opth-gen.awk: Likewise.
5609         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
5610         * tree-optimize.c (tree_rest_of_compilation): Likewise.
5611         
5612 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5613
5614         * c-common.c (match_case_to_enum_1): Add appropriate
5615         OPT_W* parameter to warning.
5616         (c_do_switch_warnings): Likewise.
5617         * c-typeck.c (warning_init): Add one more parameter following
5618         'warning' function.
5619         (push_init_level): Update call to warning_init.
5620         (pop_init_level): Likewise.
5621         (add_pending_init): Likewise.
5622         (output_init_element: Likewise.
5623
5624 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5625
5626         PR 28322
5627         * toplev.c (toplev_main): If there are warnings or error, print
5628         errors for ignored options.
5629         * opts.c (ignored_options): New static variable.
5630         (postpone_unknown_option_error): New.
5631         (print_ignored_options): New.
5632         (handle_option): Postpone errors for unknown -Wno-* options.
5633         * opts.h (print_ignored_options): Declare.
5634         
5635 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
5636
5637         * config/mips/mips.md (loadgp_blockage, blockage): Change type
5638         to "ghost".
5639
5640 2008-02-25  Richard Guenther  <rguenther@suse.de>
5641
5642         Revert:
5643         2008-02-25  Richard Guenther  <rguenther@suse.de>
5644
5645         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
5646         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
5647         (lookup_decl_from_uid): Declare.
5648         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
5649         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
5650         (decl_for_uid_map): New global hashtable mapping DECL_UID
5651         to the decl tree.
5652         (init_ttree): Allocate it.
5653         (insert_decl_to_uid_decl_map): New helper function.
5654         (make_node_stat): Insert new decls into the map.
5655         (copy_node_stat): Likewise.
5656         (lookup_decl_from_uid): New function.
5657         (print_decl_for_uid_map_statistics): New helper.
5658         (dump_tree_statistics): Call it.
5659
5660         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
5661         (referenced_var_iterator): Adjust.
5662         (FOR_EACH_REFERENCED_VAR): Adjust.
5663         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
5664         (num_referenced_vars): Adjust.
5665         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
5666         (first_referenced_var): Remove.
5667         (end_referenced_vars_p): Likewise.
5668         (next_referenced_var): Likewise.
5669         (referenced_var_iterator_set): New helper function.
5670         * tree-dfa.c (referenced_var_lookup): Adjust.
5671         (referenced_var_check_and_insert): Likewise.
5672         (remove_referenced_var): Likewise.
5673         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
5674         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5675         (verify_call_clobbering): Likewise.
5676         (verify_memory_partitions): Likewise.
5677         (init_tree_ssa): Allocate bitmap instead of hashtable for
5678         referenced_vars.
5679         (delete_tree_ssa): Adjust.
5680         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
5681         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5682         (compute_tag_properties): Likewise.
5683         (set_initial_properties): Likewise.
5684         (find_partition_for): Likewise.
5685         (update_reference_counts): Likewise.
5686         (dump_may_aliases_for): Likewise.
5687         * tree-ssa-operands.c (add_virtual_operand): Likewise.
5688         (add_call_clobber_ops): Likewise.
5689         (add_call_read_ops): Likewise.
5690         (get_asm_expr_operands): Likewise.
5691         * tree-into-ssa.c (dump_decl_set): Likewise.
5692         (update_ssa): Likewise.
5693         * tree-sra.c (scan_function): Likewise.
5694         (decide_instantiations): Likewise.
5695         (scalarize_parms): Likewise.
5696         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
5697         (dsa_named_for): Likewise.
5698         * tree-ssa-structalias.c (update_alias_info): Likewise.
5699         (merge_smts_into): Likewise.
5700
5701 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
5702
5703         PR fortran/29549
5704         * doc/invoke.texi (-fcx-limited-range): Document new option.
5705         * toplev.c (process_options): Handle -fcx-fortran-rules.
5706         * common.opt: Add documentation for -fcx-fortran-rules.
5707
5708 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
5709
5710         PR c/35162
5711         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
5712         actual behaviour and C99.
5713         
5714 2008-02-26  Ben Elliston  <bje@au.ibm.com>
5715
5716         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
5717         (ASM_CPU_POWER6_SPEC): Likewise.
5718         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
5719         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
5720         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
5721
5722 2008-02-25  Richard Guenther  <rguenther@suse.de>
5723
5724         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
5725         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
5726         (lookup_decl_from_uid): Declare.
5727         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
5728         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
5729         (decl_for_uid_map): New global hashtable mapping DECL_UID
5730         to the decl tree.
5731         (init_ttree): Allocate it.
5732         (insert_decl_to_uid_decl_map): New helper function.
5733         (make_node_stat): Insert new decls into the map.
5734         (copy_node_stat): Likewise.
5735         (lookup_decl_from_uid): New function.
5736         (print_decl_for_uid_map_statistics): New helper.
5737         (dump_tree_statistics): Call it.
5738
5739         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
5740         (referenced_var_iterator): Adjust.
5741         (FOR_EACH_REFERENCED_VAR): Adjust.
5742         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
5743         (num_referenced_vars): Adjust.
5744         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
5745         (first_referenced_var): Remove.
5746         (end_referenced_vars_p): Likewise.
5747         (next_referenced_var): Likewise.
5748         (referenced_var_iterator_set): New helper function.
5749         * tree-dfa.c (referenced_var_lookup): Adjust.
5750         (referenced_var_check_and_insert): Likewise.
5751         (remove_referenced_var): Likewise.
5752         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
5753         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5754         (verify_call_clobbering): Likewise.
5755         (verify_memory_partitions): Likewise.
5756         (init_tree_ssa): Allocate bitmap instead of hashtable for
5757         referenced_vars.
5758         (delete_tree_ssa): Adjust.
5759         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
5760         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5761         (compute_tag_properties): Likewise.
5762         (set_initial_properties): Likewise.
5763         (find_partition_for): Likewise.
5764         (update_reference_counts): Likewise.
5765         (dump_may_aliases_for): Likewise.
5766         * tree-ssa-operands.c (add_virtual_operand): Likewise.
5767         (add_call_clobber_ops): Likewise.
5768         (add_call_read_ops): Likewise.
5769         (get_asm_expr_operands): Likewise.
5770         * tree-into-ssa.c (dump_decl_set): Likewise.
5771         (update_ssa): Likewise.
5772         * tree-sra.c (scan_function): Likewise.
5773         (decide_instantiations): Likewise.
5774         (scalarize_parms): Likewise.
5775         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
5776         (dsa_named_for): Likewise.
5777         * tree-ssa-structalias.c (update_alias_info): Likewise.
5778         (merge_smts_into): Likewise.
5779
5780 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
5781
5782         PR target/35258
5783         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
5784         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
5785         * alias.h (nonoverlapping_memrefs_p): Likewise.
5786
5787 2008-02-25  Jan Beulich  <jbeulich@novell.com>
5788
5789         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
5790         * config/i386/netware-libgcc.exp: Add __bswap?i2,
5791         __emultls_get_address, __emultls_register_common,
5792         __floatundi?f, and _Unwind_GetIPInfo.
5793         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
5794         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
5795         (gen_regparm_prefix): Likewise.
5796         (i386_nlm_encode_section_info): Sync with
5797         config/i386/winnt.c:i386_pe_encode_section_info().
5798         (i386_nlm_maybe_mangle_decl_assembler_name): New.
5799         i386_nlm_mangle_decl_assembler_name): New.
5800         (netware_override_options): New.
5801         * config/i386/netware.h (netware_override_options): Declare.
5802         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
5803         (i386_nlm_mangle_decl_assembler_name): Declare.
5804         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
5805
5806 2008-02-25  Ben Elliston  <bje@au.ibm.com>
5807
5808         PR other/32948
5809         * c-decl.c (grokdeclarator): Remove unused local variables
5810         `typedef_type' and `type_as_written'.
5811         * bb-reorder.c
5812         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
5813         unused local variable `has_hot_blocks'.
5814         (fix_crossing_conditional_branches): Remove unused local variable
5815         `prev_bb'.
5816         
5817 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
5818
5819         PR middle-end/19984
5820         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
5821         using DEF_C99_BUILTIN.
5822         (BUILT_IN_NANF): Ditto.
5823         (BUILT_IN_NANL): Ditto.
5824
5825 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
5826             Revital Eres  <eres@il.ibm.com>
5827
5828         * modulo-sched.c (calculate_must_precede_follow): Address TODO
5829         regarding the order of two dependent insns in the same row.
5830
5831 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
5832
5833         * stor-layout.c (layout_decl): Do not bump the alignment of a
5834         bit-field to more than byte alignment if it is packed.
5835
5836 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
5837
5838         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
5839         e300c2 and e300c3.
5840
5841 2008-02-24  Diego Novillo  <dnovillo@google.com>
5842
5843         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
5844
5845         PR 33738
5846         * tree-vrp.c (vrp_evaluate_conditional): With
5847         -Wtype-limits, emit a warning when comparing against a
5848         constant outside the natural range of OP0's type.
5849         * c.opt (Wtype-limits): Move ...
5850         * common.opt (Wtype-limits): ... here.
5851
5852 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
5853
5854         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
5855         * config/rs6000/e300c2c3.md: New file.
5856         * config/rs6000/rs6000.c (processor_costs): Add new costs for
5857         e300c2 and e300c3.
5858         (rs6000_override_options): Add e300c2 and e300c3 cases to
5859         processor_target_table. Do not allow usage of Altivec or Spe
5860         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
5861         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
5862         * config/rs6000/rs6000.h (processor_type): Add
5863         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
5864         (ASM_CPU_SPEC): Add e300c2 and e300c3.
5865         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
5866         and ppce300c3. Include e300c2c3.md.
5867
5868 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
5869
5870         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
5871         instead of TARGET_STRICT_ALIGN.
5872
5873 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
5874
5875         * explow.c (memory_address): Assert that the generated address is
5876         valid.
5877
5878 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
5879
5880         PR target/25477
5881         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
5882         * config/darwin-ppc-ldouble-patch.def: New file.
5883         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
5884         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
5885         SUBTARGET_INIT_BUILTINS if defined.
5886         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
5887         New functions.
5888
5889 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5890
5891         PR rtl-opt/33512
5892         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
5893         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
5894
5895 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5896
5897         PR pch/35027
5898         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
5899         file" warning condtional on -Winvalid-PCH.
5900
5901 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
5902
5903         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
5904
5905 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
5906
5907         PR target/22076
5908         PR target/34256 
5909         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
5910         prevent reload from using MMX registers.
5911         (*mov<mode>_internal): Ditto.
5912         (*movv2sf_internal_rex64): Ditto.
5913         (*movv2sf_internal): Ditto.
5914
5915 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5916
5917         PR documentation/31569
5918         * doc/install.texi2html: Use makeinfo --no-number-sections.
5919
5920 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
5921
5922         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
5923         ensure that we can address an entire entity > 8 bytes.  Don't
5924         generate reg+reg addressing for such data.
5925
5926 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
5927
5928         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
5929         strings when optimizing for size, unless the target cares about
5930         alignment.
5931
5932 2008-02-22  Tom Tromey  <tromey@redhat.com>
5933
5934         * regclass.c (current_pass): Remove declaration.
5935
5936 2008-02-22  Anatoly Sokolov <aesok@post.ru>
5937
5938         * config/avr/libgcc.S (__RAMPZ__): Define.
5939         (__do_copy_data): Add for devices with 128KB code memory.
5940
5941 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
5942
5943         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
5944         Use spe_abi.
5945         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
5946
5947 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
5948
5949         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
5950         GENNONACR_REGS.
5951
5952 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5953
5954         PR c/19999
5955         * c-typeck.c (build_binary_op): Warn about floating point
5956         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
5957
5958 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
5959
5960         PR target/34526
5961         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
5962         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
5963         add vrsave.
5964         (rs6000_override_options): Set altivec_abi as default, not override,
5965         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
5966         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
5967         is used; use new member spe_abi.
5968         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
5969         spe_abi and altivec_abi.
5970
5971 2008-02-22  Tomas Bily  <tbily@suse.cz>
5972
5973         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
5974
5975 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5976
5977         PR bootstrap/35273
5978         * config.build (build_file_translate): Set to `CMD //c' only if
5979         it works.
5980         * Makefile.in (build_file_translate): Improve comment.
5981
5982 2008-02-21  Jan Hubicka  <jh@suse.cz>
5983
5984         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
5985         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
5986         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
5987
5988 2008-02-21  Michael Matz  <matz@suse.de>
5989
5990         PR target/35264
5991         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
5992
5993 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
5994
5995         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
5996         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
5997         as insn constraint.
5998         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
5999         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
6000         SSE_VEC_FLOAT_MODE_P as insn constraint.
6001         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
6002         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
6003         sse4a_movntdf using MODEF mode iterator.
6004         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
6005         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
6006         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
6007         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
6008         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
6009         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
6010         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
6011
6012 2008-02-21  Richard Guenther  <rguenther@suse.de>
6013
6014         * tree.def (PAREN_EXPR): New tree code.
6015         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
6016         and PAREN_EXPR.
6017         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
6018         * expr.c (expand_expr_real_1): Likewise.
6019         * tree-inline.c (estimate_num_insns_1): Likewise.
6020         * tree-complex.c (expand_complex_move): Likewise.
6021         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
6022         as plain x.
6023
6024 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6025
6026         PR target/35225
6027         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
6028
6029 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6030
6031         PR target/35190
6032         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
6033
6034         * config/sh/sh.c (find_barrier): Don't go past
6035         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
6036
6037 2008-02-20  DJ Delorie  <dj@redhat.com>
6038
6039         * config/h8300/h8300.md (insv): Force source operand to be a register.
6040
6041         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
6042         as a jump, not as a plain insn.
6043         
6044 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
6045
6046         * doc/invoke.texi (Warning Options): Add new option
6047         -Wframe-larger-than=.
6048         (-Wframe-larger-than): Document.
6049
6050         * flags.h (warn_frame_larger_than, frame_larger_than_size):
6051         Add declarations for new option variables.
6052
6053         * final.c (final_start_function): Check the frame size
6054         before emission and issue a Wframe-larger-than warning.
6055
6056         * opts.c (warn_frame_larger_than, frame_larger_than_size):
6057         Add definitions for new option variables.
6058         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
6059
6060         * common.opt (Wframe-larger-than=): New option.
6061
6062 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
6063
6064         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
6065         (<sse>_div<mode>3): Ditto.
6066         (<sse>_vmdiv<mode>3): Ditto.
6067         (<sse>_vmsqrt<mode>2): Ditto.
6068         (*smax<mode>3): Ditto.
6069         (sse5_frcz<mode>2): Ditto.
6070         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
6071         as insn constraint.
6072
6073 2008-02-20  Richard Guenther  <rguenther@suse.de>
6074
6075         PR middle-end/35265
6076         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
6077         be happy with INTEGRAL_TYPE_P.
6078
6079 2008-02-20  Richard Guenther  <rguenther@suse.de>
6080
6081         * fold-const.c (split_tree): Associate floatig-point expressions
6082         if flag_associative_math is set.
6083
6084 2008-02-20  Richard Guenther  <rguenther@suse.de>
6085
6086         * tree.h (fold_real_zero_addition_p): Declare.
6087         * fold-const.c (fold_real_zero_addition_p): Export.
6088         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
6089         floating-point operations with zero and one.
6090
6091 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
6092
6093         * doc/install.texi: Correct references to CFLAGS, replacing them
6094         with BOOT_CFLAGS.  Document flags used during bootstrap for
6095         target libraries.
6096                                 
6097 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
6098
6099         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
6100         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
6101         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
6102         insn constraint.
6103         (smin<mode>3): Ditto from similar patterns.
6104         (smax<mode>3): Ditto.
6105         (*ieee_smin<mode>3): Ditto.
6106         (*ieee_smax<mode>3): Ditto.
6107         * config/i386/sse.md (sse): New mode attribute.
6108         (mov<mode>): Macroize expander from movv4sf and movv2df using
6109         SSEMODEF2P mode iterator.
6110         (<sse>_movnt<mode>): Ditto from similar patterns. Use
6111         SSE_VEC_FLOAT_MODE_P as insn constraint.
6112         (storent<mode>): Ditto.
6113         (storent<mode>): Macroize expander from storentsf and storentdf using
6114         MODEF mode iterator.
6115         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
6116         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
6117         (abs<mode>2): Ditto from similar patterns.
6118         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
6119         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
6120         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
6121         (<sse>_vmsqrt<mode>2): Ditto.
6122         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
6123         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
6124         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
6125         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
6126         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
6127         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
6128         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
6129         insn constraint.
6130         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
6131         iterator and SSE_FLOAT_MODE_P as insn constraint.
6132         (<sse>_ucomi): Ditto from similar patterns.
6133         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
6134         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
6135         SSE_VEC_FLOAT_MODE_P as insn constraint.
6136         (vcond<mode>): Ditto from similar patterns.
6137         (and<mode>3, *and<mode>3): Ditto.
6138         (<sse>_nand<mode>3): Ditto.
6139         (ior<mode>3, *ior<mode>3): Ditto.
6140         (xor<mode>3, *xor<mode>3): Ditto.
6141         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
6142         iterator and SSE_FLOAT_MODE_P as insn constraint.
6143         (*nand<mode>3): Ditto from similar patterns.
6144         (*ior<mode>3): Ditto.
6145         (*xor<mode>3): Ditto.
6146
6147 2008-02-20  Ira Rosen  <irar@il.ibm.com>
6148
6149         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
6150         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
6151         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
6152
6153 2008-02-19  Jan Hubicka  <jh@suse.cz>
6154
6155         * predict.c (tree_bb_level_predictions): Remove variable next
6156         mistakely introduced by previous commit.
6157
6158 2008-02-19  Jan Hubicka  <jh@suse.cz>
6159
6160         * predict.c (predict_paths_leading_to): Rewrite.
6161         (predict_paths_for_bb): New.
6162         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
6163
6164 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6165
6166         PR bootstrap/35218
6167         * Makefile.in (build_file_translate): New.
6168         (gcc-vers.texi): Use it for translating $(abs_srcdir).
6169         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
6170         * configure.ac (build_file_translate): Substitute it.
6171         * configure: Regenerate.
6172
6173 2008-02-19  Jan Hubicka  <jh@suse.cz>
6174
6175         PR rtl-optimization/34408
6176         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
6177         invalid sharing.
6178
6179 2008-02-19  Jan Hubicka  <jh@suse.cz>
6180
6181         PR middle-end/28779
6182         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
6183         call_expr.
6184
6185 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
6186
6187         PR Ada/35186
6188         * config/i386/i386-modes.def: Revert the last DI alignment
6189         change until Ada people can look into it.
6190
6191 2008-02-19  Nick Clifton  <nickc@redhat.com>
6192
6193         * opts.c (print_specific_help): Fix typo in --help text.
6194
6195 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
6196
6197         PR target/35239
6198         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
6199         32-bit inline asm without asm alternatives for host GCC < 3.0.
6200
6201 2008-02-19  Richard Guenther  <rguenther@suse.de>
6202
6203         PR tree-optimization/34989
6204         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
6205         Allow propagation to INDIRECT_REF if we can simplify only.
6206
6207 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6208
6209         * c-common.c (warn_for_collisions_1): Use appropriate option when
6210         warning.
6211
6212 2008-02-19  Nick Clifton  <nickc@redhat.com>
6213
6214         PR other/31349
6215         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
6216         (handle_options): Fix indentation.
6217         (print_filtered_help): If no language-specific options were
6218         displayed tell the user how to list all the options supported by
6219         the language's front-end.
6220         (print_specific_help): Fix indentation and remove duplicate line.
6221         (common_handle_option): Handle the -v option.
6222         For --help enable the display of undocumented options if the -v
6223         switch has been included on the command line.
6224         For --help= check for overlaps in the arguments between the option
6225         classes and the language names and issue a warning when they
6226         cannot be disambiguated.
6227         * c.opt (v): Pass on to the common option handler.
6228
6229 2008-02-19  Revital Eres  <eres@il.ibm.com> 
6230
6231         * modulo-sched.c (sms_schedule): Change dump message when
6232         create_ddg function fails.
6233         (try_scheduling_node_in_cycle): Rename row to cycle.
6234         (print_partial_schedule): Rename CYCLE to ROW.
6235
6236 2008-02-19  Christian Bruel  <christian.bruel@st.com>
6237             Zdenek Dvorak  <ook@ucw.cz>
6238
6239         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
6240
6241 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
6242
6243         PR target/33555
6244         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
6245         (*x86_movdicc_0_m1_se): Ditto.
6246
6247 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
6248
6249         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
6250         (CMPtype): Define as __gcc_CMPtype.
6251         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
6252         (CMPtype): Define as __gcc_CMPtype.
6253
6254 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
6255
6256         Support valgrind 3.3 for --enable-checking=valgrind.
6257         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
6258         here.
6259         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
6260         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
6261         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
6262         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
6263         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
6264         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
6265         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
6266         respectively.
6267         * ggc-zone.c: Similar.
6268         * ggc-page.c: Similar.
6269
6270 2008-02-19  Paul Brook  <paul@codesourcery.com>
6271
6272         PR target/35071
6273         * config/arm/ieee754-df.S: Fix do_it typo.
6274         * config/arm/ieee754-sf.S: Fix do_it typo.
6275
6276 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
6277
6278         PR target/35189
6279         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
6280         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
6281         (OPTION_MASK_ISA_SSE_SET): Likewise.
6282         (OPTION_MASK_ISA_SSE2_SET): Likewise.
6283         (OPTION_MASK_ISA_SSE3_SET): Likewise.
6284         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
6285         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
6286         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
6287         (OPTION_MASK_ISA_SSE4_SET): Likewise.
6288         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
6289         (OPTION_MASK_ISA_SSE5_SET): Likewise.
6290         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
6291         (OPTION_MASK_ISA_MMX_UNSET): Updated.
6292         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
6293         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
6294         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
6295         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
6296         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
6297         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
6298         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
6299         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
6300         (OPTION_MASK_ISA_SSE4): Removed.
6301         (ix86_handle_option): Turn on bits in ix86_isa_flags and
6302         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
6303         (override_options): Don't turn on implied SSE/MMX bits in
6304         ix86_isa_flags.
6305
6306 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
6307
6308         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
6309         32bit host.
6310
6311 2008-02-18  Joey Ye  <joey.ye@intel.com>
6312
6313         PR middle-end/34921
6314         * tree-nested.c (insert_field_into_struct): Set type alignment
6315         to field alignment if the former is less than the latter.
6316
6317 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
6318
6319         * BASE-VER: Set to 4.4.0.
6320
6321 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6322
6323         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
6324         * doc/cfg.texi: Likewise.
6325         * doc/extend.texi: Likewise.
6326         * doc/gty.texi: Likewise.
6327         * doc/invoke.texi: Likewise.
6328         * doc/loop.texi: Likewise.
6329         * doc/md.texi: Likewise.
6330         * doc/passes.texi: Likewise.
6331         * doc/rtl.texi: Likewise.
6332         * doc/sourcebuild.texi: Likewise.
6333         * doc/tm.texi: Likewise.
6334         * doc/tree-ssa.texi: Likewise.
6335
6336 2008-02-17  Richard Guenther  <rguenther@suse.de>
6337
6338         PR middle-end/35227
6339         * tree-complex.c (init_parameter_lattice_values): Handle parameters
6340         without default definition.
6341
6342 2008-02-17  Richard Guenther  <rguenther@suse.de>
6343
6344         PR tree-optimization/35231
6345         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
6346         if A | B != 1.
6347
6348 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
6349
6350         Revert:
6351         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
6352         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
6353         libgcc_cmp_return mode.
6354
6355 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6356
6357         PR c/28368
6358         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
6359
6360 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
6361
6362         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
6363         multilibs.
6364
6365 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6366
6367         * doc/c-tree.texi: Use `@.' where appropriate.
6368         * doc/extend.texi: Likewise.
6369         * doc/install.texi: Likewise.
6370         * doc/invoke.texi: Likewise.
6371         * doc/loop.texi: Likewise.
6372         * doc/makefile.texi: Likewise.
6373         * doc/md.texi: Likewise.
6374         * doc/passes.texi: Likewise.
6375         * doc/standards.texi: Likewise.
6376         * doc/tm.texi: Likewise.
6377
6378 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
6379
6380         PR middle-end/35196
6381         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
6382         in entry_bb.
6383         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
6384         rather than in entry_bb.
6385
6386 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
6387
6388         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
6389         libgcc_cmp_return mode.
6390
6391 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
6392
6393         PR middle-end/35130
6394         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
6395         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
6396
6397 2008-02-15  Richard Guenther  <rguenther@suse.de>
6398             Zdenek Dvorak  <ook@ucw.cz>
6399
6400         PR tree-optimization/35164
6401         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
6402         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
6403         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
6404         Only propagate addresses which do not have abnormal SSA_NAMEs
6405         in their operands.
6406
6407 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
6408
6409         PR target/35088
6410         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
6411
6412 2008-02-15  Jan Hubicka  <jh@suse.cz>
6413
6414         PR middle-end/35149
6415         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
6416
6417 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
6418
6419         PR middle-end/34621
6420         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
6421         when calculating alignment_pad.
6422
6423 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
6424
6425         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
6426         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
6427         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
6428         and STACK_BOUNDARY define.
6429
6430 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
6431
6432         PR preprocessor/35061
6433         * c-pragma.c (handle_pragma_pop_macro): Check that
6434         pushed_macro_table has been allocated.
6435
6436 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
6437
6438         PR middle-end/35136
6439         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
6440         (force_gimple_operand): Likewise.
6441         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
6442         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
6443         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
6444         (find_interesting_uses_address): Check addressability and alignment
6445         of the base expression only after substituting bases of IVs into it.
6446
6447 2008-02-14  Michael Matz  <matz@suse.de>
6448
6449         PR target/34930
6450         * function.c (instantiate_virtual_regs_in_insn): Reload address
6451         before falling back to reloading the whole operand.
6452
6453 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
6454
6455         * config/s390/s390.c (s390_mainpool_start): Emit the pool
6456         before the first section switch note.
6457
6458 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6459
6460         * doc/bugreport.texi: Update copyright years.
6461         * doc/c-tree.texi: Likewise.
6462         * doc/cfg.texi: Likewise.
6463         * doc/cpp.texi: Likewise.
6464         * doc/cppinternals.texi: Likewise.
6465         * doc/fragments.texi: Likewise.
6466         * doc/frontends.texi: Likewise.
6467         * doc/gcc.texi: Likewise.
6468         * doc/gty.texi: Likewise.
6469         * doc/hostconfig.texi: Likewise.
6470         * doc/implement-c.texi: Likewise.
6471         * doc/libgcc.texi: Likewise.
6472         * doc/loop.texi: Likewise.
6473         * doc/makefile.texi: Likewise.
6474         * doc/options.texi: Likewise.
6475         * doc/passes.texi: Likewise.
6476         * doc/rtl.texi: Likewise.
6477         * doc/sourcebuild.texi: Likewise.
6478         * doc/standards.texi: Likewise.
6479         * doc/tree-ssa.texi: Likewise.
6480         * doc/trouble.texi: Likewise.
6481
6482         * doc/extend.texi: Use @: or add comma where appropriate.
6483         * doc/invoke.texi: Likewise.
6484         * doc/tm.texi: Likewise.
6485
6486 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
6487
6488         PR target/34393
6489         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
6490         to a reg.
6491
6492 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
6493
6494         * doc/md.texi (clz, ctz): Add reference.
6495         * doc/rtl.texi (clz, ctz): Likewise.
6496
6497 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6498
6499         PR other/35148
6500         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
6501         srcdir.
6502
6503 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
6504
6505         * config/s390/s390.c (struct constant_pool): New field
6506         emit_pool_after added.
6507         (s390_mainpool_start): Set the emit_pool_after flag according
6508         to the section switch notes.
6509         (s390_mainpool_finish): Consider emit_pool_after when emitting
6510         the literal pool at the end of the function.
6511         (s390_chunkify_start): Force literal pool splits at section
6512         switch notes.
6513
6514 2008-02-13  Michael Matz  <matz@suse.de>
6515
6516         PR debug/35065
6517         * var-tracking.c (clobber_variable_part): Correctly traverse the
6518         list.
6519
6520 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6521
6522         PR 29673
6523         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
6524         Add -fdump-ipa-inline.
6525         * tree-dump.c (dump_files): Remove tree-inlined dump.
6526         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
6527         
6528 2008-02-12  Richard Guenther  <rguenther@suse.de>
6529
6530         PR tree-optimization/35171
6531         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
6532         default defs.
6533
6534 2008-02-12  Richard Guenther  <rguenther@suse.de>
6535
6536         PR middle-end/35163
6537         * fold-const.c (fold_widened_comparison): Use get_unwidened in
6538         value-preserving mode.  Disallow final truncation.
6539
6540 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
6541
6542         PR middle-end/35136
6543         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
6544         code from here to...
6545         (force_gimple_operand): ...here.
6546
6547 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
6548
6549         PR c++/35144
6550         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
6551         non-compatible pointers.
6552         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
6553         different FIELD_DECLs, try harder by comparing field offsets, sizes
6554         and types.
6555
6556         PR inline-asm/35160
6557         * function.c (match_asm_constraints_1): Don't replace the same input
6558         multiple times.
6559
6560 2008-02-12  Anatoly Sokolov <aesok@post.ru>
6561
6562         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
6563         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
6564         (expand_epilogue): Restore RAMPZ register.
6565         * config/avr/avr.md (RAMPZ_ADDR): New constant.
6566
6567 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
6568
6569         * config/i386/cygwin.asm: (__alloca): Correct calling
6570         convention and alignment.
6571         (__chkstk): Force 8 byte stack alignment.
6572
6573 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
6574             Richard Guenther  <rguenther@suse.de>
6575
6576         PR tree-optimization/33992
6577         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
6578         the zero we compare against.
6579
6580 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
6581
6582         PR libfortran/35063
6583         * gthr-win32.h (__gthread_mutex_destroy_function): New function
6584         to CloseHandle after unlocking to prevent accumulation of handle
6585         count.
6586
6587 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6588
6589         PR middle_end/34150
6590         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
6591         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
6592         and update LABEL_NUSES during and after reload.
6593
6594 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
6595
6596         PR middle-end/34627
6597         * combine.c (simplify_if_then_else): Make sure the comparison is
6598         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
6599
6600 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
6601
6602         PR bootstrap/35051
6603         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
6604         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
6605         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
6606         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
6607         * tree.h (get_type_static_bounds): Likewise.
6608
6609 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6610
6611         * doc/invoke.texi (Option Summary, C++ Dialect Options)
6612         (Objective-C and Objective-C++ Dialect Options, Warning Options):
6613         Make -Wfoo language annotations match what the compiler outputs.
6614
6615 2008-02-08  Sa Liu  <saliu@de.ibm.com>
6616
6617         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
6618         intrinsics spu_convts, spu_convtu, spu_convtf.
6619
6620 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
6621
6622         * doc/extend.texi (Function Attributes) <noinline>: Mention
6623         asm ("") as method to keep calls.
6624
6625 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6626
6627         PR other/32754
6628         * doc/options.texi (Options): Replace references to opts.sh with
6629         optc-gen.awk.
6630         * opts-common.c: Likewise.
6631         * optc-gen.awk: Likewise.
6632         
6633 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
6634
6635         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
6636
6637 2008-02-07  Richard Henderson  <rth@redhat.com>
6638
6639         PR rtl-opt/33410
6640         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
6641         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
6642         funny mode.
6643
6644 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
6645
6646         PR tree-optimization/35085
6647         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
6648         for operand entry oe2 in addition to operand entry oe3 in order to
6649         expose more opportunities for vectorizer sum reduction.
6650
6651 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6652
6653         PR other/35107
6654         * Makefile.in (LIBS): Remove $(GMPLIBS).
6655         (cc1-dummy, cc1): Add $(GMPLIBS).
6656
6657 2008-02-06  Jan Hubicka  <jh@suse.cz>
6658
6659         PR target/23322
6660         * i386.md (moddf_integer): Do not produce partial memory stalls for
6661         targets where it hurts.
6662
6663 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
6664
6665         PR target/35083
6666         * optabs.c (expand_float): Do not check for decimal modes when
6667         expanding unsigned integer through signed conversion.
6668
6669 2008-02-06  Nick Clifton  <nickc@redhat.com>
6670
6671         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
6672         inside the clobber with a match_operand and duplicated operand
6673         number in the constraint.
6674         (ineqbranchsi): Delete redundant comment.
6675
6676 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
6677
6678         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
6679         builtin_define ("__USE_INIT_FINI__").
6680         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
6681         -msx multilibs.
6682         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
6683
6684 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6685
6686         PR documentation/30330
6687         * doc/invoke.texi (C++ Dialect Options)
6688         (Objective-C and Objective-C++ Dialect Options, Warning Options):
6689         For each warning option -Wfoo that allows -Wno-foo, ensure both
6690         -Wfoo and -Wno-foo are listed in the option index.  Fix index
6691         entry of -Wswitch-default, index -Wnormalized= including the
6692         `=', and -Wlarger-than-@var{len} including @var{len}.
6693
6694 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
6695
6696         * config/i386/i386.md (floatunssisf2): Use
6697         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
6698         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
6699         Macroize expander using MODEF mode iterator.
6700
6701 2008-02-05  Diego Novillo  <dnovillo@google.com>
6702
6703         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
6704
6705         PR 33738
6706         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
6707
6708 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6709
6710         PR other/35070
6711         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
6712
6713 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
6714
6715         PR target/35084
6716         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
6717         to indicate if a message should be generated.
6718         (init_cumulative_args): Updated.
6719         (function_value_32): Likewise.
6720
6721 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
6722
6723         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
6724
6725 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
6726
6727         PR target/35083
6728         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
6729         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
6730
6731 2008-02-04  Diego Novillo  <dnovillo@google.com>
6732
6733         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
6734
6735         PR 33738
6736         * tree-vrp.c (vrp_evaluate_conditional): With
6737         -Wtype-limits, emit a warning when comparing against a
6738         constant outside the natural range of OP0's type.
6739
6740 2008-02-04  Richard Guenther  <rguenther@suse.de>
6741
6742         PR middle-end/33631
6743         * expr.c (count_type_elements): Give for unions instead of
6744         guessing.
6745
6746 2008-02-04  Richard Guenther  <rguenther@suse.de>
6747
6748         PR middle-end/35043
6749         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
6750         to TYPE_DOMAINs base type instead of using bitsizetype here.
6751
6752 2008-02-03  Jason Merrill  <jason@redhat.com>
6753
6754         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
6755
6756 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6757
6758         PR other/29972
6759         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
6760         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
6761         (RS/6000 and PowerPC Options): Fix typos and markup.
6762         * doc/passes.texi (Tree-SSA passes): Likewise.
6763
6764 2008-02-02  Michael Matz  <matz@suse.de>
6765
6766         PR target/35045
6767         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
6768         from record_last_reg_set_info.
6769         (record_last_reg_set_info): Take an RTX argument, iterate over all
6770         constituent hardregs.
6771         (record_last_set_info, record_opr_changes): Change calls to
6772         new signature or to record_last_reg_set_info_regno.
6773
6774 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
6775
6776         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
6777
6778 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
6779
6780         PR rtl-optimization/34773
6781         * reg-notes.def (EQUAL): Mention significance of combination of
6782         REG_EQUAL and REG_RETVAL.
6783         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
6784         insn that has a REG_RETVAL.
6785
6786 2008-02-01  Roger Sayle  <roger@eyesopen.com>
6787
6788         PR bootstrap/33781
6789         * configure.ac (--enable-fixed-point): Disable unless explicitly
6790         requested on IRIX.
6791         * configure: Regenerate.
6792
6793 2008-02-01  Richard Guenther  <rguenther@suse.de>
6794
6795         PR other/35042
6796         * invoke.texi (-finline-limit): Remove no longer true parts
6797         of the documentation.  Note that there is no default value.
6798
6799 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
6800             Mark Mitchell  <mark@codesourcery.com>
6801             Ben Elliston  <bje@au.ibm.com>
6802
6803         PR c/29326
6804         * doc/extend.texi (Other Builtins): Document.
6805
6806 2008-01-31  Tom Browder <tom.browder@gmail.com>
6807
6808         * doc/c-tree.texi (Types): Fix grammar.
6809         (Expression trees): Ditto.
6810         * doc/passes.texi (Tree-SSA passes): Ditto.
6811         
6812         * doc/configterms.texi (Configure Terms): Fix typo.
6813         * doc/cpp.texi (Common Predefined Macros): Ditto.
6814         * doc/md.texi (Machine Constraints): Ditto.
6815         
6816         * doc/makefile.texi (Makefile): Add comma.
6817
6818 2008-01-31  Tom Browder  <tom.browder@gmail.com>
6819             Gerald Pfeifer  <gerald@pfeifer.com>
6820         
6821         * doc/sourcebuild.texi (Front End): Remove references to CVS
6822         and CVSROOT/modules.
6823         (Texinfo Manuals): Replace reference to CVS by one to SVN.
6824         (Back End): Remove reference to CVS.
6825
6826 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
6827
6828         PR target/34900
6829         * config/mips/mips.c (gen_load_const_gp): New function, taking a
6830         comment from...
6831         (mips16_gp_pseudo_reg): ...here.
6832         * config/mips/mips.md (load_const_gp): Replace with...
6833         (load_const_gp_<mode>): ...this :P-based insn.
6834
6835 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6836
6837         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
6838         options. Minor fixes.
6839         (-std): Move reference to standards closer to where language
6840         standards are first mentioned.
6841         
6842 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
6843
6844         PR rtl-optimization/34995
6845         * reload.c (alternative_allows_const_pool_ref): Take an rtx
6846         parameter and return a bool.  If the rtx parameter is nonnull,
6847         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
6848         (find_reloads): Update call accordingly.  Pass the new operand
6849         if it needed no address reloads, otherwise pass null.
6850
6851 2008-01-30  Richard Henderson  <rth@redhat.com>
6852
6853         PR c/34993
6854         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
6855         for unbounded arrays.
6856
6857 2008-01-30  Silvius Rus  <rus@google.com>
6858
6859         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
6860
6861 2008-01-30  Jan Hubicka  <jh@suse.cz>
6862
6863         PR target/34982
6864         * i386.c (init_cumulative_args): Use real function declaration when
6865         calling locally.
6866
6867 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
6868
6869         PR rtl-optimization/34998
6870         * global.c (build_insn_chain): Treat non-subreg_lowpart
6871         SUBREGs of pseudos as clobbering all the words covered by the
6872         SUBREG, not just all the bytes.
6873         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
6874         original df_ref rather than an extract parameter.
6875         (global_conflicts): Update call accordingly.
6876
6877 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
6878
6879         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
6880         the overflow check to make it easier to read.
6881         (__fixtfdi): Change the type of the ll member in union
6882         long_double to UDItype_x.
6883
6884 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
6885
6886         PR middle-end/34969
6887         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
6888         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
6889         * tree-inline.c (fold_marked_statements): Call
6890         cgraph_update_edges_for_call_stmt if folding a call statement.
6891         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
6892         debug_generic_stmt calls, reset it back afterwards.
6893
6894         PR c/35017
6895         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
6896         static decls.
6897         * c-typeck.c (build_external_ref): Don't pedwarn about
6898         static vars in current function's scope.
6899
6900 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
6901
6902         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
6903
6904 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
6905
6906         PR c/35002
6907         * ipa-struct-reorg.c: Fix spelling.
6908         * params.def: Ditto.
6909
6910 2008-01-29  Richard Guenther  <rguenther@suse.de>
6911
6912         PR middle-end/35006
6913         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
6914         field.
6915         * tree-inline.c (remap_type): Increment remapping_type_depth
6916         around remapping types.
6917         (copy_body_r): Only add referenced variables if they are referenced
6918         from code, not types.
6919
6920 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
6921
6922         PR c++/34055
6923         PR c++/34103
6924         PR c++/34219
6925         PR c++/34606
6926         PR c++/34753
6927         PR c++/34754
6928         PR c++/34755
6929         PR c++/34919
6930         PR c++/34961
6931         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
6932         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
6933
6934 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
6935
6936         PR target/34412
6937         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
6938         pointer for tiny stack.
6939
6940 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
6941
6942         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
6943
6944 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
6945
6946         * config/vx-common.h: Fix typo in comment.
6947
6948 2008-01-28  Ian Lance Taylor  <iant@google.com>
6949
6950         PR c++/34862
6951         PR c++/33407
6952         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
6953         coalesce pointers if they have different DECL_NO_TBAA_P values.
6954         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
6955         between variables with different DECL_NO_TBAA_P values.
6956
6957 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
6958
6959         PR 31535
6960         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
6961         are not legitimate small data references on SPE targets.
6962
6963 2008-01-28  David Daney  <ddaney@avtrex.com>
6964
6965         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
6966
6967 2008-01-28  David Daney  <ddaney@avtrex.com>
6968
6969         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
6970
6971 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
6972
6973         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
6974         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
6975         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
6976         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
6977         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
6978         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
6979         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
6980         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
6981
6982 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
6983
6984         * basic-block.h (condjump_equiv_p): Fix comment.
6985
6986 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
6987
6988         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
6989         print_generic_stmt_indented): Fix comment.
6990
6991 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
6992
6993         * configure.ac (__stack_chk_fail): Add detecion for availability
6994         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
6995         * configure: Regenerate.
6996
6997 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
6998
6999         PR middle-end/34688
7000         * final.c (output_addr_const): Handle TRUNCATE.
7001
7002 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
7003
7004         PR target/34711
7005         * tree-ssa-loop-ivopts.c (comp_cost): New type.
7006         (zero_cost, infinite_cost): New constants.
7007         (struct cost_pair): Change type of cost to comp_cost.
7008         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
7009         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
7010         New functions.
7011         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
7012         split_address_cost, ptr_difference_cost, difference_cost,
7013         get_computation_cost_at, get_computation_cost,
7014         determine_use_iv_cost_generic, determine_use_iv_cost_address,
7015         determine_use_iv_cost_condition, determine_use_iv_costs,
7016         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
7017         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
7018         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
7019         Change type of cost to comp_cost.
7020         (determine_iv_cost): Increase cost of non-original ivs, instead
7021         of decreasing the cost of original ones.
7022         (get_address_cost): Indicate the complexity of the addressing mode 
7023         in comp_cost.
7024         (try_add_cand_for): Prefer using ivs not specific to some object.
7025         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
7026
7027 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
7028             Janis Johnson  <janis187@us.ibm.com>
7029
7030         PR target/34814
7031         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
7032         (TARGET_INSTANTIATE_DECLS): Likewise.
7033         * target.h (expand_to_rtl_hook): New target hook.
7034         (instantiate_decls): Likewise.
7035         * function.c (instantiate_decl): Make non-static.  Rename to...
7036         (instantiate_decl_rtl): ... this.
7037         (instantiate_expr): Use instantiate_decl_rtl.
7038         (instantiate_decls_1): Likewise.
7039         (instantiate_decls): Likewise.
7040         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
7041         * function.h (instantiate_decl_rtl): Add prototype.
7042         * cfgexpand.c (target.h): New include.
7043         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
7044         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
7045         (TARGET_INSTANTIATE_DECLS): Likewise.
7046         (TARGET_INITIALIZER): New target hooks added.
7047         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
7048         New prototype.
7049         * config/rs6000/rs6000.c (tree-flow.h): New include.
7050         (machine_function): Add sdmode_stack_slot field.
7051         (rs6000_alloc_sdmode_stack_slot): New function.
7052         (rs6000_instantiate_decls): Likewise.
7053         (rs6000_secondary_memory_needed_rtx): Likewise.
7054         (rs6000_check_sdmode): Likewise.
7055         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
7056         (TARGET_INSTANTIATE_DECLS): Likewise.
7057         (rs6000_hard_regno_mode_ok): Allow SDmode.
7058         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
7059         (rs6000_emit_move): Handle SDmode.
7060         (function_arg_advance): Likewise.
7061         (function_arg): Likewise.
7062         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
7063         SDmode var args for 32-bit compiles.
7064         (rs6000_secondary_reload_class): Handle SDmode.
7065         (rs6000_output_function_epilogue): Likewise.
7066         (rs6000_function_value): Simplify if statement.
7067         (rs6000_libcall_value): Likewise.
7068         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
7069         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
7070         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
7071         (movsd_hardfloat): New define_insn.
7072         (movsd_softfloat): Likewise.
7073         (movsd_store): Likewise.
7074         (movsd_load): Likewise.
7075         (extendsddd2): Likewise.
7076         (extendsdtd2): Likewise.
7077         (truncddsd2): Likewise.
7078         (movdd_hardfloat64): Fixup comment.
7079         (UNSPEC_MOVSD_LOAD): New constant.
7080         (UNSPEC_MOVSD_STORE): Likewise.
7081
7082 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
7083
7084         PR c++/34965
7085         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
7086         TRUTH_XOR_EXPR.
7087         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
7088         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
7089         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
7090         and TRUTH_XOR_EXPR.
7091
7092 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
7093
7094         PR target/34794
7095         * config.gcc: Separate AIX 5.3 from AIX 6.1.
7096         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
7097         __LONGDOUBLE128 too.
7098         * config/rs6000/aix61.h: New file.
7099
7100 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
7101
7102         PR rtl-optimization/34959
7103         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
7104         popcount and parity rtxes the same mode as their operand.
7105         Truncate or extend the result to the return value's mode
7106         if necessary.
7107
7108 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
7109
7110         PR target/34981
7111         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
7112         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
7113         to GOT_VERSION_REGNUM.
7114         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
7115         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
7116         * config/mips/mips.c (mips_emit_call_insn): New function.
7117         (mips_call_tls_get_addr): Call mips_expand_call directly.
7118         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
7119         emit_call_insn.
7120         (mips16_build_call_stub): Likewise.  Return the call insn or null.
7121         (mips_expand_call): Update the call to mips16_build_call_stub
7122         accordingly and a remove redundant condition.  Assert that MIPS16
7123         stubs do not use lazy binding.  Use mips_emit_call_insn and return
7124         the call insn.
7125         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
7126         TARGET_USE_GOT.
7127         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
7128         (mips_avoid_hazard): Remove hazard_set handling.
7129         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
7130         (UNSPEC_RESTORE_GP): ...this.
7131         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
7132         (FAKE_CALL_REGNO): Rename to...
7133         (GOT_VERSION_REGNUM): ...this.
7134         (type): Add "ghost" value.  Add an associated insn reservation.
7135         (hazard_set): Remove.
7136         (exception_receiver): Rename to...
7137         (restore_gp): ...this and update the unspec identifier accordingly.
7138         (exception_receiver, nonlocal_got_receiver): New expanders.
7139         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
7140         FAKE_CALL_REGNO.  Remove hazard_set attribute.
7141         (set_got_version, update_got_version): New patterns.
7142
7143 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
7144
7145         PR target/34970
7146         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
7147
7148 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
7149
7150         PR other/31955
7151         * doc/install.texi2html: Generate gcc-vers.texi.
7152
7153 2008-01-25  DJ Delorie  <dj@redhat.com>
7154
7155         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
7156
7157 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
7158
7159         * config/c4x: Remove directory.
7160         * config.gcc (crx-*, mt-*): Mark obsolete.
7161         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
7162         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
7163         sh-*-rtemscoff*): Remove cases.
7164         * defaults.h (C4X_FLOAT_FORMAT): Remove.
7165         * real.c (encode_c4x_single, decode_c4x_single,
7166         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
7167         c4x_extended_format): Remove.
7168         * real.h (c4x_single_format, c4x_extended_format): Remove.
7169         * doc/extend.texi (interrupt, naked): Remove mention of attributes
7170         on C4x.
7171         (Pragmas): Remove comment about c4x pragmas.
7172         * doc/install.texi (c4x): Remove target-specific instructions.
7173         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
7174         * doc/md.texi (Machine Constraints): Remove C4x documentation.
7175         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
7176         refer to C4x source files as examples.
7177         (C4X_FLOAT_FORMAT): Remove documentation.
7178
7179 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
7180
7181         * config/bfin/bfin.c (override_options): Reorder tests so that
7182         flag_pic gets enabled for -msep-data.
7183
7184 2008-01-25  Richard Guenther  <rguenther@suse.de>
7185
7186         PR middle-end/32244
7187         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
7188         to its bitfield precision if required.
7189
7190 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
7191
7192         PR middle-end/33880
7193         * tree-nested.c (walk_omp_for): New function.
7194         (convert_nonlocal_reference, convert_local_reference): Call
7195         walk_omp_for on OMP_FOR.
7196         (convert_call_expr): Call walk_body on OMP_FOR's
7197         OMP_FOR_PRE_INIT_BODY.
7198
7199 2008-01-25  Richard Guenther  <rguenther@suse.de>
7200
7201         PR tree-optimization/34966
7202         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
7203         default defs and PHI_NODEs we have to insert after the
7204         defining statement.
7205
7206 2008-01-24  Nick Clifton  <nickc@redhat.com>
7207
7208         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
7209         Provide a default definition.
7210         (LIBGCC2_UNITS_PER_WORD): Likewise.
7211
7212         * config/stormy16/stormy16.c: Include df.h for the prototype
7213         for df_regs_ever_live_p.
7214         (xstormy16_expand_builtin_va_start): Convert the stack offset
7215         into a component_ref and then use POINTER_PLUS_EXPR to add it
7216         to the incoming_virtual_args_rtx.
7217         (xstormy16_gimplify_va_arg_expr): Rename to
7218         xstormy16_gimplify_va_arg_expr.
7219         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
7220         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
7221         xstormy16_gimplify_va_arg_expr.
7222         Fix up some formatting issues.
7223
7224         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
7225         Move to predicates.md.
7226         (xs_hi_general_operand): Likewise.
7227         (xs_hi_nonmemory_operand): Likewise.
7228         * config/stormy16/predicates.md:
7229         (xstormy16_carry_plus_operand): New predicate.
7230         (xs_hi_general_operand): New predicate.
7231         (xs_hi_nonmemory_operand): New predicate.
7232         * config/stormy16/stormy16-protos.h:
7233         (xstormy16_carry_plus_operand): Delete prototype.
7234         (xs_hi_general_operand): Likewise.
7235         (xs_hi_nonmemory_operand): Likewise.
7236
7237         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
7238         modifiers as they are no longer needed and they can trigger
7239         reload spill failures.
7240
7241         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
7242         with a match_operand in order to help reload.
7243
7244         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
7245         constraint with 'e' for the 8th alternative as this version of
7246         the mov.w instruction only accepts the lower 8 registers.
7247
7248 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
7249
7250         PR target/34856
7251         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
7252         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
7253         vector elements.
7254
7255 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
7256
7257         PR middle-end/33333
7258         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
7259
7260 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
7261
7262         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
7263         New functions.
7264         (remove_structure): Update allocations list before removing structure.
7265         
7266 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
7267
7268         * ipa-struct-reorg.c (is_safe_cond_expr, 
7269         create_new_stmts_for_cond_expr): Use integer_zerop function,
7270         that recognize not only zero-pointer, but zero-integer too.
7271
7272 2008-01-25  Ben Elliston  <bje@au.ibm.com>
7273
7274         PR other/22232
7275         * fixproto: Escape "." in sed expression that strips leading "./".
7276
7277 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
7278
7279         PR driver/34904
7280         * gcc.c (SWITCH_OK): Removed.
7281         (SWITCH_LIVE): Changed to bit.
7282         (SWITCH_FALSE): Likewise.
7283         (SWITCH_IGNORE): Likewise.
7284         (switchstr): Change live_cond to unsigned int.
7285         (process_command): Replace SWITCH_OK with 0.
7286         (do_self_spec): Likewise.
7287         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
7288         (give_switch): Likewise.
7289         (used_arg): Likewise.
7290         (do_spec_1): Set the SWITCH_IGNORE bit.
7291         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
7292         bits.  Set the SWITCH_LIVE bit.
7293
7294 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
7295
7296         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
7297
7298 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
7299
7300         PR tree-optimization/34472
7301         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
7302         parameter to a "bool *" and set *DATA to false if there is
7303         an unsafe access.  Do not delete the structure here.
7304         (check_cond_exprs): Delete it here instead.
7305         (check_cond_exprs, exclude_cold_structs): Do not increase
7306         I when removing a structure.
7307
7308 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
7309
7310         PR target/34856
7311         * config/i386/i386.c (ix86_expand_vector_init): Consider only
7312         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
7313
7314 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
7315
7316         PR middle-end/34934
7317         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
7318         a fixed vector for stack.
7319
7320 2008-01-24  Ben Elliston  <bje@au.ibm.com>
7321
7322         PR c++/25701
7323         * doc/gcc.texi (Software development): Add a direntry for g++.
7324         
7325 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
7326
7327         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
7328         stale and straggling -fforce-addr comments above.
7329
7330         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
7331         define.
7332         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
7333         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
7334
7335 2008-01-23  Michael Matz  <matz@suse.de>
7336
7337         PR debug/34895
7338         * dwarf2out.c (force_type_die): Use modified_type_die instead of
7339         gen_type_die.
7340
7341 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
7342
7343         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
7344         malloc result type.
7345
7346 2008-01-23 Anatoly Sokolov <aesok@post.ru>
7347
7348         * config/avr/avr.c (avr_current_arch): New variable.
7349         (avr_arch_types): Add 'avr31' and 'avr51' entries.
7350         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
7351         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
7352         (avr_override_options): Init 'avr_current_arch'. 
7353         (base_arch_s): Move from here...
7354         * config/avr/avr.h (base_arch_s): ... here. Add new members 
7355         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
7356         'mega' to 'have_jmp_call'.
7357         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
7358         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
7359         macros.
7360         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
7361         architectures.
7362         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
7363         MULTILIB_MATCHES): (Ditto.).
7364
7365 2008-01-23  Richard Guenther  <rguenther@suse.de>
7366
7367         PR middle-end/31529
7368         * cgraphunit.c (cgraph_reset_node): Always mark the node
7369         not reachable if it is not queued already.
7370
7371 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
7372
7373         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
7374         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
7375         (cputype_selected): New static variable.
7376         (bfin_handle_option): Set it if -mcpu is used.
7377         (override_option): Select default set of workarounds if no cpu type
7378         selected on the command line.
7379         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
7380
7381         From  Michael Frysinger  <michael.frysinger@analog.com>
7382         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
7383         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
7384
7385         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
7386         for bf547, bf523, bf524, and bf526.
7387         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
7388         bf526.
7389         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
7390         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
7391         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
7392         __ADSPBF547__ and __ADSPBF54x__ for bf547.
7393         * doc/invoke.texi (Blackfin Options): Document that
7394         -mcpu now accept bf547, bf523, bf524, and bf526.
7395
7396 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
7397
7398         PR rtl-optimization/34628
7399         * combine.c (try_combine): Stop and undo after the first combination
7400         if an autoincrement side-effect on the first insn has effectively
7401         been lost.
7402
7403 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
7404
7405         PR target/34529
7406         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
7407         Offset addresses are not valid for Altivec or paired float modes.
7408
7409 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
7410
7411         PR c++/34607
7412         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
7413         if DECL_INITIAL (decl) is error_mark_node.
7414
7415         PR c++/34914
7416         * c-common.c (handle_vector_size_attribute): Only allow
7417         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
7418         the same way as pointer, array etc. types.
7419         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
7420
7421         PR c++/34917
7422         * tree.c (build_type_attribute_qual_variant): Call
7423         build_qualified_type if attributes are equal, but quals are not.
7424
7425 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7426
7427         PR 32102
7428         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
7429         * flags.h (warn_strict_aliasing): Remove.
7430         (warn_strict_overflow): Remove.
7431         * opts.c (warn_strict_aliasing): Remove.
7432         (warn_strict_overflow): Remove.
7433         * c-opts.c (c_common_handle_option): -Wall only sets
7434         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
7435         (c_common_post_options): Give default values to -Wstrict-aliasing
7436         and -Wstrict-overflow if they are uninitialized.
7437         * common.opt (Wstrict-aliasing): Specify Var and Init.
7438         (Wstrict-overflow): Likewise.
7439
7440 2008-01-22  Kenneth Zadeck <zadeck@naturalbridge.com>
7441
7442         PR rtl-optimization/26854
7443         PR rtl-optimization/34400
7444         PR rtl-optimization/34884
7445         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
7446         DF_RD->gen.
7447         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
7448         (df_rd_bb_info.expanded_lr_out): Deleted
7449         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
7450         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
7451         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
7452         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
7453         Removed code to allocate, initialize or free expanded_lr_out.
7454         (df_rd_bb_local_compute_process_def): Restructured to make more
7455         understandable.
7456         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
7457         sets if the sets are being trimmed.
7458
7459 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
7460
7461         PR bootstrap/32287
7462         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
7463         (as_vers): Likewise.
7464         * configure: Regenerated.
7465
7466 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7467
7468         PR middle-end/33092
7469         * tree-pass.h (pass_build_alias): New pass.
7470         * tree-ssa-alias.c (gate_build_alias): New.
7471         (pass_build_alias): New.
7472         * passes.c (init_optimization_passes): Add pass_build_alias after
7473         pass_create_structure_vars.
7474
7475 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
7476
7477         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
7478         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
7479         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
7480         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
7481         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
7482         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
7483         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
7484         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
7485         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
7486         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
7487         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
7488         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
7489         * config/s390/s390.md (FP_ALL): New mode iterator.
7490         (_d): New mode attribute.
7491         ("*signbit<mode>2>"): Changed mode of first operand.
7492         ("isinf<mode>2"): Changed mode of first operand.
7493         ("*TDC_insn"): Adaptation for DFP modes.
7494
7495 2008-01-22  Ben Elliston  <bje@au.ibm.com>
7496
7497         * tree.c (check_qualified_type): Improve function description.
7498
7499 2008-01-21  Jason Merrill  <jason@redhat.com>
7500
7501         PR c++/34196
7502         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
7503         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
7504         if it is set.
7505
7506 2008-01-21  DJ Delorie  <dj@redhat.com>
7507
7508         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
7509         return zero.
7510
7511 2008-01-21  Richard Guenther  <rguenther@suse.de>
7512
7513         PR middle-end/34856
7514         * tree-cfg.c (verify_expr): Allow all invariant expressions
7515         instead of just constant class ones as reference argument.
7516         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
7517         like any other constant.
7518         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
7519
7520 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
7521
7522         * regmove.c (fixup_match_1): Update call crossed frequencies.
7523
7524 2008-01-21  Richard Guenther  <rguenther@suse.de>
7525
7526         PR c/34885
7527         * tree-inline.c (setup_one_parameter): Deal with mismatched
7528         types using a VIEW_CONVERT_EXPR.
7529
7530 2008-01-21  Alon Dayan  <alond@il.ibm.com>
7531             Olga Golovanevsky  <olga@il.ibm.com>
7532         
7533         PR tree-optimization/34701
7534         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
7535         when the structure size is not a power of 2.
7536
7537 2008-01-20  Kenneth Zadeck <zadeck@naturalbridge.com>
7538
7539         * doc/install.texi: Add doc for --enable-checking=df.
7540         
7541 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7542
7543         PR rtl-optimization/34808
7544         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
7545
7546 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
7547
7548         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
7549         input.
7550
7551 2008-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
7552
7553         PR rtl-optimization/26854
7554         PR rtl-optimization/34400
7555         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
7556         DF_RD->gen.
7557         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
7558         (df_rd_bb_info.expanded_lr_out): New.
7559         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
7560         * loop_iv.c (iv_analysis_loop_init): Ditto.
7561         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
7562         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
7563         Added code to allocate, initialize or free expanded_lr_out.
7564         (df_rd_bb_local_compute_process_def): Restructured to make
7565         more understandable.
7566         (df_rd_confluence_n): Add code to do nothing with fake edges and
7567         code to no apply invalidate_by_call sets if the sets are being trimmed.
7568         (df_lr_local_finalize): Renamed to df_lr_finalize.
7569         (df_live_local_finalize): Renamed to df_live_finalize.
7570
7571 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
7572
7573         PR target/34831
7574         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
7575         deciding whether to use reciprocal instructions.
7576
7577 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
7578
7579         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
7580         dwarf2out_note_section_used if cold_text_section is NULL.
7581
7582 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
7583
7584         PR gcov-profile/34610
7585         * tree-cfg.c (make_edges): Mark both outgoing edges from
7586         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
7587         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
7588         from OMP_FOR and OMP_CONTINUE outgoing edges.
7589
7590         * tree-profile.c (tree_profiling): Return early if
7591         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
7592         at the end.
7593         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
7594         from cfun to child_cfun.
7595         * function.h (struct function): Add after_tree_profile bit.
7596
7597 2008-01-19 Anatoly Sokolov <aesok@post.ru>
7598
7599         * config/avr/avr.S (_exit): Disable interrupt.
7600
7601 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
7602             Steven Bosscher  <stevenb.gcc@gmail.com>
7603
7604         PR rtl-optimization/26854
7605         PR rtl-optimization/34400
7606         * df-problems.c (df_live_scratch): New scratch bitmap.
7607         (df_live_alloc): Allocate df_live_scratch when doing df_live.
7608         (df_live_reset): Clear the proper bitmaps.
7609         (df_live_bb_local_compute): Only process the artificial defs once
7610         since the order is not important.
7611         (df_live_init): Init the df_live sets only with the variables
7612         found live by df_lr.
7613         (df_live_transfer_function): Use the df_lr sets to prune the
7614         df_live sets as they are being computed.  
7615         (df_live_free): Free df_live_scratch.
7616
7617 2008-01-18  Ian Lance Taylor  <iant@google.com>
7618
7619         * common.opt: Add fmerge-debug-strings.
7620         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
7621         flag_merge_debug_strings rather than flag_merge_constants.
7622         * doc/invoke.texi (Option Summary): Mention
7623         -fmerge-debug-strings.
7624         (Debugging Options): Document -fmerge-debug-strings.
7625
7626 2008-01-18  Ian Lance Taylor  <iant@google.com>
7627
7628         PR c++/33407
7629         * tree.h (DECL_IS_OPERATOR_NEW): Define.
7630         (struct tree_function_decl): Add new field operator_new_flag.
7631         * tree-inline.c (expand_call_inline): When inlining a call to
7632         operator new, force the return value to go into a variable, and
7633         set DECL_NO_TBAA_P on that variable.
7634         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
7635
7636 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
7637
7638         PR debug/34484
7639         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
7640         DWARF2_DEBUGGING_INFO.
7641         (dwarf2out_note_section_used): Ditto.  Add prototype.
7642         (have_multiple_function_sections, text_section_used,
7643         cold_text_section_used, *cold_text_sections): Move declarations
7644         before their uses.
7645
7646 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
7647
7648         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
7649         field and add signal_ra.
7650         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
7651         assignments to frame state pc.  Move end of stack check after
7652         MD_FALLBACK_FRAME_STATE_FOR.
7653         (uw_update_context_1): Use frame state signal_regs if set, instead
7654         of checking signal_frame flag.
7655         (uw_update_context): Use frame state signal_ra if set.
7656         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
7657         * config/xtensa/linux-unwind.h: New file.
7658
7659 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
7660
7661         * modulo-sched.c (get_sched_window): Fix comment typo.
7662
7663 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
7664
7665         PR tree-optimization/34648
7666         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
7667
7668 2008-01-17  Anatoly Sokolov <aesok@post.ru>
7669
7670         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
7671         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
7672
7673 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
7674
7675         PR rtl-optimization/34400
7676         * df-core.c (df_worklist_dataflow_overeager,
7677         df_worklist_dataflow_doublequeue): New functions.
7678         (df_worklist_dataflow): Two different worklist solvers.
7679         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
7680         New param.
7681
7682 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
7683
7684         PR testsuite/34821
7685         * doc/invoke.texi: Document the dependence on pthread for fopenmp
7686         and ftree-parallelize-loops.
7687
7688 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
7689
7690         PR rtl-optimization/34826
7691         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
7692
7693 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
7694
7695         * global.c (find_reg): Mark the eh regs as used if necessary.
7696         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
7697         * ra.h (struct allocno): no_eh_reg field added.  Changed
7698         no_stack_reg type to bitfield.
7699
7700 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
7701
7702         * tree.c (substitute_in_expr): Add missing 'break'.
7703
7704 2008-01-17  Richard Guenther  <rguenther@suse.de>
7705
7706         PR tree-optimization/34825
7707         * tree-ssa-math-opts.c (is_division_by): Do not recognize
7708         x / x as division to handle.
7709
7710 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7711
7712         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
7713         "-pthread" is specified.
7714         * pa-hpux11.h (LIB_SPEC): Likewise.
7715
7716 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
7717             Peter Bergner  <bergner@vnet.ibm.com>
7718
7719         PR rtl-optimization/33796
7720         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
7721
7722 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7723
7724         PR libgfortran/34699
7725         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
7726         static links.
7727         * pa-hpux10.h (LINK_SPEC): Likewise.
7728         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
7729
7730 2008-01-16  Richard Guenther  <rguenther@suse.de>
7731
7732         PR middle-end/32628
7733         * fold-const.c (fold_convert_const_int_from_int): Do not
7734         set overflow if that occured only because of a sign extension
7735         change when converting from/to a sizetype with the same
7736         precision and signedness.
7737
7738 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
7739
7740         PR debug/34249
7741         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
7742         location address to the correct place.  Update copyright year.
7743
7744 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
7745
7746         * lambda-code.c (lambda_transform_legal_p): Handle the case of
7747         no dependences in the dependence_relations vector.
7748
7749 2008-01-16  Jan Hubicka  <jh@suse.cz>
7750
7751         PR rtl-optimization/31396
7752         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
7753         * cfg.c (dump_reg_info): Print it.
7754         * regs.h (struct reg_info_t): add freq_calls_crossed.
7755         (REG_FREQ_CALLS_CROSSED): New macro.
7756         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
7757         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
7758         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
7759         regmove_optimize): Update call crossed frequencies.
7760         * local-alloc.c (struct qty): Add freq_calls_crossed.
7761         (alloc_qty): Copute freq_calls_crossed.
7762         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
7763         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
7764         * ra.h (struct allocno): Add freq_calls_crossed.
7765
7766 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
7767
7768         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
7769         libgomp when compiling with ftree-parallelize-loops.
7770         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
7771
7772 2008-01-16  Richard Guenther  <rguenther@suse.de>
7773
7774         PR tree-optimization/34769
7775         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
7776         * tree.c (int_cst_value): Instead make this function more
7777         permissive in what it accepts as valid input.  Document this
7778         function always sign-extends the value.
7779
7780 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
7781             Richard Guenther  <rguenther@suse.de>
7782
7783         PR c/34668
7784         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
7785         (gimple_fold_indirect_ref_rhs): ... this.
7786         (gimple_fold_indirect_ref): New function with foldings
7787         that preserve lvalueness.
7788         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
7789         * tree-flow.h (gimple_fold_indirect_ref): Declare.
7790         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
7791         to fold an INDIRECT_REF, fall back to the old use of
7792         fold_indirect_ref_1.
7793
7794 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
7795
7796         * tree-data-ref.c (subscript_dependence_tester_1): Call 
7797         free_conflict_function.
7798         (compute_self_dependence): Same.
7799
7800 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
7801
7802         PR debug/34249
7803         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
7804         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
7805         function global.
7806         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
7807         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
7808         for DWARF2_UNWIND_INFO targets.
7809
7810 2008-01-16  Richard Guenther  <rguenther@suse.de>
7811
7812         PR c/34768
7813         * c-typeck.c (common_pointer_type): Do not merge inconsistent
7814         type qualifiers for function types.
7815
7816 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
7817
7818         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
7819         loop_iterator li from previous commit.
7820
7821 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
7822
7823         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
7824
7825 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
7826
7827         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
7828         (parallelize_loops): Don't parallelize irreducible components.
7829
7830 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7831
7832         PR c++/24924
7833         * c-opts (c_common_post_options): Do not enable CPP
7834         flag_pedantic_errors by default.
7835         
7836 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
7837
7838         PR rtl-optimization/31944
7839         * cse.c (remove_pseudo_from_table): New function.
7840         (merge_equiv_classes): Use above function to remove pseudo-registers.
7841         (invalidate): Likewise.
7842
7843 2008-01-13  Richard Guenther  <rguenther@suse.de>
7844
7845         PR middle-end/34601
7846         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
7847         instead of TYPE_MODE to deal with calls from expand_one_error_var.
7848
7849 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
7850
7851         * gcse.c (cprop_jump): Call validate_unshare_change instead of
7852         validate_change to unshare the source of the PC set.
7853
7854 2008-01-12  Jan Hubicka  <jh@suse.cz>
7855
7856         PR middle-end/32135
7857         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
7858         references above array bounds.  This might trigger bounds checks for
7859         pointers to arrays.
7860
7861 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
7862
7863         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
7864         new_replaceable_dependencies.
7865
7866 2008-01-12  Doug Kwan  <dougkwan@google.com>
7867
7868         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
7869         instead of OPT_Wreturn_type in warning due to ignored return type
7870         qualifiers.
7871         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
7872         options included in -Wextra.
7873         * c.opt: New option -Wignored_qualifiers.
7874         * doc/invoke.texi (Warning Options, -Wextra): Add new option
7875         -Wignore_qualifiers.
7876         (-Wignored-qualifiers): Document.
7877         (-Wreturn-type): Remove description of functionality now handled
7878         by -Wignored-qualifiers.
7879
7880 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
7881
7882         PR ada/33788
7883         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
7884         NOP_EXPR if it is between integral types with the same precision.
7885
7886 2008-01-12  Jan Hubicka  <jh@suse.cz>
7887
7888         PR other/28023
7889         * invoke.texi (max-inline-recursive-depth): Fix default value.
7890
7891 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
7892
7893         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
7894         correct type.
7895
7896 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
7897         
7898         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
7899         
7900 2008-01-11  James E. Wilson  <wilson@specifix.com>
7901
7902         PR target/26015
7903         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
7904
7905 2008-01-11  Anatoly Sokolov <aesok@post.ru>
7906
7907         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
7908         save/restore frame pointer register and don't use 'call-prologues' 
7909         optimization in function with "OS_task" attribute.
7910
7911 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
7912
7913         PR middle-end/31309
7914         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
7915         when copying to memory.
7916
7917 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
7918
7919         PR rtl-optimization/30905
7920         * cfgcleanup.c: Include dce.h
7921         (crossjumps_occured): New global variable.
7922         (try_crossjump_bb): Exit loop after finding a fallthru edge.
7923         If something changed, set crossjumps_occured to true.
7924         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
7925         Don't add/remove fake edges to exit here...
7926         (cleanup_cfg): ...but do it here, when crossjumping.
7927         Run a fast DCE when successful crossjumps occured in the latest
7928         iteration of try_optimize_cfg.
7929
7930 2008-01-11  Richard Guenther  <rguenther@suse.de>
7931
7932         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
7933         (struct vn_unary_op_s): Likewise.
7934         (vn_reference_insert): Free old reference on hash collision.
7935
7936 2008-01-10  Raksit Ashok  <raksit@google.com>
7937
7938         PR rtl-optimization/27971
7939         * combine.c (find_split_point): Split PLUS expressions which are
7940         inside a MEM rtx, and whose first operand is complex.
7941
7942 2008-01-10  DJ Delorie  <dj@redhat.com>
7943
7944         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
7945         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
7946         (m32c_hard_regno_ok): Call the underlying function.
7947
7948 2008-01-10  Richard Guenther  <rguenther@suse.de>
7949
7950         PR middle-end/34683
7951         * tree-cfg.c (tree_merge_blocks): Do not go through the
7952         full-blown folding and stmt updating path if we just deal
7953         with virtual operands.
7954         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
7955         test for abnormal SSA_NAMEs.
7956
7957 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
7958
7959         PR middle-end/34641
7960         * reload.c (push_reload): Add assertions.  All constants from
7961         reg_equiv_constant should have been used for replacing the respective
7962         pseudo earlier.
7963         (find_reloads_address): Invoke find_reloads_address_part for
7964         constant taken from the reg_equiv_constant array.
7965
7966 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
7967
7968         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
7969         field (valnum) the first in the struct.  Replace bools with
7970         unit bit fields.
7971
7972 2008-01-10  Richard Guenther  <rguenther@suse.de>
7973
7974         PR tree-optimization/34651
7975         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
7976         types and ordering for masking and converting.
7977
7978 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
7979
7980         PR tree-optimization/34017
7981         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
7982         also for PHI_NODE expressions.
7983
7984 2008-01-09  Jan Hubicka  <jh@suse.cz>
7985
7986         PR tree-optimization/34708
7987         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
7988         based on number of case labels.
7989         (init_inline_once): Remove switch_cost.
7990         * tree-inline.h (eni_weights_d): Remove switch_cost.
7991
7992 2008-01-09  Richard Guenther  <rguenther@suse.de>
7993         Andrew Pinski  <andrew_pinski@playstation.sony.com>
7994
7995         PR middle-end/30132
7996         * gimplify.c (gimplify_cond_expr): Do not create an addressable
7997         temporary if an rvalue is ok or an lvalue is not required.
7998
7999 2008-01-09  Richard Guenther  <rguenther@suse.de>
8000
8001         PR middle-end/34458
8002         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
8003         adjust return type.
8004
8005 2008-01-09  Richard Guenther  <rguenther@suse.de>
8006
8007         PR middle-end/34679
8008         * tree.c (host_integerp): Check for sizetype only if the
8009         type is an integer type.
8010
8011 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
8012
8013         PR debug/26364
8014         * opts.c (decode_options): Disable inlining of functions called
8015         once if not in unit-at-a-time mode.
8016
8017 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
8018
8019         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
8020
8021 2008-01-08  Richard Guenther  <rguenther@suse.de>
8022
8023         PR middle-end/31863
8024         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
8025         out early if the result will be unused.
8026
8027 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
8028
8029         PR target/34709
8030         Revert:
8031
8032         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
8033         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
8034         for TARGET_RECIP.       
8035         
8036 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
8037         
8038         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
8039         for vectorization tuned.
8040         
8041 2008-01-08  Richard Guenther  <rguenther@suse.de>
8042
8043         PR tree-optimization/34683
8044         * tree-ssa-operands.c (operand_build_cmp): Export.
8045         * tree-ssa-operands.h (operand_build_cmp): Declare.
8046         * tree-vn.c (vuses_compare): Remove.
8047         (sort_vuses): Use operand_build_cmp.
8048         (sort_vuses_heap): Likewise.
8049         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
8050         to re-use old VEC if available.  Do not sort already sorted VUSEs.
8051         (vdefs_to_vec): Do not sort already sorted VDEFs.
8052
8053 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
8054
8055         PR middle-end/34694
8056         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
8057
8058 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
8059
8060         PR target/34702
8061         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
8062         limitations of reciprocal sequences on x86 targets.
8063
8064 2008-01-08  Richard Guenther  <rguenther@suse.de>
8065
8066         PR tree-optimization/34683
8067         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
8068
8069 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
8070
8071         PR target/34622
8072         * config/darwin.c (darwin_mergeable_string_section): Don't use
8073         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
8074
8075 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
8076
8077         PR target/34682
8078         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
8079         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
8080         predicates of op0 and op1 to register_operand.
8081         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
8082         expander using X87MODEF mode iterator.  Change predicates of
8083         op0 and op1 to register_operand.
8084         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
8085         corresponding patterns and macroize using MODEF macro.  Change
8086         predicates of op0 and op1 to register_operand and remove
8087         "m" constraint. Disparage "r" alternative with "!".
8088         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
8089         macroize using X87MODEF macro.  Change predicates of op0 and op1
8090         to register_operand and remove "m" constraint.  Disparage "r"
8091         alternative with "!".
8092         (absneg splitter with memory operands): Remove.
8093         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
8094         patterns and macroize using X87MODEF mode iterator.
8095         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
8096         Change predicate of op1 to register_operand.
8097         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
8098         for memory operands.
8099
8100 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
8101
8102         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
8103
8104 2008-01-07  Richard Guenther  <rguenther@suse.de>
8105
8106         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
8107         fields.
8108
8109 2008-01-07  Richard Guenther  <rguenther@suse.de>
8110
8111         PR tree-optimization/34683
8112         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
8113         VOPs of the needed size to save memory.  Use VEC_quick_push
8114         to save compile-time.
8115         (vdefs_to_vec): Likewise.
8116
8117 2008-01-07  Sa Liu  <saliu@de.ibm.com>
8118
8119         * config/spu/spu.md (divdf3): Genetate inline code for double
8120         division.  The implementation doesn't handle INF or NAN, therefore it
8121         only applies when -ffinite-math-only is given.
8122
8123 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
8124
8125         PR libstdc++/34680
8126         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
8127         * doc/cpp.texi ([Common Predefined Macros]): Document.
8128
8129 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
8130
8131         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
8132         order to use commutative addition instead of subtraction.
8133
8134 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8135             Mircea Namolaru  <namolaru@il.ibm.com>
8136             Vladimir Yanovsky  <yanov@il.ibm.com>
8137             Revital Eres  <eres@il.ibm.com>
8138
8139         PR tree-optimization/34263
8140         * tree-outof-ssa.c (process_single_block_loop_latch,
8141         contains_tree_r): New functions.
8142         (analyze_edges_for_bb): Call process_single_block_loop_latch
8143         function to empty single-basic-block latch block if possible.
8144
8145 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
8146
8147         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
8148         for TARGET_RECIP.
8149         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
8150
8151 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
8152
8153         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
8154
8155 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
8156
8157         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
8158
8159 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
8160
8161         PR tree-optimization/34618
8162         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
8163         flag from T.
8164
8165 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
8166
8167         PR target/34673
8168         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
8169         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
8170         Update copyright year.
8171
8172         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
8173         Update copyright year.
8174         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
8175         using NR fixup.
8176
8177 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
8178
8179         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
8180         edge does not point to current bb before changing need_assert.
8181
8182 2008-01-04  Richard Guenther  <rguenther@suse.de>
8183
8184         PR middle-end/34029
8185         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
8186         for verifying purposes if they are is_gimple_min_invariant.
8187
8188 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
8189
8190         PR tree-optimization/34448
8191         PR tree-optimization/34465
8192         * gimplify.c (gimplify_init_constructor): Add new parameter
8193         notify_temp_creation.  Use it.
8194         (gimplify_modify_expr_rhs): Take volatiles into account when
8195         optimizing constructors.
8196         Do not optimize constructors if gimplify_init_constructor will dump to
8197         memory.
8198         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
8199         * gcc.c-torture/compile/pr34448.c: New.
8200
8201 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
8202
8203         PR gcov-profile/34609
8204         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
8205         return_slot if result is TREE_ADDRESSABLE.
8206
8207 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
8208
8209         * config/mips/mips.md (sqrt_condition): Tweak comment.
8210         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
8211
8212 2008-01-03  Tom Tromey  <tromey@redhat.com>
8213
8214         PR c/34457
8215         * c-common.c (c_type_hash): Handle VLAs.
8216
8217 2008-01-03  Jan Hubicka  <jh@suse.cz>
8218
8219         PR tree-optimization/31081
8220         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
8221         0 when inlining and not inlining to first basic block.
8222         (remap_decl): When var is initialized to 0, don't set default_def.
8223         (expand_call_inline): Set entry_bb.
8224         * tree-inline.h (copy_body_data): Add entry_bb.
8225
8226 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
8227
8228         PR c++/34619
8229         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
8230         before returning.
8231
8232         PR tree-optimization/29484
8233         * tree-inline.c (inline_forbidden_p_2): New function.
8234         (inline_forbidden_p): Disallow inlining if some static var
8235         has an address of a local LABEL_DECL in its initializer.
8236         * doc/extend.texi (Labels as Values): Document &&foo behaviour
8237         vs. inlining.
8238
8239 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
8240
8241         PR tree-optimization/34635
8242         * tree-data-ref.c (add_other_self_distances): Make sure that the
8243         evolution step is constant.
8244
8245 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
8246
8247         PR middle-end/34608
8248         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
8249
8250 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
8251
8252         * tree-sra.c (scalarize_init): Insert the generate_element_init
8253         statements after the generate_element_zero statements.
8254
8255 2008-01-02  Richard Guenther  <rguenther@suse.de>
8256
8257         PR middle-end/34093
8258         PR middle-end/31976
8259         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
8260         for very large number of operands instead of ICEing.
8261
8262 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
8263
8264         PR target/34013
8265         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
8266         while stack probing.
8267
8268 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
8269
8270         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
8271         in C++0x mode.
8272
8273 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
8274
8275         PR libmudflap/26442
8276         * tree-mudflap.c (mx_register_decls): Guard warning by
8277         !DECL_ARTIFICIAL check.
8278
8279 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
8280
8281         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
8282         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
8283         sse5_perm<mode>): Fix constraints.