OSDN Git Service

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