OSDN Git Service

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