OSDN Git Service

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