OSDN Git Service

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