OSDN Git Service

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