OSDN Git Service

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