OSDN Git Service

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