OSDN Git Service

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