OSDN Git Service

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