OSDN Git Service

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