OSDN Git Service

* tree-ssa-ifcombine.c (get_name_for_bit_test): Use
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-02  Tomas Bily  <tbily@suse.cz>
2
3         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
4
5 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
6
7         * config/mips/mips.c (mips_valid_offset_p): New function.
8         (mips_valid_lo_sum_p): Likewise.
9         (mips_classify_address): Use them.
10         (mips_force_address): New function.
11         (mips_legitimize_address): Use it.
12         * config/mips/mips.md (MOVE128): New mode iterator.
13         (movtf): Require TARGET_64BIT.  Remove empty strings.
14         (*movtf_internal): Rename to...
15         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
16         of "R" and use {,fp}{load,store} attributes instead of "multi".
17         Use a separate define_split.
18         (*movtf_mips16): New pattern.
19
20 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
21
22         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
23         * config/mips/mips.c (mips_expand_before_return): New function.
24         (mips_expand_epilogue): Call it.
25         * config/mips/mips.md (return): Turn into a define_expand.
26         (*return): New insn.
27
28 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
29
30         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
31         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
32         functions.  Do not emit uses and clobbers of CONCATs; individually
33         use and clobber their operands.
34         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
35         gen_clobber, emit_use and gen_use.
36         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
37         (expand_builtin_return): Likewise.
38         * cfgbuild.c (count_basic_blocks): Likewise.
39         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
40         * explow.c (emit_stack_restore): Likewise.
41         * expmed.c (extract_bit_field_1): Likewise.
42         * expr.c (convert_move, emit_move_complex_parts): Likewise.
43         (emit_move_multi_word, store_constructor): Likewise.
44         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
45         (thread_prologue_and_epilogue_insns): Likewise.
46         * lower-subreg.c (resolve_simple_move): Likewise.
47         * optabs.c (widen_operand, expand_binop): Likewise.
48         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
49         * reload.c (find_reloads): Likewise.
50         * reload1.c (eliminate_regs_in_insn): Likewise.
51         * stmt.c (expand_nl_goto_receiver): Likewise.
52         * config/alpha/alpha.md (builtin_longjmp): Likewise.
53         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
54         * config/arm/arm.c (arm_load_pic_register): Likewise.
55         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
56         * config/arm/arm.md (untyped_return): Likewise.
57         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
58         * config/avr/avr.c (expand_prologue): Likewise.
59         * config/bfin/bfin.c (do_unlink): Likewise.
60         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
61         * config/cris/cris.c (cris_expand_prologue): Likewise.
62         * config/darwin.c (machopic_indirect_data_reference): Likewise.
63         (machopic_legitimize_pic_address): Likewise.
64         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
65         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
66         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
67         (ix86_expand_convert_uns_didf_sse): Likewise.
68         (ix86_expand_vector_init_general): Likewise.
69         * config/ia64/ia64.md (eh_epilogue): Likewise.
70         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
71         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
72         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
73         (config/iq2000/iq2000.c): Likewise.
74         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
75         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
76         (builtin_longjmp): Likewise.
77         * config/mn10300/mn10300.md (call, call_value): Likewise.
78         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
79         * config/pdp11/pdp11.md (abshi2): Likewise.
80         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
81         * config/s390/s390.c (s390_emit_prologue): Likewise.
82         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
83         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
84         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
85         * config/sh/sh.c (prepare_move_operands): Likewise.
86         (output_stack_adjust, sh_expand_epilogue): Likewise.
87         (sh_set_return_address, sh_expand_t_scc): Likewise.
88         * config/sparc/sparc.c (load_pic_register): Likewise.
89         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
90         * config/spu/spu.c (spu_expand_epilogue): Likewise.
91         * config/v850/v850.c (expand_epilogue): Likewise.
92
93 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
94
95         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
96         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
97         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
98         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
99         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
100         stack pointer register.
101         (output_movhi): Remove code for interrupt specific writing to the 
102         stack pointer register.
103
104 2008-05-31  Richard Guenther  <rguenther@suse.de>
105
106         PR tree-optimization/34244
107         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
108         (tree_expr_nonzero_warnv_p): Likewise.
109         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
110         ssa_name_nonnegative_p.
111         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
112         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
113         not tree_expr_nonzero_warnv_p.
114
115         PR tree-optimization/36262
116         Revert
117         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
118
119         PR tree-optimization/34244
120         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
121         (record_numbers_of_iterations): New function.
122         (execute_vrp): Cache the numbers of iterations of loops.
123         * tree-scalar-evolution.c (scev_reset_except_niters):
124         New function.
125         (scev_reset): Use scev_reset_except_niters.
126         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
127
128 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
129
130         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
131         __WORKAROUND_RETS when appropriate.
132
133 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
134
135         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
136         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
137         mode iterator.
138         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
139         *fop_df_comm_sse insn patterns using MODEF mode iterator.
140         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
141         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
142         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
143         *fop_df_1_mixed insn patterns using MODEF mode iterator.
144         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
145         *fop_df_1_sse insn patterns using MODEF mode iterator.
146         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
147         *fop_df_1_i387 insn patterns using MODEF mode iterator.
148         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
149         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
150         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
151         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
152         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
153         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
154         (*fop_xf_4_i387): Use <MODE> for mode attribute.
155         (*fop_xf_5_i387): Ditto.
156         (*fop_xf_6_i387): Ditto.
157
158 2008-05-30  Richard Guenther  <rguenther@suse.de>
159
160         * builtins.c (build_string_literal): Avoid generating
161         a non-gimple_val result.
162
163 2008-05-30  DJ Delorie  <dj@redhat.com>
164
165         * exec-tool.in: Use an environment variable (private) instead of a
166         file (shared) as a semaphore, so as to not break parallel builds.
167
168 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
169
170         * optabs.c (maybe_encapsulate_block): Remove.
171         (emit_libcall_block): Adjust accordingly.
172         * optabs.h (maybe_encapsulate_block): Remove prototype.
173
174         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
175         Don't use maybe_encapsulate_block.
176
177 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
178
179         * config/rs6000/rs6000.c (rs6000_legitimize_address,
180         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
181         rtx is a SYMBOL_REF before calling get_pool_constant.
182
183 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
184
185         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
186
187 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
188
189         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
190         rather than OS names to choose INO_T_EQ definition.
191         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
192         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
193
194 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
195
196         PR target/36348
197         * config/darwin-f.c: New.
198         * config/t-darwin: Added rule to build darwin-f.o.
199         * config.gcc: Defined new variable, fortran_target_objs.
200         (*-*-darwin*): Set fortran_target_objs.
201         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
202         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
203         * configure: Regenerated.
204
205 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
206
207         PR target/35771
208         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
209         canonical type if needed.
210
211 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
212
213         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
214
215 2008-05-29  Richard Guenther  <rguenther@suse.de>
216
217         PR tree-optimization/36343
218         PR tree-optimization/36346
219         PR tree-optimization/36347
220         * tree-flow.h (clobber_what_p_points_to): Declare.
221         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
222         pointed-to variable is dereferenced is irrelevant to whether
223         the pointer can access the pointed-to variable.
224         (clobber_what_p_points_to): New function.
225         * tree-ssa-alias.c (set_initial_properties): Use it.
226         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
227         call clobber check for NMTs.
228
229 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
230         
231         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
232         for printing gcov_type.
233
234 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
235
236         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
237         and the eh region information.
238         * value-prof.c (gimple_move_stmt_histograms): New function.
239         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
240
241 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
242
243         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
244
245 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
246
247         * value-prof.c (tree_ic_transform): Print counts.
248         * tree-profile.c (tree_gen_ic_func_profiler):
249         Clear __gcov_indreict_call_callee variable to avoid misattribution
250         of the profile.
251
252 2008-05-28  Rafael Espindola  <espindola@google.com>
253
254         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
255         invalid sharing.
256
257 2008-05-28  Richard Guenther  <rguenther@suse.de>
258
259         PR tree-optimization/36339
260         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
261         and clobbering code out of the loop.
262
263 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
264
265         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
266         letters defined.
267
268         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
269         s390_contiguous_bitmask_p, s390_symref_operand_p,
270         s390_check_symref_alignment, s390_reload_larl_operand,
271         s390_reload_symref_address): New functions.
272         (s390_branch_condition_mnemonic): Support compare and branch
273         instructions.
274         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
275         and 'W' constraints.
276         (s390_secondary_reload): Add secondary reloads for unaligned
277         symbol refs or symbol refs to floating point or QI/TI mode
278         integer values.
279         (legitimate_address_p): Accept symbol references as addresses.
280         (s390_expand_insv): Use rotate and insert selected bits
281         instruction for insv when building for z10.
282         (print_operand_address): Handle symbol ref addresses.
283         (print_operand): Output modifier 'c' added for signed byte values.
284         (s390_encode_section_info): Mark symbol refs with
285         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
286
287         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
288         (length attribute): RRF, RRR have 4 byte length.
289         (FPALL, INTALL): New mode iterators added.
290         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
291         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
292         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
293         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
294         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
295         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
296         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
297         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
298         instructions.
299         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
300         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
301         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
302         reload<INTALL:mode><P:mode>_toreg_z10,
303         reload<FPALL:mode><P:mode>_tomem_z10,
304         reload<FPALL:mode><P:mode>_toreg_z10,
305         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
306         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
307         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
308         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
309         definition.
310         (movmem, clrmem, cmpmem): New splitters added.
311
312         * config/s390/predicates.md (larl_operand): Use
313         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
314         SYMBOL_REF_ALIGN1_P.
315         (s390_signed_integer_comparison,
316         s390_unsigned_integer_comparison): New predicates.
317
318         * config/s390/s390-protos.h (s390_check_symref_alignment,
319         s390_contiguous_bitmask_p, s390_reload_larl_operand,
320         s390_reload_symref_address,
321         s390_compare_and_branch_condition_mask): Prototypes added.
322
323         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
324         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
325         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
326
327 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
328
329         * config/s390/s390.c (z10_cost): New cost function for z10.
330         (s390_handle_arch_option, override_options): Support -march=z10 switch.
331         (s390_issue_rate): Adjust issue rate for z10.
332         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
333         (processor_flags): Add PF_Z10.
334         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
335         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
336         * gcc/config.gcc: Add z10.
337
338 2008-05-28  Richard Guenther  <rguenther@suse.de>
339
340         PR tree-optimization/36291
341         * tree-flow. h (struct gimple_df): Remove var_anns member.
342         * tree-flow-inline.h (gimple_var_anns): Remove.
343         (var_ann): Simplify.
344         * tree-dfa.c (create_var_ann): Simplify.
345         (remove_referenced_var): Clear alias info from var_anns of globals.
346         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
347         (delete_tree_ssa): Clear alias info from var_anns of globals.
348         Do not free var_anns.
349         (var_ann_eq): Remove.
350         (var_ann_hash): Likewise.
351
352 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
353
354         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
355         and loongson2f entries.
356         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
357         * config/mips/mips.h (processor_type): Add Loongson-2E
358         and Loongson-2F entries.
359         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
360         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
361         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
362         * doc/invoke.texi (MIPS Options): Document loongson2e
363         and loongson2f processor names.
364
365 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
366
367         PR target/35767
368         PR target/35771
369         * config/i386/i386.c (ix86_function_arg_boundary): Use
370         alignment of canonical type.
371         (ix86_expand_vector_move): Check unaligned memory access for
372         all SSE modes.
373
374 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
375
376         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
377         Moved to the front of file.
378
379 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
380             H.J. Lu  <hongjiu.lu@intel.com>
381
382         * dwarf2out.c (current_fde): New.
383         (add_cfi): Use it.
384         (lookup_cfa:): Likewise.
385         (dwarf2out_end_epilogue): Likewise.
386         (dwarf2out_note_section_used): Likewise.
387
388 2008-05-27  Michael Matz  <matz@suse.de>
389
390         PR c++/27975
391         * c.opt (Wenum-compare): New warning option.
392         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
393
394 2008-05-27  Michael Matz  <matz@suse.de>
395
396         PR middle-end/36326
397         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
398         non-BLKmode types.
399         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
400         into memory as tail calls.
401
402 2008-05-27  Richard Guenther  <rguenther@suse.de>
403
404         PR tree-optimization/36339
405         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
406         pointers cause all addressable variables to be call clobbered.
407
408 2008-05-27  Richard Guenther  <rguenther@suse.de>
409
410         PR tree-optimization/36245
411         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
412
413 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
414
415         * config/s390/s390.md: Replace all occurences of the 'm'
416         constraint with 'RT'.
417
418 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
419
420         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
421         definitions added.
422         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
423         "*movdi_64".
424         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
425         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
426         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
427
428 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
429
430         * reload.c: (find_reloads): Skip alternatives according to the
431         "enabled" attribute. Constify the constraint variable.
432         * recog.c (get_attr_enabled): Add default implementation.
433         (extract_insn): Set the alternative_enabled_p array
434         in the recog_data struct.
435         (preprocess_constraints, constrain_operands): Skip
436         alternatives according to the "enabled" attribute
437         * recog.h (struct recog_data): New field alternative_enabled_p.
438         (skip_alternative): New inline function.
439         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
440         (record_reg_classes): Skip alternative according to the
441         "enabled" attribute.
442
443         * doc/md.texi: Add documention for the "enabled" attribute.
444
445 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
446
447         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
448         * postreload.c (reload_cse_simplify_operands): Replace 'm'
449         constraint with TARGET_MEM_CONSTRAINT.
450         * recog.c (asm_operand_ok, preprocess_constraints,
451         constrain_operands): Likewise.
452         * regclass.c (record_reg_classes): Likewise.
453         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
454         * reload1.c (maybe_fix_stack_asms): Likewise.
455         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
456         * recog.h: Adjust comment.
457         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
458         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
459         * doc/md.texi: Add a note to description of 'm' constraint.
460         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
461
462 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
463
464         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
465         that the bitfield is of integral type before testing its precision.
466
467 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
468             Sa Liu  <saliu@de.ibm.com> 
469
470         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
471         __modti3, __udivti3, __umodti3 and __udivmodti4.
472         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
473         that implement TImode mul and div functions.
474         * config/spu/multi3.c: New. Implement __multi3.
475         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
476         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
477         functions on SPU.
478
479 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
480
481         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
482         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
483         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
484         tls_sysv_suffix): New mode and mode attribute iterators.
485         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
486         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
487         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
488         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
489         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
490         iterators.
491
492 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
493
494         PR tree-optimization/36329
495         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
496         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
497         * cgraphbuild.c (initialize_inline_failed): Use the latter
498         macro in lieu of the former.
499         * ipa-inline.c (cgraph_mark_inline): Likewise.
500         (cgraph_decide_inlining_of_small_function): Likewise.
501         (cgraph_decide_inlining): Likewise.
502         (cgraph_decide_inlining_incrementally): Likewise.
503
504 2008-05-26  Tristan Gingold  <gingold@adacore.com>
505             Anatoly Sokolov  <aesok@post.ru>
506
507         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
508         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
509         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
510         optimization for 'avr6' architecture.
511
512 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
513
514         PR target/34932
515         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
516
517 2008-05-26  Richard Guenther  <rguenther@suse.de>
518
519         * tree-ssa-sccvn.c (expr_has_constants): Declare.
520         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
521
522 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
523
524         PR middle-end/36253
525         * caller-save.c (insert_restore): Verify alignment of spill space.
526         (insert_save): Likewise.
527         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
528         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
529         (STACK_SLOT_ALIGNMENT): Likewise.
530         * function.c (LOCAL_ALIGNMENT): Removed.
531         (get_stack_local_alignment): New.
532         (assign_stack_local): Use it.  Set alignment on stack slot.
533         (assign_stack_temp_for_type): Use get_stack_local_alignment.
534         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
535         (STACK_SLOT_ALIGNMENT): New.
536         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
537         stack slot in XFmode.
538
539         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
540
541 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
542
543         PR/36321
544         * config/i386/i386.md (allocate_stack_worker_64): Make sure
545         argument operand in rax isn't removed.
546
547 2008-05-26  Richard Guenther  <rguenther@suse.de>
548
549         PR middle-end/36300
550         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
551         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
552
553 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
554
555         PR bootstrap/36331
556         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
557
558 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
559
560         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
561         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
562
563 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
564
565         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
566         build a trampoline if we don't want one.
567         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
568         return zero for nested functions if we don't want a trampoline.
569
570 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
571
572         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
573
574 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
575
576         PR fortran/18428
577         * c.opt: Removed undocumented option '-lang-fortran'.
578         * c-common.h: Removed global variable 'lang_fortran'.
579         * c-opts.c (c_common_handle_option): Removed code to handle
580         option '-lang-fortran'. Updated includes.
581         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
582         definition of '__GFORTRAN__'.
583         (define__GNUC__): Reimplemented to use BASEVER and
584         cpp_define_formatted.
585         (builtin_define_with_value_n): Removed.
586         * c-incpath.h: Renamed to ...
587         * incpath.h: ... this.
588         * c-incpath.c: Renamed to ...
589         * incpath.c: ... this. Updated includes.
590         * fix-header.c: Updated includes.
591         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
592         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
593         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
594
595 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
596
597         * tree.h: Update the table of flags used on tree nodes.
598         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
599         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
600         (FORCED_LABEL): Add access check.
601         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
602         (ASM_INPUT_P): Likewise.
603         (ASM_VOLATILE_P): Likewise.
604         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
605         (OMP_SECTION_LAST): Access private_flag directly.
606         (OMP_RETURN_NOWAIT): Likewise.
607         (OMP_PARALLEL_COMBINED): Likewise.
608         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
609         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
610         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
611         deprecated_flag directly.
612
613 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
614
615         * final.c (frame_pointer_needed): Removed.
616         * flags.h (frame_pointer_needed): Likewise.
617
618         * function.h (rtl_data): Add frame_pointer_needed.
619         (frame_pointer_needed): New.
620
621 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
622
623         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
624
625 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
626
627         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
628         SRC is a REG.
629
630 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
631
632         * c-common.c (strip_array_types): Move function to..
633         * tree.c: ..here.
634         (get_inner_array_type): Delete.
635         * c-common.h (strip_array_types): Move declaration to..
636         * tree.h: ..here.
637         (get_inner_array_type): Delete.
638         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
639         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
640         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
641         * config/pa/pa.c (emit_move_sequence): Likewise.
642
643 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
644
645         * config/i386/i386.md (*sse_prologue_save_insn): Set length
646         attribute to 34.
647
648 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
649
650         * function.c: Include target hook for nonlocal_goto frame value.
651
652 2008-05-24  Richard Guenther  <rguenther@suse.de>
653
654         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
655         variable can be only accessed through a pointer or a union.
656
657 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
658
659         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
660         * doc/extend.texi: Likewise.
661
662 2008-05-23  DJ Delorie  <dj@redhat.com>
663
664         * config/m32c/jump.md (untyped_call): Add.
665
666         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
667         for A24 to PSImode.
668         (m32c_address_cost): Detail costs for indirect offsets.
669
670 2008-05-23  Rafael Espindola  <espindola@google.com>
671
672         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
673         if a node is a SUBREG.
674         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
675         is a SUBREG.
676
677 2008-05-23  Paul Brook  <paul@codesourcery.com>
678             Carlos O'Donell  <carlos@codesourcery.com>
679
680         * doc/extend.texi: Clarify use of __attribute__((naked)).
681         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
682         * target.h (gcc_target): Add allocate_stack_slots_for_args.
683         * function.c (use_register_for_decl): Use
684         targetm.calls.allocate_stack_slots_for_args.
685         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
686         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
687         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
688
689 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
690
691         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
692
693 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
694
695         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
696         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
697         is only rounded once.
698
699 2008-05-23  Richard Guenther  <rguenther@suse.de>
700
701         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
702
703 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
704             Jakub Jelinek  <jakub@redhat.com>
705
706         PR target/36079
707         * configure.ac: Handle --enable-cld.
708         * configure: Regenerated.
709         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
710         * config/i386/i386.h (struct machine_function): Add needs_cld field.
711         (ix86_current_function_needs_cld): New define.
712         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
713         (cld): New isns pattern.
714         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
715         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
716         * config/i386/i386.opt (mcld): New option.
717         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
718         TARGET_CLD and ix86_current_function_needs_cld.
719         (override_options): Use -mcld by default for 32-bit code if
720         USE_IX86_CLD.
721
722         * doc/install.texi (Options specification): Document --enable-cld.
723         * doc/invoke.texi (Machine Dependent Options)
724         [i386 and x86-64 Options]: Add -mcld option.
725         (Intel 386 and AMD x86-64 Options): Document -mcld option.
726
727 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
728         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
729         (return_in_memory_64): Likewise.
730         (return_in_memory_ms_64): Likewise.
731
732 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
733
734         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
735         * builtins.c (fold_builtin_fpclassify): New.
736         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
737         * builtins.def (BUILT_IN_FPCLASSIFY): New.
738         * c-common.c (handle_type_generic_attribute): Adjust to accept
739         fixed arguments before an elipsis.
740         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
741         * doc/extend.texi: Document __builtin_fpclassify.
742
743 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
744
745         * omp-low.c (gate_expand_omp_ssa): Remove.
746         (pass_expand_omp_ssa): Remove.
747         (gate_expand_omp): Do not check for flag_openmp_ssa.
748         * common.opt (-fopenmp-ssa): Remove.
749         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
750
751 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
752
753         * config/sh/sh.opt (mfixed-range): New option.
754         * config/sh/sh-protos.h (sh_fix_range): Declare.
755         * config/sh/sh.c (sh_fix_range): New function.
756         * config/sh/sh.h (sh_fixed_range_str): Declare.
757         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
758         is not empty.
759         * doc/invoke.texi (SH Options): Document -mfixed-range.
760
761 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
762
763         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
764         it before the redeclaration.
765
766 2008-05-22  Anatoly Sokolov <aesok@post.ru>
767
768         * config/avr/avr.c (get_sequence_length): Add new function.
769         (expand_prologue, expand_epilogue): Remove duplicate code.
770
771 2008-05-22  Rafael Espindola  <espindola@google.com>
772
773         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
774         sharing.
775
776 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
777
778         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
779         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
780
781         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
782         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
783         (vect_update_misalignment_for_peel): Likewise.
784         (vector_alignment_reachable_p): Likewise.
785         * tree-vect-transform.c (vectorizable_load): Likewise.
786         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
787         (get_vectype_for_scalar_type): Pass mode of scalar_type
788         to UNITS_PER_SIMD_WORD.
789
790         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
791         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
792         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
793         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
794         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
795
796 2008-05-22  Ira Rosen  <irar@il.ibm.com>
797
798         PR tree-optimization/36293
799         * tree-vect-transform.c (vect_transform_strided_load): Don't check
800         if the first load must be skipped because of a gap.
801
802 2008-05-22  Richard Guenther  <rguenther@suse.de>
803
804         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
805         more cases of offset disambiguation that is possible if
806         strict-aliasing rules apply.
807         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
808         for basic offset and type-based disambiguation.
809
810 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
811
812         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
813         ix86_expand_vector_set on V16QImode for SSE4.1.
814
815 2008-05-21  Tom Tromey  <tromey@redhat.com>
816
817         * c.opt (Wimport): Mark as undocumented.
818         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
819         -Wno-import.
820         (Warning Options): Likewise.
821         * doc/cppopts.texi: Don't mention -Wimport.
822
823 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
824
825         PR tree-optimization/36287
826         PR tree-optimization/36286
827         * lambda-code.c (build_access_matrix): Do not use the loop->num
828         for computing the number of induction variables: use the loop depth
829         instead.
830
831 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
832
833         PR/36280
834         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
835         option -f(no-)leading-underscore.
836
837 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
838
839         * config/i386/i386.c (ix86_expand_vector_init_general): Use
840         GET_MODE_NUNITS (mode).
841
842 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
843
844         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
845         (-mmulhw): Add 464 to description.
846         (-mdlmzb): Likewise.
847         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
848         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
849         464fp entries.
850         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
851         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
852         * config/rs6000/rs6000.md: Update comments for 464.
853
854 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
855
856         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
857
858 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
859
860         * config/i386/sse.md (vec_extractv4sf): Removed.
861         (vec_extractv2df): Likewise.
862         (vec_extractv2di): Likewise.
863         (vec_extractv4si): Likewise.
864         (vec_extractv8hi): Likewise.
865         (vec_extractv16qi): Likewise.
866         (vec_extract<mode>): New.
867
868 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
869
870         * config/i386/sse.md (vec_setv4sf): Removed.
871         (vec_setv2df): Likewise.
872         (vec_setv2di): Likewise.
873         (vec_setv4si): Likewise.
874         (vec_setv8hi): Likewise.
875         (vec_setv16qi): Likewise.
876         (vec_set<mode>): New.
877
878 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
879
880         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
881         goto for vec_concat and vec_interleave.
882
883 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
884
885         * config/i386/sse.md (vec_initv4sf): Removed.
886         (vec_initv2df): Likewise.
887         (vec_initv2di): Likewise.
888         (vec_initv4si): Likewise.
889         (vec_initv8hi): Likewise.
890         (vec_initv16qi): Likewise.
891         (vec_init<mode>): New.
892
893 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
894
895         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
896
897 2008-05-21  Tom Tromey  <tromey@redhat.com>
898
899         * ggc-zone.c (lookup_page_table_if_allocated): New function.
900         (zone_find_object_offset): Likewise.
901         (gt_ggc_m_S): Likewise.
902         (highest_bit): Likewise.
903         * ggc-page.c (gt_ggc_m_S): New function.
904         * stringpool.c (string_stack): Remove.
905         (init_stringpool): Update.
906         (ggc_alloc_string): Use ggc_alloc.
907         (maybe_delete_ident): New function.
908         (ggc_purge_stringpool): Likewise.
909         (gt_ggc_m_S): Remove.
910         * ggc-common.c (ggc_protect_identifiers): New global.
911         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
912         ggc_protect_identifiers.
913         * ggc.h (ggc_protect_identifiers): Declare.
914         (gt_ggc_m_S): Update.
915         (ggc_purge_stringpool): Declare.
916         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
917         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
918         special case.
919         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
920
921 2008-05-21  David S. Miller  <davem@davemloft.net>
922
923         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
924         tmake_file.
925
926 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
927
928         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
929         once finished.
930
931 2008-05-20  David Daney  <ddaney@avtrex.com>
932
933         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
934         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
935         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
936         UNSPEC_UPDATE_GOT_VERSION): Renumber.
937         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
938         (atomic_hiqi_op): New define_code_iterator.
939         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
940         mips_expand_compare_and_swap_12.
941         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
942         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
943         (sync_<optab><mode>, sync_old_<optab><mode>,
944         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
945         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
946         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
947         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
948         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
949         (test_and_set_12): New insn.
950         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
951         sync_new_<optab><mode>, sync_old_nand<mode>,
952         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
953         clobber to operand 0 for SI and DI mode insns.
954         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
955         mips_gen_fn_4): New typedefs.
956         (mips_gen_fn_ptrs): Define new union type.
957         (mips_expand_compare_and_swap_12): Remove declaration.
958         (mips_expand_atomic_qihi): Declare function.
959         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
960         (mips_expand_atomic_qihi): ... this.  Use new generator function
961         parameter.
962         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
963         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
964         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
965         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
966         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
967         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
968         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
969         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
970         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
971         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
972         New macros.
973
974 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
975
976         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
977         the missing break.
978
979 2008-05-20  Anatoly Sokolov <aesok@post.ru>
980
981         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
982         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
983         (avr_attribute_table): Add 'OS_main' function attribute.
984         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
985         functions with 'OS_main' attribute.
986
987 2008-05-20  Richard Guenther  <rguenther@suse.de>
988
989         PR tree-optimization/35204
990         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
991         helper, split out from ...
992         (DFS): ... here.  Make the DFS walk non-recursive.
993
994 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
995             Jan Sjodin  <jan.sjodin@amd.com>
996
997         PR tree-optimization/36181
998         * tree-parloops.c (loop_has_vector_phi_nodes): New.
999         (parallelize_loops): Don't parallelize when the loop has vector
1000         phi nodes.
1001
1002 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1003             Sebastian Pop  <sebastian.pop@amd.com>
1004
1005         * tree-loop-linear.c (gather_interchange_stats): Look in the access
1006         matrix, and never look at the tree representation of the memory
1007         accesses.
1008         (linear_transform_loops): Computes parameters and access matrices.
1009         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
1010         when fails.
1011         (access_matrix_get_index_for_parameter): New.
1012         * tree-data-ref.h (struct access_matrix): New.
1013         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
1014         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
1015         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
1016         am_vector_index_for_loop): New.
1017         (struct data_reference): Add field access_matrix.
1018         (DR_ACCESS_MATRIX): New.
1019         (compute_data_dependences_for_loop): Update declaration.
1020         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
1021         * lambda.h (lambda_vector_vec_p): Declared.
1022         * lambda-code.c: Depend on pointer-set.h.
1023         (lambda_collect_parameters_from_af, lambda_collect_parameters,
1024         av_for_af_base, av_for_af, build_access_matrix,
1025         lambda_compute_access_matrices): New.
1026         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
1027
1028 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
1029
1030         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
1031         $SOURCEDIR/include.
1032
1033 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1034             Sebastian Pop  <sebastian.pop@amd.com>
1035
1036         PR tree-optimization/36206
1037         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
1038         FOLD_CONVERSIONS.
1039         (instantiate_scev_1): Rename flags to fold_conversions.
1040         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
1041         outeside instantiation_loop.
1042         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
1043         (evolution_function_is_affine_or_constant_p): Removed.
1044         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
1045         instantiate_scev.
1046         (analyze_siv_subscript): Pass in the loop nest number.
1047         Call evolution_function_is_affine_in_loop instead of 
1048         evolution_function_is_affine_p.
1049         (analyze_overlapping_iterations): Pass in the loop nest number.
1050
1051 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1052             Sebastian Pop  <sebastian.pop@amd.com>
1053
1054         PR tree-optimization/36206
1055         * tree-chrec.h (chrec_fold_op): New.
1056         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
1057         and other trees.
1058
1059 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
1060
1061         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
1062         (DIRS_EQ): New.
1063         (remove_duplicates): Do not set inode on non-inode systems.
1064         Use DIRS_EQ.
1065
1066 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
1067
1068         * config.gcc (tm_file): Update comments about relative pathnames.
1069
1070 2008-05-20  Richard Guenther  <rguenther@suse.de>
1071
1072         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
1073         * tree-ssa-sccvn.c (process_scc): Likewise.
1074         * tree-ssa-sink.c (execute_sink_code): Likewise.
1075         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
1076         * tree-vrp.c (process_assert_insertions): Likewise.
1077         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
1078         (perform_tree_ssa_dce): Likewise.
1079         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1080         (dump_dominator_optimization_stats): Likewise.
1081         * tree-vectorizer.c (vectorize_loops): Likewise.
1082
1083 2008-05-20  Richard Guenther  <rguenther@suse.de>
1084
1085         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
1086
1087 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
1088
1089         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
1090         (ix86_i386elf_return_in_memory): Likewise.
1091         (ix86_i386interix_return_in_memory): Likewise.
1092         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
1093         (SUBTARGET_RETURN_IN_MEMORY): New.
1094         * config/i386/i386elf.h: Likewise.
1095         * config/i386/ptx4-i.h: Likewise.
1096         * config/i386/sol2-10.h: Likewise.
1097         * config/i386/sysv4.h: Likewise.
1098         * config/i386/vx-common.h: Likewise.
1099         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
1100         * config/i386/i386.c (ix86_return_in_memory): Made static and
1101         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
1102         (ix86_i386elf_return_in_memory): Removed.
1103         (ix86_i386interix_return_in_memory): Removed.
1104         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
1105         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
1106
1107 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
1108
1109         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
1110
1111 2008-05-19  Xinliang David Li  <davidxl@google.com>
1112
1113         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
1114         * opts.c: Ditto.
1115         * common.opt: Ditto.
1116         * doc/invoke.texi: Ditto.
1117
1118 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1119
1120         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
1121         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
1122
1123 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1124
1125         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
1126         sizes of operand array from 8/4 to 4/2.
1127         (ix86_expand_vector_init_general): Change size of operand array
1128         from 32 to 16.  Remove op0, op1 and half_mode.
1129
1130 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1131
1132         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
1133         (ix86_expand_vector_init_interleave): Likewise.
1134         (ix86_expand_vector_init_general): Use them.  Assert
1135         word_mode == SImode when n_words == 4.
1136
1137 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
1138
1139         * config/i386/i386.c (ix86_secondary_reload): New static function.
1140         (TARGET_SECONDARY_RELOAD): New define.
1141         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
1142         * config/i386/i386.md (reload_outqi): Remove.
1143
1144 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1145
1146         PR middle-end/35509
1147         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
1148         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
1149         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
1150         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
1151         (fold_builtin_1): Likewise.
1152         * builtins.def (BUILT_IN_ISINF_SIGN): New.
1153         c-common.c (check_builtin_function_arguments): Handle
1154         BUILT_IN_ISINF_SIGN.
1155         * doc/extend.texi: Document __builtin_isinf_sign.
1156         * fold-const.c (operand_equal_p): Handle COND_EXPR.
1157
1158 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
1159
1160         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
1161         EH cleanup at the end of the pass, search for those that have been
1162         turned into forwarder blocks and do the cleanup on their successor.
1163
1164 2008-05-18  Richard Guenther  <rguenther@suse.de>
1165
1166         * tree-cfg.c (verify_gimple_expr): Allow conversions from
1167         pointers to sizetype and vice versa.
1168
1169 2008-05-18 Xinliang David Li   <davidxl@google.com>
1170
1171         * gcc/tree-ssa-dce.c: Coding style fix.
1172         (check_pow): Documentation comment. 
1173         (check_log): Documenation comment. Coding style fix.
1174         (is_unnecessary_except_errno_call): Ditto.
1175         (gen_conditions_for_pow): Ditto.
1176         (gen_conditions_for_log): Ditto.
1177         (gen_shrink_wrap_conditions): Ditto.
1178         (shrink_wrap_one_built_in_calls): Ditto.
1179         * gcc/doc/invoke.texi: Better documentation string.
1180         * ChangeLog: Fix wrong change log entries from 
1181         May 17 checkin on function call DCE.
1182
1183 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
1184
1185         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
1186
1187 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
1188
1189         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
1190         * df-problems.c (simulation routines): Fixed block comment to
1191         properly say how to add forwards scanning functions.
1192         
1193 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1194
1195         * tree-inline.c (setup_one_parameter): Remove dead code.
1196
1197 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1198
1199         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
1200         a BIT_AND_EXPR only for an INTEGER_TYPE.
1201
1202 2008-05-17 Xinliang David Li   <davidxl@google.com>
1203
1204         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
1205         (check_pow, check_log, is_unnecessary_except_errno_call): New 
1206         functions to check for eliminating math functions that are pure 
1207         except for setting errno.
1208         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
1209         general condition expressions for shrink-wrapping pow/log calls.
1210         (gen_shrink_wrap_conditions): Ditto.
1211         (shrink_wrap_one_built_in_call): Ditto.
1212         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
1213         (mark_operand_necessary): If debugging, output if OP is necessary.
1214         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
1215         unnecessary.
1216         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
1217         opt level >= 2.
1218         * gcc/common.opt: New user flag -ftree-builtin-dce.
1219         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
1220
1221 2008-05-16  David S. Miller  <davem@davemloft.net>
1222
1223         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
1224         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1225
1226 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
1227
1228         PR target/36246
1229         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
1230
1231 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1232
1233         * ifcvt.c (dead_or_predicable): Rename
1234         df_simulate_one_insn_backwards to df_simulate_one_insn.
1235         * recog.c (peephole2_optimize): Ditto.
1236         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
1237         Ditto.
1238         * df.h: Rename df_simulate_one_insn_backwards to
1239         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
1240         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
1241         scanning of defs and uses.
1242         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
1243         (df_simulate_one_insn_forwards): Removed.
1244
1245 2008-05-16  Doug Kwan  <dougkwan@google.com>
1246
1247         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
1248         QNaN & SNaN.
1249         (real_from_string): Handle NaNs and Inf as approriate.
1250
1251 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1252
1253         * doc/gty.texi (Source Files Containing Type Information): Note
1254         that headers should appear first in the gtfiles list.
1255
1256 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1257
1258         * tree.def (COND_EXEC): Properly documented this code.
1259
1260 2008-05-16  Diego Novillo  <dnovillo@google.com>
1261
1262         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
1263         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
1264         the new field.
1265
1266 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1267
1268         * tree-ssa-dse (max_stmt_uid): Removed.
1269         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
1270         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
1271         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
1272         * function.h (cfun.last_stmt_uid): New field.
1273         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
1274         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
1275         New functions.
1276         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
1277         (create_stmt_ann): Initialize the ann->uid field.
1278         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
1279         with new calls.
1280         * tree-flow.h (renumber_gimple_stmt_uids): New function.
1281
1282 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1283
1284         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
1285         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
1286         (init_empty_tree_cfg): Call it.
1287
1288 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1289
1290         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
1291         Update all users.
1292
1293 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1294
1295         * doc/invoke.text (-fdump-tree-*-verbose): New option.
1296         * tree-dump.c (dump_options): New verbose option.
1297         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
1298         Add verbose dump.
1299         * tree-pass.h (TDF_VERBOSE): New dump flag.
1300         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
1301         (tree-flow.h): Added include.
1302         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
1303
1304 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
1305
1306         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
1307
1308         From Jie Zhang  <jie.zhang@analog.com>
1309         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1310         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
1311         mcpu=bf561-none and mcpu=bf561-0.2.
1312         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1313         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1314         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1315         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1316         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
1317         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
1318         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
1319         option.
1320         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
1321         (cputype_selected): Remove.
1322         (bfin_handle_option): Don't use cputype_selected.
1323         (override_options): When no mcpu option, enable all workarounds.
1324         Don't use bfin_workarounds.
1325         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
1326         processor type.
1327         (DEFAULT_CPU_TYPE): Don't define.
1328
1329 2008-05-16  Richard Guenther  <rguenther@suse.de>
1330
1331         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
1332         on deletion of the last stmt.
1333
1334 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1335
1336         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
1337         V8HImode for SSE2 and V16QImode for SSE4.1.
1338
1339 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
1340
1341         * cgraph.h (compute_inline_parameters): Made public.
1342         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
1343         variable_generate_summary, function_write_summary,
1344         variable_write_summary, variable_read_summary.  Added generate_summary,
1345         write_summary, read_summary.
1346         * cgraphunit.c (cgraph_process_new_functions): Changed call from
1347         pass_ipa_inline.function_generate_summary, to
1348         compute_inline_parameters. 
1349         * ipa-inline.c (compute_inline_parameters): Made public and added
1350         node parameter.
1351         (compute_inline_parameters_for_current): New function.
1352         (pass_inline_param): Now calls compute_inline_parameters_for_current.
1353         (inline_generate_summary): Removed parameter and made to loop over
1354         all cgraph nodes.
1355         (pass_ipa_inline): Updated for new IPA_PASS structure.
1356         * passes.c (execute_ipa_summary_passes): Now is called once per
1357         pass rather than once per node*pass.
1358         
1359 2008-05-15  Anatoly Sokolov <aesok@post.ru>
1360
1361         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
1362         avr_have_mul_p, avr_asm_only_p): Remove variables.
1363         (avr_override_options): Remove initialization of removed variables.
1364         (avr_file_start):  Convert removed variables to fields of 
1365         'struct base_arch_s *avr_current_arch'. 
1366         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
1367         (AVR_HAVE_MUL): (Ditto.).
1368         (AVR_HAVE_MOVW): (Ditto.).
1369         (AVR_HAVE_LPMX): (Ditto.). 
1370         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
1371         avr_asm_only_p): Remove declaration.
1372
1373 2008-05-15  Diego Novillo  <dnovillo@google.com>
1374
1375         * config/arm/arm.c (arm_return_in_memory): Fix return type.
1376         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
1377
1378 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
1379
1380         PR middle-end/36194
1381         * combine.c (check_conversion): Rename back to check_promoted_subreg.
1382         Don't call record_truncated_value from here.
1383         (record_truncated_value): Turn it into a for_each_rtx callback.
1384         (record_truncated_values): New function.
1385         (combine_instructions): Call note_uses with record_truncated_values.
1386         Change name of check_conversion to check_promoted_subreg. 
1387
1388 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
1389
1390         * doc/sourcebuild.texi: Document support for torture tests.
1391
1392 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1393
1394         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
1395         to alternative 4 of operand 2.
1396
1397 2008-05-15  Richard Guenther  <rguenther@suse.de>
1398
1399         * tree-pass.h (current_pass): Declare.
1400         (get_pass_for_id): Likewise.
1401         * passes.c (passes_by_id, passes_by_id_size): New globals.
1402         (set_pass_for_id): New function.
1403         (get_pass_for_id): Likewise.
1404         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
1405         (execute_function_todo): Flush per function statistics.
1406         * toplev.c (compile_file): Init statistics.
1407         (general_init): Do early statistics initialization.
1408         (finalize): Finish statistics.
1409         * statistics.h (statistics_early_init): Declare.
1410         (statistics_init): Likewise.
1411         (statistics_fini): Likewise.
1412         (statistics_fini_pass): Likewise.
1413         (statistics_counter_event): Likewise.
1414         (statistics_histogram_event): Likewise.
1415         * statistics.c: New file.
1416         * Makefile.in (OBJS-common): Add statistics.o.
1417         (statistics.o): Add dependencies.
1418         * doc/invoke.texi (-fdump-statistics): Document.
1419
1420         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
1421         (insert): Likewise.
1422         (execute_pre): Use statistics_counter_event.
1423         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
1424         (substitute_and_fold): Increment it.  Use statistics_counter_event.
1425
1426 2008-05-15  Diego Novillo  <dnovillo@google.com>
1427
1428         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
1429
1430         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
1431         * tree-ssa-alias.c (new_type_alias): Remove references to
1432         sub-variables from comment.
1433         * tree-ssa-operands.c (swap_tree_operands): Likewise.
1434
1435 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1436
1437         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
1438         attribute to 1 only for insertps alternative.
1439
1440 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1441
1442         * config/bfin/bfin.md (loadbytes): New pattern.
1443         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
1444         (bfin_init_builtins): Initialize it.
1445         (bdesc_1arg): Add it.
1446
1447 2008-05-15  Sa Liu  <saliu@de.ibm.com>
1448
1449         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
1450         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
1451         * testsuite/lib/target-supports.exp: Add
1452         check_effective_target_fortran_integer_16.
1453
1454 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1455
1456         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
1457         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
1458         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
1459         (TARGET_RETURN_IN_MEMORY): Define.
1460
1461 2008-05-15  Richard Guenther  <rguenther@suse.de>
1462
1463         PR middle-end/36244
1464         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
1465         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
1466         represent unmodifiable vars.
1467
1468 2008-05-15  Richard Guenther  <rguenther@suse.de>
1469
1470         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
1471         INDIRECT_REF and TARGET_MEM_REF.
1472         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1473         TARGET_MEM_REF.
1474
1475 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1476             H.J. Lu  <hongjiu.lu@intel.com>
1477
1478         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
1479         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
1480         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
1481         insn alternatives.  Add missing alternatives.
1482         (*vec_concatv2di_rex64_sse4_1): Likewise.
1483         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
1484         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
1485         Require TARGET_SSE.
1486
1487 2008-05-15  Richard Guenther  <rguenther@suse.de>
1488
1489         PR tree-optimization/36009
1490         PR tree-optimization/36204
1491         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
1492         (determine_invariantness_stmt): Record the loop a store is
1493         always executed in.
1494         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
1495         dependency.
1496
1497 2008-05-15  Richard Guenther  <rguenther@suse.de>
1498
1499         PR tree-optimization/34330
1500         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
1501         through the pointer will alias the SMT.
1502
1503 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
1504
1505         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
1506
1507 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
1508
1509         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
1510
1511 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1512             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1513
1514         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
1515         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
1516         (vashl_optab): New optab for vector/vector shifts.
1517         (vashr_optab): Ditto.
1518         (vlshr_optab): Ditto.
1519         (vrotl_optab): Ditto.
1520         (vrotr_optab): Ditto.
1521         (optab_subtype): New enum for optab_for_tree_code call.
1522         (optab_for_tree_code): Add enum optab_subtype argument.
1523
1524         * optabs.c (optab_for_tree_code): Take an additional argument to
1525         distinguish between a vector shift by a scalar and vector shift by
1526         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
1527         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
1528         vector shift by a vector.
1529         (expand_widen_pattern_expr): Pass additional argument to
1530         optab_for_tree_code.
1531
1532         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
1533         vrotl_optab, vrotr_optab.
1534
1535         * expr.c (expand_expr_real_1): Update calls to
1536         optab_for_tree_code to distinguish between vector shifted by a
1537         scalar and vector shifted by a vector.
1538         * tree-vectorizer.c (supportable_widening_operation): Ditto.
1539         (supportable_narrowing_operation): Ditto.
1540         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
1541         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
1542         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
1543         (vect_create_epilog_for_reduction): Ditto.
1544         (vectorizable_reduction): Ditto.
1545         (vectorizable_operation): Ditto.
1546         (vect_strided_store_supported): Ditto.
1547         (vect_strided_load_supported): Ditto.
1548         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
1549         * expmed.c (expand_shift): Ditto.
1550
1551         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
1552         scalar type.
1553         (ashr@var{m}3): Ditto.
1554         (vashl@var{m}3): Document new vector/vector shift standard name.
1555         (vashr@var{m}3): Ditto.
1556         (vlshr@var{m}3): Ditto.
1557         (vrotl@var{m}3): Ditto.
1558         (vrotr@var{m}3): Ditto.
1559
1560         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
1561         (PPERM_INVERT): Ditto.
1562         (PPERM_REVERSE): Ditto.
1563         (PPERM_REV_INV): Ditto.
1564         (PPERM_ZERO): Ditto.
1565         (PPERM_ONES): Ditto.
1566         (PPERM_SIGN): Ditto.
1567         (PPERM_INV_SIGN): Ditto.
1568         (PPERM_SRC1): Ditto.
1569         (PPERM_SRC2): Ditto.
1570
1571         * config/i386/sse.md (mulv2di3): Add SSE5 support.
1572         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
1573         allows a memory operand to be the value being added, and split it
1574         to improve vectorization.
1575         (sse5_pmacsdqh_mem): Ditto.
1576         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
1577         (sse5_mulv2div2di3_high): Ditto.
1578         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
1579         (vec_pack_trunc_v4si): Ditto.
1580         (vec_pack_trunc_v2di): Ditto.
1581         (sse5_pcmov_<mode>): Remove code that tried to use use
1582         andps/andnps instead of pcmov.
1583         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
1584         pmacsdqh instructions.
1585         (vec_widen_smult_lo_v4si): Ditto.
1586
1587         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
1588         (PPERM_INVERT): Ditto.
1589         (PPERM_REVERSE): Ditto.
1590         (PPERM_REV_INV): Ditto.
1591         (PPERM_ZERO): Ditto.
1592         (PPERM_ONES): Ditto.
1593         (PPERM_SIGN): Ditto.
1594         (PPERM_INV_SIGN): Ditto.
1595         (PPERM_SRC1): Ditto.
1596         (PPERM_SRC2): Ditto.
1597         (ix86_expand_sse_movcc): Move the SSE5 test after the if
1598         true/false tests.
1599         (ix86_expand_int_vcond): If SSE5 generate all possible integer
1600         comparisons.
1601         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
1602         says ignore whether the last reference is a memory operand.
1603
1604 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1605             Paolo Bonzini <bonzini at gnu dot org>
1606
1607         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
1608         shift patterns.
1609
1610         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
1611         (vlshr<mode>3): Rename from vlshr<mode>3.
1612         (vashr<mode>3): Rename from vashr<mode>3.
1613         (mulv4sf3): Change the names of vector shift patterns.
1614         (mulv4si3): Ditto.
1615         (negv4sf2): Ditt.
1616
1617         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
1618         shift insns.
1619
1620         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
1621         (SI_SHLHI): Ditto.
1622         (SI_SHL): Ditto.
1623         (SI_SHLI): Ditto.
1624         (SI_ROTH): Ditto.
1625         (SI_ROTHI): Ditto.
1626         (SI_ROT): Ditto.
1627         (SI_ROTI): Ditto.
1628         (SPU_RL_0): Ditto.
1629         (SPU_RL_1): Ditto.
1630         (SPU_RL_2): Ditto.
1631         (SPU_RL_3): Ditto.
1632         (SPU_RL_4): Ditto.
1633         (SPU_RL_5): Ditto.
1634         (SPU_RL_6): Ditto.
1635         (SPU_RL_7): Ditto.
1636         (SPU_SL_0): Ditto.
1637         (SPU_SL_1): Ditto.
1638         (SPU_SL_2): Ditto.
1639         (SPU_SL_3): Ditto.
1640         (SPU_SL_4): Ditto.
1641         (SPU_SL_5): Ditto.
1642         (SPU_SL_6): Ditto.
1643         (SPU_SL_7): Ditto.
1644
1645         * config/spu/spu.md (v): New iterator macro to add v for vector types.
1646         (floatunssidf2_internal): Change vector/vector shift names.
1647         (floatunsdidf2_internal): Ditto.
1648         (mulv8hi3): Ditto.
1649         (ashrdi3): Ditto.
1650         (ashrti3): Ditto.
1651         (cgt_df): Ditto.
1652         (cgt_v2df): Ditto.
1653         (dftsv): Ditto.
1654         (vashl<mode>3): Rename from ashl<mode>3.
1655         (vashr<mode>3): Rename from ashr<mode>3.
1656         (vlshr<mode>3): Rename from lshr<mode>3.
1657         (vrotl<mode>3): Rename from rotl<mode>3.
1658
1659 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1660
1661         PR target/36224
1662         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
1663         multiply gives the wrong value when doing widening multiplies.
1664         (vec_widen_smult_lo_v4si): Ditto.
1665
1666 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1667
1668         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
1669         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
1670         emit_library_call_value. 
1671         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
1672         * tree.h (ECF_LIBCALL_BLOCK): Removed.
1673         * calls.c (initialize_argument_information, precompute_arguments, 
1674         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
1675         (precompute_arguments): Removed flags parameter.
1676         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
1677         
1678 2008-05-14  Richard Guenther  <rguenther@suse.de>
1679
1680         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
1681         Make sure to register the store if the use is a PHI_NODE.
1682
1683 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1684
1685         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1686         memory if the component is to be referenced in BLKmode according
1687         to get_inner_reference.
1688
1689 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
1690
1691         * calls.c (emit_library_call_value_1): Restore code clearing
1692         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
1693
1694 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1695             Nicolas Roche  <roche@adacore.com>
1696
1697         * configure.ac: Add support for a "gcc_subdir" variable in
1698         config-lang.in, to denote a subdirectory where the language/GCC
1699         integration files are to be found.
1700         * configure: Regenerate.
1701
1702 2008-05-14  Ira Rosen  <irar@il.ibm.com>
1703
1704         PR tree-optimization/36098
1705         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
1706         value for the first load in the group in case of a gap.
1707         (vect_build_slp_tree): Check that there are no gaps in loads.
1708
1709 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1710
1711         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
1712         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
1713         expand_copysign_bit, ): Change call to emit_no_conflict_block to
1714         emit_insn and remove unneeded code to construct extra args.
1715         (emit_no_conflict_block): Removed.
1716         * optabls.h: (emit_no_conflict_block): Removed.
1717         * cse.c (cse_extended_basic_block): Remove search for
1718         REG_NO_CONFLICT note.
1719         * global.c: Removed incorrect comment added in revision 117.
1720         * expr.c (convert_move): Change call to emit_no_conflict_block to
1721         emit_insn.
1722         * recog.c: Change comments so that they do not mention
1723         REG_NO_CONFLICT.
1724         * local_alloc.c (combine_regs): Removed last parameter.
1725         (no_conflict_p): Removed.
1726         (block_alloc): Removed note, no_conflict_combined_regno and set
1727         local vars. Removed all code to process REG_NO_CONFLICT blocks.
1728         (combine_regs): Removed already_dead and code to look for
1729         REG_NO_CONFLICT notes.
1730         * lower_subreg (remove_retval_note): Removed code to look for
1731         REG_NO_CONFLICT block.
1732         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
1733         (resolve_clobber): Remove code to process libcalls that have
1734         REG_NO_CONFLICT notes.
1735         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
1736         case.
1737         * combine.c (can_combine_p, distribute_notes):  Removed
1738         REG_NO_CONFLICT case.
1739         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
1740         to emit_insns.
1741         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
1742         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
1743         Ditto.
1744         * reg-notes.def (NO_CONFLICT): Removed.
1745
1746 2008-05-14  David S. Miller  <davem@davemloft.net>
1747
1748         * config/sparc/sparc.c (sparc_profile_hook): If
1749         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
1750         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
1751         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1752
1753 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
1754
1755         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
1756
1757 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
1758
1759         PR target/36222
1760         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
1761         and op1 expansion before vector concat to have less live pseudos.
1762
1763 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
1764
1765         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
1766         ix86_expand_vector_set if supported.
1767
1768 2008-05-13  Diego Novillo  <dnovillo@google.com>
1769             Kenneth Zadeck  <zadeck@naturalbridge.com>
1770
1771         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
1772
1773         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
1774         phinodes_print_statistics, init_ssanames, fini_ssanames,
1775         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
1776         release_ssa_name, release_defs, replace_ssa_name_symbol,
1777         ssanames_print_statistics): Move ...
1778         * tree-flow.h: ... here.
1779         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
1780         Use FN instead of cfun.
1781         (make_ssa_name_fn): Rename from make_ssa_name.
1782         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
1783         * tree-flow-inline.h (make_ssa_name): Move from
1784         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
1785         * omp-low.c (expand_omp_parallel):
1786         * tree-flow-inline.h (redirect_edge_var_map_result):
1787         * tree-ssa.c (init_tree_ssa): Add argument FN.
1788         Use it instead of cfun.  Update all users.
1789
1790 2008-05-13  Tom Tromey  <tromey@redhat.com>
1791
1792         PR preprocessor/22168:
1793         * doc/cpp.texi (Top): Update menu.
1794         (Alternatives to Wrapper #ifndef): New node.
1795         (Other Directives): Document deprecation.
1796         (Obsolete Features): Remove menu.
1797         (Assertions): Merge node into Obsolete Features.
1798         (Obsolete once-only headers): Move earlier; rename to Alternatives
1799         to Wrapper #ifndef.
1800         * doc/cppopts.texi: Update.
1801         * c.opt (Wdeprecated): Enable for C and ObjC.
1802         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
1803         (C++ Dialect Options): Move -Wno-deprecated from here to...
1804         (Warning Options): ... here.
1805
1806 2008-05-13  Richard Guenther  <rguenther@suse.de>
1807
1808         PR middle-end/36227
1809         * fold-const.c (fold_sign_changed_comparison): Do not allow
1810         changes in pointer-ness.
1811
1812 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1813
1814         PR target/24713
1815         * config/sh/sh.c (sh_expand_prologue): Don't clear
1816         RTX_FRAME_RELATED_P for push insns.
1817
1818 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
1819
1820         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
1821
1822 2008-05-12  Anatoly Sokolov <aesok@post.ru>
1823
1824         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
1825         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
1826         Use 'machine->is_leaf' instead of 'leaf_func_p'.
1827
1828 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1829
1830         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
1831         (*vec_concatv4sf_sse): This.
1832         (*sse2_concatv2si): Renamed to ...
1833         (*vec_concatv2si_sse2): This.
1834         (*sse1_concatv2si): Renamed to ...
1835         (*vec_concatv2si_sse): This.
1836         (*vec_concatv2di_rex): Renamed to ...
1837         (*vec_concatv2di_rex64): This.
1838         (*vec_concatv2si_sse4_1): New.
1839         (*vec_concatv2di_rex64_sse4_1): Likewise.
1840
1841 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
1842
1843         PR rtl-optimization/36111
1844         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
1845         that was created for swappable operands.
1846
1847 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
1848
1849         PR ada/36001
1850         * Makefile.in: Substitute GNATMAKE and GNATBIND.
1851         * configure.ac: Add call to ACX_PROG_GNAT.
1852
1853 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
1854
1855         * optc-gen.awk: Fix comment typo.
1856
1857 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1858
1859         * pretty-print.c (pp_integer_with_precision): Use
1860         HOST_LONG_LONG_FORMAT.
1861
1862 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
1863
1864         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
1865                 
1866 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
1867
1868         * config/i386/i386.c (bdesc_ptest): Removed.
1869         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
1870         (bdesc_args): Add __builtin_ia32_ptestz128,
1871         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
1872         (ix86_init_mmx_sse_builtins): Updated.
1873         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
1874         (ix86_expand_builtin): Updated.
1875
1876 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
1877
1878         * tree-cfg.c (valid_fixed_convert_types_p): New function.
1879         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
1880
1881 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
1882
1883         * value-prof.c (interesting_stringop_to_profile): Do not
1884         return early for BUILT_IN_MEMPCPY.
1885
1886 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
1887
1888         * calls.c (expand_call): Don't use callgraph to increase
1889         preferred_stack_boundary.
1890
1891         * cgraph.h (cgraph_rtl_info): Use unsigned on
1892         preferred_incoming_stack_boundary.
1893
1894         * final.c (rest_of_clean_state): Use unsigned on
1895         preferred_stack_boundary.
1896
1897 2008-05-09  Tom Tromey  <tromey@redhat.com>
1898
1899         PR preprocessor/22231:
1900         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
1901         proceeding.
1902
1903 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
1904
1905         PR tree-optimization/36129
1906         * tree-ssa-ccp.c: Include value-prof.h.
1907         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
1908         built-in function was folded to a constant.
1909         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
1910
1911 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
1912             Sebastian Pop  <sebastian.pop@amd.com>
1913
1914         * tree-scalar-evolution.c: Document instantiate_scev.
1915         (instantiate_parameters_1): Renamed instantiate_scev_1.
1916         Don't use the same loop for instantiation_loop and evolution_loop.
1917         (instantiate_scev): New.
1918         (instantiate_parameters): Moved...
1919         (resolve_mixers): Update call to instantiate_scev_1 to pass the
1920         same loop twice.  Maintains the semantics for this function.
1921         * tree-scalar-evolution.h (instantiate_scev): Declare.
1922         (instantiate_parameters): ...here.  Now static inline.
1923         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
1924         instead of resolve_mixers.
1925
1926 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
1927
1928         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
1929
1930 2008-05-09  Tomas Bily  <tbily@suse.cz>
1931
1932         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
1933         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
1934         * tree-ssa-structalias.c (get_constraint_for): Likewise.
1935         * c-common.c (c_common_truthvalue_conversion): Likewise.
1936         * tree-object-size.c (compute_object_offset): Likewise.
1937         * tree-inline.c (estimate_num_insns_1): Likewise.
1938         * varasm.c (const_hash_1, compare_constant, copy_constant)
1939         (compute_reloc_for_constant, output_addressed_constants)
1940         (initializer_constant_valid_p): Likewise.
1941         * c-omp.c (check_omp_for_incr_expr): Likewise.
1942         * gimplify.c (gimplify_expr): Likewise.
1943         * c-typeck.c (c_finish_return): Likewise.
1944         * tree-vectorizer.c (supportable_widening_operation)
1945         (supportable_narrowing_operation): Likewise.
1946         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
1947         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
1948         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
1949         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
1950         (descr_info_loc): Likewise.
1951         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
1952         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
1953         (fold_unary): Likewise.
1954         * builtins.c (get_pointer_alignment): Likewise.
1955         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
1956         (instantiate_parameters_1): Likewise.
1957         * tree.c (expr_align, stabilize_reference): Likewise.
1958         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
1959         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
1960         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
1961         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
1962         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
1963         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
1964         Likewise.
1965         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
1966         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
1967         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
1968         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
1969         (forward_propagate_comparison)
1970         (tree_ssa_forward_propagate_single_use_vars): Likewise.
1971         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
1972         * emit-rtl.c (component_ref_for_mem_expr)
1973         (set_mem_attributes_minus_bitpos): Likewise.
1974         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
1975         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
1976         Likewise.
1977         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
1978         (build_function_call, pointer_diff, build_compound_expr)
1979         (c_finish_return): Likewise.
1980         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
1981         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
1982         Likewise.
1983         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
1984         * expr.c (is_aligning_offset): Likewise.
1985         * tree-ssa-alias.c (is_escape_site): Likewise.
1986         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
1987         (check_all_va_list_escapes): Likewise.
1988         * tree-ssa-loop-ivopts.c (determine_base_object)
1989         (determine_common_wider_type): Likewise.
1990         * dojump.c (do_jump): Likewise.
1991         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
1992         * tree-gimple.c (is_gimple_cast): Likewise.
1993         * fold-const.c (decode_field_reference, )
1994         (fold_sign_changed_comparison, fold_unary, fold_comparison)
1995         (fold_binary): Likewise.
1996         * tree-ssa-alias-warnings.c (find_alias_site_helper)
1997         (already_warned_in_frontend_p): Likewise.
1998         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
1999         * tree.c (really_constant_p, get_unwidened): Likewise.
2000         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
2001         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
2002         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
2003         Likewise.
2004         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
2005         CONVERT_EXPR_P.
2006         (CONVERT_EXPR_P): Define.
2007         (CASE_CONVERT): Define.
2008         
2009 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
2010
2011         PR middle-end/36117
2012         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
2013         (delete_unmarked_insns): When deleting a call, call
2014         delete_unreachable_blocks.
2015         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2016         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
2017
2018 2008-05-08  Richard Guenther  <rguenther@suse.de>
2019
2020         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
2021         (-ftree-salias): Likewise.
2022         (salias-max-implicit-fields): Remove param documentation.
2023         (salias-max-array-elements): Likewise.
2024         * tree-pass.h (pass_create_structure_vars): Remove.
2025         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
2026         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2027         * tree-ssa-alias.c (create_structure_vars): Remove.
2028         (gate_structure_vars): Likewise.
2029         (pass_create_structure_vars): Likewise.
2030         (gate_build_alias): Likewise.
2031         (pass_build_alias): Adjust to run always and dump the function.
2032         * common.opt (ftree-salias): Hide.
2033         * passes.c (init_optimization_passes): Remove
2034         pass_create_structure_vars, adjust comment.
2035         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
2036         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2037         * opts.c (decode_options): Do not set flag_tree_salias.
2038         (common_handle_option): Add OPT_ftree_salias to the backward
2039         compatibility section.
2040
2041 2008-05-08  Richard Guenther  <rguenther@suse.de>
2042
2043         * tree-flow-inline.h (var_can_have_subvars): Move ...
2044         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
2045         * tree-flow.h (var_can_have_subvars): Remove.
2046         (push_fields_onto_fieldstack): Remove.
2047         (sort_fieldstack): Likewise.
2048         (struct fieldoff): Move ...
2049         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
2050         alias_set and base_for_components fields.
2051         (sort_fieldstack): Make static.
2052         (push_fields_onto_fieldstack): Likewise.  Remove code that
2053         handles anything but RECORD_TYPEs.  Remove alias_set and
2054         base_for_components handling.
2055         (create_variable_info_for): Adjust.
2056
2057 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
2058
2059         * common.opt (Wframe-larger-than=): Shorten the help message
2060         to one line.
2061         * doc/invoke.texi (Wframe-larger-than=): Add more description.
2062
2063 2008-05-08  Rafael Espindola  <espindola@google.com>
2064
2065         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
2066         trap.
2067         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
2068         trap and that both operands are gimple values.
2069         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
2070         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
2071         is a fp operation.
2072
2073 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
2074
2075         * read-rtl.c (join_c_conditions): Return the first string if the
2076         two strings are equal.
2077
2078 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
2079
2080         * gensupport.h (pred_data): Add a "num_codes" field.
2081         (add_predicate_code): Declare.
2082         * gensupport.c (add_predicate_code): New function.
2083         (std_pred_table): Add an "allows_const_p" field.
2084         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
2085         Remove the (incomplete) list of such codes from the codes field.
2086         (init_predicate_table): Use add_predicate_code.  Add all
2087         RTX_CONST_OBJs if allows_const_p is true.
2088         * genrecog.c (process_define_predicate): Use add_predicate_code.
2089
2090 2008-05-08  David Daney  <ddaney@avtrex.com>
2091             Richard Sandiford  <rsandifo@nildram.co.uk>
2092         
2093         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
2094         special case of constant zero operands.
2095         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
2096         old and new values.  Special case constant zero values.
2097         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
2098         fails.
2099         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
2100         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
2101
2102 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
2103
2104         PR target/36090
2105         * simplify-rtx.c (simplify_plus_minus): Create CONST of
2106         similar RTX_CONST_OBJ before CONST_INT.
2107
2108 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
2109
2110         * stmt.c (expand_stack_restore): Change sa mode if needed.
2111
2112 2008-05-08  Richard Guenther  <rguenther@suse.de>
2113
2114         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
2115         return type to bool.
2116         (ix86_sol10_return_in_memory): Likewise.
2117         (ix86_i386elf_return_in_memory): Likewise.
2118         (ix86_i386interix_return_in_memory): Likewise.
2119         * config/i386/i386.c (ix86_return_in_memory): Likewise.
2120         (ix86_sol10_return_in_memory): Likewise.
2121         (ix86_i386elf_return_in_memory): Likewise.
2122         (ix86_i386interix_return_in_memory): Likewise.
2123
2124 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
2125
2126         PR bootstrap/36180
2127         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
2128         fndecl argument.
2129         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
2130         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
2131         declared in front.
2132
2133 2008-05-08  Richard Guenther  <rguenther@suse.de>
2134
2135         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
2136         * tree-data-ref.h (struct dr_alias): Remove subvars field.
2137         (DR_SUBVARS): Remove.
2138         * tree-dfa.c (dump_subvars_for): Remove.
2139         (debug_subvars_for): Likewise.
2140         (dump_variable): Do not dump subvars.
2141         (remove_referenced_var): Do not remove subvars.
2142         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
2143         (lookup_subvars_for_var): Remove.
2144         (get_subvars_for_var): Likewise.
2145         (get_subvars_at): Likewise.
2146         (get_first_overlapping_subvar): Likewise.
2147         (overlap_subvar): Likewise.
2148         * tree-flow.h (subvar_t): Remove.
2149         (struct var_ann_d): Remove subvars field.
2150         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
2151         argument.  Remove special handling of SFTs.
2152         (compute_tag_properties): Likewise.
2153         (set_initial_properties): Likewise.
2154         (compute_call_clobbered): Likewise.
2155         (count_mem_refs): Likewise.
2156         (compute_memory_partitions): Likewise.
2157         (compute_flow_insensitive_aliasing): Likewise.
2158         (setup_pointers_and_addressables): Likewise.
2159         (new_type_alias): Likewise.
2160         (struct used_part): Remove.
2161         (used_portions): Likewise.
2162         (struct used_part_map): Likewise.
2163         (used_part_map_eq): Likewise.
2164         (used_part_map_hash): Likewise.
2165         (free_used_part_map): Likewise.
2166         (up_lookup): Likewise.
2167         (up_insert): Likewise.
2168         (get_or_create_used_part_for): Likewise.
2169         (create_sft): Likewise.
2170         (create_overlap_variables_for): Likewise.
2171         (find_used_portions): Likewise.
2172         (create_structure_vars): Likewise.
2173         * tree.def (STRUCT_FIELD_TAG): Remove.
2174         * tree.h (MTAG_P): Adjust.
2175         (struct tree_memory_tag): Remove base_for_components and
2176         unpartitionable flags.
2177         (struct tree_struct_field_tag): Remove.
2178         (SFT_PARENT_VAR): Likewise.
2179         (SFT_OFFSET): Likewise.
2180         (SFT_SIZE): Likewise.
2181         (SFT_NONADDRESSABLE_P): Likewise.
2182         (SFT_ALIAS_SET): Likewise.
2183         (SFT_UNPARTITIONABLE_P): Likewise.
2184         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
2185         (union tree_node): Remove sft field.
2186         * alias.c (get_alias_set): Remove special handling of SFTs.
2187         * print-tree.c (print_node): Remove handling of SFTs.
2188         * tree-dump.c (dequeue_and_dump): Likewise.
2189         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
2190         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
2191         * tree-predcom.c (set_alias_info): Do not set subvars.
2192         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
2193         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
2194         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
2195         (add_vars_for_offset): Remove.
2196         (add_virtual_operand): Remove special handling of SFTs.
2197         (add_call_clobber_ops): Likewise.
2198         (add_call_read_ops): Likewise.
2199         (get_asm_expr_operands): Likewise.
2200         (get_modify_stmt_operands): Likewise.
2201         (get_expr_operands): Likewise.
2202         (add_to_addressable_set): Likewise.
2203         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
2204         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2205         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
2206         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
2207         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
2208         (tree_node_structure): Likewise.
2209         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
2210         handling of SFTs.
2211         (find_what_p_points_to): Likewise.
2212
2213 2008-05-08  Sa Liu  <saliu@de.ibm.com>
2214
2215         * config/spu/spu.md: Fixed subti3 pattern.
2216
2217 2008-05-08  Richard Guenther  <rguenther@suse.de>
2218
2219         PR middle-end/36154
2220         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
2221         sure to create a representative for trailing arrays for PTA.
2222
2223 2008-05-08  Richard Guenther  <rguenther@suse.de>
2224
2225         PR middle-end/36172
2226         * fold-const.c (operand_equal_p): Two objects which types
2227         differ in pointerness are not equal.
2228
2229 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
2230
2231         * calls.c (compute_argument_block_size): Add argument tree fndecl.
2232         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
2233         (emit_library_call_value_1): Add new variable fndecl initialized by
2234         NULL_TREE. It should be the decl type of orgfun, but this information
2235         seems not to be available here, so it uses the default calling abi.
2236         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
2237         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
2238         by TARGET_RETURN_IN_MEMORY.
2239         * config/i386/i386-interix.h: Likewise.
2240         * config/i386/i386.h: Likewise.
2241         * config/i386/i386elf.h: Likewise.
2242         * config/i386/ptx4-i.h: Likewise.
2243         * config/i386/sol2-10.h: Likewise.
2244         * config/i386/sysv4.h: Likewise.
2245         * config/i386/vx-common.h: Likewise.
2246         * config/cris/cris.h: Removed #if 0 clause.
2247         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
2248         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
2249         argument.
2250         (ix86_sol10_return_in_memory): Likewise.
2251         (ix86_i386elf_return_in_memory): New.
2252         (ix86_i386interix_return_in_memory): New.
2253         * config/mt/mt-protos.h (mt_return_in_memory): New.
2254         * config/mt/mt.c: Likewise.
2255         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2256         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
2257         * config/bfin/bfin.h: Likewise.
2258         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
2259         argument.
2260         * config/bfin/bfin.c: Likewise.
2261         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2262         * config/alpha/unicosmk.h: Likewise.
2263         * config/i386/cygming.h: Likewise.
2264         * config/iq2000/iq2000.h: Likewise.
2265         * config/mips/mips.h: Likewise.
2266         * config/mn10300/mn10300.h: Likewise.
2267         * config/rs6000/rs6000.h: Likewise.
2268         * config/score/score.h: Likewise.
2269         * config/spu/spu.h: Likewise.
2270         * config/v850/v850.h: Likewise.
2271         * defaults.h: Likewise.
2272         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
2273         * expr.c (emit_block_move): Adjust use of
2274         OUTGOING_REG_PARM_STACK_SPACE.
2275         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
2276         OUTGOING_REG_PARM_STACK_SPACE.
2277         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
2278
2279 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
2280
2281         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
2282         on OMP_RETURN for OMP_FOR.
2283
2284         PR debug/35896
2285         * dwarf2out.c (dw_expand_expr, common_check): Removed.
2286         (fortran_common): New function.
2287         (gen_variable_die): Call fortran_common instead of common_check,
2288         adjust for it returning tree instead of rtx.  Formatting.
2289
2290 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
2291
2292         PR rtl/7335
2293         PR rtl/33826
2294         * see.c (see_copy_insn): Copy new pure const attributes for new call.
2295         * c-decl.c (merge_decls): Ditto.
2296         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
2297         to RTL_CONST_OR_PURE_CALL_P.
2298         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
2299         Initialized DECL_LOOPING_CONST_PURE.
2300         (process_call_operands): Set tree_side_effects properly.
2301         * tree.h (TREE_READONLY_DECL_P): Removed.
2302         (DECL_IS_PURE): Renamed to DECL_PURE_P.
2303         (DECL_LOOPING_OR_CONST_P): New macro.
2304         (struct tree_function_decl): Added looping_const_or_pure_p.
2305         (ECF_*) Renumbered.
2306         (ECF_LOOPING_OR_CONST_P): New macro.
2307         * rtlanal.c (pure_const_p): Removed.
2308         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
2309         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
2310         to RTL_CONST_CALL_P.
2311         * ipa-pure-const.c (pure_const_state_e): Added looping field.
2312         (check_decl, check_tree, check_call, scan_function): Initialize
2313         looping.
2314         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
2315         (static_execute): Set looping true for recursive functions.
2316         Undo setting state to IPA_NEITHER for recursive functions.
2317         * cse.c (cse_insn): 
2318         * ifcvt.c (noce_can_store_speculate_p): Changed
2319         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
2320         RTL_CONST_OR_PURE_CALL_P.
2321         * dse.c (scan_insn): Ditto.
2322         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
2323         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
2324         RTL_CONST_OR_PURE_CALL_P.
2325         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
2326         pure_call_p to RTL_CONST_CALL_P.
2327         * gimplify.c (gimplify_call_expr): Clear side effects for
2328         non-looping pure and constant calls.
2329         * calls.c (emit_call_1): Set rtl flags from ecf flags.
2330         (flags_from_decl_or_type): Set ecf flags from decl flags.
2331         (initialize_argument_information): Turn off
2332         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
2333         Change const to pure if callee_copies is true rather than just
2334         turning off const.
2335         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
2336         way of marking pure calls.
2337         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
2338         Remove hack that was supposed to fix pr7335 and remove old
2339         way of marking pure calls.
2340         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
2341         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
2342         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
2343         RTL_CONST_OR_PURE_CALL_P.
2344         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
2345         * loop-invariant.c (find_exits, find_invariant_bb): Changed
2346         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
2347         * sched-deps.c (schedule_analyze): Ditto.
2348         * rtl.h (struct rtx_def): Use call field, unchanging field, and
2349         return_val field of calls to represent pure and const function info.
2350         (CONST_OR_PURE_CALL_P): Deleted macro.
2351         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2352         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
2353         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
2354         TREE_READONLY.
2355         * tree-optimize.c (execute_fixup_cfg): Added test for
2356         ECF_LOOPING_CONST_OR_PURE.
2357         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
2358         DECL_PURE_P.
2359         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
2360         effects for looping pure or const calls.
2361         (verify_gimple_expr): Added verification code. 
2362         * config/alpha/alpha.c (alpha_legitimize_address,
2363         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
2364         RTL_CONST_CALL_P.
2365         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
2366         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
2367         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
2368         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
2369         RTL_CONST_OR_PURE_CALL_P.
2370         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
2371         and const calls to be deleted.
2372
2373 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2374
2375         PR target/35714
2376         * config/i386/mmx.md (mmx_subv2sf3): New expander.
2377         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
2378         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
2379         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2380         to handle nonimmediate operands.
2381         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
2382         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
2383         to handle nonimmediate operands.
2384         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
2385         (mmx_pmulhrwv4hi3): New expander.  Use
2386         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2387         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
2388         (sse2_umulv1siv1di3): New expander.  Use
2389         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2390         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
2391         (mmx_eq<mode>3): New expander.  Use
2392         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2393         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
2394         (mmx_uavgv8qi3): New expander.  Use
2395         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2396         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
2397         (mmx_uavgv4hi3): New expander.  Use
2398         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2399
2400         * config/i386/sse.md
2401         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
2402         to handle nonimmediate operands.
2403         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
2404         to handle nonimmediate operands.
2405         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
2406         to handle nonimmediate operands.
2407         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
2408         to handle nonimmediate operands.
2409         (sse2_unpckhpd_exp): New expander.  Use
2410         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2411         (sse2_unpcklpd_exp): New expander.  Use
2412         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2413         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
2414         to handle nonimmediate operands.
2415         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
2416         to handle nonimmediate operands.
2417         (*sse2_<plusminus_insn><mode>3): Rename from
2418         sse2_<plusminus_insn><mode>3 insn pattern.
2419         (sse2_<plusminus_insn><mode>3): New expander.  Use
2420         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2421         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
2422         (sse2_umulv2siv2di3): New expander.  Use
2423         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2424         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
2425         (sse4_1_mulv2siv2di3): New expander.  Use
2426         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2427         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
2428         (sse2_pmaddwd): New expander.  Use
2429         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2430         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
2431         (sse2_eq<mode>3): New expander.  Use
2432         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2433         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
2434         (sse4_1_eqv2di3): New expander.  Use
2435         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2436         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2437         (sse2_uavgv16qi3): New expander.  Use
2438         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2439         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2440         (sse2_uavgv16qi3): New expander.  Use
2441         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2442         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
2443         (sse2_uavgv8hi3): New expander.  Use
2444         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2445         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
2446         (ssse3_pmulhrswv8hi3): New expander.  Use
2447         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2448         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
2449         (ssse3_pmulhrswv4hi3): New expander.  Use
2450         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2451
2452         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
2453         (<sse>_vmmul<mode>3): Ditto.
2454         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
2455         (divv2df3): Ditto.
2456         (ssse3_pmaddubsw128): Use register_operand for operand 1.
2457         (ssse3_pmaddubsw): Ditto.
2458
2459         * config/i386/i386.c (struct_builtin_description)
2460         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
2461         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
2462         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
2463         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
2464         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
2465         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
2466         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
2467         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
2468         (ix86_fixup_binary_operands): Assert that src1
2469         and src2 must have the same mode when swapped.
2470         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
2471         and ix86_binary_operator_ok.  Do not force operands in registers
2472         when optimizing.
2473
2474 2008-05-07  Jan Hubicka  <jh@suse.cz>
2475
2476         * cgraph.c (dump_cgraph_node): Update.
2477         * cgraph.h (cgraph_local_info): Break out inline summary.
2478         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
2479         hook.
2480         * ipa-inline (inline_summary): New accestor function.
2481         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
2482         cgraph_decide_inlining, compute_inline_parameters): Update.
2483         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
2484
2485 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
2486
2487         Cleanup ColdFire scheduling support and add V4 pipeline model.
2488
2489         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
2490         (define_attr cpu): Add cfv4 value.
2491         (define_attr type, define_attr type1): Merge into a single 'type'
2492         attribute.  Update all uses.
2493         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
2494         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
2495         Update all uses.
2496         (define_attr opx_mem, define_attr opy_mem): Remove.
2497         (define_attr op_mem): Clean up, update comment.
2498         (define_attr size): Use specific values instead of general int.
2499         (define_attr guess, define_attr split): Remove.  Update all uses.
2500         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
2501         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
2502         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
2503         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
2504         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
2505         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
2506         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
2507         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
2508         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
2509         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
2510         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
2511         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
2512         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
2513         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
2514         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
2515         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
2516         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
2517         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
2518         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
2519         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
2520         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
2521         Update or set attributes.
2522         (stack_tie): New fake instruction.
2523
2524         * config/m68k/m68k.h (TUNE_CFV4): New macro.
2525         (m68k_sched_attr_size): Update declaration.
2526         (m68k_sched_attr_type2): Remove.
2527         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
2528         Declare new bypass predicates.
2529
2530         * config/m68k/m68k.c (m68k_sched_issue_rate,
2531         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
2532         implementations.
2533         (TARGET_SCHED_ISSUE_RATE,
2534         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
2535         (override_options): Handle scheduling for ColdFire V4 core.
2536         (m68k_expand_prologue): Emit stack_tie.
2537         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
2538         'OP_TYPE_FPN'.  Update all uses.
2539         (sched_guess_p): Remove.
2540         (sched_address_type): Handle symbolic addresses.
2541         (sched_get_operand): New static function.
2542         (sched_operand_type): Merge into sched_attr_op_type.
2543         (sched_attr_op_type): Handle FP registers, handle quick constants,
2544         update.
2545         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
2546         (m68k_sched_attr_size): Update.  Move logic to ...
2547         (sched_get_attr_size_int): New static function.
2548         (sched_get_opxy_mem_type): New static function.
2549         (m68k_sched_attr_op_mem): Update.
2550         (m68k_sched_attr_type2): Remove.
2551         (sched_cfv4_bypass_data): New static variable.
2552         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
2553         (m68k_sched_issue_rate): Implement scheduler hook.
2554         (struct _sched_ib: enabled_p): New field.
2555         (m68k_sched_variable_issue): Update.  Handle V4.
2556         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
2557         sched_dump_class_func_t, sched_dump_split_class,
2558         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
2559         sched_dump_dfa_class, m68k_sched_dump): Remove.
2560         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
2561         hook.
2562         (m68k_sched_init_global): Remove statisctics dumping, introduce
2563         sanity check that all instructions have pipeline reservations.  Handle
2564         ColdFire V4 core.
2565         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2566         Handle ColdFire V4 core.
2567         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
2568         New static functions.
2569         (m68k_sched_address_bypass_p): New bypass predicate.
2570         (sched_get_indexed_address_scale): New static function.
2571         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
2572
2573         * cf.md: Update comments.
2574         (define_attr type2): Remove.  Use 'type' attribute instead.
2575         Update all uses.
2576         (cf_ib): Rename to cfv123_ib.  Update all uses.
2577         (cf_oep): Rename to cfv123_oep.  Update all uses.
2578         (cf_chr): Rename to cfv123_chr.  Update all uses.
2579         (cf_mem): Rename to cfv123_mem.  Update all uses.
2580         (cf_mac): Move to more appropriate place.
2581         (cfv123_guess): New automaton and cpu_unit.
2582         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
2583         Update uses of 'size' attribute.  Handle before reload scheduling.
2584         (cfv123_guess): New dummy reservation for unhandled instructions.
2585         (cfv4_*): Pipeline description of ColdFire V4 core.
2586         (ignore): New reservation to handle 'ignore' type.
2587
2588 2008-05-07  Ian Lance Taylor  <iant@google.com>
2589
2590         PR middle-end/36013
2591         * gimplify.c (find_single_pointer_decl_1): Don't look through
2592         indirections.
2593         (find_single_pointer_decl): Adjust comments.
2594
2595 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
2596
2597         PR middle-end/36137
2598         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
2599         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
2600
2601         PR middle-end/36106
2602         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
2603         integral type rather than floating point, then VIEW_CONVERT_EXPR
2604         to the floating point type.
2605
2606 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2607
2608         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
2609         TFmode op0 to register.
2610
2611 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
2612
2613         * c-decl.c (grokdeclarator): Comment typo.
2614
2615 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
2616
2617         * tree-flow.h: Remove prototype for computed_goto_p.
2618         * tree-cfg.c (computed_goto_p): Make static.
2619
2620 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
2621
2622         PR target/35657
2623         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
2624         (contains_aligned_value_p): This.  Handle _Decimal128.
2625         (ix86_function_arg_boundary): Only align _Decimal128 to its
2626         natural boundary and handle it properly.
2627
2628 2008-05-06  Martin Jambor  <mjambor@suse.cz>
2629
2630         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
2631         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
2632         (ipcp_method_set_orig_node): Removed.
2633         (ipcp_cval_get_cvalue_type): Removed.
2634         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
2635         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
2636         (ipcp_cval_set_cvalue_type): Removed.
2637         (ipcp_cval_get_cvalue): Removed.
2638         (ipcp_cval_set_cvalue): Removed.
2639         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
2640         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
2641         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
2642         (ipcp_cval_meet): Renamed to ipa_lattice_meet
2643         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
2644         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
2645         (ipcp_get_ith_lattice): Changed parameters.
2646         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
2647         (ipcp_lattice_from_jfunc): Changed parameters.
2648         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
2649         (ipcp_method_cval_print): Added temporary variable info.
2650         (ipcp_redirect): Removed already unused local variable caller.
2651         (ipcp_redirect): New temporary variable orig_callee_info
2652         (ipcp_redirect): Removed newly unused local variable callee.
2653         (ipcp_redirect): Removed (a bit confusing) local variable type.
2654         (ipcp_insert_stage): Added local variable info.
2655         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
2656         renamed too
2657         (ipcp_formal_create): Removed.
2658         (ipcp_method_cval_set): Removed.
2659         (ipcp_propagate_stage): Renamed lattice variables.
2660         (ipcp_method_cval_set_cvalue_type): Removed.
2661         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
2662         (ipcp_print_all_lattices): Changed printed strings to refer to 
2663         lattices rather than cvals.
2664         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
2665         (ipcp_propagate_const): Changed formal parameters.
2666         (build_const_val): Changed formal parameters.
2667         (ipcp_insert_stage): Removed useless variable cvalue
2668         (build_const_val): Changed formal parameters.
2669         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
2670         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
2671         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
2672         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
2673         (ipcp_print_func_profile_counts): Changed string from "method" to 
2674         "function"
2675         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
2676         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
2677         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
2678         (ipcp_structures_print): Renamed to ipcp_print_all_structures
2679         (ipcp_profile_print): Renamed to ipcp_print_profile_data
2680         (ipcp_lat_is_const): Changed parameters and made inline.
2681         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
2682         (ipcp_redirect): Renamed to ipcp_need_redirect_p
2683         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
2684         the predicate condition directly
2685         (ipcp_propagate_stage): Added local variable args. Removed local
2686         variable callee.  (Both are mere code simplifications.)
2687         (ipcp_method_dont_insert_const): Renamed to
2688         ipcp_node_not_modifiable_p.
2689         (ipcp_node_not_modifiable_p): Made inline.
2690         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
2691         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
2692         (ipcp_print_all_lattices): Removed variable cvalue
2693         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
2694         Updated comments.
2695
2696 2008-05-06  Olivier Hainque  <hainque@adacore.com>
2697
2698         * tree-sra.c (try_instantiate_multiple_fields): Early return
2699         if field has POINTER_TYPE.
2700
2701 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
2702
2703         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
2704         by using 'q' specifier for instruction.
2705         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
2706
2707 2008-05-06  Anatoly Sokolov <aesok@post.ru>
2708
2709         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
2710         Change mode of zero_extract from QImode to HImode.
2711         (sign bit tests peepholes): (Ditto.).
2712
2713 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
2714
2715         * config/i386/mmx.md: Remove double backslashes from asm templates.
2716         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
2717         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2718         to handle nonimmediate operands.
2719         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
2720         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2721         to handle nonimmediate operands.
2722         (*mmx_<code>v2sf3_finite): New insn pattern.
2723         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
2724         (mmx_<code>v2sf3): New expander.  Use
2725         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2726         (mmx_<plusminus_insn><mode>3): New expander.  Use
2727         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2728         (*mmx_<plusminus_insn><mode>3): New insn pattern.
2729         (mmx_add<mode>3): Removed.
2730         (mmx_ssadd<mode>3): Ditto.
2731         (mmx_usadd<mode>3): Ditto.
2732         (mmx_sub<mode>3): Ditto.
2733         (mmx_sssub<mode>3): Ditto.
2734         (mmx_ussub<mode>3): Ditto.
2735         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
2736         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
2737         to handle nonimmediate operands.
2738         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
2739         insn pattern.
2740         (mmx_smulv4hi3_highpart): New expander.  Use
2741         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2742         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
2743         insn pattern.
2744         (mmx_umulv4hi3_highpart): New expander.  Use
2745         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2746         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
2747         (mmx_<code>v4hi3): New expander.  Use
2748         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2749         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
2750         (mmx_<code>v8qi3): New expander.  Use
2751         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2752         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
2753         (mmx_<code><mode>3): New expander.  Use
2754         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2755
2756 2008-05-05  Jan Hubicka  <jh@suse.cz>
2757
2758         PR tree-optimization/36118
2759         * passes.c (pass_init_dump_file): Fix dump header.
2760
2761 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2762
2763         PR middle-end/36141
2764         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
2765         VCE for function decls.
2766
2767 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2768
2769         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
2770
2771 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2772
2773         * config/i386/i386.md (sat_plusminus): New.
2774         (plusminus_insn): Likewise.
2775         (plusminus_mnemonic): Likewise.
2776         (addsub): Removed.
2777         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
2778         (*<addsub><mode>3_cc_overflow): Renamed to ...
2779         (*<plusminus_insn><mode>3_cc_overflow): This.
2780         (*<addsub>si3_zext_cc_overflow): Renamed to ...
2781         (*<plusminus_insn>si3_zext_cc_overflow): This.
2782
2783         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
2784         (<plusminus_insn><mode>3): This.
2785         (*<addsub><mode>3): Renamed to ...
2786         (*<plusminus_insn><mode>3): This.
2787         (<sse>_vm<addsub><mode>3): Renamed to ...
2788         (<sse>_vm<plusminus_insn><mode>3): This.
2789         (sse3_h<addsub>v4sf3): Renamed to ...
2790         (sse3_h<plusminus_insn>v4sf3): This.
2791         (sse3_h<addsub>v2df3): Renamed to ...
2792         (sse3_h<plusminus_insn>v2df3): This.
2793         (<plusminus_insn><mode>3): New.
2794         (*<plusminus_insn><mode>3): Likewise.
2795         (sse2_<plusminus_insn><mode>3): Likewise.
2796         (add<mode>): Removed.
2797         (*add<mode>3): Likewise.
2798         (sse2_ssadd<mode>3): Likewise.
2799         (sse2_usadd<mode>3): Likewise.
2800         (sub<mode>3): Likewise.
2801         (*sub<mode>3): Likewise.
2802         (sse2_sssub<mode>3): Likewise.
2803         (sse2_ussub<mode>3): Likewise.
2804
2805 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
2806
2807         * gthr-single.h: Add in required interface elements as per gthr.h.
2808         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
2809         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
2810         Generalize UNUSED macro. 
2811         (__gthread_once): Add.
2812         (__gthread_key_create): Add.
2813         (__gthread_key_delete): Add.
2814         (__gthread_getspecific): Add.
2815         (__gthread_setspecific): Add.
2816         
2817 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
2818
2819         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
2820         the same size types for the indirect reference on the rhs, then
2821         create a VCE.
2822
2823 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
2824
2825         * config/i386/i386.md
2826         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
2827         one insn template instead of template series.
2828         (*xordi_1_rex64): Ditto.
2829         (*xordi_2_rex64): Ditto.
2830
2831 2008-05-05  Ira Rosen  <irar@il.ibm.com>
2832
2833         PR tree-optimization/36119
2834         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
2835         in case of SLP.
2836
2837 2008-06-04  Jan Hubicka  <jh@suse.cz>
2838
2839         tree-optimization/36100
2840         * tree-pass.h (pass_O0_always_inline): Declare.
2841         * ipa-inline.c (inline_transform): Remove dead code.
2842         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
2843         pass_O0_always_inline): New.
2844         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
2845
2846 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
2847
2848         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
2849         mnemonic in this_param move for TARGET_64BIT.
2850
2851 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
2852
2853         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
2854         (*strmovsi_rex_1): Ditto.
2855         (*strsetsi_1): Ditto.
2856         (*strsetsi_rex_1): Ditto.
2857
2858         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
2859         adddicc expanders using SWI mode iterator.
2860
2861 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2862
2863         PR target/36121
2864         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
2865         argument handling.
2866
2867 2008-05-04  David S. Miller  <davem@davemloft.net>
2868
2869         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
2870         (sparc*-*-linux*): Use linux.h in tm_file.
2871         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
2872         compiler defaulting to 32-bit.
2873         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
2874         no longer needed.
2875         * config/sparc/linux.h: Remove definitions now obtained
2876         properly from linux.h
2877         * config/sparc/linux64.h: Likewise.
2878         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
2879         don't want this setting for 32-bit builds in a biarch compiler.
2880         * doc/install.texi: Add sparc-linux to list of targets
2881         supporting --enable-targets=all.
2882
2883 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
2884
2885         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
2886
2887 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
2888
2889         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
2890         after V4SI_FTYPE_V8HI.
2891         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
2892         case V4SI_FTYPE_V2DF.
2893
2894 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
2895
2896         * doc/invoke.texi (max-flow-memory-locations): Removed.
2897         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
2898         
2899 2008-05-03  Richard Guenther  <rguenther@suse.de>
2900
2901         PR middle-end/34973
2902         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
2903
2904 2008-05-02  David S. Miller  <davem@davemloft.net>
2905
2906         * config.gcc (need_64bit_hwint): Document libcpp dependency.
2907
2908 2008-05-02  Simon Baldwin <simonb@google.com>
2909
2910         PR bootstrap/36108
2911         * c-common.h (warn_array_subscript_range): Removed.
2912         * c-common.c (warn_array_subscript_range): Ditto.
2913         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
2914         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
2915
2916 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2917
2918         * config/i386/i386.c (ix86_special_builtin_type): New.
2919         (bdesc_special_args): Likewise.
2920         (ix86_expand_special_args_builtin): Likewise.
2921         (ix86_init_mmx_sse_builtins): Updated.
2922         (ix86_expand_builtin): Updated.
2923         (ix86_expand_store_builtin): Removed.
2924         (ix86_expand_unop_builtin): Likewise.
2925
2926         * config/i386/mm3dnow.h (__v2sf): Moved to ...
2927         * config/i386/mmintrin.h (__v2sf): Here.
2928
2929         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
2930         const __v2sf.
2931         (_mm_loadl_pi): Likewise.
2932         (_mm_storeh_pi): Replace __v2si with __v2sf.
2933         (_mm_storel_pi): Likewise.
2934
2935         * doc/extend.texi: Correct __builtin_ia32_loadhps,
2936         __builtin_ia32_loadlps, __builtin_ia32_storehps,
2937         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
2938         __builtin_ia32_loadlpd.
2939
2940 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2941
2942         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
2943         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
2944         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
2945         (ix86_init_mmx_sse_builtins): Updated.
2946         (ix86_expand_args_builtin): Likewise.
2947         (ix86_expand_builtin): Likewise.
2948         (ix86_expand_unop1_builtin): Renamed to ...
2949         (ix86_expand_unop_vec_merge_builtin): This.
2950
2951 2008-05-01  Jan Hubicka  <jh@suse.cz>
2952
2953         PR bootstrap/36100
2954         * ipa-inline.c (inline_generate_summary): Make static.
2955         (inline_transform): Do not call inlining at -O0; make static.
2956         * passes.c (execute_todo): Add sanity check.
2957         (execute_one_ipa_transform_pass): Execute proper flags.
2958
2959 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
2960
2961         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
2962         (DECL_NONADDRESSABLE_P): Likewise.
2963         * alias.c (record_component_aliases): Fix comment.
2964
2965 2008-05-01  Simon Baldwin <simonb@google.com>
2966
2967         * c-common.h (warn_array_subscript_range): New function.
2968         * c-common.c (warn_array_subscript_range): Ditto.
2969         * tree-vrp.c (check_array_ref): Corrected code to agree with
2970         comment, ignoring only arrays of size 0 or size 1.
2971         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
2972
2973 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2974
2975         * config/i386/i386.c (ix86_builtin_type): Replace
2976         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
2977         (bdesc_args): Updated.
2978         (ix86_init_mmx_sse_builtins): Likewise.
2979         (ix86_expand_args_builtin): Likewise.
2980
2981         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
2982         with __v1di.
2983
2984         * doc/extend.texi: Correct __builtin_ia32_palignr.
2985
2986 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2987
2988         PR target/36095
2989         * config/i386/i386.c (bdesc_crc32): Removed.
2990         (ix86_expand_crc32): Likewise.
2991         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
2992         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
2993         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
2994         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
2995         UINT_FTYPE_UINT_UCHAR.
2996         (bdesc_args): Updated. Add crc32 builtins.
2997         (ix86_init_mmx_sse_builtins): Updated.
2998         (ix86_expand_args_builtin): Updated to support subreg.
2999
3000         * doc/extend.texi: Correct __builtin_ia32_crc32di.
3001
3002 2008-05-01  Jan Hubicka  <jh@suse.cz>
3003
3004         * tree-pass.h (opt_pass): Add IPA_PASS.
3005         (varpool_node, cgraph_node): Forward declare.
3006         (ipa_opt_pass): Define.
3007         (pass_ipa_inline): Turn into ipa_opt_pass.
3008         (pass_apply_inline): Remove.
3009         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
3010         (apply_inline): Turn into ....
3011         (inline_transform): ... this one.
3012         (inline_generate_summary): New function.
3013         (pass_apply_inline): Remove.
3014         * function.h (ipa_opt_pass): Forward declare structure; typedef;
3015         vector.
3016         (struct function): Add ipa_transforms_to_apply.
3017         * passes.c (register_one_dump_file): Work on IPA_PASS.
3018         (init_optimization_passes): Remove pass_inline_parameters and
3019         pass_apply_inline.
3020         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
3021         (execute_one_pass) ... here; apply transforms when possible.
3022         (add_ipa_transform_pass, execute_ipa_summary_asses,
3023         execute_one_ipa_transform_pass): New.
3024         (execute_ipa_pass_list): Update for IPA_PASS type.
3025
3026 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3027
3028         * config/i386/i386.c (ix86_builtin_type): Add
3029         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
3030         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
3031         (bdesc_args): Add SSE4a builtins.
3032         (ix86_init_mmx_sse_builtins): Updated.
3033         (ix86_expand_args_builtin): Likewise.
3034         (ix86_expand_builtin): Likewise.
3035
3036 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3037
3038         * config/i386/i386.c (ix86_builtin_type): Add
3039         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
3040         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
3041         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
3042         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
3043         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
3044         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
3045         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
3046         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
3047         and DI_FTYPE_DI_DI_INT.
3048         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
3049         (ix86_init_mmx_sse_builtins): Updated.
3050         (ix86_expand_args_builtin): Likewise.
3051         (ix86_expand_builtin): Likewise.
3052         (ix86_expand_binop_imm_builtin): Removed.
3053
3054         * doc/extend.texi: Correct __builtin_ia32_palignr128.
3055
3056 2008-04-30  Richard Guenther  <rguenther@suse.de>
3057
3058         PR tree-optimization/32921
3059         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
3060
3061 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
3062
3063         * config/arm/arm.c (arm_unwind_emit): Use
3064         crtl->all_throwers_are_sibcalls instead of
3065         cfun->all_throwers_are_sibcalls.
3066         (arm_output_fn_unwind): Likewise.
3067         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
3068         instead of cfun->uses_pic_offset_table.
3069         (frv_expand_prologue): Likewise.
3070         (frv_frame_pointer_required): Likewise.
3071         (frv_expand_fdpic_call): Likewise.
3072         (frv_emit_movsi): Likewise.
3073         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
3074         cfun->returns_pcc_struct instead of
3075         current_function_returns_pcc_struct.
3076         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
3077         instead of cfun->calls_eh_return.
3078         (m32c_pushm_popm): Likewise.
3079         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
3080         "extern" declaration.
3081
3082 2008-04-30  Richard Guenther  <rguenther@suse.de>
3083
3084         PR tree-optimization/21636
3085         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
3086         constant address.
3087         (evaluate_stmt): Print the likely value.
3088         (ccp_visit_stmt): Avoid excessive vertical spacing.
3089
3090 2008-04-30  Rafael Espindola  <espindola@google.com>
3091
3092         * builtins.c (fold_call_expr): Return realret.
3093         * tree-ssa-threadedge.c
3094         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
3095         __builtin_object_size.
3096
3097 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
3098
3099         * gcc.c (wrapper_string): New variable.
3100         (insert_wrapper): New function.
3101         (execute): New option -wrapper.
3102         * doc/invoke.texi (Overall Options): New driver option -wrapper.
3103
3104 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
3105
3106         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
3107         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
3108         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
3109         from...
3110         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
3111         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
3112         config/rs6000/e500crtres64gprctr.asm,
3113         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
3114         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
3115         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
3116         config/rs6000/e500crtsav64gprctr.asm,
3117         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
3118         config/rs6000/e500crtsavg64gprctr.asm: New files.
3119         * config/rs6000/t-ppccomm: Add build rules for new files.
3120         (LIB2FUNCS_STATIC_EXTRA): Add new files.
3121         * config/rs6000/t-netbsd: Add build rules for new files.
3122         (LIB2FUNCS_STATIC_EXTRA): New variable.
3123         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
3124         (CRTSAVRES_DEFAULT_SPEC): Likewise.
3125         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
3126
3127 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
3128
3129         * config/i386/i386.c (ix86_builtin_type): Add
3130         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
3131         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
3132         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
3133         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
3134         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
3135         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
3136         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
3137         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
3138         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
3139         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
3140         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
3141         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
3142         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
3143         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
3144         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
3145         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
3146         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
3147         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
3148         V1DI_FTYPE_V2SI_V2SI.
3149         (bdesc_2arg): Moved to ...
3150         (bdesc_args): Here.
3151         (ix86_init_mmx_sse_builtins): Updated.
3152         (ix86_expand_args_builtin): Updated.  Take a pointer
3153         to const struct builtin_description.  Handle comparison
3154         builtin functions.
3155         (ix86_expand_sse_compare): Take a new argument for swapping operands.
3156         (ix86_expand_builtin): Updated.
3157
3158         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
3159         (ssse3_pmaddubsw128): This.
3160         (ssse3_pmaddubswv4hi3): Renamed to ...
3161         (ssse3_pmaddubsw): This.
3162
3163         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
3164         (__builtin_ia32_packssdw128): Likewise.
3165         (__builtin_ia32_packuswb128): Likewise.
3166         (__builtin_ia32_pmaddubsw): Likewise.
3167         (__builtin_ia32_pmaddubsw128): Likewise.
3168
3169 2008-04-30  Richard Guenther  <rguenther@suse.de>
3170
3171         PR tree-optimization/14847
3172         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
3173         (recognize_bits_test): Use it.
3174         (recognize_single_bit_test): Likewise.
3175
3176 2008-04-30  Martin Jambor  <mjambor@suse.cz>
3177
3178         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
3179         instead of setting number of formal parameters to zero.
3180         (ipcp_init_stage): Do not set the number of actual parameters to zero 
3181         either.
3182         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
3183         which are called with variable number of arguments.
3184         (ipcp_insert_stage): Explicitely skipping all nodes which are
3185         called with variable number of arguments.
3186         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
3187         number of parameters.
3188
3189         * ipa-prop.h (struct ipa_node_params): Added flag
3190         called_with_var_arguments
3191         (ipa_set_param_count): Added.  Changed sole setter to use it.
3192         (ipa_get_param_count): Added.  All readers of param_count
3193         converted to use it instead.
3194         (ipa_set_called_with_variable_arg): Added.
3195         (ipa_is_called_with_var_arguments): Added.
3196         (ipa_get_ith_param): Added.  All readers of param_decls converted
3197         to use it instead.
3198         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
3199         changed to use it. 
3200         (ipa_get_cs_argument_count): Added, all readers of argument_count
3201         changed to cal it.
3202         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
3203         to use it.
3204         
3205         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
3206         (struct ipcp_lattice): Renamed cval_type to type
3207         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
3208
3209         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
3210         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
3211         (ipcp_insert_stage): Changed the type of variable cvalue to tree
3212         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
3213         (build_const_val): Changed the type of parameter cvalue to tree
3214         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
3215         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
3216         
3217         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
3218         constant 
3219
3220         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
3221         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
3222         (ipa_add_method): Renamed to ipa_push_func_to_list
3223         (ipa_remove_method): Renamed to ipa_pop_func_from_list
3224         (ipa_callsite_param_count): Removed.
3225         (ipa_callsite_param_count_set): Removed.
3226         (ipa_callsite_param): Removed.
3227         (ipa_callsite_callee): Removed.
3228         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
3229         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
3230         (ipa_method_formal_count): Removed.
3231         (ipa_method_formal_count_set): Removed.
3232         (ipa_method_get_tree): Removed.
3233         (ipa_method_tree_map_create): Removed.
3234         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
3235         (ipa_create_param_decls_array): Creates the array itself
3236         (ipa_create_param_decls_array): Temporary variable info instead of 
3237         a few dereferences.
3238         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
3239         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
3240         (get_type): Removed.
3241         (ipa_jf_get_info_type): Removed.
3242         (ipa_node_create): Renamed to ipa_create_node_params
3243         (ipa_free): Renamed to ipa_free_all_node_params
3244         (ipa_nodes_create): Renamed to ipa_create_all_node_params
3245         (ipa_edges_create): Renamed to ipa_create_all_edge_args
3246         (ipa_edges_free): Renamed to ipa_free_all_edge_args
3247         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
3248         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
3249         ipa_free_all_edge_args
3250         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
3251         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
3252         (ipa_create_methodlist_node): Removed.
3253         (ipa_methodlist_method): Removed.
3254         (ipa_methodlist_method_set): Removed.
3255         (ipa_methodlist_next_method): Removed.
3256         (ipa_methodlist_next_method_set): Removed.
3257         (ipa_method_is_modified): Removed.
3258         (ipa_method_modify_create): Removed.
3259         (ipa_method_modify_init): Temporary variable info instead of a few 
3260         dereferences.
3261         (ipa_detect_param_modifications): Temporary variable info instead of 
3262         a few dereferences.
3263         (ipa_compute_jump_functions): Temporary variable info instead of 
3264         a few dereferences.
3265         (ipa_method_modify_set): Removed.
3266         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
3267         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
3268         than craph_node as the first parameter.
3269         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
3270         (ipa_method_modify_init): Removed.
3271         (ipa_compute_jump_functions): Added a temp variable instead of 
3272         repeatadly dereferencing the cgraph_edge.aux pointer
3273         (ipa_callsite_param_set_type): Removed.
3274         (ipa_compute_jump_functions): i renamed to index and moved to 
3275         an inner block
3276         (ipa_callsite_param_set_info_type_formal): Removed.
3277         (ipa_callsite_param_set_info_type): Removed.
3278         (ipa_callsite_param_map_create): Removed.
3279         (ipa_callsite_tree): Removed.
3280         (ipa_callsite_caller): Removed.
3281         (ipa_pop_func_from_list): return_method removed to return_func
3282
3283         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
3284         prefixed all values with IPA_. Changed all users.
3285         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
3286         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
3287         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
3288         (union parameter_info): Renamed to jump_func_value.
3289         (union jump_func_value): Renamed value to constant
3290         (struct ipa_jump_func): Renamed info_type to value
3291         (struct ipa_node): Renamed to ipa_node_params
3292         (struct ipa_node_params): Renamed ipa_arg_num to param_count
3293         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
3294         (struct ipa_node_params): Renamed ipa_mod to modified_flags
3295         (struct ipa_edge): Renamed to ipa_edge_args
3296         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
3297         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
3298         (struct ipa_methodlist): Renamed to ipa_func_list
3299         (struct ipa_func_list): method_p renamed to node, next_method
3300         renamed to next
3301         (ipa_methodlist_p): Removed, switched all users to struct pointer
3302         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
3303
3304 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
3305
3306         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
3307         (rs6000_emit_epilogue): Use backchain to restore only when we
3308         have a large frame.  Make use of frame pointer to restore if we
3309         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
3310
3311 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
3312
3313         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3314         Add mode to zero_extract.
3315         (sign bit tests peepholes): (Ditto.).
3316
3317 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3318
3319         * config/i386/i386.c (ix86_builtins): Replace Prescott New
3320         Instructions in comments with SSE3.
3321         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
3322         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
3323         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
3324         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
3325         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
3326         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
3327         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
3328         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
3329         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
3330         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
3331         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
3332         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
3333         (bdesc_sse_args): Renamed to ...
3334         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
3335         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
3336         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
3337         IX86_BUILTIN_FABSQ.
3338         (bdesc_1arg): Moved to ...
3339         (bdesc_args): Here.
3340         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
3341         Instructions in comments with SSE3.
3342         (ix86_expand_sse_operands_builtin): Renamed to ...
3343         (ix86_expand_args_builtin): This.  Updated.
3344         (ix86_expand_unop1_builtin): Update comments.
3345         (ix86_expand_builtin): Updated.
3346
3347 2008-04-29  Richard Guenther  <rguenther@suse.de>
3348
3349         PR tree-optimization/36078
3350         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
3351         Update virtual SSA form after cleaning up the CFG.
3352
3353 2008-04-29  Richard Guenther  <rguenther@suse.de>
3354
3355         PR middle-end/15255
3356         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
3357
3358 2008-04-29  Richard Guenther  <rguenther@suse.de>
3359
3360         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
3361         (compute_may_aliases): Do not call finalize_ref_all_pointers.
3362         (compute_flow_insensitive_aliasing): Do not treat
3363         PTR_IS_REF_ALL pointers special.
3364         (get_smt_for): Likewise.
3365         (may_alias_p): Re-structure.
3366         (is_escape_site): A ref-all pointer conversion is not an escape site.
3367         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
3368         PTR_IS_REF_ALL pointers special.
3369         * tree-ssa-structalias.h (struct alias_info): Remove
3370         ref_all_symbol_mem_tag field.
3371         (PTR_IS_REF_ALL): Remove.
3372
3373 2008-04-29  Richard Guenther  <rguenther@suse.de>
3374
3375         PR middle-end/36077
3376         * fold-const.c (extract_muldiv_1): In combining division constants
3377         make sure to never overflow.
3378
3379 2008-04-29  Nick Clifton  <nickc@redhat.com>
3380
3381         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
3382
3383 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3384
3385         PR bootstrap/35169
3386         * optc-gen.awk: Work around HP-UX/IA awk bug.
3387
3388 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
3389
3390         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
3391         2008-04-25 commit.
3392
3393 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3394
3