OSDN Git Service

2008-06-03 Kai Tietz <kai.tietz@onevision.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
2
3         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
4         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed
5         prototype.
6         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
7         return type to int.
8         (ix86_call_abi_override): Remove check for call_used_regs.
9
10 2008-06-03  Richard Guenther  <rguenther@suse.de>
11
12         * tree-ssa-structalias.c (find_func_aliases): Add constraints
13         for the lhs of calls if the return type contains pointers.
14
15 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
16
17         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
18         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
19         * function.c (allocate_struct_function): Use of
20         OVERRIDE_ABI_FORMAT.
21         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
22         of cfun and DEFAULT_ABI to deceide abi mode.
23         (DEFAULT_ABI): New.
24         (REG_PARM_STACK_SPACE): Removed.
25         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
26         (STACK_BOUNDARY): Use default target to deceide stack boundary.
27         * config/i386/i386-protos.h (ix86_cfun_abi): New.
28         (ix86_function_abi): Likewise.
29         (ix86_function_type_abi): Likewise.
30         (ix86_call_abi_override): Likewise.
31         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
32         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
33         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
34         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
35         specific defines.
36         (X86_64_REGPARM_MAX): New.
37         (X86_64_SSE_REGPARM_MAX): New.
38         (X64_REGPARM_MAX): New.
39         (X64_SSE_REGPARM_MAX): New.
40         (X86_32_REGPARM_MAX): New.
41         (X86_32_SSE_REGPARM_MAX): New.
42         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
43         (ix86_function_regparm): Handle user calling abi.
44         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
45         by DEFAULT_ABI versus SYSV_ABI check.
46         (ix86_reg_parm_stack_space): New.
47         (ix86_function_type_abi): New.
48         (ix86_call_abi_override): New.
49         (ix86_function_abi): New.
50         (ix86_cfun_abi): New.
51         (init_cumulative_args): Call abi specific initialization.
52         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
53         (function_arg_64): Extend SSE_REGPARM_MAX check.
54         (function_arg (): Remove TARGET_64BIT_MS_ABI.
55         (ix86_pass_by_reference): Likewise.
56         (ix86_function_value_regno_p): Likewise.
57         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
58         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
59         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
60         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
61         (setup_incoming_varargs_64): Adjust regparm for call abi.
62         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
63         (ix86_va_start): Likewise.
64         (ix86_gimplify_va_arg): Likewise.
65         (ix86_expand_prologue): Likewise.
66         (output_pic_addr_const): Likewise.
67         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
68         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
69         (x86_output_mi_thunk): Likewise.
70         (x86_function_profiler): Likewise.
71         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
72         (SYSV_ABI, MS_ABI): New constants.
73         (DEFAULT_ABI): New.
74         (init_regs): Add prototype of function in regclass.c file.
75         (OVERRIDE_ABI_FORMAT): New.
76         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
77         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
78         (OUTGOING_REG_PARM_STACK_SPACE): New.
79         (ix86_reg_parm_stack_space): New prototype.
80         (CUMULATIVE_ARGS): Add call_abi member.
81         (machine_function): Add call_abi member.
82         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace TARGET_64BIT_MS_ABI
83         by DEFAULT_ABI compare to MS_ABI.
84
85 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
86
87         PR target/34879
88         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
89         (avr_builtin_setjmp_frame_value): New function.
90         * config/avr/avr.md (nonlocal_goto_receiver): Define.
91         (nonlocal_goto): Define.
92
93 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
94
95         * config/mips/mips.c (mips_emit_loadgp): Return early if
96         there is nothing do to, otherwise emit a blockage if
97         !TARGET_EXPLICIT_RELOCS || crtl->profile.
98         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
99
100 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
101
102         * configure.ac: Drop unneeded backslash ending up in config.in.
103         * acinclude.m4: Likewise.
104         * config.in: Regenerate.
105
106 2008-05-26  Jan Hubicka  <jh@suse.cz>
107
108         * predict.c (maybe_hot_frequency_p): Break out of...
109         (maybe_hot_bb_p): ... here.
110         (maybe_hot_edge_p): New.
111         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
112         * basic-block.h (maybe_hot_edge_p): Declare.
113
114 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
115
116         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
117         (*cmpfp_<mode>_cc): Ditto.
118         (*fp_jcc_8<mode>_387): Ditto.
119         (*fop_<MODEF:mode>_2_i387): Ditto.
120         (*fop_<MODEF:mode>_3_i387): Ditto.
121         (*fop_xf_2_i387): Ditto.
122         (*fop_xf_3_i387): Ditto.
123
124 2008-06-02  Tomas Bily  <tbily@suse.cz>
125
126         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
127
128 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
129
130         * config/mips/mips.c (mips_valid_offset_p): New function.
131         (mips_valid_lo_sum_p): Likewise.
132         (mips_classify_address): Use them.
133         (mips_force_address): New function.
134         (mips_legitimize_address): Use it.
135         * config/mips/mips.md (MOVE128): New mode iterator.
136         (movtf): Require TARGET_64BIT.  Remove empty strings.
137         (*movtf_internal): Rename to...
138         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
139         of "R" and use {,fp}{load,store} attributes instead of "multi".
140         Use a separate define_split.
141         (*movtf_mips16): New pattern.
142
143 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
144
145         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
146         * config/mips/mips.c (mips_expand_before_return): New function.
147         (mips_expand_epilogue): Call it.
148         * config/mips/mips.md (return): Turn into a define_expand.
149         (*return): New insn.
150
151 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
152
153         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
154         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
155         functions.  Do not emit uses and clobbers of CONCATs; individually
156         use and clobber their operands.
157         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
158         gen_clobber, emit_use and gen_use.
159         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
160         (expand_builtin_return): Likewise.
161         * cfgbuild.c (count_basic_blocks): Likewise.
162         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
163         * explow.c (emit_stack_restore): Likewise.
164         * expmed.c (extract_bit_field_1): Likewise.
165         * expr.c (convert_move, emit_move_complex_parts): Likewise.
166         (emit_move_multi_word, store_constructor): Likewise.
167         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
168         (thread_prologue_and_epilogue_insns): Likewise.
169         * lower-subreg.c (resolve_simple_move): Likewise.
170         * optabs.c (widen_operand, expand_binop): Likewise.
171         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
172         * reload.c (find_reloads): Likewise.
173         * reload1.c (eliminate_regs_in_insn): Likewise.
174         * stmt.c (expand_nl_goto_receiver): Likewise.
175         * config/alpha/alpha.md (builtin_longjmp): Likewise.
176         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
177         * config/arm/arm.c (arm_load_pic_register): Likewise.
178         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
179         * config/arm/arm.md (untyped_return): Likewise.
180         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
181         * config/avr/avr.c (expand_prologue): Likewise.
182         * config/bfin/bfin.c (do_unlink): Likewise.
183         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
184         * config/cris/cris.c (cris_expand_prologue): Likewise.
185         * config/darwin.c (machopic_indirect_data_reference): Likewise.
186         (machopic_legitimize_pic_address): Likewise.
187         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
188         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
189         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
190         (ix86_expand_convert_uns_didf_sse): Likewise.
191         (ix86_expand_vector_init_general): Likewise.
192         * config/ia64/ia64.md (eh_epilogue): Likewise.
193         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
194         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
195         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
196         (config/iq2000/iq2000.c): Likewise.
197         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
198         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
199         (builtin_longjmp): Likewise.
200         * config/mn10300/mn10300.md (call, call_value): Likewise.
201         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
202         * config/pdp11/pdp11.md (abshi2): Likewise.
203         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
204         * config/s390/s390.c (s390_emit_prologue): Likewise.
205         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
206         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
207         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
208         * config/sh/sh.c (prepare_move_operands): Likewise.
209         (output_stack_adjust, sh_expand_epilogue): Likewise.
210         (sh_set_return_address, sh_expand_t_scc): Likewise.
211         * config/sparc/sparc.c (load_pic_register): Likewise.
212         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
213         * config/spu/spu.c (spu_expand_epilogue): Likewise.
214         * config/v850/v850.c (expand_epilogue): Likewise.
215
216 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
217
218         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
219         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
220         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
221         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
222         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
223         stack pointer register.
224         (output_movhi): Remove code for interrupt specific writing to the 
225         stack pointer register.
226
227 2008-05-31  Richard Guenther  <rguenther@suse.de>
228
229         PR tree-optimization/34244
230         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
231         (tree_expr_nonzero_warnv_p): Likewise.
232         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
233         ssa_name_nonnegative_p.
234         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
235         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
236         not tree_expr_nonzero_warnv_p.
237
238         PR tree-optimization/36262
239         Revert
240         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
241
242         PR tree-optimization/34244
243         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
244         (record_numbers_of_iterations): New function.
245         (execute_vrp): Cache the numbers of iterations of loops.
246         * tree-scalar-evolution.c (scev_reset_except_niters):
247         New function.
248         (scev_reset): Use scev_reset_except_niters.
249         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
250
251 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
252
253         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
254         __WORKAROUND_RETS when appropriate.
255
256 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
257
258         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
259         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
260         mode iterator.
261         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
262         *fop_df_comm_sse insn patterns using MODEF mode iterator.
263         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
264         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
265         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
266         *fop_df_1_mixed insn patterns using MODEF mode iterator.
267         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
268         *fop_df_1_sse insn patterns using MODEF mode iterator.
269         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
270         *fop_df_1_i387 insn patterns using MODEF mode iterator.
271         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
272         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
273         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
274         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
275         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
276         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
277         (*fop_xf_4_i387): Use <MODE> for mode attribute.
278         (*fop_xf_5_i387): Ditto.
279         (*fop_xf_6_i387): Ditto.
280
281 2008-05-30  Richard Guenther  <rguenther@suse.de>
282
283         * builtins.c (build_string_literal): Avoid generating
284         a non-gimple_val result.
285
286 2008-05-30  DJ Delorie  <dj@redhat.com>
287
288         * exec-tool.in: Use an environment variable (private) instead of a
289         file (shared) as a semaphore, so as to not break parallel builds.
290
291 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
292
293         * optabs.c (maybe_encapsulate_block): Remove.
294         (emit_libcall_block): Adjust accordingly.
295         * optabs.h (maybe_encapsulate_block): Remove prototype.
296
297         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
298         Don't use maybe_encapsulate_block.
299
300 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
301
302         * config/rs6000/rs6000.c (rs6000_legitimize_address,
303         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
304         rtx is a SYMBOL_REF before calling get_pool_constant.
305
306 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
307
308         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
309
310 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
311
312         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
313         rather than OS names to choose INO_T_EQ definition.
314         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
315         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
316
317 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
318
319         PR target/36348
320         * config/darwin-f.c: New.
321         * config/t-darwin: Added rule to build darwin-f.o.
322         * config.gcc: Defined new variable, fortran_target_objs.
323         (*-*-darwin*): Set fortran_target_objs.
324         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
325         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
326         * configure: Regenerated.
327
328 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
329
330         PR target/35771
331         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
332         canonical type if needed.
333
334 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
335
336         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
337
338 2008-05-29  Richard Guenther  <rguenther@suse.de>
339
340         PR tree-optimization/36343
341         PR tree-optimization/36346
342         PR tree-optimization/36347
343         * tree-flow.h (clobber_what_p_points_to): Declare.
344         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
345         pointed-to variable is dereferenced is irrelevant to whether
346         the pointer can access the pointed-to variable.
347         (clobber_what_p_points_to): New function.
348         * tree-ssa-alias.c (set_initial_properties): Use it.
349         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
350         call clobber check for NMTs.
351
352 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
353         
354         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
355         for printing gcov_type.
356
357 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
358
359         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
360         and the eh region information.
361         * value-prof.c (gimple_move_stmt_histograms): New function.
362         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
363
364 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
365
366         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
367
368 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
369
370         * value-prof.c (tree_ic_transform): Print counts.
371         * tree-profile.c (tree_gen_ic_func_profiler):
372         Clear __gcov_indreict_call_callee variable to avoid misattribution
373         of the profile.
374
375 2008-05-28  Rafael Espindola  <espindola@google.com>
376
377         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
378         invalid sharing.
379
380 2008-05-28  Richard Guenther  <rguenther@suse.de>
381
382         PR tree-optimization/36339
383         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
384         and clobbering code out of the loop.
385
386 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
387
388         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
389         letters defined.
390
391         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
392         s390_contiguous_bitmask_p, s390_symref_operand_p,
393         s390_check_symref_alignment, s390_reload_larl_operand,
394         s390_reload_symref_address): New functions.
395         (s390_branch_condition_mnemonic): Support compare and branch
396         instructions.
397         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
398         and 'W' constraints.
399         (s390_secondary_reload): Add secondary reloads for unaligned
400         symbol refs or symbol refs to floating point or QI/TI mode
401         integer values.
402         (legitimate_address_p): Accept symbol references as addresses.
403         (s390_expand_insv): Use rotate and insert selected bits
404         instruction for insv when building for z10.
405         (print_operand_address): Handle symbol ref addresses.
406         (print_operand): Output modifier 'c' added for signed byte values.
407         (s390_encode_section_info): Mark symbol refs with
408         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
409
410         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
411         (length attribute): RRF, RRR have 4 byte length.
412         (FPALL, INTALL): New mode iterators added.
413         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
414         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
415         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
416         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
417         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
418         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
419         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
420         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
421         instructions.
422         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
423         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
424         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
425         reload<INTALL:mode><P:mode>_toreg_z10,
426         reload<FPALL:mode><P:mode>_tomem_z10,
427         reload<FPALL:mode><P:mode>_toreg_z10,
428         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
429         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
430         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
431         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
432         definition.
433         (movmem, clrmem, cmpmem): New splitters added.
434
435         * config/s390/predicates.md (larl_operand): Use
436         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
437         SYMBOL_REF_ALIGN1_P.
438         (s390_signed_integer_comparison,
439         s390_unsigned_integer_comparison): New predicates.
440
441         * config/s390/s390-protos.h (s390_check_symref_alignment,
442         s390_contiguous_bitmask_p, s390_reload_larl_operand,
443         s390_reload_symref_address,
444         s390_compare_and_branch_condition_mask): Prototypes added.
445
446         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
447         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
448         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
449
450 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
451
452         * config/s390/s390.c (z10_cost): New cost function for z10.
453         (s390_handle_arch_option, override_options): Support -march=z10 switch.
454         (s390_issue_rate): Adjust issue rate for z10.
455         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
456         (processor_flags): Add PF_Z10.
457         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
458         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
459         * gcc/config.gcc: Add z10.
460
461 2008-05-28  Richard Guenther  <rguenther@suse.de>
462
463         PR tree-optimization/36291
464         * tree-flow. h (struct gimple_df): Remove var_anns member.
465         * tree-flow-inline.h (gimple_var_anns): Remove.
466         (var_ann): Simplify.
467         * tree-dfa.c (create_var_ann): Simplify.
468         (remove_referenced_var): Clear alias info from var_anns of globals.
469         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
470         (delete_tree_ssa): Clear alias info from var_anns of globals.
471         Do not free var_anns.
472         (var_ann_eq): Remove.
473         (var_ann_hash): Likewise.
474
475 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
476
477         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
478         and loongson2f entries.
479         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
480         * config/mips/mips.h (processor_type): Add Loongson-2E
481         and Loongson-2F entries.
482         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
483         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
484         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
485         * doc/invoke.texi (MIPS Options): Document loongson2e
486         and loongson2f processor names.
487
488 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
489
490         PR target/35767
491         PR target/35771
492         * config/i386/i386.c (ix86_function_arg_boundary): Use
493         alignment of canonical type.
494         (ix86_expand_vector_move): Check unaligned memory access for
495         all SSE modes.
496
497 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
498
499         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
500         Moved to the front of file.
501
502 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
503             H.J. Lu  <hongjiu.lu@intel.com>
504
505         * dwarf2out.c (current_fde): New.
506         (add_cfi): Use it.
507         (lookup_cfa:): Likewise.
508         (dwarf2out_end_epilogue): Likewise.
509         (dwarf2out_note_section_used): Likewise.
510
511 2008-05-27  Michael Matz  <matz@suse.de>
512
513         PR c++/27975
514         * c.opt (Wenum-compare): New warning option.
515         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
516
517 2008-05-27  Michael Matz  <matz@suse.de>
518
519         PR middle-end/36326
520         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
521         non-BLKmode types.
522         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
523         into memory as tail calls.
524
525 2008-05-27  Richard Guenther  <rguenther@suse.de>
526
527         PR tree-optimization/36339
528         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
529         pointers cause all addressable variables to be call clobbered.
530
531 2008-05-27  Richard Guenther  <rguenther@suse.de>
532
533         PR tree-optimization/36245
534         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
535
536 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
537
538         * config/s390/s390.md: Replace all occurences of the 'm'
539         constraint with 'RT'.
540
541 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
542
543         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
544         definitions added.
545         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
546         "*movdi_64".
547         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
548         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
549         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
550
551 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
552
553         * reload.c: (find_reloads): Skip alternatives according to the
554         "enabled" attribute. Constify the constraint variable.
555         * recog.c (get_attr_enabled): Add default implementation.
556         (extract_insn): Set the alternative_enabled_p array
557         in the recog_data struct.
558         (preprocess_constraints, constrain_operands): Skip
559         alternatives according to the "enabled" attribute
560         * recog.h (struct recog_data): New field alternative_enabled_p.
561         (skip_alternative): New inline function.
562         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
563         (record_reg_classes): Skip alternative according to the
564         "enabled" attribute.
565
566         * doc/md.texi: Add documention for the "enabled" attribute.
567
568 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
569
570         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
571         * postreload.c (reload_cse_simplify_operands): Replace 'm'
572         constraint with TARGET_MEM_CONSTRAINT.
573         * recog.c (asm_operand_ok, preprocess_constraints,
574         constrain_operands): Likewise.
575         * regclass.c (record_reg_classes): Likewise.
576         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
577         * reload1.c (maybe_fix_stack_asms): Likewise.
578         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
579         * recog.h: Adjust comment.
580         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
581         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
582         * doc/md.texi: Add a note to description of 'm' constraint.
583         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
584
585 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
586
587         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
588         that the bitfield is of integral type before testing its precision.
589
590 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
591             Sa Liu  <saliu@de.ibm.com> 
592
593         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
594         __modti3, __udivti3, __umodti3 and __udivmodti4.
595         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
596         that implement TImode mul and div functions.
597         * config/spu/multi3.c: New. Implement __multi3.
598         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
599         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
600         functions on SPU.
601
602 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
603
604         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
605         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
606         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
607         tls_sysv_suffix): New mode and mode attribute iterators.
608         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
609         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
610         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
611         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
612         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
613         iterators.
614
615 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
616
617         PR tree-optimization/36329
618         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
619         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
620         * cgraphbuild.c (initialize_inline_failed): Use the latter
621         macro in lieu of the former.
622         * ipa-inline.c (cgraph_mark_inline): Likewise.
623         (cgraph_decide_inlining_of_small_function): Likewise.
624         (cgraph_decide_inlining): Likewise.
625         (cgraph_decide_inlining_incrementally): Likewise.
626
627 2008-05-26  Tristan Gingold  <gingold@adacore.com>
628             Anatoly Sokolov  <aesok@post.ru>
629
630         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
631         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
632         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
633         optimization for 'avr6' architecture.
634
635 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
636
637         PR target/34932
638         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
639
640 2008-05-26  Richard Guenther  <rguenther@suse.de>
641
642         * tree-ssa-sccvn.c (expr_has_constants): Declare.
643         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
644
645 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
646
647         PR middle-end/36253
648         * caller-save.c (insert_restore): Verify alignment of spill space.
649         (insert_save): Likewise.
650         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
651         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
652         (STACK_SLOT_ALIGNMENT): Likewise.
653         * function.c (LOCAL_ALIGNMENT): Removed.
654         (get_stack_local_alignment): New.
655         (assign_stack_local): Use it.  Set alignment on stack slot.
656         (assign_stack_temp_for_type): Use get_stack_local_alignment.
657         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
658         (STACK_SLOT_ALIGNMENT): New.
659         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
660         stack slot in XFmode.
661
662         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
663
664 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
665
666         PR/36321
667         * config/i386/i386.md (allocate_stack_worker_64): Make sure
668         argument operand in rax isn't removed.
669
670 2008-05-26  Richard Guenther  <rguenther@suse.de>
671
672         PR middle-end/36300
673         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
674         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
675
676 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
677
678         PR bootstrap/36331
679         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
680
681 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
682
683         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
684         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
685
686 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
687
688         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
689         build a trampoline if we don't want one.
690         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
691         return zero for nested functions if we don't want a trampoline.
692
693 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
694
695         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
696
697 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
698
699         PR fortran/18428
700         * c.opt: Removed undocumented option '-lang-fortran'.
701         * c-common.h: Removed global variable 'lang_fortran'.
702         * c-opts.c (c_common_handle_option): Removed code to handle
703         option '-lang-fortran'. Updated includes.
704         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
705         definition of '__GFORTRAN__'.
706         (define__GNUC__): Reimplemented to use BASEVER and
707         cpp_define_formatted.
708         (builtin_define_with_value_n): Removed.
709         * c-incpath.h: Renamed to ...
710         * incpath.h: ... this.
711         * c-incpath.c: Renamed to ...
712         * incpath.c: ... this. Updated includes.
713         * fix-header.c: Updated includes.
714         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
715         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
716         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
717
718 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
719
720         * tree.h: Update the table of flags used on tree nodes.
721         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
722         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
723         (FORCED_LABEL): Add access check.
724         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
725         (ASM_INPUT_P): Likewise.
726         (ASM_VOLATILE_P): Likewise.
727         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
728         (OMP_SECTION_LAST): Access private_flag directly.
729         (OMP_RETURN_NOWAIT): Likewise.
730         (OMP_PARALLEL_COMBINED): Likewise.
731         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
732         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
733         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
734         deprecated_flag directly.
735
736 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
737
738         * final.c (frame_pointer_needed): Removed.
739         * flags.h (frame_pointer_needed): Likewise.
740
741         * function.h (rtl_data): Add frame_pointer_needed.
742         (frame_pointer_needed): New.
743
744 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
745
746         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
747
748 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
749
750         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
751         SRC is a REG.
752
753 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
754
755         * c-common.c (strip_array_types): Move function to..
756         * tree.c: ..here.
757         (get_inner_array_type): Delete.
758         * c-common.h (strip_array_types): Move declaration to..
759         * tree.h: ..here.
760         (get_inner_array_type): Delete.
761         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
762         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
763         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
764         * config/pa/pa.c (emit_move_sequence): Likewise.
765
766 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
767
768         * config/i386/i386.md (*sse_prologue_save_insn): Set length
769         attribute to 34.
770
771 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
772
773         * function.c: Include target hook for nonlocal_goto frame value.
774
775 2008-05-24  Richard Guenther  <rguenther@suse.de>
776
777         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
778         variable can be only accessed through a pointer or a union.
779
780 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
781
782         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
783         * doc/extend.texi: Likewise.
784
785 2008-05-23  DJ Delorie  <dj@redhat.com>
786
787         * config/m32c/jump.md (untyped_call): Add.
788
789         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
790         for A24 to PSImode.
791         (m32c_address_cost): Detail costs for indirect offsets.
792
793 2008-05-23  Rafael Espindola  <espindola@google.com>
794
795         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
796         if a node is a SUBREG.
797         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
798         is a SUBREG.
799
800 2008-05-23  Paul Brook  <paul@codesourcery.com>
801             Carlos O'Donell  <carlos@codesourcery.com>
802
803         * doc/extend.texi: Clarify use of __attribute__((naked)).
804         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
805         * target.h (gcc_target): Add allocate_stack_slots_for_args.
806         * function.c (use_register_for_decl): Use
807         targetm.calls.allocate_stack_slots_for_args.
808         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
809         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
810         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
811
812 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
813
814         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
815
816 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
817
818         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
819         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
820         is only rounded once.
821
822 2008-05-23  Richard Guenther  <rguenther@suse.de>
823
824         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
825
826 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
827             Jakub Jelinek  <jakub@redhat.com>
828
829         PR target/36079
830         * configure.ac: Handle --enable-cld.
831         * configure: Regenerated.
832         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
833         * config/i386/i386.h (struct machine_function): Add needs_cld field.
834         (ix86_current_function_needs_cld): New define.
835         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
836         (cld): New isns pattern.
837         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
838         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
839         * config/i386/i386.opt (mcld): New option.
840         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
841         TARGET_CLD and ix86_current_function_needs_cld.
842         (override_options): Use -mcld by default for 32-bit code if
843         USE_IX86_CLD.
844
845         * doc/install.texi (Options specification): Document --enable-cld.
846         * doc/invoke.texi (Machine Dependent Options)
847         [i386 and x86-64 Options]: Add -mcld option.
848         (Intel 386 and AMD x86-64 Options): Document -mcld option.
849
850 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
851         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
852         (return_in_memory_64): Likewise.
853         (return_in_memory_ms_64): Likewise.
854
855 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
856
857         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
858         * builtins.c (fold_builtin_fpclassify): New.
859         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
860         * builtins.def (BUILT_IN_FPCLASSIFY): New.
861         * c-common.c (handle_type_generic_attribute): Adjust to accept
862         fixed arguments before an elipsis.
863         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
864         * doc/extend.texi: Document __builtin_fpclassify.
865
866 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
867
868         * omp-low.c (gate_expand_omp_ssa): Remove.
869         (pass_expand_omp_ssa): Remove.
870         (gate_expand_omp): Do not check for flag_openmp_ssa.
871         * common.opt (-fopenmp-ssa): Remove.
872         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
873
874 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
875
876         * config/sh/sh.opt (mfixed-range): New option.
877         * config/sh/sh-protos.h (sh_fix_range): Declare.
878         * config/sh/sh.c (sh_fix_range): New function.
879         * config/sh/sh.h (sh_fixed_range_str): Declare.
880         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
881         is not empty.
882         * doc/invoke.texi (SH Options): Document -mfixed-range.
883
884 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
885
886         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
887         it before the redeclaration.
888
889 2008-05-22  Anatoly Sokolov <aesok@post.ru>
890
891         * config/avr/avr.c (get_sequence_length): Add new function.
892         (expand_prologue, expand_epilogue): Remove duplicate code.
893
894 2008-05-22  Rafael Espindola  <espindola@google.com>
895
896         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
897         sharing.
898
899 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
900
901         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
902         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
903
904         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
905         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
906         (vect_update_misalignment_for_peel): Likewise.
907         (vector_alignment_reachable_p): Likewise.
908         * tree-vect-transform.c (vectorizable_load): Likewise.
909         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
910         (get_vectype_for_scalar_type): Pass mode of scalar_type
911         to UNITS_PER_SIMD_WORD.
912
913         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
914         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
915         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
916         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
917         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
918
919 2008-05-22  Ira Rosen  <irar@il.ibm.com>
920
921         PR tree-optimization/36293
922         * tree-vect-transform.c (vect_transform_strided_load): Don't check
923         if the first load must be skipped because of a gap.
924
925 2008-05-22  Richard Guenther  <rguenther@suse.de>
926
927         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
928         more cases of offset disambiguation that is possible if
929         strict-aliasing rules apply.
930         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
931         for basic offset and type-based disambiguation.
932
933 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
934
935         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
936         ix86_expand_vector_set on V16QImode for SSE4.1.
937
938 2008-05-21  Tom Tromey  <tromey@redhat.com>
939
940         * c.opt (Wimport): Mark as undocumented.
941         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
942         -Wno-import.
943         (Warning Options): Likewise.
944         * doc/cppopts.texi: Don't mention -Wimport.
945
946 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
947
948         PR tree-optimization/36287
949         PR tree-optimization/36286
950         * lambda-code.c (build_access_matrix): Do not use the loop->num
951         for computing the number of induction variables: use the loop depth
952         instead.
953
954 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
955
956         PR/36280
957         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
958         option -f(no-)leading-underscore.
959
960 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
961
962         * config/i386/i386.c (ix86_expand_vector_init_general): Use
963         GET_MODE_NUNITS (mode).
964
965 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
966
967         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
968         (-mmulhw): Add 464 to description.
969         (-mdlmzb): Likewise.
970         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
971         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
972         464fp entries.
973         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
974         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
975         * config/rs6000/rs6000.md: Update comments for 464.
976
977 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
978
979         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
980
981 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
982
983         * config/i386/sse.md (vec_extractv4sf): Removed.
984         (vec_extractv2df): Likewise.
985         (vec_extractv2di): Likewise.
986         (vec_extractv4si): Likewise.
987         (vec_extractv8hi): Likewise.
988         (vec_extractv16qi): Likewise.
989         (vec_extract<mode>): New.
990
991 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
992
993         * config/i386/sse.md (vec_setv4sf): Removed.
994         (vec_setv2df): Likewise.
995         (vec_setv2di): Likewise.
996         (vec_setv4si): Likewise.
997         (vec_setv8hi): Likewise.
998         (vec_setv16qi): Likewise.
999         (vec_set<mode>): New.
1000
1001 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1002
1003         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
1004         goto for vec_concat and vec_interleave.
1005
1006 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1007
1008         * config/i386/sse.md (vec_initv4sf): Removed.
1009         (vec_initv2df): Likewise.
1010         (vec_initv2di): Likewise.
1011         (vec_initv4si): Likewise.
1012         (vec_initv8hi): Likewise.
1013         (vec_initv16qi): Likewise.
1014         (vec_init<mode>): New.
1015
1016 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
1017
1018         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
1019
1020 2008-05-21  Tom Tromey  <tromey@redhat.com>
1021
1022         * ggc-zone.c (lookup_page_table_if_allocated): New function.
1023         (zone_find_object_offset): Likewise.
1024         (gt_ggc_m_S): Likewise.
1025         (highest_bit): Likewise.
1026         * ggc-page.c (gt_ggc_m_S): New function.
1027         * stringpool.c (string_stack): Remove.
1028         (init_stringpool): Update.
1029         (ggc_alloc_string): Use ggc_alloc.
1030         (maybe_delete_ident): New function.
1031         (ggc_purge_stringpool): Likewise.
1032         (gt_ggc_m_S): Remove.
1033         * ggc-common.c (ggc_protect_identifiers): New global.
1034         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
1035         ggc_protect_identifiers.
1036         * ggc.h (ggc_protect_identifiers): Declare.
1037         (gt_ggc_m_S): Update.
1038         (ggc_purge_stringpool): Declare.
1039         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
1040         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
1041         special case.
1042         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
1043
1044 2008-05-21  David S. Miller  <davem@davemloft.net>
1045
1046         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
1047         tmake_file.
1048
1049 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1050
1051         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
1052         once finished.
1053
1054 2008-05-20  David Daney  <ddaney@avtrex.com>
1055
1056         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
1057         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
1058         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
1059         UNSPEC_UPDATE_GOT_VERSION): Renumber.
1060         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
1061         (atomic_hiqi_op): New define_code_iterator.
1062         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
1063         mips_expand_compare_and_swap_12.
1064         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
1065         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
1066         (sync_<optab><mode>, sync_old_<optab><mode>,
1067         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
1068         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
1069         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
1070         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
1071         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
1072         (test_and_set_12): New insn.
1073         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
1074         sync_new_<optab><mode>, sync_old_nand<mode>,
1075         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
1076         clobber to operand 0 for SI and DI mode insns.
1077         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
1078         mips_gen_fn_4): New typedefs.
1079         (mips_gen_fn_ptrs): Define new union type.
1080         (mips_expand_compare_and_swap_12): Remove declaration.
1081         (mips_expand_atomic_qihi): Declare function.
1082         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
1083         (mips_expand_atomic_qihi): ... this.  Use new generator function
1084         parameter.
1085         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
1086         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
1087         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
1088         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
1089         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
1090         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
1091         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
1092         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
1093         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
1094         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
1095         New macros.
1096
1097 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
1098
1099         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
1100         the missing break.
1101
1102 2008-05-20  Anatoly Sokolov <aesok@post.ru>
1103
1104         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
1105         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
1106         (avr_attribute_table): Add 'OS_main' function attribute.
1107         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
1108         functions with 'OS_main' attribute.
1109
1110 2008-05-20  Richard Guenther  <rguenther@suse.de>
1111
1112         PR tree-optimization/35204
1113         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
1114         helper, split out from ...
1115         (DFS): ... here.  Make the DFS walk non-recursive.
1116
1117 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
1118             Jan Sjodin  <jan.sjodin@amd.com>
1119
1120         PR tree-optimization/36181
1121         * tree-parloops.c (loop_has_vector_phi_nodes): New.
1122         (parallelize_loops): Don't parallelize when the loop has vector
1123         phi nodes.
1124
1125 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1126             Sebastian Pop  <sebastian.pop@amd.com>
1127
1128         * tree-loop-linear.c (gather_interchange_stats): Look in the access
1129         matrix, and never look at the tree representation of the memory
1130         accesses.
1131         (linear_transform_loops): Computes parameters and access matrices.
1132         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
1133         when fails.
1134         (access_matrix_get_index_for_parameter): New.
1135         * tree-data-ref.h (struct access_matrix): New.
1136         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
1137         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
1138         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
1139         am_vector_index_for_loop): New.
1140         (struct data_reference): Add field access_matrix.
1141         (DR_ACCESS_MATRIX): New.
1142         (compute_data_dependences_for_loop): Update declaration.
1143         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
1144         * lambda.h (lambda_vector_vec_p): Declared.
1145         * lambda-code.c: Depend on pointer-set.h.
1146         (lambda_collect_parameters_from_af, lambda_collect_parameters,
1147         av_for_af_base, av_for_af, build_access_matrix,
1148         lambda_compute_access_matrices): New.
1149         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
1150
1151 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
1152
1153         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
1154         $SOURCEDIR/include.
1155
1156 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1157             Sebastian Pop  <sebastian.pop@amd.com>
1158
1159         PR tree-optimization/36206
1160         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
1161         FOLD_CONVERSIONS.
1162         (instantiate_scev_1): Rename flags to fold_conversions.
1163         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
1164         outeside instantiation_loop.
1165         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
1166         (evolution_function_is_affine_or_constant_p): Removed.
1167         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
1168         instantiate_scev.
1169         (analyze_siv_subscript): Pass in the loop nest number.
1170         Call evolution_function_is_affine_in_loop instead of 
1171         evolution_function_is_affine_p.
1172         (analyze_overlapping_iterations): Pass in the loop nest number.
1173
1174 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1175             Sebastian Pop  <sebastian.pop@amd.com>
1176
1177         PR tree-optimization/36206
1178         * tree-chrec.h (chrec_fold_op): New.
1179         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
1180         and other trees.
1181
1182 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
1183
1184         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
1185         (DIRS_EQ): New.
1186         (remove_duplicates): Do not set inode on non-inode systems.
1187         Use DIRS_EQ.
1188
1189 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
1190
1191         * config.gcc (tm_file): Update comments about relative pathnames.
1192
1193 2008-05-20  Richard Guenther  <rguenther@suse.de>
1194
1195         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
1196         * tree-ssa-sccvn.c (process_scc): Likewise.
1197         * tree-ssa-sink.c (execute_sink_code): Likewise.
1198         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
1199         * tree-vrp.c (process_assert_insertions): Likewise.
1200         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
1201         (perform_tree_ssa_dce): Likewise.
1202         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1203         (dump_dominator_optimization_stats): Likewise.
1204         * tree-vectorizer.c (vectorize_loops): Likewise.
1205
1206 2008-05-20  Richard Guenther  <rguenther@suse.de>
1207
1208         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
1209
1210 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
1211
1212         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
1213         (ix86_i386elf_return_in_memory): Likewise.
1214         (ix86_i386interix_return_in_memory): Likewise.
1215         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
1216         (SUBTARGET_RETURN_IN_MEMORY): New.
1217         * config/i386/i386elf.h: Likewise.
1218         * config/i386/ptx4-i.h: Likewise.
1219         * config/i386/sol2-10.h: Likewise.
1220         * config/i386/sysv4.h: Likewise.
1221         * config/i386/vx-common.h: Likewise.
1222         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
1223         * config/i386/i386.c (ix86_return_in_memory): Made static and
1224         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
1225         (ix86_i386elf_return_in_memory): Removed.
1226         (ix86_i386interix_return_in_memory): Removed.
1227         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
1228         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
1229
1230 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
1231
1232         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
1233
1234 2008-05-19  Xinliang David Li  <davidxl@google.com>
1235
1236         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
1237         * opts.c: Ditto.
1238         * common.opt: Ditto.
1239         * doc/invoke.texi: Ditto.
1240
1241 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1242
1243         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
1244         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
1245
1246 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1247
1248         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
1249         sizes of operand array from 8/4 to 4/2.
1250         (ix86_expand_vector_init_general): Change size of operand array
1251         from 32 to 16.  Remove op0, op1 and half_mode.
1252
1253 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1254
1255         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
1256         (ix86_expand_vector_init_interleave): Likewise.
1257         (ix86_expand_vector_init_general): Use them.  Assert
1258         word_mode == SImode when n_words == 4.
1259
1260 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
1261
1262         * config/i386/i386.c (ix86_secondary_reload): New static function.
1263         (TARGET_SECONDARY_RELOAD): New define.
1264         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
1265         * config/i386/i386.md (reload_outqi): Remove.
1266
1267 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1268
1269         PR middle-end/35509
1270         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
1271         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
1272         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
1273         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
1274         (fold_builtin_1): Likewise.
1275         * builtins.def (BUILT_IN_ISINF_SIGN): New.
1276         c-common.c (check_builtin_function_arguments): Handle
1277         BUILT_IN_ISINF_SIGN.
1278         * doc/extend.texi: Document __builtin_isinf_sign.
1279         * fold-const.c (operand_equal_p): Handle COND_EXPR.
1280
1281 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
1282
1283         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
1284         EH cleanup at the end of the pass, search for those that have been
1285         turned into forwarder blocks and do the cleanup on their successor.
1286
1287 2008-05-18  Richard Guenther  <rguenther@suse.de>
1288
1289         * tree-cfg.c (verify_gimple_expr): Allow conversions from
1290         pointers to sizetype and vice versa.
1291
1292 2008-05-18 Xinliang David Li   <davidxl@google.com>
1293
1294         * gcc/tree-ssa-dce.c: Coding style fix.
1295         (check_pow): Documentation comment. 
1296         (check_log): Documenation comment. Coding style fix.
1297         (is_unnecessary_except_errno_call): Ditto.
1298         (gen_conditions_for_pow): Ditto.
1299         (gen_conditions_for_log): Ditto.
1300         (gen_shrink_wrap_conditions): Ditto.
1301         (shrink_wrap_one_built_in_calls): Ditto.
1302         * gcc/doc/invoke.texi: Better documentation string.
1303         * ChangeLog: Fix wrong change log entries from 
1304         May 17 checkin on function call DCE.
1305
1306 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
1307
1308         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
1309
1310 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
1311
1312         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
1313         * df-problems.c (simulation routines): Fixed block comment to
1314         properly say how to add forwards scanning functions.
1315         
1316 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1317
1318         * tree-inline.c (setup_one_parameter): Remove dead code.
1319
1320 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1321
1322         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
1323         a BIT_AND_EXPR only for an INTEGER_TYPE.
1324
1325 2008-05-17 Xinliang David Li   <davidxl@google.com>
1326
1327         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
1328         (check_pow, check_log, is_unnecessary_except_errno_call): New 
1329         functions to check for eliminating math functions that are pure 
1330         except for setting errno.
1331         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
1332         general condition expressions for shrink-wrapping pow/log calls.
1333         (gen_shrink_wrap_conditions): Ditto.
1334         (shrink_wrap_one_built_in_call): Ditto.
1335         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
1336         (mark_operand_necessary): If debugging, output if OP is necessary.
1337         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
1338         unnecessary.
1339         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
1340         opt level >= 2.
1341         * gcc/common.opt: New user flag -ftree-builtin-dce.
1342         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
1343
1344 2008-05-16  David S. Miller  <davem@davemloft.net>
1345
1346         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
1347         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1348
1349 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
1350
1351         PR target/36246
1352         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
1353
1354 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1355
1356         * ifcvt.c (dead_or_predicable): Rename
1357         df_simulate_one_insn_backwards to df_simulate_one_insn.
1358         * recog.c (peephole2_optimize): Ditto.
1359         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
1360         Ditto.
1361         * df.h: Rename df_simulate_one_insn_backwards to
1362         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
1363         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
1364         scanning of defs and uses.
1365         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
1366         (df_simulate_one_insn_forwards): Removed.
1367
1368 2008-05-16  Doug Kwan  <dougkwan@google.com>
1369
1370         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
1371         QNaN & SNaN.
1372         (real_from_string): Handle NaNs and Inf as approriate.
1373
1374 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1375
1376         * doc/gty.texi (Source Files Containing Type Information): Note
1377         that headers should appear first in the gtfiles list.
1378
1379 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1380
1381         * tree.def (COND_EXEC): Properly documented this code.
1382
1383 2008-05-16  Diego Novillo  <dnovillo@google.com>
1384
1385         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
1386         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
1387         the new field.
1388
1389 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1390
1391         * tree-ssa-dse (max_stmt_uid): Removed.
1392         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
1393         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
1394         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
1395         * function.h (cfun.last_stmt_uid): New field.
1396         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
1397         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
1398         New functions.
1399         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
1400         (create_stmt_ann): Initialize the ann->uid field.
1401         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
1402         with new calls.
1403         * tree-flow.h (renumber_gimple_stmt_uids): New function.
1404
1405 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1406
1407         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
1408         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
1409         (init_empty_tree_cfg): Call it.
1410
1411 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1412
1413         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
1414         Update all users.
1415
1416 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1417
1418         * doc/invoke.text (-fdump-tree-*-verbose): New option.
1419         * tree-dump.c (dump_options): New verbose option.
1420         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
1421         Add verbose dump.
1422         * tree-pass.h (TDF_VERBOSE): New dump flag.
1423         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
1424         (tree-flow.h): Added include.
1425         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
1426
1427 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
1428
1429         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
1430
1431         From Jie Zhang  <jie.zhang@analog.com>
1432         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1433         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
1434         mcpu=bf561-none and mcpu=bf561-0.2.
1435         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1436         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1437         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1438         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1439         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
1440         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
1441         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
1442         option.
1443         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
1444         (cputype_selected): Remove.
1445         (bfin_handle_option): Don't use cputype_selected.
1446         (override_options): When no mcpu option, enable all workarounds.
1447         Don't use bfin_workarounds.
1448         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
1449         processor type.
1450         (DEFAULT_CPU_TYPE): Don't define.
1451
1452 2008-05-16  Richard Guenther  <rguenther@suse.de>
1453
1454         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
1455         on deletion of the last stmt.
1456
1457 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1458
1459         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
1460         V8HImode for SSE2 and V16QImode for SSE4.1.
1461
1462 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
1463
1464         * cgraph.h (compute_inline_parameters): Made public.
1465         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
1466         variable_generate_summary, function_write_summary,
1467         variable_write_summary, variable_read_summary.  Added generate_summary,
1468         write_summary, read_summary.
1469         * cgraphunit.c (cgraph_process_new_functions): Changed call from
1470         pass_ipa_inline.function_generate_summary, to
1471         compute_inline_parameters. 
1472         * ipa-inline.c (compute_inline_parameters): Made public and added
1473         node parameter.
1474         (compute_inline_parameters_for_current): New function.
1475         (pass_inline_param): Now calls compute_inline_parameters_for_current.
1476         (inline_generate_summary): Removed parameter and made to loop over
1477         all cgraph nodes.
1478         (pass_ipa_inline): Updated for new IPA_PASS structure.
1479         * passes.c (execute_ipa_summary_passes): Now is called once per
1480         pass rather than once per node*pass.
1481         
1482 2008-05-15  Anatoly Sokolov <aesok@post.ru>
1483
1484         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
1485         avr_have_mul_p, avr_asm_only_p): Remove variables.
1486         (avr_override_options): Remove initialization of removed variables.
1487         (avr_file_start):  Convert removed variables to fields of 
1488         'struct base_arch_s *avr_current_arch'. 
1489         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
1490         (AVR_HAVE_MUL): (Ditto.).
1491         (AVR_HAVE_MOVW): (Ditto.).
1492         (AVR_HAVE_LPMX): (Ditto.). 
1493         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
1494         avr_asm_only_p): Remove declaration.
1495
1496 2008-05-15  Diego Novillo  <dnovillo@google.com>
1497
1498         * config/arm/arm.c (arm_return_in_memory): Fix return type.
1499         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
1500
1501 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
1502
1503         PR middle-end/36194
1504         * combine.c (check_conversion): Rename back to check_promoted_subreg.
1505         Don't call record_truncated_value from here.
1506         (record_truncated_value): Turn it into a for_each_rtx callback.
1507         (record_truncated_values): New function.
1508         (combine_instructions): Call note_uses with record_truncated_values.
1509         Change name of check_conversion to check_promoted_subreg. 
1510
1511 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
1512
1513         * doc/sourcebuild.texi: Document support for torture tests.
1514
1515 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1516
1517         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
1518         to alternative 4 of operand 2.
1519
1520 2008-05-15  Richard Guenther  <rguenther@suse.de>
1521
1522         * tree-pass.h (current_pass): Declare.
1523         (get_pass_for_id): Likewise.
1524         * passes.c (passes_by_id, passes_by_id_size): New globals.
1525         (set_pass_for_id): New function.
1526         (get_pass_for_id): Likewise.
1527         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
1528         (execute_function_todo): Flush per function statistics.
1529         * toplev.c (compile_file): Init statistics.
1530         (general_init): Do early statistics initialization.
1531         (finalize): Finish statistics.
1532         * statistics.h (statistics_early_init): Declare.
1533         (statistics_init): Likewise.
1534         (statistics_fini): Likewise.
1535         (statistics_fini_pass): Likewise.
1536         (statistics_counter_event): Likewise.
1537         (statistics_histogram_event): Likewise.
1538         * statistics.c: New file.
1539         * Makefile.in (OBJS-common): Add statistics.o.
1540         (statistics.o): Add dependencies.
1541         * doc/invoke.texi (-fdump-statistics): Document.
1542
1543         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
1544         (insert): Likewise.
1545         (execute_pre): Use statistics_counter_event.
1546         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
1547         (substitute_and_fold): Increment it.  Use statistics_counter_event.
1548
1549 2008-05-15  Diego Novillo  <dnovillo@google.com>
1550
1551         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
1552
1553         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
1554         * tree-ssa-alias.c (new_type_alias): Remove references to
1555         sub-variables from comment.
1556         * tree-ssa-operands.c (swap_tree_operands): Likewise.
1557
1558 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1559
1560         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
1561         attribute to 1 only for insertps alternative.
1562
1563 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1564
1565         * config/bfin/bfin.md (loadbytes): New pattern.
1566         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
1567         (bfin_init_builtins): Initialize it.
1568         (bdesc_1arg): Add it.
1569
1570 2008-05-15  Sa Liu  <saliu@de.ibm.com>
1571
1572         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
1573         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
1574         * testsuite/lib/target-supports.exp: Add
1575         check_effective_target_fortran_integer_16.
1576
1577 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1578
1579         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
1580         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
1581         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
1582         (TARGET_RETURN_IN_MEMORY): Define.
1583
1584 2008-05-15  Richard Guenther  <rguenther@suse.de>
1585
1586         PR middle-end/36244
1587         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
1588         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
1589         represent unmodifiable vars.
1590
1591 2008-05-15  Richard Guenther  <rguenther@suse.de>
1592
1593         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
1594         INDIRECT_REF and TARGET_MEM_REF.
1595         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1596         TARGET_MEM_REF.
1597
1598 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1599             H.J. Lu  <hongjiu.lu@intel.com>
1600
1601         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
1602         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
1603         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
1604         insn alternatives.  Add missing alternatives.
1605         (*vec_concatv2di_rex64_sse4_1): Likewise.
1606         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
1607         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
1608         Require TARGET_SSE.
1609
1610 2008-05-15  Richard Guenther  <rguenther@suse.de>
1611
1612         PR tree-optimization/36009
1613         PR tree-optimization/36204
1614         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
1615         (determine_invariantness_stmt): Record the loop a store is
1616         always executed in.
1617         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
1618         dependency.
1619
1620 2008-05-15  Richard Guenther  <rguenther@suse.de>
1621
1622         PR tree-optimization/34330
1623         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
1624         through the pointer will alias the SMT.
1625
1626 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
1627
1628         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
1629
1630 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
1631
1632         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
1633
1634 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1635             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1636
1637         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
1638         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
1639         (vashl_optab): New optab for vector/vector shifts.
1640         (vashr_optab): Ditto.
1641         (vlshr_optab): Ditto.
1642         (vrotl_optab): Ditto.
1643         (vrotr_optab): Ditto.
1644         (optab_subtype): New enum for optab_for_tree_code call.
1645         (optab_for_tree_code): Add enum optab_subtype argument.
1646
1647         * optabs.c (optab_for_tree_code): Take an additional argument to
1648         distinguish between a vector shift by a scalar and vector shift by
1649         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
1650         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
1651         vector shift by a vector.
1652         (expand_widen_pattern_expr): Pass additional argument to
1653         optab_for_tree_code.
1654
1655         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
1656         vrotl_optab, vrotr_optab.
1657
1658         * expr.c (expand_expr_real_1): Update calls to
1659         optab_for_tree_code to distinguish between vector shifted by a
1660         scalar and vector shifted by a vector.
1661         * tree-vectorizer.c (supportable_widening_operation): Ditto.
1662         (supportable_narrowing_operation): Ditto.
1663         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
1664         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
1665         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
1666         (vect_create_epilog_for_reduction): Ditto.
1667         (vectorizable_reduction): Ditto.
1668         (vectorizable_operation): Ditto.
1669         (vect_strided_store_supported): Ditto.
1670         (vect_strided_load_supported): Ditto.
1671         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
1672         * expmed.c (expand_shift): Ditto.
1673
1674         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
1675         scalar type.
1676         (ashr@var{m}3): Ditto.
1677         (vashl@var{m}3): Document new vector/vector shift standard name.
1678         (vashr@var{m}3): Ditto.
1679         (vlshr@var{m}3): Ditto.
1680         (vrotl@var{m}3): Ditto.
1681         (vrotr@var{m}3): Ditto.
1682
1683         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
1684         (PPERM_INVERT): Ditto.
1685         (PPERM_REVERSE): Ditto.
1686         (PPERM_REV_INV): Ditto.
1687         (PPERM_ZERO): Ditto.
1688         (PPERM_ONES): Ditto.
1689         (PPERM_SIGN): Ditto.
1690         (PPERM_INV_SIGN): Ditto.
1691         (PPERM_SRC1): Ditto.
1692         (PPERM_SRC2): Ditto.
1693
1694         * config/i386/sse.md (mulv2di3): Add SSE5 support.
1695         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
1696         allows a memory operand to be the value being added, and split it
1697         to improve vectorization.
1698         (sse5_pmacsdqh_mem): Ditto.
1699         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
1700         (sse5_mulv2div2di3_high): Ditto.
1701         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
1702         (vec_pack_trunc_v4si): Ditto.
1703         (vec_pack_trunc_v2di): Ditto.
1704         (sse5_pcmov_<mode>): Remove code that tried to use use
1705         andps/andnps instead of pcmov.
1706         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
1707         pmacsdqh instructions.
1708         (vec_widen_smult_lo_v4si): Ditto.
1709
1710         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
1711         (PPERM_INVERT): Ditto.
1712         (PPERM_REVERSE): Ditto.
1713         (PPERM_REV_INV): Ditto.
1714         (PPERM_ZERO): Ditto.
1715         (PPERM_ONES): Ditto.
1716         (PPERM_SIGN): Ditto.
1717         (PPERM_INV_SIGN): Ditto.
1718         (PPERM_SRC1): Ditto.
1719         (PPERM_SRC2): Ditto.
1720         (ix86_expand_sse_movcc): Move the SSE5 test after the if
1721         true/false tests.
1722         (ix86_expand_int_vcond): If SSE5 generate all possible integer
1723         comparisons.
1724         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
1725         says ignore whether the last reference is a memory operand.
1726
1727 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1728             Paolo Bonzini <bonzini at gnu dot org>
1729
1730         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
1731         shift patterns.
1732
1733         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
1734         (vlshr<mode>3): Rename from vlshr<mode>3.
1735         (vashr<mode>3): Rename from vashr<mode>3.
1736         (mulv4sf3): Change the names of vector shift patterns.
1737         (mulv4si3): Ditto.
1738         (negv4sf2): Ditt.
1739
1740         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
1741         shift insns.
1742
1743         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
1744         (SI_SHLHI): Ditto.
1745         (SI_SHL): Ditto.
1746         (SI_SHLI): Ditto.
1747         (SI_ROTH): Ditto.
1748         (SI_ROTHI): Ditto.
1749         (SI_ROT): Ditto.
1750         (SI_ROTI): Ditto.
1751         (SPU_RL_0): Ditto.
1752         (SPU_RL_1): Ditto.
1753         (SPU_RL_2): Ditto.
1754         (SPU_RL_3): Ditto.
1755         (SPU_RL_4): Ditto.
1756         (SPU_RL_5): Ditto.
1757         (SPU_RL_6): Ditto.
1758         (SPU_RL_7): Ditto.
1759         (SPU_SL_0): Ditto.
1760         (SPU_SL_1): Ditto.
1761         (SPU_SL_2): Ditto.
1762         (SPU_SL_3): Ditto.
1763         (SPU_SL_4): Ditto.
1764         (SPU_SL_5): Ditto.
1765         (SPU_SL_6): Ditto.
1766         (SPU_SL_7): Ditto.
1767
1768         * config/spu/spu.md (v): New iterator macro to add v for vector types.
1769         (floatunssidf2_internal): Change vector/vector shift names.
1770         (floatunsdidf2_internal): Ditto.
1771         (mulv8hi3): Ditto.
1772         (ashrdi3): Ditto.
1773         (ashrti3): Ditto.
1774         (cgt_df): Ditto.
1775         (cgt_v2df): Ditto.
1776         (dftsv): Ditto.
1777         (vashl<mode>3): Rename from ashl<mode>3.
1778         (vashr<mode>3): Rename from ashr<mode>3.
1779         (vlshr<mode>3): Rename from lshr<mode>3.
1780         (vrotl<mode>3): Rename from rotl<mode>3.
1781
1782 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1783
1784         PR target/36224
1785         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
1786         multiply gives the wrong value when doing widening multiplies.
1787         (vec_widen_smult_lo_v4si): Ditto.
1788
1789 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1790
1791         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
1792         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
1793         emit_library_call_value. 
1794         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
1795         * tree.h (ECF_LIBCALL_BLOCK): Removed.
1796         * calls.c (initialize_argument_information, precompute_arguments, 
1797         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
1798         (precompute_arguments): Removed flags parameter.
1799         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
1800         
1801 2008-05-14  Richard Guenther  <rguenther@suse.de>
1802
1803         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
1804         Make sure to register the store if the use is a PHI_NODE.
1805
1806 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1807
1808         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1809         memory if the component is to be referenced in BLKmode according
1810         to get_inner_reference.
1811
1812 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
1813
1814         * calls.c (emit_library_call_value_1): Restore code clearing
1815         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
1816
1817 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1818             Nicolas Roche  <roche@adacore.com>
1819
1820         * configure.ac: Add support for a "gcc_subdir" variable in
1821         config-lang.in, to denote a subdirectory where the language/GCC
1822         integration files are to be found.
1823         * configure: Regenerate.
1824
1825 2008-05-14  Ira Rosen  <irar@il.ibm.com>
1826
1827         PR tree-optimization/36098
1828         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
1829         value for the first load in the group in case of a gap.
1830         (vect_build_slp_tree): Check that there are no gaps in loads.
1831
1832 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1833
1834         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
1835         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
1836         expand_copysign_bit, ): Change call to emit_no_conflict_block to
1837         emit_insn and remove unneeded code to construct extra args.
1838         (emit_no_conflict_block): Removed.
1839         * optabls.h: (emit_no_conflict_block): Removed.
1840         * cse.c (cse_extended_basic_block): Remove search for
1841         REG_NO_CONFLICT note.
1842         * global.c: Removed incorrect comment added in revision 117.
1843         * expr.c (convert_move): Change call to emit_no_conflict_block to
1844         emit_insn.
1845         * recog.c: Change comments so that they do not mention
1846         REG_NO_CONFLICT.
1847         * local_alloc.c (combine_regs): Removed last parameter.
1848         (no_conflict_p): Removed.
1849         (block_alloc): Removed note, no_conflict_combined_regno and set
1850         local vars. Removed all code to process REG_NO_CONFLICT blocks.
1851         (combine_regs): Removed already_dead and code to look for
1852         REG_NO_CONFLICT notes.
1853         * lower_subreg (remove_retval_note): Removed code to look for
1854         REG_NO_CONFLICT block.
1855         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
1856         (resolve_clobber): Remove code to process libcalls that have
1857         REG_NO_CONFLICT notes.
1858         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
1859         case.
1860         * combine.c (can_combine_p, distribute_notes):  Removed
1861         REG_NO_CONFLICT case.
1862         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
1863         to emit_insns.
1864         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
1865         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
1866         Ditto.
1867         * reg-notes.def (NO_CONFLICT): Removed.
1868
1869 2008-05-14  David S. Miller  <davem@davemloft.net>
1870
1871         * config/sparc/sparc.c (sparc_profile_hook): If
1872         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
1873         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
1874         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1875
1876 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
1877
1878         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
1879
1880 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
1881
1882         PR target/36222
1883         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
1884         and op1 expansion before vector concat to have less live pseudos.
1885
1886 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
1887
1888         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
1889         ix86_expand_vector_set if supported.
1890
1891 2008-05-13  Diego Novillo  <dnovillo@google.com>
1892             Kenneth Zadeck  <zadeck@naturalbridge.com>
1893
1894         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
1895
1896         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
1897         phinodes_print_statistics, init_ssanames, fini_ssanames,
1898         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
1899         release_ssa_name, release_defs, replace_ssa_name_symbol,
1900         ssanames_print_statistics): Move ...
1901         * tree-flow.h: ... here.
1902         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
1903         Use FN instead of cfun.
1904         (make_ssa_name_fn): Rename from make_ssa_name.
1905         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
1906         * tree-flow-inline.h (make_ssa_name): Move from
1907         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
1908         * omp-low.c (expand_omp_parallel):
1909         * tree-flow-inline.h (redirect_edge_var_map_result):
1910         * tree-ssa.c (init_tree_ssa): Add argument FN.
1911         Use it instead of cfun.  Update all users.
1912
1913 2008-05-13  Tom Tromey  <tromey@redhat.com>
1914
1915         PR preprocessor/22168:
1916         * doc/cpp.texi (Top): Update menu.
1917         (Alternatives to Wrapper #ifndef): New node.
1918         (Other Directives): Document deprecation.
1919         (Obsolete Features): Remove menu.
1920         (Assertions): Merge node into Obsolete Features.
1921         (Obsolete once-only headers): Move earlier; rename to Alternatives
1922         to Wrapper #ifndef.
1923         * doc/cppopts.texi: Update.
1924         * c.opt (Wdeprecated): Enable for C and ObjC.
1925         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
1926         (C++ Dialect Options): Move -Wno-deprecated from here to...
1927         (Warning Options): ... here.
1928
1929 2008-05-13  Richard Guenther  <rguenther@suse.de>
1930
1931         PR middle-end/36227
1932         * fold-const.c (fold_sign_changed_comparison): Do not allow
1933         changes in pointer-ness.
1934
1935 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1936
1937         PR target/24713
1938         * config/sh/sh.c (sh_expand_prologue): Don't clear
1939         RTX_FRAME_RELATED_P for push insns.
1940
1941 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
1942
1943         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
1944
1945 2008-05-12  Anatoly Sokolov <aesok@post.ru>
1946
1947         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
1948         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
1949         Use 'machine->is_leaf' instead of 'leaf_func_p'.
1950
1951 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1952
1953         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
1954         (*vec_concatv4sf_sse): This.
1955         (*sse2_concatv2si): Renamed to ...
1956         (*vec_concatv2si_sse2): This.
1957         (*sse1_concatv2si): Renamed to ...
1958         (*vec_concatv2si_sse): This.
1959         (*vec_concatv2di_rex): Renamed to ...
1960         (*vec_concatv2di_rex64): This.
1961         (*vec_concatv2si_sse4_1): New.
1962         (*vec_concatv2di_rex64_sse4_1): Likewise.
1963
1964 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
1965
1966         PR rtl-optimization/36111
1967         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
1968         that was created for swappable operands.
1969
1970 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
1971
1972         PR ada/36001
1973         * Makefile.in: Substitute GNATMAKE and GNATBIND.
1974         * configure.ac: Add call to ACX_PROG_GNAT.
1975
1976 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
1977
1978         * optc-gen.awk: Fix comment typo.
1979
1980 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1981
1982         * pretty-print.c (pp_integer_with_precision): Use
1983         HOST_LONG_LONG_FORMAT.
1984
1985 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
1986
1987         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
1988                 
1989 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
1990
1991         * config/i386/i386.c (bdesc_ptest): Removed.
1992         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
1993         (bdesc_args): Add __builtin_ia32_ptestz128,
1994         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
1995         (ix86_init_mmx_sse_builtins): Updated.
1996         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
1997         (ix86_expand_builtin): Updated.
1998
1999 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
2000
2001         * tree-cfg.c (valid_fixed_convert_types_p): New function.
2002         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
2003
2004 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
2005
2006         * value-prof.c (interesting_stringop_to_profile): Do not
2007         return early for BUILT_IN_MEMPCPY.
2008
2009 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2010
2011         * calls.c (expand_call): Don't use callgraph to increase
2012         preferred_stack_boundary.
2013
2014         * cgraph.h (cgraph_rtl_info): Use unsigned on
2015         preferred_incoming_stack_boundary.
2016
2017         * final.c (rest_of_clean_state): Use unsigned on
2018         preferred_stack_boundary.
2019
2020 2008-05-09  Tom Tromey  <tromey@redhat.com>
2021
2022         PR preprocessor/22231:
2023         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
2024         proceeding.
2025
2026 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
2027
2028         PR tree-optimization/36129
2029         * tree-ssa-ccp.c: Include value-prof.h.
2030         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
2031         built-in function was folded to a constant.
2032         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
2033
2034 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
2035             Sebastian Pop  <sebastian.pop@amd.com>
2036
2037         * tree-scalar-evolution.c: Document instantiate_scev.
2038         (instantiate_parameters_1): Renamed instantiate_scev_1.
2039         Don't use the same loop for instantiation_loop and evolution_loop.
2040         (instantiate_scev): New.
2041         (instantiate_parameters): Moved...
2042         (resolve_mixers): Update call to instantiate_scev_1 to pass the
2043         same loop twice.  Maintains the semantics for this function.
2044         * tree-scalar-evolution.h (instantiate_scev): Declare.
2045         (instantiate_parameters): ...here.  Now static inline.
2046         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
2047         instead of resolve_mixers.
2048
2049 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
2050
2051         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
2052
2053 2008-05-09  Tomas Bily  <tbily@suse.cz>
2054
2055         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
2056         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
2057         * tree-ssa-structalias.c (get_constraint_for): Likewise.
2058         * c-common.c (c_common_truthvalue_conversion): Likewise.
2059         * tree-object-size.c (compute_object_offset): Likewise.
2060         * tree-inline.c (estimate_num_insns_1): Likewise.
2061         * varasm.c (const_hash_1, compare_constant, copy_constant)
2062         (compute_reloc_for_constant, output_addressed_constants)
2063         (initializer_constant_valid_p): Likewise.
2064         * c-omp.c (check_omp_for_incr_expr): Likewise.
2065         * gimplify.c (gimplify_expr): Likewise.
2066         * c-typeck.c (c_finish_return): Likewise.
2067         * tree-vectorizer.c (supportable_widening_operation)
2068         (supportable_narrowing_operation): Likewise.
2069         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
2070         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
2071         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
2072         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
2073         (descr_info_loc): Likewise.
2074         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
2075         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
2076         (fold_unary): Likewise.
2077         * builtins.c (get_pointer_alignment): Likewise.
2078         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
2079         (instantiate_parameters_1): Likewise.
2080         * tree.c (expr_align, stabilize_reference): Likewise.
2081         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
2082         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
2083         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
2084         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
2085         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
2086         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
2087         Likewise.
2088         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
2089         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
2090         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
2091         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
2092         (forward_propagate_comparison)
2093         (tree_ssa_forward_propagate_single_use_vars): Likewise.
2094         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
2095         * emit-rtl.c (component_ref_for_mem_expr)
2096         (set_mem_attributes_minus_bitpos): Likewise.
2097         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
2098         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
2099         Likewise.
2100         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
2101         (build_function_call, pointer_diff, build_compound_expr)
2102         (c_finish_return): Likewise.
2103         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
2104         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
2105         Likewise.
2106         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
2107         * expr.c (is_aligning_offset): Likewise.
2108         * tree-ssa-alias.c (is_escape_site): Likewise.
2109         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
2110         (check_all_va_list_escapes): Likewise.
2111         * tree-ssa-loop-ivopts.c (determine_base_object)
2112         (determine_common_wider_type): Likewise.
2113         * dojump.c (do_jump): Likewise.
2114         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
2115         * tree-gimple.c (is_gimple_cast): Likewise.
2116         * fold-const.c (decode_field_reference, )
2117         (fold_sign_changed_comparison, fold_unary, fold_comparison)
2118         (fold_binary): Likewise.
2119         * tree-ssa-alias-warnings.c (find_alias_site_helper)
2120         (already_warned_in_frontend_p): Likewise.
2121         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
2122         * tree.c (really_constant_p, get_unwidened): Likewise.
2123         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
2124         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
2125         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
2126         Likewise.
2127         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
2128         CONVERT_EXPR_P.
2129         (CONVERT_EXPR_P): Define.
2130         (CASE_CONVERT): Define.
2131         
2132 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
2133
2134         PR middle-end/36117
2135         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
2136         (delete_unmarked_insns): When deleting a call, call
2137         delete_unreachable_blocks.
2138         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2139         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
2140
2141 2008-05-08  Richard Guenther  <rguenther@suse.de>
2142
2143         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
2144         (-ftree-salias): Likewise.
2145         (salias-max-implicit-fields): Remove param documentation.
2146         (salias-max-array-elements): Likewise.
2147         * tree-pass.h (pass_create_structure_vars): Remove.
2148         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
2149         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2150         * tree-ssa-alias.c (create_structure_vars): Remove.
2151         (gate_structure_vars): Likewise.
2152         (pass_create_structure_vars): Likewise.
2153         (gate_build_alias): Likewise.
2154         (pass_build_alias): Adjust to run always and dump the function.
2155         * common.opt (ftree-salias): Hide.
2156         * passes.c (init_optimization_passes): Remove
2157         pass_create_structure_vars, adjust comment.
2158         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
2159         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2160         * opts.c (decode_options): Do not set flag_tree_salias.
2161         (common_handle_option): Add OPT_ftree_salias to the backward
2162         compatibility section.
2163
2164 2008-05-08  Richard Guenther  <rguenther@suse.de>
2165
2166         * tree-flow-inline.h (var_can_have_subvars): Move ...
2167         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
2168         * tree-flow.h (var_can_have_subvars): Remove.
2169         (push_fields_onto_fieldstack): Remove.
2170         (sort_fieldstack): Likewise.
2171         (struct fieldoff): Move ...
2172         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
2173         alias_set and base_for_components fields.
2174         (sort_fieldstack): Make static.
2175         (push_fields_onto_fieldstack): Likewise.  Remove code that
2176         handles anything but RECORD_TYPEs.  Remove alias_set and
2177         base_for_components handling.
2178         (create_variable_info_for): Adjust.
2179
2180 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
2181
2182         * common.opt (Wframe-larger-than=): Shorten the help message
2183         to one line.
2184         * doc/invoke.texi (Wframe-larger-than=): Add more description.
2185
2186 2008-05-08  Rafael Espindola  <espindola@google.com>
2187
2188         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
2189         trap.
2190         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
2191         trap and that both operands are gimple values.
2192         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
2193         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
2194         is a fp operation.
2195
2196 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
2197
2198         * read-rtl.c (join_c_conditions): Return the first string if the
2199         two strings are equal.
2200
2201 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
2202
2203         * gensupport.h (pred_data): Add a "num_codes" field.
2204         (add_predicate_code): Declare.
2205         * gensupport.c (add_predicate_code): New function.
2206         (std_pred_table): Add an "allows_const_p" field.
2207         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
2208         Remove the (incomplete) list of such codes from the codes field.
2209         (init_predicate_table): Use add_predicate_code.  Add all
2210         RTX_CONST_OBJs if allows_const_p is true.
2211         * genrecog.c (process_define_predicate): Use add_predicate_code.
2212
2213 2008-05-08  David Daney  <ddaney@avtrex.com>
2214             Richard Sandiford  <rsandifo@nildram.co.uk>
2215         
2216         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
2217         special case of constant zero operands.
2218         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
2219         old and new values.  Special case constant zero values.
2220         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
2221         fails.
2222         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
2223         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
2224
2225 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
2226
2227         PR target/36090
2228         * simplify-rtx.c (simplify_plus_minus): Create CONST of
2229         similar RTX_CONST_OBJ before CONST_INT.
2230
2231 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
2232
2233         * stmt.c (expand_stack_restore): Change sa mode if needed.
2234
2235 2008-05-08  Richard Guenther  <rguenther@suse.de>
2236
2237         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
2238         return type to bool.
2239         (ix86_sol10_return_in_memory): Likewise.
2240         (ix86_i386elf_return_in_memory): Likewise.
2241         (ix86_i386interix_return_in_memory): Likewise.
2242         * config/i386/i386.c (ix86_return_in_memory): Likewise.
2243         (ix86_sol10_return_in_memory): Likewise.
2244         (ix86_i386elf_return_in_memory): Likewise.
2245         (ix86_i386interix_return_in_memory): Likewise.
2246
2247 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
2248
2249         PR bootstrap/36180
2250         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
2251         fndecl argument.
2252         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
2253         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
2254         declared in front.
2255
2256 2008-05-08  Richard Guenther  <rguenther@suse.de>
2257
2258         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
2259         * tree-data-ref.h (struct dr_alias): Remove subvars field.
2260         (DR_SUBVARS): Remove.
2261         * tree-dfa.c (dump_subvars_for): Remove.
2262         (debug_subvars_for): Likewise.
2263         (dump_variable): Do not dump subvars.
2264         (remove_referenced_var): Do not remove subvars.
2265         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
2266         (lookup_subvars_for_var): Remove.
2267         (get_subvars_for_var): Likewise.
2268         (get_subvars_at): Likewise.
2269         (get_first_overlapping_subvar): Likewise.
2270         (overlap_subvar): Likewise.
2271         * tree-flow.h (subvar_t): Remove.
2272         (struct var_ann_d): Remove subvars field.
2273         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
2274         argument.  Remove special handling of SFTs.
2275         (compute_tag_properties): Likewise.
2276         (set_initial_properties): Likewise.
2277         (compute_call_clobbered): Likewise.
2278         (count_mem_refs): Likewise.
2279         (compute_memory_partitions): Likewise.
2280         (compute_flow_insensitive_aliasing): Likewise.
2281         (setup_pointers_and_addressables): Likewise.
2282         (new_type_alias): Likewise.
2283         (struct used_part): Remove.
2284         (used_portions): Likewise.
2285         (struct used_part_map): Likewise.
2286         (used_part_map_eq): Likewise.
2287         (used_part_map_hash): Likewise.
2288         (free_used_part_map): Likewise.
2289         (up_lookup): Likewise.
2290         (up_insert): Likewise.
2291         (get_or_create_used_part_for): Likewise.
2292         (create_sft): Likewise.
2293         (create_overlap_variables_for): Likewise.
2294         (find_used_portions): Likewise.
2295         (create_structure_vars): Likewise.
2296         * tree.def (STRUCT_FIELD_TAG): Remove.
2297         * tree.h (MTAG_P): Adjust.
2298         (struct tree_memory_tag): Remove base_for_components and
2299         unpartitionable flags.
2300         (struct tree_struct_field_tag): Remove.
2301         (SFT_PARENT_VAR): Likewise.
2302         (SFT_OFFSET): Likewise.
2303         (SFT_SIZE): Likewise.
2304         (SFT_NONADDRESSABLE_P): Likewise.
2305         (SFT_ALIAS_SET): Likewise.
2306         (SFT_UNPARTITIONABLE_P): Likewise.
2307         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
2308         (union tree_node): Remove sft field.
2309         * alias.c (get_alias_set): Remove special handling of SFTs.
2310         * print-tree.c (print_node): Remove handling of SFTs.
2311         * tree-dump.c (dequeue_and_dump): Likewise.
2312         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
2313         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
2314         * tree-predcom.c (set_alias_info): Do not set subvars.
2315         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
2316         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
2317         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
2318         (add_vars_for_offset): Remove.
2319         (add_virtual_operand): Remove special handling of SFTs.
2320         (add_call_clobber_ops): Likewise.
2321         (add_call_read_ops): Likewise.
2322         (get_asm_expr_operands): Likewise.
2323         (get_modify_stmt_operands): Likewise.
2324         (get_expr_operands): Likewise.
2325         (add_to_addressable_set): Likewise.
2326         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
2327         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2328         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
2329         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
2330         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
2331         (tree_node_structure): Likewise.
2332         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
2333         handling of SFTs.
2334         (find_what_p_points_to): Likewise.
2335
2336 2008-05-08  Sa Liu  <saliu@de.ibm.com>
2337
2338         * config/spu/spu.md: Fixed subti3 pattern.
2339
2340 2008-05-08  Richard Guenther  <rguenther@suse.de>
2341
2342         PR middle-end/36154
2343         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
2344         sure to create a representative for trailing arrays for PTA.
2345
2346 2008-05-08  Richard Guenther  <rguenther@suse.de>
2347
2348         PR middle-end/36172
2349         * fold-const.c (operand_equal_p): Two objects which types
2350         differ in pointerness are not equal.
2351
2352 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
2353
2354         * calls.c (compute_argument_block_size): Add argument tree fndecl.
2355         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
2356         (emit_library_call_value_1): Add new variable fndecl initialized by
2357         NULL_TREE. It should be the decl type of orgfun, but this information
2358         seems not to be available here, so it uses the default calling abi.
2359         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
2360         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
2361         by TARGET_RETURN_IN_MEMORY.
2362         * config/i386/i386-interix.h: Likewise.
2363         * config/i386/i386.h: Likewise.
2364         * config/i386/i386elf.h: Likewise.
2365         * config/i386/ptx4-i.h: Likewise.
2366         * config/i386/sol2-10.h: Likewise.
2367         * config/i386/sysv4.h: Likewise.
2368         * config/i386/vx-common.h: Likewise.
2369         * config/cris/cris.h: Removed #if 0 clause.
2370         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
2371         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
2372         argument.
2373         (ix86_sol10_return_in_memory): Likewise.
2374         (ix86_i386elf_return_in_memory): New.
2375         (ix86_i386interix_return_in_memory): New.
2376         * config/mt/mt-protos.h (mt_return_in_memory): New.
2377         * config/mt/mt.c: Likewise.
2378         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2379         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
2380         * config/bfin/bfin.h: Likewise.
2381         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
2382         argument.
2383         * config/bfin/bfin.c: Likewise.
2384         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2385         * config/alpha/unicosmk.h: Likewise.
2386         * config/i386/cygming.h: Likewise.
2387         * config/iq2000/iq2000.h: Likewise.
2388         * config/mips/mips.h: Likewise.
2389         * config/mn10300/mn10300.h: Likewise.
2390         * config/rs6000/rs6000.h: Likewise.
2391         * config/score/score.h: Likewise.
2392         * config/spu/spu.h: Likewise.
2393         * config/v850/v850.h: Likewise.
2394         * defaults.h: Likewise.
2395         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
2396         * expr.c (emit_block_move): Adjust use of
2397         OUTGOING_REG_PARM_STACK_SPACE.
2398         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
2399         OUTGOING_REG_PARM_STACK_SPACE.
2400         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
2401
2402 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
2403
2404         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
2405         on OMP_RETURN for OMP_FOR.
2406
2407         PR debug/35896
2408         * dwarf2out.c (dw_expand_expr, common_check): Removed.
2409         (fortran_common): New function.
2410         (gen_variable_die): Call fortran_common instead of common_check,
2411         adjust for it returning tree instead of rtx.  Formatting.
2412
2413 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
2414
2415         PR rtl/7335
2416         PR rtl/33826
2417         * see.c (see_copy_insn): Copy new pure const attributes for new call.
2418         * c-decl.c (merge_decls): Ditto.
2419         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
2420         to RTL_CONST_OR_PURE_CALL_P.
2421         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
2422         Initialized DECL_LOOPING_CONST_PURE.
2423         (process_call_operands): Set tree_side_effects properly.
2424         * tree.h (TREE_READONLY_DECL_P): Removed.
2425         (DECL_IS_PURE): Renamed to DECL_PURE_P.
2426         (DECL_LOOPING_OR_CONST_P): New macro.
2427         (struct tree_function_decl): Added looping_const_or_pure_p.
2428         (ECF_*) Renumbered.
2429         (ECF_LOOPING_OR_CONST_P): New macro.
2430         * rtlanal.c (pure_const_p): Removed.
2431         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
2432         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
2433         to RTL_CONST_CALL_P.
2434         * ipa-pure-const.c (pure_const_state_e): Added looping field.
2435         (check_decl, check_tree, check_call, scan_function): Initialize
2436         looping.
2437         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
2438         (static_execute): Set looping true for recursive functions.
2439         Undo setting state to IPA_NEITHER for recursive functions.
2440         * cse.c (cse_insn): 
2441         * ifcvt.c (noce_can_store_speculate_p): Changed
2442         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
2443         RTL_CONST_OR_PURE_CALL_P.
2444         * dse.c (scan_insn): Ditto.
2445         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
2446         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
2447         RTL_CONST_OR_PURE_CALL_P.
2448         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
2449         pure_call_p to RTL_CONST_CALL_P.
2450         * gimplify.c (gimplify_call_expr): Clear side effects for
2451         non-looping pure and constant calls.
2452         * calls.c (emit_call_1): Set rtl flags from ecf flags.
2453         (flags_from_decl_or_type): Set ecf flags from decl flags.
2454         (initialize_argument_information): Turn off
2455         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
2456         Change const to pure if callee_copies is true rather than just
2457         turning off const.
2458         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
2459         way of marking pure calls.
2460         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
2461         Remove hack that was supposed to fix pr7335 and remove old
2462         way of marking pure calls.
2463         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
2464         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
2465         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
2466         RTL_CONST_OR_PURE_CALL_P.
2467         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
2468         * loop-invariant.c (find_exits, find_invariant_bb): Changed
2469         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
2470         * sched-deps.c (schedule_analyze): Ditto.
2471         * rtl.h (struct rtx_def): Use call field, unchanging field, and
2472         return_val field of calls to represent pure and const function info.
2473         (CONST_OR_PURE_CALL_P): Deleted macro.
2474         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2475         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
2476         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
2477         TREE_READONLY.
2478         * tree-optimize.c (execute_fixup_cfg): Added test for
2479         ECF_LOOPING_CONST_OR_PURE.
2480         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
2481         DECL_PURE_P.
2482         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
2483         effects for looping pure or const calls.
2484         (verify_gimple_expr): Added verification code. 
2485         * config/alpha/alpha.c (alpha_legitimize_address,
2486         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
2487         RTL_CONST_CALL_P.
2488         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
2489         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
2490         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
2491         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
2492         RTL_CONST_OR_PURE_CALL_P.
2493         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
2494         and const calls to be deleted.
2495
2496 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2497
2498         PR target/35714
2499         * config/i386/mmx.md (mmx_subv2sf3): New expander.
2500         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
2501         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
2502         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2503         to handle nonimmediate operands.
2504         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
2505         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
2506         to handle nonimmediate operands.
2507         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
2508         (mmx_pmulhrwv4hi3): New expander.  Use
2509         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2510         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
2511         (sse2_umulv1siv1di3): New expander.  Use
2512         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2513         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
2514         (mmx_eq<mode>3): New expander.  Use
2515         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2516         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
2517         (mmx_uavgv8qi3): New expander.  Use
2518         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2519         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
2520         (mmx_uavgv4hi3): New expander.  Use
2521         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2522
2523         * config/i386/sse.md
2524         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
2525         to handle nonimmediate operands.
2526         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
2527         to handle nonimmediate operands.
2528         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
2529         to handle nonimmediate operands.
2530         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
2531         to handle nonimmediate operands.
2532         (sse2_unpckhpd_exp): New expander.  Use
2533         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2534         (sse2_unpcklpd_exp): New expander.  Use
2535         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2536         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
2537         to handle nonimmediate operands.
2538         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
2539         to handle nonimmediate operands.
2540         (*sse2_<plusminus_insn><mode>3): Rename from
2541         sse2_<plusminus_insn><mode>3 insn pattern.
2542         (sse2_<plusminus_insn><mode>3): New expander.  Use
2543         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2544         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
2545         (sse2_umulv2siv2di3): New expander.  Use
2546         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2547         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
2548         (sse4_1_mulv2siv2di3): New expander.  Use
2549         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2550         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
2551         (sse2_pmaddwd): New expander.  Use
2552         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2553         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
2554         (sse2_eq<mode>3): New expander.  Use
2555         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2556         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
2557         (sse4_1_eqv2di3): New expander.  Use
2558         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2559         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2560         (sse2_uavgv16qi3): New expander.  Use
2561         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2562         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2563         (sse2_uavgv16qi3): New expander.  Use
2564         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2565         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
2566         (sse2_uavgv8hi3): New expander.  Use
2567         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2568         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
2569         (ssse3_pmulhrswv8hi3): New expander.  Use
2570         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2571         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
2572         (ssse3_pmulhrswv4hi3): New expander.  Use
2573         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2574
2575         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
2576         (<sse>_vmmul<mode>3): Ditto.
2577         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
2578         (divv2df3): Ditto.
2579         (ssse3_pmaddubsw128): Use register_operand for operand 1.
2580         (ssse3_pmaddubsw): Ditto.
2581
2582         * config/i386/i386.c (struct_builtin_description)
2583         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
2584         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
2585         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
2586         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
2587         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
2588         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
2589         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
2590         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
2591         (ix86_fixup_binary_operands): Assert that src1
2592         and src2 must have the same mode when swapped.
2593         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
2594         and ix86_binary_operator_ok.  Do not force operands in registers
2595         when optimizing.
2596
2597 2008-05-07  Jan Hubicka  <jh@suse.cz>
2598
2599         * cgraph.c (dump_cgraph_node): Update.
2600         * cgraph.h (cgraph_local_info): Break out inline summary.
2601         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
2602         hook.
2603         * ipa-inline (inline_summary): New accestor function.
2604         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
2605         cgraph_decide_inlining, compute_inline_parameters): Update.
2606         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
2607
2608 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
2609
2610         Cleanup ColdFire scheduling support and add V4 pipeline model.
2611
2612         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
2613         (define_attr cpu): Add cfv4 value.
2614         (define_attr type, define_attr type1): Merge into a single 'type'
2615         attribute.  Update all uses.
2616         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
2617         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
2618         Update all uses.
2619         (define_attr opx_mem, define_attr opy_mem): Remove.
2620         (define_attr op_mem): Clean up, update comment.
2621         (define_attr size): Use specific values instead of general int.
2622         (define_attr guess, define_attr split): Remove.  Update all uses.
2623         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
2624         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
2625         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
2626         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
2627         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
2628         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
2629         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
2630         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
2631         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
2632         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
2633         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
2634         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
2635         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
2636         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
2637         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
2638         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
2639         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
2640         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
2641         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
2642         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
2643         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
2644         Update or set attributes.
2645         (stack_tie): New fake instruction.
2646
2647         * config/m68k/m68k.h (TUNE_CFV4): New macro.
2648         (m68k_sched_attr_size): Update declaration.
2649         (m68k_sched_attr_type2): Remove.
2650         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
2651         Declare new bypass predicates.
2652
2653         * config/m68k/m68k.c (m68k_sched_issue_rate,
2654         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
2655         implementations.
2656         (TARGET_SCHED_ISSUE_RATE,
2657         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
2658         (override_options): Handle scheduling for ColdFire V4 core.
2659         (m68k_expand_prologue): Emit stack_tie.
2660         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
2661         'OP_TYPE_FPN'.  Update all uses.
2662         (sched_guess_p): Remove.
2663         (sched_address_type): Handle symbolic addresses.
2664         (sched_get_operand): New static function.
2665         (sched_operand_type): Merge into sched_attr_op_type.
2666         (sched_attr_op_type): Handle FP registers, handle quick constants,
2667         update.
2668         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
2669         (m68k_sched_attr_size): Update.  Move logic to ...
2670         (sched_get_attr_size_int): New static function.
2671         (sched_get_opxy_mem_type): New static function.
2672         (m68k_sched_attr_op_mem): Update.
2673         (m68k_sched_attr_type2): Remove.
2674         (sched_cfv4_bypass_data): New static variable.
2675         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
2676         (m68k_sched_issue_rate): Implement scheduler hook.
2677         (struct _sched_ib: enabled_p): New field.
2678         (m68k_sched_variable_issue): Update.  Handle V4.
2679         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
2680         sched_dump_class_func_t, sched_dump_split_class,
2681         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
2682         sched_dump_dfa_class, m68k_sched_dump): Remove.
2683         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
2684         hook.
2685         (m68k_sched_init_global): Remove statisctics dumping, introduce
2686         sanity check that all instructions have pipeline reservations.  Handle
2687         ColdFire V4 core.
2688         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2689         Handle ColdFire V4 core.
2690         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
2691         New static functions.
2692         (m68k_sched_address_bypass_p): New bypass predicate.
2693         (sched_get_indexed_address_scale): New static function.
2694         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
2695
2696         * cf.md: Update comments.
2697         (define_attr type2): Remove.  Use 'type' attribute instead.
2698         Update all uses.
2699         (cf_ib): Rename to cfv123_ib.  Update all uses.
2700         (cf_oep): Rename to cfv123_oep.  Update all uses.
2701         (cf_chr): Rename to cfv123_chr.  Update all uses.
2702         (cf_mem): Rename to cfv123_mem.  Update all uses.
2703         (cf_mac): Move to more appropriate place.
2704         (cfv123_guess): New automaton and cpu_unit.
2705         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
2706         Update uses of 'size' attribute.  Handle before reload scheduling.
2707         (cfv123_guess): New dummy reservation for unhandled instructions.
2708         (cfv4_*): Pipeline description of ColdFire V4 core.
2709         (ignore): New reservation to handle 'ignore' type.
2710
2711 2008-05-07  Ian Lance Taylor  <iant@google.com>
2712
2713         PR middle-end/36013
2714         * gimplify.c (find_single_pointer_decl_1): Don't look through
2715         indirections.
2716         (find_single_pointer_decl): Adjust comments.
2717
2718 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
2719
2720         PR middle-end/36137
2721         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
2722         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
2723
2724         PR middle-end/36106
2725         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
2726         integral type rather than floating point, then VIEW_CONVERT_EXPR
2727         to the floating point type.
2728
2729 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2730
2731         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
2732         TFmode op0 to register.
2733
2734 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
2735
2736         * c-decl.c (grokdeclarator): Comment typo.
2737
2738 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
2739
2740         * tree-flow.h: Remove prototype for computed_goto_p.
2741         * tree-cfg.c (computed_goto_p): Make static.
2742
2743 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
2744
2745         PR target/35657
2746         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
2747         (contains_aligned_value_p): This.  Handle _Decimal128.
2748         (ix86_function_arg_boundary): Only align _Decimal128 to its
2749         natural boundary and handle it properly.
2750
2751 2008-05-06  Martin Jambor  <mjambor@suse.cz>
2752
2753         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
2754         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
2755         (ipcp_method_set_orig_node): Removed.
2756         (ipcp_cval_get_cvalue_type): Removed.
2757         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
2758         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
2759         (ipcp_cval_set_cvalue_type): Removed.
2760         (ipcp_cval_get_cvalue): Removed.
2761         (ipcp_cval_set_cvalue): Removed.
2762         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
2763         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
2764         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
2765         (ipcp_cval_meet): Renamed to ipa_lattice_meet
2766         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
2767         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
2768         (ipcp_get_ith_lattice): Changed parameters.
2769         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
2770         (ipcp_lattice_from_jfunc): Changed parameters.
2771         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
2772         (ipcp_method_cval_print): Added temporary variable info.
2773         (ipcp_redirect): Removed already unused local variable caller.
2774         (ipcp_redirect): New temporary variable orig_callee_info
2775         (ipcp_redirect): Removed newly unused local variable callee.
2776         (ipcp_redirect): Removed (a bit confusing) local variable type.
2777         (ipcp_insert_stage): Added local variable info.
2778         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
2779         renamed too
2780         (ipcp_formal_create): Removed.
2781         (ipcp_method_cval_set): Removed.
2782         (ipcp_propagate_stage): Renamed lattice variables.
2783         (ipcp_method_cval_set_cvalue_type): Removed.
2784         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
2785         (ipcp_print_all_lattices): Changed printed strings to refer to 
2786         lattices rather than cvals.
2787         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
2788         (ipcp_propagate_const): Changed formal parameters.
2789         (build_const_val): Changed formal parameters.
2790         (ipcp_insert_stage): Removed useless variable cvalue
2791         (build_const_val): Changed formal parameters.
2792         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
2793         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
2794         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
2795         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
2796         (ipcp_print_func_profile_counts): Changed string from "method" to 
2797         "function"
2798         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
2799         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
2800         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
2801         (ipcp_structures_print): Renamed to ipcp_print_all_structures
2802         (ipcp_profile_print): Renamed to ipcp_print_profile_data
2803         (ipcp_lat_is_const): Changed parameters and made inline.
2804         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
2805         (ipcp_redirect): Renamed to ipcp_need_redirect_p
2806         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
2807         the predicate condition directly
2808         (ipcp_propagate_stage): Added local variable args. Removed local
2809         variable callee.  (Both are mere code simplifications.)
2810         (ipcp_method_dont_insert_const): Renamed to
2811         ipcp_node_not_modifiable_p.
2812         (ipcp_node_not_modifiable_p): Made inline.
2813         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
2814         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
2815         (ipcp_print_all_lattices): Removed variable cvalue
2816         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
2817         Updated comments.
2818
2819 2008-05-06  Olivier Hainque  <hainque@adacore.com>
2820
2821         * tree-sra.c (try_instantiate_multiple_fields): Early return
2822         if field has POINTER_TYPE.
2823
2824 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
2825
2826         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
2827         by using 'q' specifier for instruction.
2828         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
2829
2830 2008-05-06  Anatoly Sokolov <aesok@post.ru>
2831
2832         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
2833         Change mode of zero_extract from QImode to HImode.
2834         (sign bit tests peepholes): (Ditto.).
2835
2836 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
2837
2838         * config/i386/mmx.md: Remove double backslashes from asm templates.
2839         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
2840         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2841         to handle nonimmediate operands.
2842         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
2843         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2844         to handle nonimmediate operands.
2845         (*mmx_<code>v2sf3_finite): New insn pattern.
2846         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
2847         (mmx_<code>v2sf3): New expander.  Use
2848         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2849         (mmx_<plusminus_insn><mode>3): New expander.  Use
2850         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2851         (*mmx_<plusminus_insn><mode>3): New insn pattern.
2852         (mmx_add<mode>3): Removed.
2853         (mmx_ssadd<mode>3): Ditto.
2854         (mmx_usadd<mode>3): Ditto.
2855         (mmx_sub<mode>3): Ditto.
2856         (mmx_sssub<mode>3): Ditto.
2857         (mmx_ussub<mode>3): Ditto.
2858         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
2859         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
2860         to handle nonimmediate operands.
2861         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
2862         insn pattern.
2863         (mmx_smulv4hi3_highpart): New expander.  Use
2864         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2865         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
2866         insn pattern.
2867         (mmx_umulv4hi3_highpart): New expander.  Use
2868         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2869         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
2870         (mmx_<code>v4hi3): New expander.  Use
2871         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2872         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
2873         (mmx_<code>v8qi3): New expander.  Use
2874         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2875         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
2876         (mmx_<code><mode>3): New expander.  Use
2877         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2878
2879 2008-05-05  Jan Hubicka  <jh@suse.cz>
2880
2881         PR tree-optimization/36118
2882         * passes.c (pass_init_dump_file): Fix dump header.
2883
2884 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2885
2886         PR middle-end/36141
2887         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
2888         VCE for function decls.
2889
2890 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2891
2892         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
2893
2894 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2895
2896         * config/i386/i386.md (sat_plusminus): New.
2897         (plusminus_insn): Likewise.
2898         (plusminus_mnemonic): Likewise.
2899         (addsub): Removed.
2900         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
2901         (*<addsub><mode>3_cc_overflow): Renamed to ...
2902         (*<plusminus_insn><mode>3_cc_overflow): This.
2903         (*<addsub>si3_zext_cc_overflow): Renamed to ...
2904         (*<plusminus_insn>si3_zext_cc_overflow): This.
2905
2906         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
2907         (<plusminus_insn><mode>3): This.
2908         (*<addsub><mode>3): Renamed to ...
2909         (*<plusminus_insn><mode>3): This.
2910         (<sse>_vm<addsub><mode>3): Renamed to ...
2911         (<sse>_vm<plusminus_insn><mode>3): This.
2912         (sse3_h<addsub>v4sf3): Renamed to ...
2913         (sse3_h<plusminus_insn>v4sf3): This.
2914         (sse3_h<addsub>v2df3): Renamed to ...
2915         (sse3_h<plusminus_insn>v2df3): This.
2916         (<plusminus_insn><mode>3): New.
2917         (*<plusminus_insn><mode>3): Likewise.
2918         (sse2_<plusminus_insn><mode>3): Likewise.
2919         (add<mode>): Removed.
2920         (*add<mode>3): Likewise.
2921         (sse2_ssadd<mode>3): Likewise.
2922         (sse2_usadd<mode>3): Likewise.
2923         (sub<mode>3): Likewise.
2924         (*sub<mode>3): Likewise.
2925         (sse2_sssub<mode>3): Likewise.
2926         (sse2_ussub<mode>3): Likewise.
2927
2928 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
2929
2930         * gthr-single.h: Add in required interface elements as per gthr.h.
2931         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
2932         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
2933         Generalize UNUSED macro. 
2934         (__gthread_once): Add.
2935         (__gthread_key_create): Add.
2936         (__gthread_key_delete): Add.
2937         (__gthread_getspecific): Add.
2938         (__gthread_setspecific): Add.
2939         
2940 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
2941
2942         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
2943         the same size types for the indirect reference on the rhs, then
2944         create a VCE.
2945
2946 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
2947
2948         * config/i386/i386.md
2949         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
2950         one insn template instead of template series.
2951         (*xordi_1_rex64): Ditto.
2952         (*xordi_2_rex64): Ditto.
2953
2954 2008-05-05  Ira Rosen  <irar@il.ibm.com>
2955
2956         PR tree-optimization/36119
2957         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
2958         in case of SLP.
2959
2960 2008-06-04  Jan Hubicka  <jh@suse.cz>
2961
2962         tree-optimization/36100
2963         * tree-pass.h (pass_O0_always_inline): Declare.
2964         * ipa-inline.c (inline_transform): Remove dead code.
2965         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
2966         pass_O0_always_inline): New.
2967         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
2968
2969 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
2970
2971         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
2972         mnemonic in this_param move for TARGET_64BIT.
2973
2974 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
2975
2976         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
2977         (*strmovsi_rex_1): Ditto.
2978         (*strsetsi_1): Ditto.
2979         (*strsetsi_rex_1): Ditto.
2980
2981         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
2982         adddicc expanders using SWI mode iterator.
2983
2984 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2985
2986         PR target/36121
2987         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
2988         argument handling.
2989
2990 2008-05-04  David S. Miller  <davem@davemloft.net>
2991
2992         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
2993         (sparc*-*-linux*): Use linux.h in tm_file.
2994         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
2995         compiler defaulting to 32-bit.
2996         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
2997         no longer needed.
2998         * config/sparc/linux.h: Remove definitions now obtained
2999         properly from linux.h
3000         * config/sparc/linux64.h: Likewise.
3001         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
3002         don't want this setting for 32-bit builds in a biarch compiler.
3003         * doc/install.texi: Add sparc-linux to list of targets
3004         supporting --enable-targets=all.
3005
3006 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
3007
3008         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
3009
3010 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
3011
3012         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
3013         after V4SI_FTYPE_V8HI.
3014         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
3015         case V4SI_FTYPE_V2DF.
3016
3017 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
3018
3019         * doc/invoke.texi (max-flow-memory-locations): Removed.
3020         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
3021         
3022 2008-05-03  Richard Guenther  <rguenther@suse.de>
3023
3024         PR middle-end/34973
3025         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
3026
3027 2008-05-02  David S. Miller  <davem@davemloft.net>
3028
3029         * config.gcc (need_64bit_hwint): Document libcpp dependency.
3030
3031 2008-05-02  Simon Baldwin <simonb@google.com>
3032
3033         PR bootstrap/36108
3034         * c-common.h (warn_array_subscript_range): Removed.
3035         * c-common.c (warn_array_subscript_range): Ditto.
3036         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
3037         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
3038
3039 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
3040
3041         * config/i386/i386.c (ix86_special_builtin_type): New.
3042         (bdesc_special_args): Likewise.
3043         (ix86_expand_special_args_builtin): Likewise.
3044         (ix86_init_mmx_sse_builtins): Updated.
3045         (ix86_expand_builtin): Updated.
3046         (ix86_expand_store_builtin): Removed.
3047         (ix86_expand_unop_builtin): Likewise.
3048
3049         * config/i386/mm3dnow.h (__v2sf): Moved to ...
3050         * config/i386/mmintrin.h (__v2sf): Here.
3051
3052         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
3053         const __v2sf.
3054         (_mm_loadl_pi): Likewise.
3055         (_mm_storeh_pi): Replace __v2si with __v2sf.
3056         (_mm_storel_pi): Likewise.
3057
3058         * doc/extend.texi: Correct __builtin_ia32_loadhps,
3059         __builtin_ia32_loadlps, __builtin_ia32_storehps,
3060         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
3061         __builtin_ia32_loadlpd.
3062
3063 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
3064
3065         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
3066         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
3067         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
3068         (ix86_init_mmx_sse_builtins): Updated.
3069         (ix86_expand_args_builtin): Likewise.
3070         (ix86_expand_builtin): Likewise.
3071         (ix86_expand_unop1_builtin): Renamed to ...
3072         (ix86_expand_unop_vec_merge_builtin): This.
3073
3074 2008-05-01  Jan Hubicka  <jh@suse.cz>
3075
3076         PR bootstrap/36100
3077         * ipa-inline.c (inline_generate_summary): Make static.
3078         (inline_transform): Do not call inlining at -O0; make static.
3079         * passes.c (execute_todo): Add sanity check.
3080         (execute_one_ipa_transform_pass): Execute proper flags.
3081
3082 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
3083
3084         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
3085         (DECL_NONADDRESSABLE_P): Likewise.
3086         * alias.c (record_component_aliases): Fix comment.
3087
3088 2008-05-01  Simon Baldwin <simonb@google.com>
3089
3090         * c-common.h (warn_array_subscript_range): New function.
3091         * c-common.c (warn_array_subscript_range): Ditto.
3092         * tree-vrp.c (check_array_ref): Corrected code to agree with
3093         comment, ignoring only arrays of size 0 or size 1.
3094         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
3095
3096 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3097
3098         * config/i386/i386.c (ix86_builtin_type): Replace
3099         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
3100         (bdesc_args): Updated.
3101         (ix86_init_mmx_sse_builtins): Likewise.
3102         (ix86_expand_args_builtin): Likewise.
3103
3104         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
3105         with __v1di.
3106
3107         * doc/extend.texi: Correct __builtin_ia32_palignr.
3108
3109 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3110
3111         PR target/36095
3112         * config/i386/i386.c (bdesc_crc32): Removed.
3113         (ix86_expand_crc32): Likewise.
3114         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
3115         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
3116         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
3117         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
3118         UINT_FTYPE_UINT_UCHAR.
3119         (bdesc_args): Updated. Add crc32 builtins.
3120         (ix86_init_mmx_sse_builtins): Updated.
3121         (ix86_expand_args_builtin): Updated to support subreg.
3122
3123         * doc/extend.texi: Correct __builtin_ia32_crc32di.
3124
3125 2008-05-01  Jan Hubicka  <jh@suse.cz>
3126
3127         * tree-pass.h (opt_pass): Add IPA_PASS.
3128         (varpool_node, cgraph_node): Forward declare.
3129         (ipa_opt_pass): Define.
3130         (pass_ipa_inline): Turn into ipa_opt_pass.
3131         (pass_apply_inline): Remove.
3132         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
3133         (apply_inline): Turn into ....
3134         (inline_transform): ... this one.
3135         (inline_generate_summary): New function.
3136         (pass_apply_inline): Remove.
3137         * function.h (ipa_opt_pass): Forward declare structure; typedef;
3138         vector.
3139         (struct function): Add ipa_transforms_to_apply.
3140         * passes.c (register_one_dump_file): Work on IPA_PASS.
3141         (init_optimization_passes): Remove pass_inline_parameters and
3142         pass_apply_inline.
3143         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
3144         (execute_one_pass) ... here; apply transforms when possible.
3145         (add_ipa_transform_pass, execute_ipa_summary_asses,
3146         execute_one_ipa_transform_pass): New.
3147         (execute_ipa_pass_list): Update for IPA_PASS type.
3148
3149 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3150
3151         * config/i386/i386.c (ix86_builtin_type): Add
3152         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
3153         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
3154         (bdesc_args): Add SSE4a builtins.
3155         (ix86_init_mmx_sse_builtins): Updated.
3156         (ix86_expand_args_builtin): Likewise.
3157         (ix86_expand_builtin): Likewise.
3158
3159 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3160
3161         * config/i386/i386.c (ix86_builtin_type): Add
3162         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
3163         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
3164         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
3165         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
3166         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
3167         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
3168         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
3169         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
3170         and DI_FTYPE_DI_DI_INT.
3171         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
3172         (ix86_init_mmx_sse_builtins): Updated.
3173         (ix86_expand_args_builtin): Likewise.
3174         (ix86_expand_builtin): Likewise.
3175         (ix86_expand_binop_imm_builtin): Removed.
3176
3177         * doc/extend.texi: Correct __builtin_ia32_palignr128.
3178
3179 2008-04-30  Richard Guenther  <rguenther@suse.de>
3180
3181         PR tree-optimization/32921
3182         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
3183
3184 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
3185
3186         * config/arm/arm.c (arm_unwind_emit): Use
3187         crtl->all_throwers_are_sibcalls instead of
3188         cfun->all_throwers_are_sibcalls.
3189         (arm_output_fn_unwind): Likewise.
3190         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
3191         instead of cfun->uses_pic_offset_table.
3192         (frv_expand_prologue): Likewise.
3193         (frv_frame_pointer_required): Likewise.
3194         (frv_expand_fdpic_call): Likewise.
3195         (frv_emit_movsi): Likewise.
3196         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
3197         cfun->returns_pcc_struct instead of
3198         current_function_returns_pcc_struct.
3199         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
3200         instead of cfun->calls_eh_return.
3201         (m32c_pushm_popm): Likewise.
3202         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
3203         "extern" declaration.
3204
3205 2008-04-30  Richard Guenther  <rguenther@suse.de>
3206
3207         PR tree-optimization/21636
3208         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
3209         constant address.
3210         (evaluate_stmt): Print the likely value.
3211         (ccp_visit_stmt): Avoid excessive vertical spacing.
3212
3213 2008-04-30  Rafael Espindola  <espindola@google.com>
3214
3215         * builtins.c (fold_call_expr): Return realret.
3216         * tree-ssa-threadedge.c
3217         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
3218         __builtin_object_size.
3219
3220 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
3221
3222         * gcc.c (wrapper_string): New variable.
3223         (insert_wrapper): New function.
3224         (execute): New option -wrapper.
3225         * doc/invoke.texi (Overall Options): New driver option -wrapper.
3226
3227 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
3228
3229         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
3230         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
3231         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
3232         from...
3233         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
3234         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
3235         config/rs6000/e500crtres64gprctr.asm,
3236         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
3237         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
3238         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
3239         config/rs6000/e500crtsav64gprctr.asm,
3240         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
3241         config/rs6000/e500crtsavg64gprctr.asm: New files.
3242         * config/rs6000/t-ppccomm: Add build rules for new files.
3243         (LIB2FUNCS_STATIC_EXTRA): Add new files.
3244         * config/rs6000/t-netbsd: Add build rules for new files.
3245         (LIB2FUNCS_STATIC_EXTRA): New variable.
3246         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
3247         (CRTSAVRES_DEFAULT_SPEC): Likewise.
3248         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
3249
3250 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
3251
3252         * config/i386/i386.c (ix86_builtin_type): Add
3253         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
3254         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
3255         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
3256         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
3257         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
3258         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
3259         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
3260         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
3261         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
3262         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
3263         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
3264         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
3265         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
3266         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
3267         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
3268         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
3269         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
3270         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
3271         V1DI_FTYPE_V2SI_V2SI.
3272         (bdesc_2arg): Moved to ...
3273         (bdesc_args): Here.
3274         (ix86_init_mmx_sse_builtins): Updated.
3275         (ix86_expand_args_builtin): Updated.  Take a pointer
3276         to const struct builtin_description.  Handle comparison
3277         builtin functions.
3278         (ix86_expand_sse_compare): Take a new argument for swapping operands.
3279         (ix86_expand_builtin): Updated.
3280
3281         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
3282         (ssse3_pmaddubsw128): This.
3283         (ssse3_pmaddubswv4hi3): Renamed to ...
3284         (ssse3_pmaddubsw): This.
3285
3286         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
3287         (__builtin_ia32_packssdw128): Likewise.
3288         (__builtin_ia32_packuswb128): Likewise.
3289         (__builtin_ia32_pmaddubsw): Likewise.
3290         (__builtin_ia32_pmaddubsw128): Likewise.
3291
3292 2008-04-30  Richard Guenther  <rguenther@suse.de>
3293
3294         PR tree-optimization/14847
3295         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
3296         (recognize_bits_test): Use it.
3297         (recognize_single_bit_test): Likewise.
3298
3299 2008-04-30  Martin Jambor  <mjambor@suse.cz>
3300
3301         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
3302         instead of setting number of formal parameters to zero.
3303         (ipcp_init_stage): Do not set the number of actual parameters to zero 
3304         either.
3305         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
3306         which are called with variable number of arguments.
3307         (ipcp_insert_stage): Explicitely skipping all nodes which are
3308         called with variable number of arguments.
3309         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
3310         number of parameters.
3311
3312         * ipa-prop.h (struct ipa_node_params): Added flag
3313         called_with_var_arguments
3314         (ipa_set_param_count): Added.  Changed sole setter to use it.
3315         (ipa_get_param_count): Added.  All readers of param_count
3316         converted to use it instead.
3317         (ipa_set_called_with_variable_arg): Added.
3318         (ipa_is_called_with_var_arguments): Added.
3319         (ipa_get_ith_param): Added.  All readers of param_decls converted
3320         to use it instead.
3321         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
3322         changed to use it. 
3323         (ipa_get_cs_argument_count): Added, all readers of argument_count
3324         changed to cal it.
3325         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
3326         to use it.
3327         
3328         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
3329         (struct ipcp_lattice): Renamed cval_type to type
3330         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
3331
3332         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
3333         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
3334         (ipcp_insert_stage): Changed the type of variable cvalue to tree
3335         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
3336         (build_const_val): Changed the type of parameter cvalue to tree
3337         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
3338         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
3339         
3340         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
3341         constant 
3342
3343         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
3344         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
3345         (ipa_add_method): Renamed to ipa_push_func_to_list
3346         (ipa_remove_method): Renamed to ipa_pop_func_from_list
3347         (ipa_callsite_param_count): Removed.
3348         (ipa_callsite_param_count_set): Removed.
3349         (ipa_callsite_param): Removed.
3350         (ipa_callsite_callee): Removed.
3351         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
3352         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
3353         (ipa_method_formal_count): Removed.
3354         (ipa_method_formal_count_set): Removed.
3355         (ipa_method_get_tree): Removed.
3356         (ipa_method_tree_map_create): Removed.
3357         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
3358         (ipa_create_param_decls_array): Creates the array itself
3359         (ipa_create_param_decls_array): Temporary variable info instead of 
3360         a few dereferences.
3361         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
3362         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
3363         (get_type): Removed.
3364         (ipa_jf_get_info_type): Removed.
3365         (ipa_node_create): Renamed to ipa_create_node_params
3366         (ipa_free): Renamed to ipa_free_all_node_params
3367         (ipa_nodes_create): Renamed to ipa_create_all_node_params
3368         (ipa_edges_create): Renamed to ipa_create_all_edge_args
3369         (ipa_edges_free): Renamed to ipa_free_all_edge_args
3370         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
3371         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
3372         ipa_free_all_edge_args
3373         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
3374         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
3375         (ipa_create_methodlist_node): Removed.
3376         (ipa_methodlist_method): Removed.
3377         (ipa_methodlist_method_set): Removed.
3378         (ipa_methodlist_next_method): Removed.
3379         (ipa_methodlist_next_method_set): Removed.
3380         (ipa_method_is_modified): Removed.
3381         (ipa_method_modify_create): Removed.
3382         (ipa_method_modify_init): Temporary variable info instead of a few 
3383         dereferences.
3384         (ipa_detect_param_modifications): Temporary variable info instead of 
3385         a few dereferences.
3386         (ipa_compute_jump_functions): Temporary variable info instead of 
3387         a few dereferences.
3388         (ipa_method_modify_set): Removed.
3389         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
3390         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
3391         than craph_node as the first parameter.
3392         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
3393         (ipa_method_modify_init): Removed.
3394         (ipa_compute_jump_functions): Added a temp variable instead of 
3395         repeatadly dereferencing the cgraph_edge.aux pointer
3396         (ipa_callsite_param_set_type): Removed.
3397         (ipa_compute_jump_functions): i renamed to index and moved to 
3398         an inner block
3399         (ipa_callsite_param_set_info_type_formal): Removed.
3400         (ipa_callsite_param_set_info_type): Removed.
3401         (ipa_callsite_param_map_create): Removed.
3402         (ipa_callsite_tree): Removed.
3403         (ipa_callsite_caller): Removed.
3404         (ipa_pop_func_from_list): return_method removed to return_func
3405
3406         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
3407         prefixed all values with IPA_. Changed all users.
3408         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
3409         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
3410         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
3411         (union parameter_info): Renamed to jump_func_value.
3412         (union jump_func_value): Renamed value to constant
3413         (struct ipa_jump_func): Renamed info_type to value
3414         (struct ipa_node): Renamed to ipa_node_params
3415         (struct ipa_node_params): Renamed ipa_arg_num to param_count
3416         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
3417         (struct ipa_node_params): Renamed ipa_mod to modified_flags
3418         (struct ipa_edge): Renamed to ipa_edge_args
3419         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
3420         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
3421         (struct ipa_methodlist): Renamed to ipa_func_list
3422         (struct ipa_func_list): method_p renamed to node, next_method
3423         renamed to next
3424         (ipa_methodlist_p): Removed, switched all users to struct pointer
3425         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
3426
3427 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
3428
3429         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
3430         (rs6000_emit_epilogue): Use backchain to restore only when we
3431         have a large frame.  Make use of frame pointer to restore if we
3432         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
3433
3434 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
3435
3436         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3437         Add mode to zero_extract.
3438         (sign bit tests peepholes): (Ditto.).
3439
3440 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3441
3442         * config/i386/i386.c (ix86_builtins): Replace Prescott New
3443         Instructions in comments with SSE3.
3444         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
3445         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
3446         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
3447         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
3448         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
3449         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
3450         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
3451         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
3452         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
3453         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
3454         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
3455         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
3456         (bdesc_sse_args): Renamed to ...
3457         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
3458         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
3459         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
3460         IX86_BUILTIN_FABSQ.
3461         (bdesc_1arg): Moved to ...
3462         (bdesc_args): Here.
3463         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
3464         Instructions in comments with SSE3.
3465         (ix86_expand_sse_operands_builtin): Renamed to ...
3466         (ix86_expand_args_builtin): This.  Updated.
3467         (ix86_expand_unop1_builtin): Update comments.
3468         (ix86_expand_builtin): Updated.
3469
3470 2008-04-29  Richard Guenther  <rguenther@suse.de>
3471
3472         PR tree-optimization/36078
3473         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
3474         Update virtual SSA form after cleaning up the CFG.
3475
3476 2008-04-29  Richard Guenther  <rguenther@suse.de>
3477
3478         PR middle-end/15255
3479         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
3480
3481 2008-04-29  Richard Guenther  <rguenther@suse.de>
3482
3483         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
3484         (compute_may_aliases): Do not call finalize_ref_all_pointers.
3485         (compute_flow_insensitive_aliasing): Do not treat
3486         PTR_IS_REF_ALL pointers special.
3487         (get_smt_for): Likewise.
3488         (may_alias_p): Re-structure.
3489         (is_escape_site): A ref-all pointer conversion is not an escape site.
3490         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
3491         PTR_IS_REF_ALL pointers special.
3492         * tree-ssa-structalias.h (struct alias_info): Remove
3493         ref_all_symbol_mem_tag field.
3494         (PTR_IS_REF_ALL): Remove.
3495
3496 2008-04-29  Richard Guenther  <rguenther@suse.de>
3497
3498         PR middle-end/36077
3499         * fold-const.c (extract_muldiv_1): In combining division constants
3500         make sure to never overflow.
3501
3502 2008-04-29  Nick Clifton  <nickc@redhat.com>
3503
3504         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
3505
3506 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3507
3508         PR bootstrap/35169
3509         * optc-gen.awk: Work around HP-UX/IA awk bug.
3510
3511 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
3512
3513         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
3514         2008-04-25 commit.
3515
3516 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3517
3518         PR target/36073
3519         * config/i386/i386.md
3520         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
3521         Change operand 1 predicate to nonimmediate_operand.
3522
3523 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
3524
3525         PR debug/36060
3526         * dwarf2out.c (struct die_struct): Mark as chain_circular through
3527         die_sub field.
3528         * gengtype.c (walk_type, write_func_for_structure): Handle
3529         chain_circular.
3530         * doc/gty.texi: Document chain_circular.
3531
3532 2008-04-28  Richard Guenther  <rguenther@suse.de>
3533
3534         PR tree-optimization/36066
3535         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
3536         SCEV and loop.
3537
3538 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3539
3540         PR target/36064
3541         * config/i386/i386.md
3542         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
3543         Use match_scratch instead of match_operand for operands 3 and 4.
3544
3545 2008-04-27  Richard Guenther  <rguenther@suse.de>
3546
3547         PR tree-optimization/18754
3548         PR tree-optimization/34223
3549         * tree-pass.h (pass_complete_unrolli): Declare.
3550         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
3551         loop size before and after unconditionally of UL_NO_GROWTH in effect.
3552         Rewrite loop into loop closed SSA form if it is not already.
3553         (tree_unroll_loops_completely): Re-structure to iterate over
3554         innermost loops with intermediate CFG cleanups.
3555         Unroll outermost loops only if requested or the code does not grow
3556         doing so.
3557         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
3558         loops are available.
3559         (tree_vectorize): Instead do so here.
3560         (tree_complete_unroll): Also unroll outermost loops.
3561         (tree_complete_unroll_inner): New function.
3562         (gate_tree_complete_unroll_inner): Likewise.
3563         (pass_complete_unrolli): New pass.
3564         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
3565         uses outside of the loop.
3566         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
3567         form if it is available.  
3568         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
3569         * passes.c (init_optimization_passes): Schedule complete inner
3570         loop unrolling pass before the first CCP pass after final inlining.
3571
3572 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3573
3574         * targhooks.h (default_emutls_var_fields,
3575         default_emutls_var_init): Declare.
3576         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
3577         * target.h (struct gcc_target): Add struct emutls member.
3578         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
3579         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
3580         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
3581         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
3582         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
3583         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
3584         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
3585         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
3586         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
3587         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
3588         emit debug information.
3589         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
3590         * varasm.c: Include targhooks.h.
3591         (emutls_object_section, emutls_tmpl_section): New.
3592         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
3593         (EMUTLS_SEPARATOR): New.
3594         (prefix_name): New.
3595         (get_emutls_object_name): New.
3596         (default_emutls_var_fields): New, broken out of ...
3597         (get_emutls_object_type): ... here.  Adjust to use target hooks.
3598         (get_emutls_init_templ_addr): Adjust to use target hooks.
3599         (emutls_decl): Adjust to use target hooks.
3600         (emutls_finish): Likewise.
3601         (default_emutls_var_init): New, broken out of ...
3602         (assemble_variable): ... here.  Adjust to use target hooks.
3603         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
3604         SECCAT_EMUTLS_TMPL.
3605         * c-common.c (handle_section_attribute): Prevent overriding
3606         sections for emulated tls with special sections.
3607         * config/i386/i386.c (x86_64_elf_select_section): Add
3608         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
3609         (x86_64_elf_unique_section): Likewise.
3610         * config/vxworks.c: Include tree.h.
3611         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
3612         (vxworks_override_options): Set TLS scheme.
3613         * doc/tm.texi (Emulated TLS): New node.
3614
3615 2008-04-26  Simon Baldwin <simonb@google.com>
3616
3617         PR c/35652
3618         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
3619         with propagated string constants.
3620
3621 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
3622
3623         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
3624         constraint for operand 2 when operand 0 is memory operand.
3625         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
3626         operand 0 is memory operand.
3627         (fix_trunc<mode>_i387_with_temp): Ditto.
3628         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
3629         operand 2 when operand 1 is memory operand.
3630         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
3631         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
3632         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
3633         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3634         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
3635         operands 2,3 and 4 when operand 1 is memory operand.
3636         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
3637         is memory operand.
3638         (fistdi2_floor_with_temp): Ditto.
3639         (fist<mode>2_floor_with_temp): Ditto.
3640         (fistdi2_ceil_with_temp): Ditto.
3641         (fist<mode>2_ceil_with_temp): Ditto.
3642         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
3643
3644 2008-04-26  David Daney  <ddaney@avtrex.com>
3645
3646         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
3647         unspec_volitile.
3648         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
3649         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3650         UNSPEC_UPDATE_GOT_VERSION): Renumber.
3651         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
3652         (compare_and_swap_12): New insn.
3653         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
3654         * config/mips/mips.c (mips_force_binary): New function.
3655         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
3656         (mips_expand_compare_and_swap_12): New function.
3657         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
3658
3659 2008-04-25  Jan Hubicka  <jh@suse.cz>
3660
3661         PR testsuite/35843
3662         * cfgexpand.c (pass_expand): Turn into RTL pass.
3663         * passes.c (execute_one_pass): Do pass typechecking after execution.
3664         * tree-pass.h (pass_expand): Turn into RTL pass.
3665
3666         * function.h (struct rtl_data): Move here fields
3667         accesses_prior_frames, calls_eh_return, saves_all_registers,
3668         has_nonlocal_goto, has_asm_statement, is_thunk,
3669         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
3670         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
3671         arg_pointer_save_area_init from struct function; turn into bool.
3672         (struct function): Move
3673         calls_eh_return, saves_all_registers, has_nonlocal_goto,
3674         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
3675         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
3676         tail_call_emit, arg_pointer_save_area_init
3677         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
3678         (current_function_returns_struct, current_function_returns_pcc_struct,
3679         current_function_calls_setjmp, current_function_calls_alloca,
3680         current_function_accesses_prior_frames,
3681         current_function_calls_eh_return, current_function_is_thunk,
3682         current_function_stdarg, current_function_profile,
3683         current_function_limit_stack, current_function_uses_pic_offset_table,
3684         current_function_uses_const_pool, current_function_has_nonlocal_label,
3685         current_function_saves_all_registers,
3686         current_function_has_nonlocal_goto,
3687         current_function_has_asm_statement): Remove accesor macros.
3688         * ra-conflict.c (global_conflicts): Update.
3689         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
3690         (suitable_for_tail_call_opt_p): Update.
3691         * builtins.c (expand_builtin_return_addr): Update.
3692         (expand_builtin_setjmp_setup): Update.
3693         (expand_builtin_nonlocal_goto): Update.
3694         * final.c (final_start_function): Update.
3695         (profile_function): Update.
3696         (leaf_function_p): Update.
3697         (only_leaf_regs_used): Update.
3698         * df-scan.c (df_get_exit_block_use_set): Update.
3699         * dojump.c (clear_pending_stack_adjust): Update.
3700         * tree-stdarg.c (gate_optimize_stdarg): Update.
3701         * gimple-low.c (lower_function_body): Update.
3702         * global.c (compute_regsets): Update.
3703         (global_alloc): Update.
3704         * dwarf2out.c (dwarf2out_begin_prologue): Update.
3705         * expr.c (expand_assignment): Update.
3706         * dse.c (dse_step0): Update.
3707         (dse_step1): Update.
3708         * c-decl.c (store_parm_decls): Update.
3709         * local-alloc.c (combine_regs): Update.
3710         (find_free_reg): Update.
3711         * function.c (assign_parms_augmented_arg_list): Update.
3712         (assign_parm_find_data_types): Update.
3713         (assign_parms): Update.
3714         (allocate_struct_function): Update.
3715         (expand_function_start): Update.
3716         (expand_function_end): Update.
3717         (get_arg_pointer_save_area): Update.
3718         (thread_prologue_and_epilogue_insns): Update.
3719         (rest_of_match_asm_constraints): Update.
3720         * stor-layout.c (variable_size): Update.
3721         * gcse.c (gcse_main): Update.
3722         (bypass_jumps): Update.
3723         * gimplify.c (gimplify_function_tree): Update.
3724         * calls.c (emit_call_1): Update.
3725         (expand_call): Update.
3726         * bt-load.c (compute_defs_uses_and_gen): Update.
3727         * except.c (sjlj_assign_call_site_values): Update.
3728         (sjlj_emit_function_enter): Update.
3729         (can_throw_external): Update.
3730         (set_nothrow_function_flags): Update.
3731         (expand_builtin_unwind_init): Update.
3732         (expand_eh_return): Update.
3733         (convert_to_eh_region_ranges): Update.
3734         (output_function_exception_table): Update.
3735         * emit-rtl.c (gen_tmp_stack_mem): Update.
3736         * cfgexpand.c (expand_used_vars): Update.
3737         (tree_expand_cfg): Update.
3738         * cfgcleanup.c (rest_of_handle_jump): Update.
3739         * explow.c (allocate_dynamic_stack_space): Update.
3740         * varasm.c (assemble_start_function): Update.
3741         (force_const_mem): Update.
3742         (mark_constant_pool): Update.
3743         * tree-optimize.c (tree_rest_of_compilation): Update.
3744         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
3745         * tree-cfg.c (notice_special_calls): Update.
3746         (is_ctrl_altering_stmt): Update.
3747         (tree_can_make_abnormal_goto): Update.
3748         (tree_purge_dead_abnormal_call_edges): Update.
3749         * config/alpha/predicates.md: Update.
3750         * config/alpha/alpha.c (alpha_sa_mask): Update.
3751         (alpha_sa_size): Update.
3752         (alpha_does_function_need_gp): Update.
3753         (alpha_expand_prologue): Update.
3754         (alpha_start_function): Update.
3755         (alpha_output_function_end_prologue): Update.
3756         (alpha_expand_epilogue): Update.
3757         * config/frv/frv.c (frv_stack_info): Update.
3758         (frv_expand_epilogue): Update.
3759         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
3760         (s390_register_info): Update.
3761         (s390_frame_info): Update.
3762         (s390_init_frame_layout): Update.
3763         (s390_can_eliminate): Update.
3764         (save_gprs): Update.
3765         * config/spu/spu.c (spu_split_immediate): Update.
3766         (need_to_save_reg): Update.
3767         (spu_expand_prologue): Update.
3768         (spu_expand_epilogue): Update.
3769         * config/sparc/sparc.md: Update.
3770         * config/sparc/sparc.c (eligible_for_return_delay): Update.
3771         (sparc_tls_got): Update.
3772         (legitimize_pic_address): Update.
3773         (sparc_emit_call_insn): Update.
3774         (sparc_expand_prologue): Update.
3775         (output_return): Update.
3776         (print_operand): Update.
3777         (sparc_function_ok_for_sibcall): Update.
3778         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
3779         * config/m32r/m32r.md: Update.
3780         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
3781         (m32r_compute_frame_size): Update.
3782         (m32r_expand_prologue): Update.
3783         (m32r_expand_epilogue): Update.
3784         (m32r_legitimize_pic_address): Update.
3785         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
3786         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3787         * config/i386/i386.c (ix86_frame_pointer_required): Update.
3788         (gen_push): Update.
3789         (ix86_save_reg): Update.
3790         (ix86_compute_frame_layout): Update.
3791         (ix86_expand_prologue): Update.
3792         (ix86_expand_epilogue): Update.
3793         * config/sh/sh.c (output_stack_adjust): Update.
3794         (calc_live_regs): Update.
3795         (sh5_schedule_saves): Update.
3796         (sh_expand_prologue): Update.
3797         (sh_expand_epilogue): Update.
3798         (sh_setup_incoming_varargs): Update.
3799         (sh_allocate_initial_value): Update.
3800         (sh_get_pr_initial_val): Update.
3801         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
3802         * config/sh/sh.md (label:): Update.
3803         * config/avr/avr.c (out_movhi_mr_r): Update.
3804         * config/crx/crx.h (enum): Update.
3805         * config/xtensa/xtensa.h (along): Update.
3806         * config/stormy16/stormy16.c Update.
3807         (xstormy16_compute_stack_layout): Update.
3808         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
3809         (fr30_expand_prologue): Update.
3810         * config/cris/cris.c (cris_conditional_register_usage): Update.
3811         (cris_reg_saved_in_regsave_area): Update.
3812         (cris_initial_frame_pointer_offset): Update.
3813         (cris_simple_epilogue): Update.
3814         (cris_expand_prologue): Update.
3815         (cris_expand_epilogue): Update.
3816         (cris_expand_pic_call_address): Update.
3817         (cris_asm_output_symbol_ref): Update.
3818         (cris_asm_output_label_ref): Update.
3819         * config/cris/cris.md Update.
3820         * config/iq2000/iq2000.c (compute_frame_size): Update.
3821         (iq2000_expand_epilogue): Update.
3822         * config/mt/mt.h (save_direction): Update.
3823         * config/mn10300/mn10300.c (mn10300_function_value): Update.
3824         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
3825         (ia64_secondary_reload_class): Update.
3826         * config/m68k/m68k.c (m68k_save_reg): Update.
3827         (m68k_expand_prologue): Update.
3828         (m68k_expand_epilogue): Update.
3829         (legitimize_pic_address): Update.
3830         * config/rs6000/rs6000.c (rs6000_got_register): Update.
3831         (first_reg_to_save): Update.
3832         (first_altivec_reg_to_save): Update.
3833         (compute_vrsave_mask): Update.
3834         (compute_save_world_info): Update.
3835         (rs6000_stack_info): Update.
3836         (spe_func_has_64bit_regs_p): Update.
3837         (rs6000_ra_ever_killed): Update.
3838         (rs6000_emit_eh_reg_restore): Update.
3839         (rs6000_emit_allocate_stack): Update.
3840         (rs6000_emit_prologue): Update.
3841         (rs6000_emit_epilogue): Update.
3842         (rs6000_output_function_epilogue): Update.
3843         (output_profile_hook): Update.
3844         (rs6000_elf_declare_function_name): Update.
3845         * config/rs6000/rs6000.h (rs6000_args): Update.
3846         * config/rs6000/rs6000.md: Update.
3847         * config/mcore/mcore.c (mcore_expand_prolog): Update.
3848         * config/arc/arc.c (arc_output_function_epilogue): Update.
3849         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
3850         * config/darwin.c (machopic_function_base_name): Update.
3851         * config/score/score3.c (score3_compute_frame_size): Update.
3852         (rpush): Update.
3853         (rpop): Update.
3854         (score3_epilogue): Update.
3855         * config/score/score7.c (score7_compute_frame_size): Update.
3856         (score7_prologue): Update.
3857         (score7_epilogue): Update.
3858         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
3859         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3860         * config/arm/arm.c (use_return_insn): Update.
3861         (require_pic_register): Update.
3862         (arm_load_pic_register): Update.
3863         (arm_compute_save_reg0_reg12_mask): Update.
3864         (arm_compute_save_reg_mask): Update.
3865         (thumb1_compute_save_reg_mask): Update.
3866         (output_return_instruction): Update.
3867         (arm_output_function_prologue): Update.
3868         (arm_output_epilogue): Update.
3869         (arm_get_frame_offsets): Update.
3870         (arm_expand_prologue): Update.
3871         (thumb_pushpop): Update.
3872         (thumb_exit): Update.
3873         (thumb1_expand_prologue): Update.
3874         (thumb1_expand_epilogue): Update.
3875         (arm_unwind_emit): Update.
3876         (arm_output_fn_unwind): Update.
3877         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
3878         * config/arm/arm.md: Update.
3879         * config/pa/pa.md: Update.
3880         * config/pa/pa.c (legitimize_pic_address): Update.
3881         (compute_frame_size): Update.
3882         (hppa_expand_prologue): Update.
3883         (hppa_expand_epilogue): Update.
3884         (borx_reg_operand): Update.
3885         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
3886         (HARD_REGNO_RENAME_OK): Update.
3887         * config/mips/mips.c (mips_global_pointer): Update.
3888         (mips_save_reg_p): Update.
3889         (mips_compute_frame_info): Update.
3890         (mips_frame_pointer_required): Update.
3891         (mips_expand_prologue): Update.
3892         (mips_expand_epilogue): Update.
3893         (mips_can_use_return_insn): Update.
3894         (mips_reorg_process_insns): Update.
3895         * config/v850/v850.c (compute_register_save_size): Update.
3896         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
3897         * config/mmix/mmix.c (along): Update.
3898         (mmix_expand_epilogue): Update.
3899         * config/bfin/bfin.c (legitimize_pic_address): Update.
3900         (must_save_p): Update.
3901         (stack_frame_needed_p): Update.
3902         (add_to_reg): Update.
3903         (bfin_expand_prologue): Update.
3904         * stmt.c (expand_asm_operands): Update.
3905         * reload1.c (reload): Update.
3906         (init_elim_table): Update.
3907
3908 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
3909         
3910         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
3911         
3912 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
3913
3914         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
3915         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
3916         (mov<mode>): Removed.
3917         (*movv4sf_internal): Likewise.
3918         (*movv2df_internal): Likewise.
3919
3920 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
3921
3922         * config.gcc (crx-*-elf): Remove deprecation.
3923
3924 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
3925
3926         * config/i386/cygming-crtend.c (register_frame_ctor): Register
3927         __gcc_deregister_frame with atexit.
3928         (deregister_frame_dtor): Remove.
3929
3930 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
3931             Nathan Sidwell  <nathan@codesourcery.com>
3932
3933         * config/rs6000/rs6000.opt (mspe): Remove Var property.
3934         (misel): Likewise.
3935         * config/rs6000/rs6000.h (rs6000_spe): Declare.
3936         (rs6000_isel): Likewise.
3937         * config/rs6000/rs6000.c (rs6000_spe): New variable.
3938         (rs6000_isel): New variable.
3939         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
3940
3941 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3942
3943         PR c++/35758
3944         * c-common.c (handle_vector_size_attribute): Call
3945         lang_hooks.types.reconstruct_complex_type instead of
3946         reconstruct_complex_type.
3947         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
3948         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
3949         * langhooks.h (struct lang_hooks_for_types): Add
3950         reconstruct_complex_type hook.
3951         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
3952         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
3953
3954 2008-04-24  Richard Guenther  <rguenther@suse.de>
3955
3956         * c-common.h (check_builtin_function_arguments): Declare.
3957         * c-common.c (validate_nargs): New function.
3958         (check_builtin_function_arguments): Likewise.
3959         * c-typeck.c (build_function_call): Call
3960         check_builtin_function_arguments.
3961         * builtins.c (fold_builtin_classify): Remove error reporting code.
3962         (fold_builtin_unordered_cmp): Likewise.
3963         (fold_builtin_1): Likewise.
3964         (fold_builtin_n): Likewise.
3965
3966 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3967
3968         PR tree-optimization/36008
3969         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
3970         the original op1, rather than delta by step.
3971
3972 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
3973             Sebastian Pop  <sebastian.pop@amd.com>
3974
3975         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
3976         eliminate_local_variables_stmt, eliminate_local_variables,
3977         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
3978         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
3979         of code delimited by two edges in the CFG.
3980         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
3981         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
3982         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
3983         the case of parallelisation of reductions.
3984         (expr_invariant_in_region_p): New.
3985
3986         * tree-flow.h (gather_blocks_in_sese_region): Declared.
3987         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
3988
3989 2008-04-24  Ira Rosen  <irar@il.ibm.com>
3990             Richard Guenther  <rguenther@suse.de>
3991
3992         PR tree-optimization/36034
3993         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
3994         incapable of dealing with loads with gaps.
3995
3996 2008-04-24  Rafael Espindola  <espindola@google.com>
3997
3998         * tree-flow.h (vrp_evaluate_conditional): Change signature.
3999         * tree-ssa-propagate.c (fold_predicate_in): Update call to
4000         vrp_evaluate_conditional.
4001         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
4002         (vrp_evaluate_conditional): Split the cond argument.
4003         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
4004         (simplify_stmt_for_jump_threading): Update call to
4005         vrp_evaluate_conditional.
4006
4007 2008-04-24  Ira Rosen  <irar@il.ibm.com>
4008
4009         PR tree-optimization/35982
4010         * tree-vect-analyze.c (vect_check_interleaving): Check that the
4011         interleaved data-refs are of the same type.
4012
4013 2008-04-24  Danny Smith  <dannysmith@users.net>
4014
4015         * c-format.c (check_format_info_main): Use strncmp rather than a
4016         magic prefix to handle multichar length specs.
4017         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
4018         Don't prefix "I64" and "I32" with '\0'.
4019
4020 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4021
4022         PR target/36015
4023         * config/i386/i386.c (init_cumulative_args): Don't pass anything
4024         in registers for -m32 only if stdarg_p (fntype).
4025
4026 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
4027
4028         PR rtl-optimization/36006
4029         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
4030         temp to op0 in order to avoid invalid rtx sharing.
4031
4032 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
4033
4034         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
4035         check TREE_INVARIANT.
4036         * tree-gimple.c (is_gimple_address): New.
4037         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
4038         * tree-gimple.h (is_gimple_address): New.
4039         * tree.h (decl_address_invariant_p): New.
4040         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
4041         (build_string): Likewise.
4042         (decl_address_invariant_p): New, from is_gimple_invariant_address.
4043         (tree_invariant_p_1): Likewise.
4044         (save_expr): Use it.
4045         (tree_invariant_p): New.
4046         (skip_simple_arithmetic): Use it.
4047         (stabilize_reference_1): Use it.
4048         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
4049         simplify.
4050         (build1_stat): Drop code to compute TREE_INVARIANT.
4051         (build2_stat): Drop code to compute TREE_INVARIANT.
4052         (build3_stat): Drop code to compute TREE_INVARIANT.
4053         (build4_stat): Drop code to compute TREE_INVARIANT.
4054         (build5_stat): Drop code to compute TREE_INVARIANT.
4055         (build7_stat): Drop code to compute TREE_INVARIANT.
4056         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
4057         * tree.h (struct tree_base): Remove invariant_flag.
4058         (TREE_INVARIANT): Remove.
4059         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
4060         (fold_builtin_expect): Check TREE_CONSTANT.
4061         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
4062         * c-tree.h (c_expr_to_decl): Drop third parameter.
4063         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
4064         (build_c_cast): Don't set TREE_INVARIANT.
4065         (pop_init_level): Don't set TREE_INVARIANT.
4066         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
4067         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
4068         TREE_CONSTANT.
4069         (gimplify_init_constructor): Don't set TREE_INVARIANT.
4070         (gimplify_addr_expr): Adjust comment.
4071         * tree-mudflap.c (mf_build_string):
4072         * print-tree.c (print_node): Don't print TREE_INVARIANT.
4073         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
4074         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
4075         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
4076         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
4077         * langhooks.h (struct lang_hooks): Drop third parameter from
4078         expr_to_decl.
4079
4080 2008-04-23  Richard Guenther  <rguenther@suse.de>
4081
4082         PR tree-optimization/27799
4083         PR tree-optimization/32921
4084         PR tree-optimization/32624
4085         * tree-ssa-structalias.c (merge_smts_into): Only merge the
4086         SMTs aliases and the tag itself into the solution.
4087         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
4088         merge the points-to solution back into the SMT aliases.
4089         (may_alias_p): Use alias_set_subset_of instead of
4090         aliases_conflict_p.  A pointer which points to
4091         memory with alias set zero may access any variable.
4092
4093 2008-04-23  Richard Guenther  <rguenther@suse.de>
4094
4095         * alias.c (alias_set_subset_of): Correctly handle asking
4096         if zero is a subset of an alias set with zero child.
4097         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
4098         (compute_flow_insensitive_aliasing): Correctly walk all
4099         pointers.  Do not unnecessarily union sets.
4100
4101 2008-04-23  Richard Guenther  <rguenther@suse.de>
4102
4103         PR middle-end/36021
4104         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
4105
4106 2008-04-22  Tomas Bily  <tbily@suse.cz>
4107
4108         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
4109         unreachable case.
4110         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
4111         NON_LVALUE_EXPR.
4112         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
4113         * tree-ssa-structalias.c (get_constraint_for): Likewise.
4114         * tree-inline.c (estimate_num_insns_1): Likewise.
4115         * varasm.c (const_hash_1, compare_constant, copy_constant)
4116         (compute_reloc_for_constant, output_addressed_constants): Likewise.
4117         * emit-rtl.c (component_ref_for_mem_expr)
4118         (set_mem_attributes_minus_bitpos): Likewise.
4119         * expr.c (highest_pow2_factor, expand_expr_real_1, )
4120         (is_aligning_offset): Likewise.
4121         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
4122         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
4123         * dojump.c (do_jump): Likewise.
4124         * builtins.c (get_pointer_alignment, get_memory_rtx)
4125         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
4126         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
4127
4128 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
4129
4130         PR rtl-optimization/36017
4131         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
4132         expanding the library call.
4133
4134 2008-04-22  Ian Lance Taylor  <iant@google.com>
4135
4136         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
4137         than size_in_bytes.
4138
4139 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
4140
4141         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
4142         of LR/CTR moves for Power6.
4143
4144 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
4145
4146         PR middle-end/36003
4147         * passes.c (init_optimization_passes): Remove
4148         pass_fast_rtl_byte_dce.
4149         
4150 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
4151
4152         PR target/29096
4153         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
4154         builtin functions to generate faster code.
4155         (_mm_cvtpu16_ps): Ditto.
4156         (_mm_cvtpi32x2_ps): Ditto.
4157
4158 2008-04-22  Nick Clifton  <nickc@redhat.com>
4159
4160         * common.opt (ftree-loop-distribution): Add Optimization
4161         attribute.
4162
4163         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
4164         (frv_expand_builtin_va_start): Likewise.
4165
4166         * config/arm/arm.c (thumb_find_work_register): Fix location of
4167         argument register count.
4168
4169 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
4170
4171         Support scheduling for ColdFire V1 and V3 microarchitecture.
4172         Improve scheduling of multiplication instructions.
4173
4174         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
4175         (mac): New instruction attribute.
4176         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
4177         (m68k_sched_mac): New variable.
4178         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
4179         Handle cfv1 and cfv3.
4180         (max_insn_size): New static variable.
4181         (struct _sched_ib): New type.
4182         (sched_ib): New static variable.
4183         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
4184         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
4185         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
4186         Update.
4187         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
4188         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
4189         new variables.  Update.
4190         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
4191         Add modeling of cfv3 instruction buffer.  Update.
4192         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
4193         * config/m68k/m68k.h (TUNE_CFV3): New macro.
4194         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
4195         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
4196         a particular reservation applies to.
4197         (type2): Reorganize attribute values.  Rename alu to alu_reg,
4198         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
4199         to mul_l and mul_w.
4200         (cf_ib_*): Simplify description of instruction buffer.
4201         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
4202         (cf_mem): Split into cf_mem1 and cf_mem2.
4203         (cf_v2_move_??): Rename to cfv12_alu_??.
4204         (cf_v2_move_l_??): Rename to cfv12_omove_??.
4205         (cf_v2_mul_??): Remove reservations.
4206         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
4207         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
4208         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
4209         appropriate place.
4210         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
4211         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
4212         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
4213         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
4214         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
4215         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
4216         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
4217         expansions of the above reservations for instructions of sizes
4218         1, 2 and 3 words.
4219
4220 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
4221
4222         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
4223
4224 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
4225
4226         * coverage.c: Include tree-pass.h.
4227         (coverage_counter_alloc): Print da_file_name to the dump file.
4228
4229 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
4230
4231         * sbitmap.c (sbitmap_range_empty_p): New function.
4232         * sbitmap.h (sbitmap_range_empty_p): New function.
4233         * bitmap.h: Now includes obstack.h.
4234
4235 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
4236             Kenneth Zadeck  <zadeck@naturalbridge.com>
4237
4238         * dbgcnt.def (ra_byte_scan): Added.
4239         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
4240         when the last hit happens for a counter.  
4241         * timevar.def (TV_DF_BYTE_LR): New variable.
4242         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
4243         * passes.c (pass_fast_rtl_byte_dce): New pass.
4244         * fwprop.c (update_df): Added mode to call df_ref_create.
4245         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
4246         DF_REF_EXTRACT_OFFSET.
4247         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
4248         DF_BYTE_LR_OUT, df_byte_lr): New macro.
4249         (df_mm): New enum.
4250         (df_ref_extract): Added mode field.
4251         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
4252         DF_REF_EXTRACT_OFFSET.
4253         (DF_REF_EXTRACT_MODE): New macro.
4254         (df_byte_lr_bb_info): New structure.
4255         (df_print_byte_regset, df_compute_accessed_bytes, 
4256         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
4257         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
4258         df_byte_lr_simulate_uses,
4259         df_byte_lr_simulate_artificial_refs_at_top,
4260         df_byte_lr_simulate_artificial_refs_at_end,
4261         df_compute_accessed_bytes): New function.
4262         (df_ref_create): Add parameter.
4263         (df_byte_lr_get_bb_info): New inline function.
4264         * df-scan.c (df_ref_record, df_uses_record,
4265         df_ref_create_structure): Added mode parameter.
4266         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
4267         df_defs_record, df_uses_record, df_get_conditional_uses,
4268         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
4269         df_entry_block_defs_collect, df_exit_block_uses_collect):
4270         Added mode parameter to calls to df_ref_record, df_uses_record,
4271         df_ref_create_structure.
4272         (df_ref_equal_p, df_ref_compare): Added test for modes.
4273         (df_ref_create_structure): Added code to set mode.  Renamed
4274         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
4275         DF_REF_EXTRACT_OFFSET.
4276         * df-core.c (df_print_byte_regset): New function.
4277         * df-byte-scan.c: New file.
4278         * df-problems.c (df_rd_transfer_function): Removed unnecessary
4279         calls to BITMAP_FREE.  
4280         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
4281         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
4282         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
4283         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
4284         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
4285         df_byte_lr_local_compute, df_byte_lr_init,
4286         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
4287         df_byte_lr_transfer_function, df_byte_lr_free, 
4288         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
4289         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
4290         df_byte_lr_simulate_uses,
4291         df_byte_lr_simulate_artificial_refs_at_top,
4292         df_byte_lr_simulate_artificial_refs_at_end): New function.
4293         * dce.c (byte_dce_process_block): New function.
4294         (dce_process_block): au is now passed in rather than computed
4295         locally.  Changed loops that look at artificial defs to not look
4296         for conditional or partial ones, because there never are any.  
4297         (fast_dce): Now is able to drive byte_dce_process_block or 
4298         dce_process_block depending on the kind of dce being done.
4299         (rest_of_handle_fast_dce): Add parameter to fast_dce.
4300         (rest_of_handle_fast_byte_dce): New function.
4301         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
4302         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
4303
4304 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
4305
4306         PR fortran/35019
4307         * gcc.h: Added fortran options that take arguments to
4308         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
4309         macros.
4310
4311 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
4312
4313         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
4314         scalarization if on the LHS and not a full access.
4315
4316 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4317
4318         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
4319
4320 2008-04-18  Rafael Espindola  <espindola@google.com>
4321
4322         * tree-vrp.c (find_case_label_index): Fix the binary search.
4323         (find_case_label_range): New.
4324         (vrp_visit_switch_stmt): Use find_case_label_range.
4325         (simplify_switch_using_ranges): Use find_case_label_range.
4326
4327 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4328
4329         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
4330         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
4331
4332 2008-04-18  Tom Tromey  <tromey@redhat.com>
4333
4334         PR libcpp/15500:
4335         * doc/cpp.texi (Implementation-defined behavior): Mention
4336         -finput-charset.
4337
4338 2008-04-18  Ian Lance Taylor  <iant@google.com>
4339
4340         * fold-const.c (pointer_may_wrap_p): New static function.
4341         (fold_comparison): Add another test for pointer overflow.  Use
4342         pointer_may_wrap_p to disable some false positives.
4343
4344 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
4345           
4346         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
4347         (fname_as_string): Match updated cpp_interpret_string prototype.
4348         (fix_string_type): Support char16_t* and char32_t*.
4349         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
4350         derivative) nodes.  Register as builtin if C++0x.
4351         (c_parse_error): Support CPP_CHAR{16,32}.
4352         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
4353         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
4354         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
4355         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
4356         CTI_CHAR32_ARRAY_TYPE>: New elements.
4357         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
4358         char32_type_node, signed_char32_type_node, char16_array_type_node,
4359         char32_array_type_node): New defines.
4360         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
4361         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
4362         (lex_string): Support CPP_STRING{16,32}, match updated
4363         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
4364         (lex_charconst): Support CPP_CHAR{16,32}.
4365         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
4366         and CPP_STRING{16,32}.
4367
4368 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
4369
4370         PR bootstrap/35457
4371         * aclocal.m4: Regenerate.
4372         * configure: Regenerate.
4373
4374 2008-04-18  Jan Hubicka  <jh@suse.cz>
4375
4376         * except.c (dw2_size_of_call_site_table,
4377         sjlj_size_of_call_site_table): Use vector API for call_site_record.
4378
4379         * cgraphbuild.c (build_cgraph_edges): Update.
4380         * tree-pass.h: Update comment.
4381         * final.c (leaf_function_p): Update.
4382         (leaf_renumber_regs): Update.
4383         (rest_of_clean_state): Update.
4384         * omp-low.c (expand_omp_parallel): Update.
4385         * ipa-reference.c (analyze_function): Update.
4386         * reorg.c (find_end_label): Update.
4387         (optimize_skip): Update.
4388         (fill_simple_delay_slots): Update.
4389         (fill_simple_delay_slots): Update.
4390         (make_return_insns): Update.
4391         (dbr_schedule): Update.
4392         * gimple-low.c (record_vars_into): Update.
4393         * cfgbuild.c (make_edges): Update.
4394         * function.c (assign_stack_local): Update.
4395         (assign_parm_adjust_stack_rtl): Update.
4396         (locate_and_pad_parm): Update.
4397         (allocate_struct_function): Do not initialize stack_alignment_needed
4398         and preferred_stack_boundary here.
4399         (stack_protect_prologue): Update.
4400         (stack_protect_epilogue): Update.
4401         (expand_function_start): Initialize stack_alignment_needed,
4402         preferred_stack_boundary and max_jumptable_ents.
4403         (expand_function_end): Update.
4404         (free_after_compilation): Do not NULLify epilogue_delay_list.
4405         * function.h (struct rtl_data): Add stack_protect_guard,
4406         stack_alignment_needed,
4407         preferred_stack_boundary, epilogue_delay_list.
4408         (struct function): Remove value_histograms, stack_alignment_needed,
4409         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
4410         last_label_uid,
4411         unexpanded_var_list, stack_protect_guard.
4412         (current_function_epilogue_delay_list): Remove.
4413         * ipa-type-escape.c (analyze_function): Update.
4414         * gimplify.c (pop_gimplify_context): Update comment.
4415         * calls.c (expand_call): Update.
4416         (emit_library_call_value_1): Update.
4417         * except.c (set_nothrow_function_flags): Update.
4418         * cfgexpand.c (get_decl_align_unit): Update.
4419         (create_stack_guard): Update.
4420         (estimated_stack_frame_size): Update.
4421         (expand_used_vars): Update.
4422         (tree_expand_cfg): Free histogram earliers, init expansion variables.
4423         * explow.c (allocate_dynamic_stack_space): Update.
4424         * tree-ssa-live.c (remove_unused_locals): Update.
4425         * varasm.c (mark_constant_pool): Update.
4426         * tree-inline.c (remap_decls): Update.
4427         (initialize_cfun): Update.
4428         (declare_return_variable): Update.
4429         (inline_forbidden_p): Update.
4430         (expand_call_inline): Update.
4431         (declare_inline_vars): Update.
4432         (tree_function_versioning): Update.
4433         * tree-flow.h (value_histograms): New.
4434         (VALUE_HISTOGRAMS): New macro.
4435         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
4436         last_label_uid.
4437         * tree-cfg.c (set_bb_for_stmt): Update.
4438         (replace_by_duplicate_decl): Update.
4439         (move_block_to_fn): Update.
4440         (new_label_mapper): Update.
4441         (dump_function_to_file): Update.
4442         * ipa-struct-reorg.c (build_data_structure): Update.
4443         * cfgrtl.c (print_rtl_with_bb): Update.
4444         * reload1.c (reload): Update.
4445         (reload): Update.
4446         * config/i386/i386.c (setup_incoming_varargs_64,
4447         ix86_compute_frame_layout): Update.
4448         * config/arc/arc.c (arc_output_function_epilogue): Update.
4449
4450 2008-04-18  Marius Strobl <marius@FreeBSD.org>
4451
4452         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
4453         for FreeBSD as well.
4454         * gthr-posix95.h: Likewise.
4455
4456 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
4457
4458         PR rtl-optimization/35838
4459         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
4460         out the byte offset of the first subreg.
4461
4462 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
4463
4464         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
4465         to split_ti instead of three separate calls with single member arrays.
4466         (subti3 splitter): Ditto.
4467         (adddi3 splitter): Ditto with split_di.
4468         (subdi3 splitter): Ditto.
4469         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
4470         two separate calls with single member arrays.  Swap match_dup
4471         operands 1 and 2 to better fit into the array.
4472         (negdi2 splitter): Ditto with split_di.
4473         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
4474         two separate calls with single member arrays.  Swap match_dup operands
4475         6 and 7 to better fit into the array.
4476
4477 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
4478
4479         * config/i386/i386.c (sse_builtin_type): New.
4480         (bdesc_sse_args): Likewise.
4481         (bdesc_sse_3arg): Removed.
4482         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4483         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
4484         IX86_BUILTIN_ROUNDPS.
4485         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
4486         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
4487         IX86_BUILTIN_ROUNDPS.
4488         (ix86_expand_sse_4_operands_builtin): Removed.
4489         (ix86_expand_sse_operands_builtin): New.
4490         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
4491         and CODE_FOR_sse4_1_roundps.
4492         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4493         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
4494
4495 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
4496
4497         PR target/35907
4498         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
4499         regs before frame pop when needed.  If use_backchain_to_restore_sp
4500         then load backchain into a temp reg to restore vr and vrsave.  Add
4501         code to restore vr after frame pop if possible.
4502
4503 2008-04-17  Richard Guenther  <rguenther@suse.de>
4504
4505         * tree-vn.c (expressions_equal_p): Do not check type
4506         equality or compatibility before calling operand_equal_p.
4507         * fold-const.c (operand_equal_p): Check equivalence of
4508         integer constants before bailing out due to signedness or
4509         precision differences.
4510         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
4511         spurious differences in type qualification.  Ignore types
4512         for COMPONENT_REFs at all.
4513
4514 2008-04-17  Christian Bruel  <christian.bruel@st.com>
4515
4516         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
4517         msw_skip comparison.
4518         
4519 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
4520
4521         PR c/35739
4522         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
4523         reg type.
4524
4525         PR tree-optimization/35899
4526         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
4527         rather than TREE_OPERAND.
4528
4529 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
4530
4531         PR target/35944
4532         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
4533         temporary registers.  Change operand predicate to general_operand.
4534         (remainderxf3): Ditto.
4535
4536 2008-04-16  Richard Guenther  <rguenther@suse.de>
4537
4538         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
4539         * tree-affine.c (aff_combination_expand): Look through some
4540         conversions.
4541
4542 2008-04-15  Doug Kwan  <dougkwan@google.com>
4543
4544         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
4545         for hex printing.
4546         * tree-pretty-print.c (dump_generic_node): Ditto.
4547         * final.c (output_addr_const): Ditto.
4548         * dwarf2out.c (output_cfi): Ditto.
4549         * c-pretty-print.c (pp_c_integer_constant): Ditto.
4550         * print-rtl.c (print_rtx): Ditto.
4551         * print-tree.c (print_node_brief, print_node): Ditto.
4552         * c-common.c (match_case_to_enum_1): Ditto.
4553         * sched-vis.c (print_value): Ditto.
4554         * config/i386/i386.c (print_operand): Cast to long unsigned int
4555         for hex printing.
4556
4557 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
4558         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
4559         MS Windows VirtualProtect function.
4560
4561 2008-04-15  Jan Hubicka  <jh@suse.cz>
4562
4563         * gengtype.c (write_root): Param_is argument is OK.
4564         * expr.c (expand_expr_real_1): Update call of get_exception_*.
4565         * function.h: Include varray.h
4566         (rtl_eh): New stucture based on except.c one.
4567         (call_site_record): New forward declaration and vector type.
4568         * calls.c (emit_call_1): Do not call
4569         note_current_region_may_contain_throw.
4570         * except.c (eh_status): Remove cur_region, try_region since they are
4571         unused.
4572         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
4573         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
4574         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
4575         Remove call_site_data_used, call_site_data_size.
4576         Turn call_site_record into vector in function.h.
4577         (note_current_region_may_contain_throw): Remove.
4578         (get_exception_pointer, get_exception_filter): Do not take struct
4579         function argument; update.
4580         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
4581         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
4582         build_post_landing_pads, dw2_build_landing_pads,
4583         sjlj_assign_call_site_values, sjlj_mark_call_sites,
4584         sjlj_emit_function_enter, sjlj_emit_function_enter, 
4585         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
4586         sjlj_build_landing_pads, finish_eh_generation,
4587         remove_exception_handler_label, remove_eh_handler,
4588         maybe_remove_eh_handler, add_reachable_handler,
4589         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
4590         add_action_record, collect_one_action_chain, add_call_site,
4591         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
4592         sjlj_output_call_site_table, output_function_exception_table,
4593         * except.h (note_current_region_may_contain_throw): Remove
4594         (get_exception_pointer, get_exception_filter): Do not take struct
4595         function argument.
4596         * Makefile.in (GTFILES): Put varargs before struct function.
4597
4598 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4599
4600         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
4601         punt for STRING_CST.
4602         (get_constraint_for): Deal with STRING_CST here instead.
4603
4604 2008-04-15  Richard Guenther  <rguenther@suse.de>
4605
4606         * tree-ssa-propagate.c (substitute_and_fold): Substitute
4607         statements in a basic-block with a backward walk.  Do not
4608         substitute into dead statements but instead remove those.
4609
4610 2008-04-15  Richard Guenther  <rguenther@suse.de>
4611
4612         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
4613         to zero, thus disable creation of SFTs.
4614
4615 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4616
4617         * tree-predcom.c (suitable_reference_p): Return false if the
4618         reference can throw.
4619
4620 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
4621
4622         PR c/35751
4623         * c-decl.c (finish_decl): If extern or static var has variable
4624         size, set TREE_TYPE (decl) to error_mark_node.
4625
4626 2008-04-15  Rafael Espindola  <espindola@google.com>
4627
4628         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
4629         variable arg1.
4630
4631 2008-04-15  Richard Guenther  <rguenther@suse.de>
4632
4633         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
4634         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
4635         (visit_reference_op_load): Do walk vuse-vdef chains on
4636         vn_reference_lookup.
4637         (visit_reference_op_store): But do not here.
4638         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
4639         vn_reference_lookup.
4640         (vn_lookup_with_vuses): But do so here.
4641
4642 2008-04-14  Ian Lance Taylor  <iant@google.com>
4643
4644         * fold-const.c (fold_overflow_warning): Remove assertion.
4645
4646 2008-04-15  Ben Elliston  <bje@au.ibm.com>
4647
4648         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
4649         temp1 local variables.
4650
4651 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
4652
4653         PR target/35661
4654         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
4655         ".text.unlikely" section as executable.
4656
4657 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
4658
4659         * config/ia64/ia64.c (rtx_needs_barrier): Handle
4660         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
4661         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
4662         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
4663         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
4664         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
4665         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
4666
4667 2008-04-14  Ian Lance Taylor  <iant@google.com>
4668
4669         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
4670         * fold-const.c (fold_comparison): If appropriate, test
4671         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
4672         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
4673         reassociating a pointer type.
4674         * doc/invoke.texi (Optimize Options): Document that
4675         -fstrict-overflow applies to pointer wraparound.
4676
4677 2008-04-13  Jan Hubicka  <jh@suse.cz>
4678
4679         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
4680
4681 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
4682
4683         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
4684         we are going to "save the world".
4685
4686 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
4687
4688         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
4689         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
4690         operand 0 constraint, not "=".
4691
4692 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
4693
4694         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
4695
4696 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4697
4698         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
4699         of size of positions_needed * CHAR_BIT.
4700
4701 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4702
4703         PR middle-end/35897
4704         * dse.c (store_info): Change positions_needed to unsigned
4705         HOST_WIDE_INT.
4706         (lowpart_bitmask): New.
4707         (record_store): Cast to unsigned HOST_WIDE_INT for
4708         positions_needed.  Assert width <= size of positions_needed *
4709         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
4710         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
4711         lowpart_bitmask to set mask.
4712
4713 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
4714
4715         * config/bfin/constraints.md: New file.
4716         * config/bfin/bfin.md: Include it.
4717         (adddi3): Use satisfies_constraint functions instead of the old macros.
4718         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
4719         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
4720         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
4721         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
4722         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
4723         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
4724         EXTRA_CONSTRAINT): Delete.
4725         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
4726         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
4727         of the old macros.
4728         * config/bfin/bfin.c: Include "tm-constrs.h".
4729         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
4730         Use satisfies_constraint functions instead of the old macros.
4731         * doc/md.texi (Blackfin Constraints): Update file name reference.
4732
4733 2008-04-11  Richard Guenther  <rguenther@suse.de>
4734
4735         PR tree-optimization/35869
4736         * tree-vrp.c (execute_vrp): Move switch statement update after
4737         jump threading.  Schedule another cfg cleanup run.
4738
4739 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
4740
4741         PR c/35744
4742         * attribs.c (decl_attributes): Return early on errorneous node.
4743
4744 2008-04-10  Oleg Ryjkov  <olegr@google.com>
4745
4746         * tree.h (struct tree_base): Added a new flag default_def_flag.
4747         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
4748
4749 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4750
4751         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
4752
4753 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4754
4755         PR target/35768
4756         * pa.md: Define mode iterator P.  Define mode attribute dwc.
4757         (dcacheflush): Update pattern to use iterator P and attribute dwc.
4758         (icacheflush): Likewise.
4759         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
4760         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
4761
4762 2008-04-11  Ben Elliston  <bje@au.ibm.com>
4763
4764         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
4765
4766 2008-04-10  Rafael Espindola  <espindola@google.com>
4767
4768         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
4769         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
4770         (extract_range_from_expr): The same.
4771
4772 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4773
4774         * config/mips/mips.md (GPR2): New mode iterator.
4775         (seq): Add comment.
4776         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
4777         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
4778         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
4779         Rewrite these to take two modes, the mode of comparison and the
4780         mode of the destination.
4781         * config/mips/mips.c (mips_expand_scc): Instead of having
4782         paradoxical subreg as destination, expand "narrowing" scc if mode
4783         of comparison is SI and target is requested in DI mode.
4784         (mips_emit_int_order_test): Update comment.  Make mode of
4785         comparison match CMP0 rather than TARGET.  When creating inverse
4786         target use mode of TARGET.
4787
4788 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4789
4790         * gcov-dump.c (tag_summary): Only print summaries for the first
4791         GCOV_COUNTERS_SUMMABLE counters.
4792
4793 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
4794
4795         * config/i386/i386.md (absneg): New code iterator.
4796         (absnegprefix): New code attribute.
4797         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
4798         patterns using absneg code iterator.
4799         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
4800         using absneg code iterator.
4801         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
4802         *neg<mode>2 patterns using absneg code iterator.
4803         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4804         *negextendsfdf2 patterns using absneg code iterator.
4805         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
4806         *negextendsfxf2 patterns using absneg code iterator.
4807         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4808         *negextendsfdf2 patterns using absneg code iterator.
4809         * config/i386/sse.md (<code><mode>2): Macroize expander from
4810         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
4811
4812 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
4813
4814         * config/s390/s390.h: Remove the remains of the recent search
4815         & replace action of current_function_outgoing_args_size.
4816
4817 2008-04-10  Ira Rosen  <irar@il.ibm.com>
4818
4819         PR tree-optimization/35821
4820         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
4821         NEW_STMT_LIST is not NULL.
4822
4823 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
4824
4825         PR libstdc++/35597
4826         * toplev.c (process_options): Remove -ffunction-sections debugging
4827         warning.
4828
4829 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
4830
4831         PR middle-end/PR28690
4832         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
4833         than gen_rtx_fmt_ee to perform more canonicalizations.
4834
4835 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4836
4837         PR driver/35665
4838         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
4839
4840 2008-04-09  Richard Guenther  <rguenther@suse.de>
4841
4842         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
4843         (dump_function_to_file): Dump function arguments with types.
4844
4845 2008-04-08  Richard Guenther  <rguenther@suse.de>
4846
4847         * fold-const.c (fold_widened_comparison): Do not allow
4848         sign-changes that change the result.
4849
4850 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
4851
4852         PR target/35839
4853         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
4854         kinds of indirect references.
4855
4856 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
4857
4858         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
4859         GNU Fortran language string.
4860
4861 2008-04-08  Rafael Espindola  <espindola@google.com>
4862
4863         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
4864         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
4865         * tree.h (tree_call_nonnegative_warnv_p): New.
4866
4867 2008-04-08  Jan Hubicka  <jh@suse.cz>
4868
4869         * function.c (free_after_compilation): Clear out regno_reg_rtx
4870         pointer.
4871
4872 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
4873
4874         Revert
4875         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
4876
4877         PR middle-end/PR28690
4878         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
4879         same precedence as REG_POINTER and MEM_POINTER operands.
4880
4881 2008-04-08  Richard Guenther  <rguenther@suse.de>
4882
4883         PR middle-end/35834
4884         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
4885         for adding index to base.
4886
4887 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
4888
4889         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
4890         (MINGW_ENABLE_EXECUTE_STACK): New.
4891         (IN_LIBGCC2): For libgcc include windows.h file for
4892         function declarations.
4893
4894 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
4895
4896         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
4897         and tem2 if tem1 is not a REG or MULT.
4898
4899 2008-04-08  Jan Hubicka  <jh@suse.cz>
4900
4901         * function.h (incomming_args): Break out of struct function.
4902         (function_subsections): Break out of struct function.
4903         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
4904         return_rtx and hard_reg_initial_vals from struct function.
4905         Kill inl_max_label_num.
4906         (current_function_pops_args, current_function_args_info,
4907         current_function_args_size, current_function_args_size,
4908         current_function_pretend_args_size,
4909         current_function_outgoing_args_size,
4910         current_function_internal_arg_pointer, current_function_return_rtx):
4911         Kill compatibility accestor macros.
4912         * builtins.c (expand_builtin_apply_args_1): Update.
4913         (expand_builtin_next_arg): Update.
4914         * df-scan.c (df_get_call_refs): Update.
4915         * dbxout.c (dbxout_function_end): Update.
4916         * dwarf2out.c (dwarf2out_switch_text_section): Update.
4917         (output_line_info): Update.
4918         (secname_for_decl): Update.
4919         (dwarf2out_var_location): Update.
4920         * function.c (free_after_compilation): Update.
4921         (assign_parm_find_stack_rtl): Update.
4922         (assign_parms): Update.
4923         (expand_dummy_function_end): Update.
4924         (expand_function_end): Update.
4925         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
4926         (expand_call): Update.
4927         (emit_library_call_value_1): Update.
4928         (store_one_arg): Update.
4929         * varasm.c (initialize_cold_section_name): Update.
4930         (unlikely_text_section): Update.
4931         (unlikely_text_section_p): Update.
4932         (assemble_start_function): Update.
4933         (assemble_end_function): Update.
4934         (default_section_type_flags): Update.
4935         (switch_to_section): Update.
4936         * integrate.c (set_decl_abstract_flags): Update.
4937         (get_hard_reg_initial_val): Update.
4938         (has_hard_reg_initial_val): Update.
4939         (allocate_initial_values): Update.
4940         * resource.c (init_resource_info): Update.
4941         * config/alpha/alpha.c (NUM_ARGS): Update.
4942         (direct_return): Update.
4943         (alpha_va_start): Update.
4944         (alpha_sa_size): Update.
4945         (alpha_initial_elimination_offset): Update.
4946         (alpha_expand_prologue): Update.
4947         (alpha_start_function): Update.
4948         (alpha_expand_epilogue): Update.
4949         (unicosmk_initial_elimination_offset):
4950         * config/alpha/alpha.md (call expander): Update.
4951         * config/s390/s390.c (s390_register_info): Update.
4952         (s390_register_info): Update.
4953         (s390_frame_info): Update.
4954         (s390_initial_elimination_offset): Update.
4955         (s390_build_builtin_va_list): Update.
4956         (s390_va_start): Update.
4957         * config/spu/spu.c (direct_return): Update.
4958         (spu_expand_prologue): Update.
4959         (spu_initial_elimination_offset): Update.
4960         (spu_build_builtin_va_list): Update.
4961         (spu_va_start): Update.
4962         * config/sparc/sparc.c (sparc_init_modes): Update.
4963         (sparc_compute_frame_size): Update.
4964         (function_value): Update.
4965         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
4966         * config/i386/i386.md (return expander): Update.
4967         * config/i386/i386.c (ix86_va_start): Update.
4968         (ix86_can_use_return_insn_p): Update.
4969         (ix86_compute_frame_layout): Update.
4970         (ix86_expand_epilogue): Update.
4971         * config/sh/sh.c (output_stack_adjust): Update.
4972         (calc_live_regs): Update.
4973         (sh_expand_prologue): Update.
4974         (sh_builtin_saveregs): Update.
4975         (sh_va_start): Update.
4976         (initial_elimination_offset): Update.
4977         (sh_allocate_initial_value): Update.
4978         (sh_function_ok_for_sibcall): Update.
4979         (sh_get_pr_initial_val): Update.
4980         * config/sh/sh.md (return expander): Update.
4981         * config/avr/avr.c (frame_pointer_required_p): UPdate.
4982         * config/crx/crx.c (crx_compute_frame): UPdate.
4983         (crx_initial_elimination_offset): UPdate.
4984         * config/xtensa/xtensa.c (compute_frame_size): Update
4985         (xtensa_builtin_saveregs): Update.
4986         (xtensa_va_start): Update.
4987         (order_regs_for_local_alloc): Update.
4988         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
4989         (xstormy16_expand_builtin_va_start): Update.
4990         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
4991         * config/m68hc11/m68hc11.md (return expanders): Update.
4992         * config/m68hc11/m68hc11.c (expand_prologue): Update.
4993         (expand_epilogue): Update.
4994         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
4995         (cris_simple_epilogue): Update.
4996         (cris_expand_prologue): Update.
4997         (cris_expand_epilogue): Update.
4998         * config/iq2000/iq2000.c (iq2000_va_start): Update.
4999         (compute_frame_size): Update.
5000         * config/mt/mt.c (mt_compute_frame_size): Update.
5001         * config/mn10300/mn10300.c (expand_prologue): Update.
5002         (expand_epilogue): Update.
5003         (initial_offset): Update.
5004         (mn10300_builtin_saveregs):
5005         * config/mn10300/mn10300.md (return expander): Update.
5006         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
5007         (ia64_initial_elimination_offset): Update.
5008         (ia64_initial_elimination_offset): Update.
5009         (ia64_expand_prologue): Update.
5010         * config/m68k/m68k.md (return expander): Update.
5011         * config/rs6000/rs6000.c (rs6000_va_start): Update.
5012         (rs6000_stack_info): Update.
5013         * config/mcore/mcore.c (layout_mcore_frame): Update.
5014         (mcore_expand_prolog): Update.
5015         * config/arc/arc.c (arc_compute_frame_size): Update.
5016         * config/score/score3.c (score3_compute_frame_size): Update.
5017         * config/score/score7.c (score7_compute_frame_size): Update.
5018         * config/arm/arm.c (use_return_insn): Update.
5019         (thumb_find_work_register): Update.
5020         (arm_compute_save_reg_mask): Update.
5021         (arm_output_function_prologue): Update.
5022         (arm_output_epilogue): Update.
5023         (arm_size_return_regs): Update.
5024         (arm_get_frame_offsets): Update.
5025         (arm_expand_prologue): Update.
5026         (thumb_exit): Update.
5027         (thumb_unexpanded_epilogue): Update.
5028         (thumb1_output_function_prologue): Update.
5029         * config/pa/pa.md (return expander): Update.
5030         * config/pa/pa.c (compute_frame_size): Update.
5031         (hppa_builtin_saveregs): Update.
5032         * config/mips/mips.c (mips_va_start): Update.
5033         (mips16_build_function_stub): Update.
5034         (mips_compute_frame_info): Update.
5035         (mips_restore_gp): Update.
5036         (mips_output_function_prologue): Update.
5037         (mips_expand_prologue): Update.
5038         * config/v850/v850.c (compute_frame_size): Update.
5039         (expand_prologue): * config/mmix/mmix.c (along): update.
5040         (mmix_initial_elimination_offset): update.
5041         (mmix_reorg): update.
5042         (mmix_use_simple_return): update.
5043         (mmix_expand_prologue): update.
5044         (mmix_expand_epilogue): Update.
5045         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
5046         (emit_link_insn): Update.
5047
5048 2008-04-08  Anatoly Sokolov <aesok@post.ru>
5049
5050         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
5051         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
5052         instructions.
5053         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
5054         atmega103 device.
5055
5056 2008-04-07  Jan Hubicka  <jh@suse.cz>
5057
5058         * function.h (rtl): Rename to x_rtl.
5059         (crtl): New define.
5060         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5061         frame_offset, stack_check_probe_note, arg_pointer_save_area,
5062         used_temp_slots avail_temp_slots, temp_slot_level,
5063         nonlocal_goto_handler_labels): Update accesstors.
5064         (rtl): New global variable.
5065         (struct function): Move some fileds to rtl_data.
5066         (get_arg_pointer_save_area): Update prototype.
5067         * builtins.c (expand_builtin_setjmp_receiver): Update call of
5068         get_arg_pointer_save_area.
5069         * expr.c (init_expr): Update
5070         * function.c (get_frame_size): Update
5071         (assign_stack_local): Update
5072         (expand_function_end): Update.
5073         (get_art_pointer_save_area): Update
5074         * function.h 
5075         * emit-rtl.c (rtl): Declare.
5076         (regno_reg_rtx): Declare.
5077         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
5078         Update.
5079         (gen_reg_rtx): Update.
5080         * varasm.c (n_deferred_constatns): Update accestor.
5081         (init_varasm_status): Do not allocate varasm_status.
5082         (force_const_mem, get_pool_size, output_constant_pool): Update.
5083         * stmt.c (force_label_rtx): Do not use x_ prefixes.
5084         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
5085         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
5086         * sparc/sparc.h (INIT_EXPANDERS): Update.
5087         * ia64/ia64.h (INIT_EXPANDERS): Update.
5088
5089 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
5090
5091         * reload.c (push_secondary_reload): Add missing break to for loop.
5092
5093 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
5094
5095         PR middle-end/PR28690
5096         * rtlanal.c: Update copyright years.
5097         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
5098         as REG_POINTER and MEM_POINTER operands.
5099         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
5100         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
5101         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
5102         * gcse.c: Update copyright years.
5103         (pre_delete): Call gen_reg_rtx_and_attrs.
5104         (hoist_code): Likewise.
5105         (build_store_vectors): Likewise.
5106         (delete_store): Likewise.
5107         * loop-invariant.c (move_invariant_reg): Likewise.
5108         Update copyright years.
5109
5110 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
5111
5112         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
5113         control string instead of quoted.
5114
5115 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
5116
5117         * doc/rtl.texi: Rewrite of subreg section.
5118
5119 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
5120
5121         PR/35842
5122         * config/i386/i386.c (legitimize_pic_address): Add treating
5123         of dllimport SYM_REF's.
5124         (legitimize_dllimport_symbol): Add prototype.
5125
5126 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5127
5128         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
5129         reference in constructor with non self-referential type.
5130
5131 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5132
5133         Removal of Return with Depressed Stack Pointer support
5134         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
5135         (ECF_SP_DEPRESSED): Likewise.
5136         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
5137         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
5138         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5139         (expand_call): Do not test ECF_SP_DEPRESSED.
5140         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5141         * function.c (keep_stack_depressed): Delete.
5142         (handle_epilogue_set): Likewise.
5143         (update_epilogue_consts): Likewise.
5144         (emit_equiv_load): Likewise.
5145         (thread_prologue_and_epilogue_insns): Remove support for Return with
5146         Depressed Stack Pointer.
5147         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5148
5149 2008-04-06  Richard Guenther  <rguenther@suse.de>
5150
5151         PR tree-optimization/35400
5152         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
5153         information from SSA_NAMEs.
5154
5155 2008-04-06  Anatoly Sokolov <aesok@post.ru>
5156
5157         * config/avr/avr.h (avr_mega_p): Remove declaration.
5158         (AVR_MEGA): Remove macro.
5159         * config/avr/avr.c (avr_mega_p): Remove variable.
5160         (avr_override_options): Remove inicializion of avr_mega_p.
5161         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
5162         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
5163         (avr_jump_mode): (Ditto.).
5164         (avr_output_progmem_section_asm_op): (Ditto.).
5165         (avr_asm_init_sections): (Ditto.).
5166         (avr_asm_init_sections): (Ditto.).
5167         (avr_rtx_costs): (Ditto.).
5168         * config/avr/avr.md: (Ditto.).
5169         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
5170         '__AVR_MEGA__'.
5171
5172 2008-04-06  Richard Guenther  <rguenther@suse.de>
5173
5174         PR tree-optimization/35842
5175         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
5176         is_gimple_invariant_address.
5177
5178 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
5179
5180         * gcc.c (default_compilers): Sync Fortran extensions list with
5181         that in fortran/lang-specs.h.
5182         * doc/invoke.texi: Likewise.
5183         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
5184         * dwarf2out.c (gen_compile_unit_die): Likewise.
5185
5186 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
5187
5188         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
5189
5190 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
5191
5192         PR target/12329
5193         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
5194         attribute is used for nested functions.
5195
5196 2008-04-05  Jan Hubicka  <jh@suse.cz>
5197
5198         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
5199
5200         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
5201         letter argument.
5202         (dump_files): Update.
5203         (enable_rtl_dump_file): Do not accept letter argument.
5204         * tree-pass.h (dump_file_info): Remove letter argument.
5205         * toplev.c (decode_d_option): Update -da handling.
5206         * toplev.h (enable_rtl_dump_file): Update prototype.
5207         * passes.c (register_one_dump_file): Do not accept IPA argument; work
5208         it out based on pass type.
5209         (register_dump_files_1): Likewise.
5210         (init_optimization_passes): Update register_one_dump_file calls.
5211         (execute_one_pass): Sanity check that IPA passes are called at IPA
5212         level and RTL passes at RTL level.
5213         (execute_pass_list): IPA pass can not be after or subpass of
5214         GIMPLE/RTL pass.
5215         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
5216         disallov RTL subpasses of IPA subpasses.
5217
5218 2008-04-05  Ben Elliston  <bje@au.ibm.com>
5219
5220         * tree-cfg.c (need_fake_edge_p): Return false for calls to
5221         builtins that return exactly once and do not throw. Cache call to
5222         call_expr_flags.
5223
5224 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
5225
5226         PR rtl-optimization/34916
5227         PR middle-end/35519
5228         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
5229         between instruction pairs.
5230
5231 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
5232
5233         * doc/invoke.texi: Document -mbitops for SH.
5234         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
5235         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
5236         * config/sh/sh.c (print_operand): Add %t operand code.
5237         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
5238         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
5239         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
5240         (extendqihi2): Likewise.
5241         (movqi_i): Likewise.
5242         (insv): Use bset, bclr and bst instructions for SH2A if possible.
5243         (extv): Use bld instruction for SH2A if possible.
5244         (extzv): Likewise.
5245         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
5246         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
5247         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
5248         (bset.b, bclr.b): Define peepholes.
5249         * config/sh/sh.opt (mbitops): New option.
5250
5251 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
5252
5253         PR target/35620
5254         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
5255         and view convert expression.
5256
5257 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
5258
5259         PR target/35364
5260         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
5261
5262 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
5263
5264         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
5265
5266         * config/i386/cpuid.h (bit_AES): New.
5267         (bit_PCLMUL): Likewise.
5268
5269         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
5270         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
5271         SSE2 if AES or PCLMUL is enabled.
5272         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
5273         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
5274         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
5275         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
5276         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
5277         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
5278         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
5279         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
5280         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
5281         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
5282         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
5283         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
5284         __builtin_ia32_aeskeygenassist128 and
5285         __builtin_ia32_pclmulqdq128.
5286         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
5287         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
5288         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
5289
5290         * config/i386/i386.h (TARGET_AES): New.
5291         (TARGET_PCLMUL): Likewise.
5292         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
5293
5294         * config/i386/i386.md (UNSPEC_AESENC): New.
5295         (UNSPEC_AESENCLAST): Likewise.
5296         (UNSPEC_AESDEC): Likewise.
5297         (UNSPEC_AESDECLAST): Likewise.
5298         (UNSPEC_AESIMC): Likewise.
5299         (UNSPEC_AESKEYGENASSIST): Likewise.
5300         (UNSPEC_PCLMUL): Likewise.
5301
5302         * config/i386/i386.opt (maes): New.
5303         (mpclmul): Likewise.
5304
5305         * config/i386/sse.md (aesenc): New pattern.
5306         (aesenclast): Likewise.
5307         (aesdec): Likewise.
5308         (aesdeclast): Likewise.
5309         (aesimc): Likewise.
5310         (aeskeygenassist): Likewise.
5311         (pclmulqdq): Likewise.
5312
5313         * config/i386/wmmintrin.h: New.
5314
5315         * doc/extend.texi: Document AES and PCLMUL built-in function.
5316
5317         * doc/invoke.texi: Document -maes and -mpclmul.
5318
5319 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
5320
5321         * function.c (free_after_parsing): Replace with
5322         cxx_push_function_context from C++ front-end.
5323         (allocate_struct_function): Don't call langhook.
5324         * langhooks.h (struct lang_hooks_for_functions): Delete.
5325         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
5326         member "function".
5327         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
5328         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
5329         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
5330         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
5331         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
5332         remove LANG_HOOKS_FUNCTION_INITIALIZER.
5333         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
5334
5335         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
5336         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
5337         
5338 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
5339
5340         PR c/35440
5341         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
5342         for all types.
5343
5344 2008-04-04  Richard Guenther  <rguenther@suse.de>
5345
5346         PR middle-end/35823
5347         * fold-const.c (optimize_minmax_comparison): Use the correct
5348         type for the constant in the simplified comparison.
5349
5350 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
5351
5352         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
5353         Pass L2 size as "--param l2-cache-size" to the compiler.
5354         (decode_l2_cache): New function to decode L2 cache parameters using
5355         0x8000006 extended cpuid function.
5356         (detect_caches_amd): Determine parameters of L2 cache using
5357         decode_l2_caches function.
5358         (decode_caches_intel): Decode L2 cache parameters.
5359         (detect_caches_intel): Determine L2 cache parameters using
5360         decode_caches_intel and decode_l2_caches functions.
5361
5362 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
5363
5364         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
5365         secondary input reload for subword loads from the constant pool.
5366
5367 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
5368
5369         PR target/35713
5370         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
5371           constants of the appropriate size for runtime calculations.
5372
5373         PR c/35712
5374         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
5375           decimal-float literal constant zero.
5376
5377 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
5378
5379         PR c/35738
5380         * c-parser.c (c_parser_omp_atomic): Call
5381         default_function_array_conversion on the RHS.
5382
5383         PR middle-end/35818
5384         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
5385         call is_variable_sized if decl has incomplete type.
5386
5387 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
5388
5389         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
5390
5391 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
5392
5393         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
5394         iterators.
5395         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
5396         (sgt<u>): Merge sgt and sgtu into new expander.
5397         (sgt, sgtu): Remove expanders.
5398         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
5399         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
5400         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
5401         *sgtu_<mode>_mips16 into new pattern.
5402         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
5403         (sge<u>): Merge sge and sgeu into new expander.
5404         (sge, sgeu): Remove expanders.
5405         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
5406         new pattern.
5407         (*sge_<mode>, second *sge_<mode>): Remove patterns.
5408         (slt<u>): Merge slt and sltu into new expander.
5409         (slt, sltu): Remove expanders.
5410         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
5411         (*slt_<mode>, *sltu_<mode>): Remove patterns.
5412         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
5413         *sltu_<mode>_mips16 into new pattern.
5414         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
5415         (sle<u>): Merge sle and sleu into new expander.
5416         (sle, sleu): Remove expanders.
5417         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
5418         (*sle_<mode>, *sleu_<mode>): Remove patterns.
5419         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
5420         *sleu_<mode>_mips16 into new pattern.
5421         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
5422
5423 2008-04-03  Jan Hubicka  <jh@suse.cz>
5424
5425         PR tree-optimization/35795
5426         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
5427         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
5428         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
5429         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
5430         * score/score3.c (score3_output_mi_thunk): Likewise.
5431         * score/score7.c (score7_output_mi_thunk): Likewise.
5432         * mips/mips.c (mips_output_mi_thunk): Likewise.
5433
5434 2008-04-03  Richard Guenther  <rguenther@suse.de>
5435
5436         * tree-vrp.c (extract_range_from_unary_expr): Handle all
5437         conversions.  Simplify code.
5438
5439 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5440
5441         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
5442
5443 2008-04-03  Tom Tromey  <tromey@redhat.com>
5444             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5445
5446         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
5447         * config/bfin/t-bfin-linux (generated_files): Add
5448         linux-sysroot-suffix.h.
5449         * doc/install.texi (Prerequisites): Require make 3.80.
5450         * doc/sourcebuild.texi (Front End Directory): Document new
5451         variable.
5452         * Makefile.in (generated_files): New variable.
5453         (ALL_HOST_OBJS): New variable.
5454         ($(ALL_HOST_OBJS)): New target.
5455
5456 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5457
5458         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
5459         (remap_block): Call id->transform_lang_insert_block instead
5460         of langhook.
5461         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
5462         Set id.transform_lang_insert_block to NULL.
5463         (clone_body): Move to cp/optimize.c
5464         * tree-inline.h (struct copy_body_data): Change
5465         transform_lang_insert_block to function pointer.
5466         (copy_generic_body, copy_decl_no_change): Export.
5467         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
5468         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
5469         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
5470
5471         * c-tree.h (insert_block): Kill.
5472         * c-decl.c (insert_block): Kill.
5473
5474 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5475
5476         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5477         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5478         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
5479         argument.
5480         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
5481         argument, call {push,pop}_function_context from here.
5482         * c-parser.c: Use c_{push,pop}_function_context.
5483
5484         * function.c (push_function_context_to): Move meat ...
5485         (push_function_context): ... here.  Simplify.
5486         * function.c (pop_function_context_from): Move meat ...
5487         (pop_function_context): ... here.  Simplify.
5488         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
5489         leave_nested).
5490         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5491         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5492         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
5493         * tree.h (push_function_context_to, pop_function_context_from): Remove.
5494
5495 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5496
5497         * expmed.c (extract_force_align_mem_bit_field): Remove.
5498
5499 2008-04-03  Richard Guenther  <rguenther@suse.de>
5500
5501         PR middle-end/35800
5502         * expr.h (try_casesi): Adjust prototype.
5503         * expr.c (try_casesi): Take fallback label as extra parameter.
5504         Use that for gen_casesi if default_label is NULL.
5505         * stmt.c (expand_case): Pass fallback label to try_casesi,
5506         make sure to fill gaps with a fallback label if default_label
5507         is not present.
5508
5509 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
5510
5511         PR target/35801
5512         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
5513
5514 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5515
5516         * expmed.c (extract_split_bit_field): Remove if (0) code.
5517         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
5518         (do_ds_constraint): Likewise.
5519
5520 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
5521
5522         * doc/cppopts.texi (-dU): Document.
5523         * c-common.h (flag_dump_macros): Update comment.
5524         * c-opts.c (handle_OPT_d): Handle -dU.
5525         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
5526         dump_queued_macros, cb_used_define, cb_used_undef): New.
5527         (init_pp_output): Handle -dU.
5528         (cb_line_change): Call dump_queued_macros.
5529         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
5530
5531 2008-04-02  Anatoly Sokolov <aesok@post.ru>
5532
5533         * config/avr/predicates.md (io_address_operand): New predicate. 
5534         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
5535         * config/avr/avr.c (avr_io_address_p): Remove function.
5536         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
5537         'avr_io_address_p' function.
5538         (out_movhi_r_mr): (Ditto.).
5539         (out_movqi_mr_r): (Ditto.).
5540         (out_movhi_mr_r): (Ditto.).
5541         (avr_address_cost): (Ditto.).
5542
5543 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
5544
5545         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
5546         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
5547         in 32bit mode when XMM registers are available to avoid store
5548         forwarding stalls.
5549         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
5550         corresponding post-reload splitters.
5551
5552 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5553
5554         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
5555         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
5556         __builtin_ia32_roundss.
5557         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
5558         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
5559         __builtin_ia32_roundss.
5560         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
5561         IX86_BUILTIN_SHUFPD here.
5562
5563 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5564
5565         * config/i386/i386.md (plogic): New.
5566         (plogicprefix): Likewise.
5567
5568         * config/i386/mmx.md (mmx_<code><mode>3): New.
5569         (mmx_and<mode>3): Removed.
5570         (mmx_ior<mode>3): Likewise.
5571         (mmx_xor<mode>3): Likewise.
5572
5573         * config/i386/sse.md (<code><mode>3): New.
5574         (*<code><mode>3): Likewise.
5575         (*<code><mode>3): Likewise.
5576         (<code><mode>3): Likewise.
5577         (*sse_<code><mode>3): Likewise.
5578         (*sse2_<code><mode>3): Likewise.
5579         (<code>tf3): Likewise.
5580         (*<code>tf3): Likewise.
5581         (and<mode>3): Likewise.
5582         (*and<mode>3): Likewise.
5583         (ior<mode>3): Removed.
5584         (*ior<mode>3): Likewise.
5585         (xor<mode>3): Likewise.
5586         (*xor<mode>3): Likewise.
5587         (*and<mode>3): Likewise.
5588         (*ior<mode>3): Likewise.
5589         (*xor<mode>3): Likewise.
5590         (and<mode>3): Likewise.
5591         (*sse_and<mode>3): Likewise.
5592         (*sse2_and<mode>3): Likewise.
5593         (andtf3): Likewise.
5594         (*andtf3): Likewise.
5595         (ior<mode>3): Likewise.
5596         (*sse_ior<mode>3): Likewise.
5597         (*sse2_ior<mode>3): Likewise.
5598         (iortf3): Likewise.
5599         (*iortf3): Likewise.
5600         (xor<mode>3): Likewise.
5601         (*sse_xor<mode>3): Likewise.
5602         (*sse2_xor<mode>3): Likewise.
5603         (xortf3): Likewise.
5604         (*xortf3): Likewise.
5605
5606 2008-04-02  Richard Guenther  <rguenther@suse.de>
5607
5608         PR tree-optimization/14495
5609         PR tree-optimization/34793
5610         * tree-vrp.c (struct switch_update): New structure.
5611         (to_remove_edges, to_update_switch_stmts): New VECs.
5612         (simplify_switch_using_ranges): New function.  Remove not taken
5613         case labels and edges.
5614         (simplify_stmt_using_ranges): Call it.
5615         (identify_jump_threads): Mark edges we have queued for removal
5616         so we don't thread them.
5617         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
5618         case label vector.
5619         * tree-cfg.c (group_case_labels): Deal with missing default label.
5620         (tree_verify_flow_info): Allow missing default label.
5621         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
5622         (emit_case_nodes): Likewise.
5623         (expand_case): Do not rely on the default label to be present.
5624         * expr.c (try_casesi): Deal with NULL default_label.
5625         (do_tablejump): Likewise.
5626
5627 2008-04-02  Richard Guenther  <rguenther@suse.de>
5628
5629         PR tree-optimization/14495
5630         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
5631         SWITCH_EXPR here ...
5632         (vrp_visit_switch_stmt): ... but here (new function).
5633         (find_case_label_index): New helper function.
5634         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
5635
5636 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5637
5638         * fwprop.c: Fix ISO-C99ism.
5639
5640 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5641
5642         PR bootstrap/35752
5643         * Makefile.in (objdir): Set it here.
5644         * configure.ac: Not here.  Find dynamic linker characteristics.
5645         * exec-tool.in: Use them.
5646         * aclocal.m4: Regenerate.
5647         * configure: Regenerate.
5648
5649 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5650
5651         * expr.c (expand_var): Delete it.
5652         * expr.h (expand_var): Delete prototype.
5653         * function.c (expand_function_start): Use expand_decl instead.
5654         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
5655         langhook.
5656
5657 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
5658
5659         PR rtl-optimization/35542
5660         * fwprop.c (forward_propagate_and_simplify): Replace
5661         loc_reg_mentioned_in_p with reg_mentioned_p.
5662
5663 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5664
5665         PR rtl-optimization/35281
5666         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
5667         (propagate_rtx_1): Handle PR_HANDLE_MEM.
5668         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
5669         (varying_mem_p): Move above propagate_rtx.
5670         (all_uses_available_at): Do not check MEMs.
5671
5672 2008-04-02  Rafael Espindola  <espindola@google.com>
5673
5674         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
5675         (register_edge_assert_for_2): Split the cond argument.
5676         (register_edge_assert_for_1): Adjust for the change in
5677         register_edge_assert_for_2.
5678         (register_edge_assert_for): Split the cond argument.
5679         (find_switch_asserts): Adjust for the change in
5680         register_edge_assert_for.
5681
5682 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
5683
5684         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
5685         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
5686         offsets for 64-bit mingw.
5687         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
5688         abi for x86_64-pc-mingw.
5689
5690 2008-04-02  Richard Guenther  <rguenther@suse.de>
5691
5692         * tree-vrp.c (extract_range_from_assert): Make sure to not
5693         produce range min/max with TREE_OVERFOW set.
5694         If merging a anti-range and a range keep the anti-range if
5695         the range covers all values of the type.
5696         (register_edge_assert_for_2): Only allow sign-changing
5697         conversions in detecting canonical range checks.  Also
5698         register an assert for the unsigned name if useful.
5699
5700         PR tree-optimization/35787
5701         * tree-vrp.c (vrp_val_max): New function.
5702         (vrp_val_min): Likewise.
5703         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
5704         (vrp_val_is_min): Likewise.
5705         (supports_overflow_infinity): Use vrp_val_{min,max}.
5706         (negative_overflow_infinity): Likewise.
5707         (positive_overflow_infinity): Likewise.
5708         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
5709         (is_positive_overflow_infinity): Likewise.
5710         (is_overflow_infinity): Likewise.
5711         (avoid_overflow_infinity): Use vrp_val_{min,max} and
5712         vrp_val_is_{min,max}.
5713         (set_and_canonicalize_value_range): Canonicalize anti-ranges
5714         to ranges if possible.  Avoid empty ranges.
5715
5716 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5717
5718         PR middle-end/35705
5719         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
5720         the expression is a function address.
5721
5722 2008-04-01  George Helffrich  <george@gcc.gnu.org>
5723
5724         PR fortran/35154, fortran/23057
5725         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
5726         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
5727         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
5728         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
5729         in common.
5730         (dbxout_syms): Check for COMMON-based symbol and wrap in
5731         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
5732         in bracket for efficiency.
5733
5734         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
5735         using DW_TAG_common_block + member offset.
5736         (add_pubname_string): New function.
5737         (dw_expand_expr): New function to find block name and offset for
5738         COMMON var.
5739         (common_check): New function to check whether symbol in Fortran COMMON.
5740         (gen_variable_die): If COMMON, use DW_TAG_common_block.
5741
5742 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
5743
5744         PR c/35436
5745         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
5746
5747 2008-04-02  Ben Elliston  <bje@au.ibm.com>
5748
5749         * config/v850/v850.md (casesi): Remove if (0) code.
5750         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5751         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
5752
5753 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
5754
5755         * config/i386/i386.md (rex64suffix): New mode attribute.
5756         (floathi<mode>2): Disable expander for SSE math.
5757         (*floathi<mode>2_1): New insn insn_and_split pattern.
5758         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
5759         corresponding post-reload splitters.
5760         (*floathi<mode>2_i387): New macroized insn pattern.
5761         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
5762         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
5763         insn_and_split pattern.
5764         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
5765         New macroized instruction patterns and corresponding post-reload
5766         splitters.
5767         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
5768         and corresponding post-reload splitters.
5769         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
5770         New macroized instruction patterns.
5771         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
5772         macroized instruction patterns and corresponding post-reload splitters.
5773         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
5774         corresponding post-reload splitters.
5775         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
5776         New macroized instruction patterns.
5777         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
5778         corresponding post-reload splitters.
5779         (*floatsi<mode>2_i387): New macroized instruction patterns.
5780
5781 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
5782
5783         * config/i386/i386.md (smaxmin): New.
5784         (umaxmin): Likewise.
5785         (maxminiprefix): Likewise.
5786         (maxminfprefix): Likewise.
5787         (<code><mode>3): Likewise.
5788         (smin<mode>3): Removed.
5789         (smax<mode>3): Likewise.
5790
5791         * config/i386/mmx.md (mmx_<code>v2sf3): New.
5792         (mmx_<code>v4hi3): Likewise.
5793         (mmx_<code>v8qi3): Likewise.
5794         (mmx_smaxv2sf3): Removed.
5795         (mmx_sminv2sf3): Likewise.
5796         (mmx_umaxv8qi3): Likewise.
5797         (mmx_smaxv4hi3): Likewise.
5798         (mmx_uminv8qi3): Likewise.
5799         (mmx_sminv4hi3): Likewise.
5800
5801         * config/i386/sse.md (<addsub><mode>3): New.
5802         (*<addsub><mode>3): Likewise.
5803         (<sse>_vm<addsub><mode>3): Likewise.
5804         (<maxmin><mode>3): Likewise.
5805         (*<maxmin><mode>3_finite): Likewise.
5806         (*<maxmin><mode>3): Likewise.
5807         (<sse>_vm<maxmin><mode>3): Likewise.
5808         (sse3_h<addsub>v4sf3): Likewise.
5809         (sse3_h<addsub>v2df3): Likewise.
5810         (<maxmin>v16qi3): Likewise.
5811         (*<maxmin>v16qi3): Likewise.
5812         (<maxmin>v8hi3): Likewise.
5813         (*<maxmin>v8hi3): Likewise.
5814         (*sse4_1_<maxmin><mode>3): Likewise.
5815         (*sse4_1_<maxmin><mode>3): Likewise.
5816         (add<mode>3): Removed.
5817         (*add<mode>3): Likewise.
5818         (<sse>_vmadd<mode>3): Likewise.
5819         (sub<mode>3): Likewise.
5820         (*sub<mode>3): Likewise.
5821         (<sse>_vmsub<mode>3): Likewise.
5822         (smin<mode>3): Likewise.
5823         (*smin<mode>3_finite): Likewise.
5824         (*smin<mode>3): Likewise.
5825         (<sse>_vmsmin<mode>3): Likewise.
5826         (smax<mode>3): Likewise.
5827         (*smax<mode>3_finite): Likewise.
5828         (*smax<mode>3): Likewise.
5829         (<sse>_vmsmax<mode>3): Likewise.
5830         (sse3_haddv4sf3): Likewise.
5831         (sse3_haddv2df3): Likewise.
5832         (sse3_hsubv4sf3): Likewise.
5833         (sse3_hsubv2df3): Likewise.
5834         (umaxv16qi3): Likewise.
5835         (*umaxv16qi3): Likewise.
5836         (smaxv8hi3): Likewise.
5837         (*smaxv8hi3): Likewise.
5838         (*sse4_1_smax<mode>3): Likewise.
5839         (*sse4_1_umax<mode>3): Likewise.
5840         (uminv16qi3): Likewise.
5841         (*uminv16qi3): Likewise.
5842         (sminv8hi3): Likewise.
5843         (*sminv8hi3): Likewise.
5844         (*sse4_1_smin<mode>3): Likewise.
5845         (*sse4_1_umin<mode>3): Likewise.
5846
5847 2008-04-01  Rafael Espindola  <espindola@google.com>
5848
5849         * tree-cfg.c (verify_expr): remove in_phi.
5850         (verify_stmt): Don't call walk_tree with verify_expr. Use
5851         is_gimple_min_invariant instead of is_gimple_val.
5852
5853 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
5854
5855         * doc/include/gpl_v3.texi: Update for manpage generation.
5856         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
5857         gpl.texi.
5858         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
5859         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
5860         gpl_v3.texi instead of gpl.texi.
5861         (gpl.pod): New.
5862
5863 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
5864
5865         PR pch/13675
5866         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
5867
5868 2008-04-01  Rafael Espindola  <espindola@google.com>
5869
5870         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
5871         (extract_code_and_val_from_cond): Use
5872         extract_code_and_val_from_cond_with_ops.
5873
5874 2008-04-01  Jan Hubicka  <jh@suse.cz>
5875
5876         * function.c (free_after_compilation): Free epilogue_delay_list.
5877         (prepare_function_start): Assert that previous compilation was freed.
5878
5879 2008-04-01  Jan Hubicka  <jh@suse.cz>
5880             Jim Wilson  <wilson@tuliptree.org>
5881             Andreas Tobler <andreast@gcc.gnu.org>
5882
5883         PR middle-end/35781
5884         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
5885         rtl.emit instead cfun->emit.
5886         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
5887         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
5888
5889 2008-04-01  Ben Elliston  <bje@au.ibm.com>
5890
5891         * doc/c-tree.texi (Function Basics): Fix grammatical error.
5892
5893 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
5894
5895         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
5896         New options
5897         (fprofile-use): Add var flag_profile_use
5898         * coverage.c (coverage_begin_output): Do not open a gcno file for
5899         output only if -ftest-coverage is set.
5900         Do not add getpwd() to gcda file path.
5901         (build_gcov_info): Check the new flag
5902         flag_profile_datafile_relative_path.
5903         (coverage_init): Use profile_data_prefix.
5904         Read profile counter only if flag_profile_use is set.
5905         * opts.c (common_handle_option): New option fprofile-use=,
5906         fprofile-dir=, fprofile-generate=.
5907         * toplev.c (profile_data_prefix): New variable definition.
5908         * toplev.h (profile_data_prefix): New declaration.
5909         * doc/invoke.tex (Option Summary, Optimization Options):
5910         Add new options.
5911
5912 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
5913
5914         * varasm.c (output_constant_pool_1): In LABEL_REF check,
5915         use tmp consistently.
5916
5917         PR target/35695
5918         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
5919         * config/ia64/ia64.c (rtx_needs_barrier): Handle
5920         UNSPEC_FR_RECIP_APPROX_RES.
5921         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
5922
5923 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
5924
5925         PR c/35750
5926         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
5927
5928 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5929
5930         PR middle-end/30186
5931         * fold-const.c (fold_indirect_ref_1): Support accessing non first
5932         element of the vector via a pointer.
5933
5934 2008-03-31  Ian Lance Taylor  <iant@google.com>
5935
5936         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
5937
5938 2008-03-31  Jan Hubicka  <jh@suse.cz>
5939
5940         * builtins.c (expand_builtin_setjmp_receiver): Update call of
5941         get_arg_pointer_save_area.
5942         * expr.c (init_expr): Just clear out rtl.expr.
5943         * function.c (free_after_compilation): Clear out whole RTL structure.
5944         (get_func_frame_size): Merge into ...
5945         (get_frame_size): ... this one.
5946         (assign_stack_local_1): Merge into ...
5947         (assign_stack_local): ... this one.
5948         (expand_function_end): Update call of get_arg_pointer_save_area.
5949         (get_art_pointer_save_area): Remove cfun argument.
5950         * function.h (emit_status): regno_pointer_align does not need length
5951         attribute. Move x_regno_reg_rtx to ...
5952         (regno_reg_rtx): ... new global array.
5953         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
5954         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
5955         apply_args_value, forced_labels, stack_pointer_delta):
5956         Update accestors.
5957         (struct varasm_status): Move here from varasm.c
5958         (struct rtl_data): New. Move here some fields from struct function.
5959         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5960         frame_offset, stack_check_probe_note, arg_pointer_save_area,
5961         used_temp_slots avail_temp_slots, temp_slot_level,
5962         nonlocal_goto_handler_labels): Update accesstors.
5963         (rtl): New global variable.
5964         (struct function): Move some fileds to rtl_data.
5965         (get_arg_pointer_save_area): Update prototype.
5966         * emit-rtl.c (rtl): Declare.
5967         (regno_reg_rtx): Declare.
5968         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
5969         Update.
5970         (gen_reg_rtx): Update.
5971         (init_virtual_regs): Do not tate emit_status argument.
5972         (init_emit): Do not allocate emit.
5973         * varasm.c (varasm_statuc): Move to function.h.
5974         (n_deferred_constatns): Update accestor.
5975         (init_varasm_status): Do not allocate varasm_status.
5976         (force_const_mem, get_pool_size, output_constant_pool): Update.
5977         * stmt.c (force_label_rtx): Do not use x_ prefixes.
5978         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
5979
5980 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
5981
5982         PR rtl-optimization/35729
5983         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
5984         references.
5985
5986 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
5987
5988         PR target/32000
5989         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
5990         load/store if memory is unaligned.
5991         (*movti_rex64): Likewise.
5992
5993         * config/i386/predicates.md (misaligned_operand): New.
5994
5995 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
5996
5997         PR tree-opt/35431
5998         * tree-ssa-phiopt.c (conditional_replacement): Return early for
5999         complex types.
6000
6001 2008-03-31  Jan Beulich  <jbeulich@novell.com>
6002
6003         * config/ia64/constraints.md: Add 'j' constraint.
6004         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
6005         (movdi_internal): Likewise.
6006
6007 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
6008
6009         PR c/35748
6010         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
6011
6012 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
6013
6014         PR target/35757
6015         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
6016         proper error message for the third argument on blendpd and
6017         blendps.
6018
6019         * config/i386/sse.md (blendbits): New.
6020         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
6021
6022 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
6023
6024         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
6025
6026 2008-03-30  Richard Guenther  <rguenther@suse.de>
6027
6028         PR middle-end/31023
6029         * fold-const.c (fold_sign_changed_comparison): Do leave
6030         conversions to base-types alone.
6031
6032 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6033
6034         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
6035         the link register if one altivec register is be saved.
6036
6037 2008-03-30  Ben Elliston  <bje@au.ibm.com>
6038
6039         * final.c (final_scan_insn): Remove if (0) code.
6040
6041 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
6042
6043         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
6044
6045 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
6046
6047         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
6048         of V4SFmode to ix86_binary_operator_ok.
6049
6050 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
6051
6052         * config/i386/i386.c (override_options): Initialize
6053         ix86_veclib_handler to ix86_veclibabi_svml when
6054         -mveclibabi=svml is used.
6055         (ix86_veclibabi_svml): New function for SVML ABI style
6056         vectorization support.
6057         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
6058
6059 2008-03-28  Rafael Espindola  <espindola@google.com>
6060
6061         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
6062         (tree_binary_nonnegative_warnv_p): Make it public.
6063         (tree_single_nonnegative_warnv_p): Make it public.
6064         (tree_invalid_nonnegative_warnv_p): Make it public.
6065         (tree_unary_nonzero_warnv_p): Make it public.
6066         (tree_binary_nonzero_warnv_p): Make it public
6067         (tree_single_nonzero_warnv_p): Make it public.
6068         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
6069         (extract_range_from_binary_expr): Split the expr argument.
6070         (extract_range_from_unary_expr): Split the expr argument.
6071         (extract_range_from_comparison): Split the expr argument.
6072         (extract_range_from_expr): Use the new aux functions.
6073         (vrp_evaluate_conditional_warnv): Use
6074         vrp_evaluate_conditional_warnv_with_ops.
6075         * tree.h (tree_unary_nonzero_warnv_p): Declare.
6076         (tree_binary_nonzero_warnv_p): Declare.
6077         (tree_single_nonzero_warnv_p): Declare.
6078         (tree_expr_nonzero_warnv_p): Declare.
6079         (tree_unary_nonnegative_warnv_p): Declare.
6080         (tree_binary_nonnegative_warnv_p): Declare.
6081         (tree_single_nonnegative_warnv_p): Declare.
6082         (tree_invalid_nonnegative_warnv_p): Declare.
6083
6084 2008-03-28  Richard Guenther  <rguenther@suse.de>
6085
6086         PR tree-optimization/30317
6087         PR tree-optimization/30911
6088         PR tree-optimization/34793
6089         * tree-vrp.c (set_and_canonicalize_value_range): New function.
6090         (struct assert_locus_d): New member EXPR.
6091         (register_new_assert_for): Add EXPR parameter to support
6092         ASSERT_EXPR <name, expr OP limit>.
6093         (register_edge_assert_for_1): Adjust callers.
6094         (find_assert_locations): Likewise.
6095         (process_assert_insertions_for): Build condition from expression.
6096         (extract_range_from_assert): Handle ASSERT_EXPRs
6097         of the form ASSERT_EXPR <name, expr OP limit>.
6098         (register_edge_assert_for_2): New helper registering
6099         asserts for comparisons.  Recognize range tests of the form
6100         (unsigned)i - CST1 OP CST2.
6101         (register_edge_assert_for_1): Use it.
6102         (register_edge_assert_for): Likewise.
6103         (needs_overflow_infinity): Integer sub-types
6104         do not need overflow infinities.
6105         (vrp_val_is_max): The extreme values of integer sub-types
6106         are those of the base type.
6107         (vrp_val_is_min): Likewise.
6108         * tree.def (ASSERT_EXPR): Document extra allowed conditional
6109         expressions.
6110
6111 2008-03-28  Nick Clifton  <nickc@redhat.com>
6112
6113         PR target/31110
6114         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
6115         Return GENERAL_REGS for stack adjustment reloads.
6116
6117 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6118
6119         PR target/31334
6120         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
6121         const_vector when all the vectors are constant.
6122
6123 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
6124
6125         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
6126         comparisons.
6127         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
6128         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
6129         (scc_sf): New.
6130         (s<code>_sf): Use new scc_sf attribute for opcode names.
6131
6132 2008-03-27  Tom Tromey  <tromey@redhat.com>
6133
6134         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
6135         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
6136         config/spu/t-spu-elf, config/i386/t-interix,
6137         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
6138         config/i386/x-darwin, config/i386/x-mingw32,
6139         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
6140         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
6141         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
6142         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
6143         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
6144         config/rs6000/x-darwin, config/rs6000/t-rs6000,
6145         config/score/t-score-elf, config/arm/t-strongarm-pe,
6146         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
6147         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
6148         Revert automatic dependency patch.
6149
6150 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
6151
6152         PR target/35657
6153         * config/i386/i386.c (ix86_function_arg_boundary): Align
6154         decimal floating point to its natural boundary.
6155
6156 2008-03-27  Richard Guenther  <rguenther@suse.de>
6157
6158         PR middle-end/35716
6159         * fold-const.c (fold_comparison): Restrict distinct decl
6160         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
6161         solely rely on operand_equal_p.
6162
6163 2008-03-27  Richard Guenther  <rguenther@suse.de>
6164
6165         PR c/32511
6166         * c-common.c (handle_weak_attribute): Reject combination of
6167         weak and inline.
6168
6169 2008-03-27  Richard Guenther  <rguenther@suse.de>
6170
6171         PR tree-optimization/32810
6172         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
6173         conversions from DECL_INITIAL.
6174         (fold_const_aggregate_ref): Likewise from constructor elements.
6175
6176 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
6177
6178         * tree-affine.h (aff_combination_expand): Declare.
6179         (get_inner_reference_aff): Likewise.
6180         * tree-affine.c (aff_combination_expand): Split out from
6181         tree_to_aff_combination_expand.
6182         (get_inner_reference_aff): New function.
6183         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
6184         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
6185         (struct lim_aux_data): sm_done field removed.
6186         (mem_ref_loc_p, mem_ref_locs_p): New types.
6187         (struct mem_ref): Added id, stored, accesses_in_loop,
6188         indep_loop, dep_loop, indep_ref, dep_ref fields.
6189         Removed is_stored, locs and next fields.
6190         (memory_accesses): New variable.
6191         (movement_possibility): Do not allow moving statements
6192         that store to memory.
6193         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
6194         New functions.
6195         (determine_max_movement): For statements with memory references,
6196         find the outermost loop in that the reference is independent.
6197         (move_computations_stmt): Mark the virtual operands for renaming.
6198         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
6199         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
6200         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
6201         add_vop_ref_mapping, create_vop_ref_mapping_loop,
6202         create_vop_ref_mapping, analyze_memory_references,
6203         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
6204         get_all_locs_in_loop, ref_always_accessed_p,
6205         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
6206         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
6207         store_motion_loop, store_motion): New functions.
6208         (struct vop_to_refs_elt): New type.
6209         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
6210         memref_hash, memref_eq, hoist_memory_references): Rewritten.
6211         (schedule_sm): Replaced by...
6212         (execute_sm): ... this.
6213         (determine_lsm_ref, hoist_memory_references,
6214         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
6215         find_more_ref_vops, free_mem_ref, free_mem_refs,
6216         determine_lsm_loop, determine_lsm): Removed.
6217         (tree_ssa_lim_finalize): Free data structures used by store motion.
6218         (tree_ssa_lim): Call analyze_memory_references.  Use
6219         store_motion instead of determine_lsm.
6220
6221 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
6222
6223         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
6224         rename tmake_file to m68hc11/t-m68hc11.
6225         (mcore): Set inhibit_libc to true.
6226         * config.host (alpha*-dec-*vms*): Set extra_programs.
6227         (interix3*): Don't use host_xmake_file.
6228         * configure.ac: Let config.gcc override inhibit_libc.
6229         * configure: Regenerate.
6230
6231         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
6232         * config/t-openbsd-thread: Remove commented out lines.
6233         
6234         * config/x-interix: Remove.
6235
6236         * config/m68hc11/t-m68hc11-gas: Rename to...
6237         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
6238
6239         * config/mcore/t-mcore: Remove T_CFLAGS.
6240         * config/mcore/t-mcore-pe: Likewise.
6241
6242 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
6243
6244         * configure.ac: Replace custom __GNU_SOURCE test with
6245         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
6246         * aclocal.m4: Regenerate.
6247         * configure: Regenerate.
6248         * config.in: Regenerate.
6249
6250 2008-03-27  Richard Guenther  <rguenther@suse.de>
6251
6252         * fold-const.c (target.h): Include.
6253         (fold_comparison): Fold comparison of addresses of decls
6254         that bind locally or of constants.  Consolidate address folding code.
6255         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
6256         results from fold_binary_to_constant.
6257         (compare_values_warnv): Likewise.
6258
6259 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
6260
6261         PR middle-end/35429
6262         * fold-const.c (fold_truthop): Check for integeral types when folding
6263         a == 0 && b == 0 and a != 0 || b != 0 .
6264
6265 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
6266
6267         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
6268
6269 2008-03-26  Andreas Schwab  <schwab@suse.de>
6270
6271         * doc/invoke.texi: Fix use of @item vs. @itemx.
6272
6273 2008-03-26  Tom Tromey  <tromey@redhat.com>
6274
6275         * Makefile.in (build/gensupport.o, build/print-rtl.o,
6276         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
6277         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
6278         build/gencodes.o, build/genconditions.o, build/genconfig.o,
6279         build/genconstants.o, build/genemit.o, build/genextract.o,
6280         build/genflags.o, build/genmddeps.o, build/genopinit.o,
6281         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
6282         options.h.
6283
6284 2008-03-26  Richard Guenther  <rguenther@suse.de>
6285
6286         Revert
6287         2008-03-26  Richard Guenther  <rguenther@suse.de>
6288
6289         * fold-const.c (target.h): Include.
6290         (fold_comparison): Fold comparison of addresses of two decls
6291         that bind locally.  Consolidate address folding code.
6292
6293 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6294
6295         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
6296         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
6297         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
6298         dconstsqrt2, dconstthird, dconste and/or dconst10.
6299         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
6300         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
6301         dconstsqrt2, dconste): Delete.
6302         (init_emit_once): Likewise.  Simplify initializing dconstm1.
6303         Constify variable.
6304         * real.c (get_real_const): New.
6305         * real.h (dconst3, dconst10, dconstm2, dconstthird,
6306         dconstsqrt2, dconste): Delete.
6307         (real_value_const, get_real_const): New.
6308
6309 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
6310
6311         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
6312
6313         * config/i386/i386.c (ix86_function_arg_boundary): Check
6314         BIGGEST_ALIGNMENT instead of 128.
6315         (setup_incoming_varargs_64): Likewise.
6316
6317 2008-03-26  Tom Tromey  <tromey@redhat.com>
6318
6319         * Makefile.in (DEPFILES): Add missing '/'.
6320
6321 2008-03-26  Richard Guenther  <rguenther@suse.de>
6322
6323         * fold-const.c (target.h): Include.
6324         (fold_comparison): Fold comparison of addresses of two decls
6325         that bind locally.  Consolidate address folding code.
6326
6327 2008-03-26  Nick Clifton  <nickc@redhat.com>
6328
6329         PR target/31232
6330         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
6331         not allow INT+INT as a legitimate addressing mode.
6332
6333 2008-03-26  Richard Guenther  <rguenther@suse.de>
6334
6335         * tree-flow.h (widen_bitfield): Remove declaration.
6336         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
6337         (widen_bitfield): Remove function.
6338         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
6339         code.
6340
6341 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6342
6343         PR target/31558
6344         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
6345         error_mark_node's.
6346
6347 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
6348
6349         PR rtl-optimization/35232
6350         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
6351         (forget_old_reloads_1, forget_marked_reloads): Don't clear
6352         reg_reloaded_call_part_clobbered here.
6353         (reload_regs_reach_end_p): New function.
6354         (reload_reg_rtx_for_input): New variable.
6355         (reload_reg_rtx_for_output): Likewise.
6356         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
6357         when reassigning a pseudo register.  Load reloadreg from 
6358         reload_reg_rtx_for_input, moving the mode and register
6359         calculation to...
6360         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
6361         instead of the original when deciding whether an input reload
6362         would be a no-op or whether an output reload can be deleted.
6363         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
6364         when setting up new_spill_reg_store.  Load it from
6365         reload_reg_rtx_for_output, moving the mode and register
6366         calculation to...
6367         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
6368         instead of the original when deciding whether an output reload
6369         would be a no-op.  Do the same when modifying insn notes.
6370         Use rtx_equal_p instead of == to compare the registers.
6371         (inherit_piecemeal_p): Take a mode and two register numbers
6372         as argument.
6373         (emit_reload_insns): Clear new_spill_reg_store for every hard
6374         register in the reload register.  Remove spill registers
6375         from reg_reloaded_valid before considering whether to record
6376         inheritance information for them.  Use reload_reg_rtx_for_output
6377         instead of reg_rtx when recording output reloads.  Use
6378         reload_reg_rtx_for_input instead of reg_rtx when recording
6379         input reloads.  Set or clear reg_reloaded_call_part_clobbered
6380         at the same time as setting reg_reloaded_valid.
6381         (delete_output_reload): Add a new_reload_reg parameter and use it
6382         instead of rld[j].reg_rtx.
6383         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
6384         calls accordingly.
6385
6386 2008-03-25  Tom Tromey  <tromey@redhat.com>
6387
6388         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
6389         (build/genattr.o): Likewise.
6390         (build/genattrtab.o): Likewise.
6391         (build/gencodes.o): Likewise.
6392         (build/genconfig.o): Likewise.
6393         (build/genconstants.o): Likewise.
6394         (build/genemit.o): Likewise.
6395         (build/genextract.o): Likewise.
6396         (build/genflags.o): Likewise.
6397
6398 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
6399         
6400         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
6401         instead of size_int for integer types.
6402         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
6403         to match type of MINUS_EXPR.
6404         
6405 2008-03-25  Tom Tromey  <tromey@redhat.com>
6406
6407         * configure: Rebuilt.
6408         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
6409         Makefile.
6410
6411 2008-03-25  Tom Tromey  <tromey@redhat.com>
6412
6413         * config/x-solaris (host-solaris.o): Update.
6414         * config/x-linux (host-linux.o): Update.
6415         * config/x-hpux (host-hpux.o): Update.
6416         * config/x-darwin (host-darwin.o): Update.
6417         * config/v850/t-v850e (v850-c.o): Update.
6418         * config/v850/t-v850 (v850-c.o): Update.
6419         * config/t-vxworks (vxworks.o): Update.
6420         * config/t-sol2 (sol2-c.o, sol2.o): Update.
6421         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
6422         * config/spu/t-spu-elf (spu-c.o): Update.
6423         (spu.o): Remove.
6424         * config/sh/t-symbian (sh-c.o): Update.
6425         (symbian.o): Update.
6426         * config/sh/t-sh (sh-c.o): Update.
6427         * config/score/t-score-elf (score7.o, score3.o): Update.
6428         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
6429         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
6430         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
6431         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
6432         (rs6000.o): Remove.
6433         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6434         * config/m32c/t-m32c (m32c-pragma.o): Update.
6435         * config/ia64/t-ia64 (ia64-c.o): Update.
6436         * config/i386/x-mingw32 (host-mingw32.o): Update.
6437         * config/i386/x-i386 (driver-i386.o): Update.
6438         * config/i386/x-darwin (host-i386-darwin.o): Update.
6439         * config/i386/x-cygwin (host-cygwin.o): Update.
6440         * config/i386/t-nwld (nwld.o): Update.
6441         * config/i386/t-netware (netware.o): Update.
6442         * config/i386/t-interix (winnt.o): Update.
6443         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
6444         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
6445         msformat-c.o): Update.
6446         * config/bfin/t-bfin-linux (generated_files): Add
6447         linux-sysroot-suffix.h.
6448         * config/arm/t-wince-pe (pe.o): Update.
6449         * config/arm/t-strongarm-pe (pe.o): Update.
6450         * config/arm/t-pe (pe.o): Update.
6451         * config/arm/t-arm (arm-c.o): Update.
6452         * doc/install.texi (Prerequisites): Require make 3.80.
6453         * Makefile.in: Remove .o targets.
6454         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
6455         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
6456         (simple_generated_h, simple_generated_c): Move earlier.
6457         (generated_files): New variable.
6458         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
6459         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
6460         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
6461         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
6462         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
6463         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
6464         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
6465         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
6466         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
6467         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
6468         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
6469         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
6470         (.c.o): Remove.
6471         (COMPILE.base, COMPILE): New variables.
6472         (%.o): New pattern rule.
6473         (ALL_HOST_OBJS): New variable.
6474         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
6475         (dummy-checksum.o, cc1-checksum.o): Remove.
6476         (DRIVER_SHLIB): New variable.
6477         (DRIVER_DEFINES): Use it.
6478         (gencondmd.c): Move out of build/.
6479         (s-conditions): Update.
6480         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
6481         (ALL_BUILD_OBJS): Likewise.
6482         (build/%.o): Use BUILDCOMPILE.
6483         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
6484         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
6485         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
6486         build/gencheck.o, build/gencodes.o, build/genconditions.o,
6487         build/genconfig.o, build/genconstants.o, build/genemit.o,
6488         build/genextract.o, build/genflags.o, build/genmddeps.o,
6489         build/genopinit.o, build/genoutput.o, build/genpeep.o,
6490         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
6491         build/gen-protos.o, build/scan.o, build/fix-header.o,
6492         build/scan-decls.o): Simplify.
6493         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
6494         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
6495         prefix.o, toplev.o): Reduce to variable setting.
6496         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
6497         ($(out_object_file), gcc-options.o): New targets.
6498         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
6499         * configure: Rebuilt.
6500         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
6501         * doc/sourcebuild.texi (Front End Directory): Document new variable.
6502
6503 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
6504
6505         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
6506         complain when we hit an error, return ERROR_MARK_NODE.
6507
6508 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6509
6510         * config/sh/constraints.md (Pso, Psz): New constraints.
6511         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
6512         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
6513
6514 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6515
6516         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
6517         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
6518
6519 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6520
6521         * config/sh/sh.md (prefetch): Add condition for SH2A target.
6522         (prefetch_sh2a): New.   
6523
6524 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6525             Naveen.H.S  <naveen.hs@kpitcummins.com>
6526
6527         * config/sh/constraints.md (I28): New constraint.
6528         * config/sh/sh.c (broken_move): Add support for movi20s.
6529         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
6530
6531 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
6532             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6533             Naveen.H.S  <naveen.hs@kpitcummins.com>
6534
6535         * config/sh/sh.c (SH_ATTRIBUTES): Define.
6536         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
6537         (print_operand): Handle resbank in %@ operand code.
6538         (sh_encode_section_info): New.
6539         (push_regs): Add conditions for resbank.
6540         (sh_expand_epilogue): Likewise.
6541         (sh_insert_attributes): Likewise.
6542         (sh_attribute_table): Likewise.
6543         (sh_handle_resbank_handler_attribute): New.
6544         (sh2a_handle_function_vector_handler_attribute): New.
6545         (sh2a_is_function_vector_call): New.
6546         (sh2a_get_function_vector_number): New.
6547         (sh2a_function_vector_p): New.
6548         (sh_cfun_resbank_handler_p): New.
6549         * config/sh/sh.md (calli): Emit jsr/n if possible.
6550         (calli_tbr_rel): New.
6551         (calli_pcrel): Emit jsr/n if possible.
6552         (return_i): Emit rts/n if possible.
6553         (call_valuei_tbr_rel): New.
6554         (call_valuei_pcrel): Add condition for SH2A target.
6555         (call_value): Likewise.
6556         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
6557         (sh2a_get_function_vector_number): Likewise.
6558         (sh2a_is_function_vector_call): Likewise.
6559         * doc/extend.texi: Document TBR relative addressing of SH2A.
6560         (resbank): Add description for SH2A.
6561
6562 2008-03-24  Richard Guenther  <rguenther@suse.de>
6563
6564         PR c/22371
6565         * gimplify.c (gimplify_modify_expr): For frontend type-correct
6566         pointer assignments change conversions according to middle-end rules.
6567         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
6568         * configure.ac: Include type checking in yes.
6569         * configure: Regenerate.
6570
6571 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6572
6573         * diagnostic.c (diagnostic_count_diagnostic): Delete.
6574         (diagnostic_report_diagnostic): Update. Handle ICEs here.
6575         
6576 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
6577
6578         * gthr-vxworks.h (UNUSED): Define.
6579
6580 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
6581
6582         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
6583
6584 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
6585
6586         * doc/extend.texi (Function Attributes): Add missing comma in the
6587         example of the "alloc_size" attribute.
6588         
6589 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
6590
6591         Revert:
6592         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
6593
6594         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
6595         32bit host.
6596
6597         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6598
6599         PR target/35496
6600         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6601         of the underlying type of a MS bitfield layout to the natural
6602         alignment of the type.
6603
6604         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6605
6606         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6607         to their natural alignment to avoid store forwarding stalls.
6608
6609 2008-03-22  Richard Guenther  <rguenther@suse.de>
6610
6611         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
6612         For PHI nodes verify the address is invariant.
6613         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
6614         (get_symbol_constant_value): Use is_gimple_min_invariant.
6615         (maybe_fold_stmt_indirect): Likewise.
6616
6617 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
6618
6619         PR rtl-optimization/33927
6620         * Makefile.in (dse.o): Depend on $(TM_P_H).
6621         * expr.h (extract_low_bits): Declare.
6622         * expmed.c (extract_low_bits): New function.
6623         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
6624         * dse.c: Include tm_p.h.
6625         (find_shift_sequence): Remove the read_reg argument and return the
6626         read value.  Emit the instructions instead of returning them.
6627         Iterate on new_mode rather than calculating it each time.
6628         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
6629         source to NEW_MODE and extract_low_bits to convert the shifted
6630         value to READ_MODE.
6631         (replace_read): Allow the load and store to have different mode
6632         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
6633         or extraction instructions before trying the replacement.  Update
6634         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
6635
6636 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6637
6638         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6639         to their natural alignment to avoid store forwarding stalls.
6640
6641 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6642
6643         PR target/27946
6644         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
6645         encouraging but not allowing gprs for input;
6646         change the input constraint to !f#r.
6647         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
6648         gprs for output;
6649         change the output constraint to !f#r.
6650
6651 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
6652
6653         PR target/13958
6654         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
6655         corresponding post-reload splitters.
6656         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
6657         when x87 FP math is selected.
6658         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
6659         New function prototype.
6660         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
6661         unreachable function to ease macroization of insn patterns.
6662
6663 2008-03-21  Martin Jambor  <mjambor@suse.cz>
6664
6665         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
6666         reference dumps if ddr is NULL or dependence is unknown.
6667
6668 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6669
6670         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
6671         unsigned extension into account.
6672         (ATOMIC_COMPARE_AND_SWAP): Likewise.
6673         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
6674         Do computations on a scratch register.
6675
6676 2008-03-21  Richard Guenther  <rguenther@suse.de>
6677
6678         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
6679         Use is_gimple_min_invariant instead of TREE_INVARIANT.
6680         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
6681         * tree-ssa-dom.c (record_equality): Likewise.
6682         * tree-inline.c (copy_body_r): Likewise.
6683         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
6684         TREE_INVARIANT.
6685
6686 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6687
6688         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
6689         as 'delete_unused' argument.
6690
6691 2008-03-20  Richard Guenther  <rguenther@suse.de>
6692
6693         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
6694         special casing of constant qualifiers.
6695         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
6696         care about them in general.
6697         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
6698         regardless of their type.
6699         (fold_stmt_r): Forcefully fold *& if we end up with that.
6700
6701 2008-03-20  Paul Brook  <paul@codesourcery.com>
6702
6703         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
6704         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
6705         linker flags.
6706         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
6707         definition.
6708         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
6709         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
6710
6711 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
6712
6713         * common.opt (Wmudflap): New option.
6714         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
6715         (mx_register_decls): Likewise.
6716         (mudflap_finish_file): Likewise.
6717         * doc/invoke.texi: Document -Wno-mudflap.
6718
6719 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
6720
6721         * c-format.c (replace_format_name_to_system_name): New.
6722         (cmp_attribs): New.
6723         (convert_format_name_to_system_name): New.
6724         (decode_format_attr): Add use of convert_format_name_to_system_name.
6725         (format_types_orig): Add gnu_ prefix to names.
6726         (check_format_info_main): Special treating of \0 escaped names for
6727         supporting multi-character format specifiers as I32, I64.
6728         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
6729         (gnu_target_overrides_format_attributes): New.
6730         * c-format.h: Add structure target_ovr_attr to hold
6731         system specific formatter names.
6732         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
6733         msformat-c.o file to c_target_objs and cxx_target_objs.
6734         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6735         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
6736         (TARGET_N_FORMAT_TYPES): New.
6737         * config/i386/msformat-c.c: New.
6738         * config/i386/t-cygming: Add build rule for msformat-c.o.
6739         * doc/extend.texi: Add new format names gnu_* and ms_* and
6740         further details.
6741         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6742
6743 2008-03-20  Ira Rosen  <irar@il.ibm.com>
6744
6745         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
6746         optimizations turned on under -O3.
6747         (ftree-vectorize): Add that the flag is turned on with -O3.
6748
6749 2008-03-20  Ben Elliston  <bje@au.ibm.com>
6750
6751         * regmove.c (try_auto_increment): Fix spelling error in comment.
6752         * final.c (final_scan_insn): Likewise.
6753
6754 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
6755
6756         PR target/14552
6757         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
6758         allocator preferences for "y" and "r" class registers.
6759         ("*mov<mode>_internal"): Ditto.
6760         ("*movv2sf_internal_rex64"): Ditto.
6761         ("*movv2sf_internal"): Ditto.
6762
6763 2008-03-19  Michael Matz  <matz@suse.de>
6764
6765         PR middle-end/35616
6766         * calls.c (expand_call): Check overlap of arguments with call
6767         address for sibcalls.
6768
6769 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6770
6771         PR target/35496
6772         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6773         of the underlying type of a MS bitfield layout to the natural
6774         alignment of the type.
6775
6776 2008-03-19  Jan Hubicka  <jh@suse.cz>
6777
6778         PR other/35094
6779         * toplev.c (decode_d_option): Handle all CPP flags.
6780         * tree-vrp.c: Update tree_pass descriptors.
6781         * regrename.c: Update tree_pass descriptors.
6782         * fwprop.c: Update tree_pass descriptors.
6783         * doc/invoke.texi: Remove documentation of dropped -d? flags.
6784         * tree-into-ssa.c: Update tree_pass descriptors.
6785         * tree-dump.c: Update tree_pass descriptors.
6786         * tree-complex.c: Update tree_pass descriptors.
6787         * tree-dump.h: Update tree_pass descriptors.
6788         * see.c: Update tree_pass descriptors.
6789         * cgraphbuild.c: Update tree_pass descriptors.
6790         * tracer.c: Update tree_pass descriptors.
6791         * tree-loop-distribution.c: Update tree_pass descriptors.
6792         * cgraph.c: Update tree_pass descriptors.
6793         * postreload-gcse.c: Update tree_pass descriptors.
6794         * postreload.c: Update tree_pass descriptors.
6795         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
6796         * tree-tailcall.c: Update tree_pass descriptors.
6797         * tree-pass.h (tree_opt_pass): Rename to ...
6798         (opt_pass) ... this one; add "type" field and remove letter field.
6799         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
6800         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
6801         all_lowering_passes): Update declaration.
6802         * ipa-cp.c: Update tree_pass descriptors.
6803         * final.c: Update tree_pass descriptors.
6804         * omp-low.c: Update tree_pass descriptors.
6805         * tree-ssa-dse.c: Update tree_pass descriptors.
6806         * ipa-reference.c: Update tree_pass descriptors.
6807         * tree-ssa-uncprop.c: Update tree_pass descriptors.
6808         * auto-inc-dec.c: Update tree_pass descriptors.
6809         * reorg.c: Update tree_pass descriptors.
6810         * cgraphunit.c: Update tree_pass descriptors.
6811         * tree-ssa-copyrename.c: Update tree_pass descriptors.
6812         * tree-ssa-ccp.c: Update tree_pass descriptors.
6813         * df-core.c: Update tree_pass descriptors.
6814         * mode-switching.c: Update tree_pass descriptors.
6815         * tree-nomudflap.c: Update tree_pass descriptors.
6816         * modulo-sched.c: Update tree_pass descriptors.
6817         * ipa-pure-const.c: Update tree_pass descriptors.
6818         * cse.c: Update tree_pass descriptors.
6819         * web.c: Update tree_pass descriptors.
6820         * tree-stdarg.c: Update tree_pass descriptors.
6821         * tree-ssa-math-opts.c: Update tree_pass descriptors.
6822         * tree-ssa-dom.c: Update tree_pass descriptors.
6823         * tree-nrv.c: Update tree_pass descriptors.
6824         * tree-ssa-alias.c: Update tree_pass descriptors.
6825         * loop-init.c: Update tree_pass descriptors.
6826         * gimple-low.c: Update tree_pass descriptors.
6827         * ipa-inline.c: Update tree_pass descriptors.
6828         * tree-ssa-sink.c: Update tree_pass descriptors.
6829         * global.c: Update tree_pass descriptors.
6830         * ifcvt.c: Update tree_pass descriptors.
6831         * jump.c: Update tree_pass descriptors.
6832         * predict.c: Update tree_pass descriptors.
6833         * tree-ssa-loop.c: Update tree_pass descriptors.
6834         * recog.c: Update tree_pass descriptors.
6835         * dse.c: Update tree_pass descriptors.
6836         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
6837         * tree-eh.c: Update tree_pass descriptors.
6838         * regmove.c: Update tree_pass descriptors.
6839         * local-alloc.c
6840         * function.c: Update tree_pass descriptors.
6841         * tree-vectorizer.c: Update tree_pass descriptors.
6842         * gcse.c: Update tree_pass descriptors.
6843         * ipa-type-escape.c: Update tree_pass descriptors.
6844         * tree-if-conv.c: Update tree_pass descriptors.
6845         * init-regs.c: Update tree_pass descriptors.
6846         * ipa.c: Update tree_pass descriptors.
6847         * tree-ssa-phiopt.c: Update tree_pass descriptors.
6848         * rtl-factoring.c: Update tree_pass descriptors.
6849         * lower-subreg.c: Update tree_pass descriptors.
6850         * bt-load.c: Update tree_pass descriptors.
6851         * tree-dfa.c: Update tree_pass descriptors.
6852         * except.c: Update tree_pass descriptors.
6853         * emit-rtl.c: Update tree_pass descriptors.
6854         * cfgexpand.c: Update tree_pass descriptors.
6855         * tree-cfgcleanup.c: Update tree_pass descriptors.
6856         * cfgcleanup.c: Update tree_pass descriptors.
6857         * tree-ssa-pre.c: Update tree_pass descriptors.
6858         * tree-sra.c: Update tree_pass descriptors.
6859         * tree-mudflap.c: Update tree_pass descriptors.
6860         * tree-ssa-copy.c: Update tree_pass descriptors.
6861         * cfglayout.c: Update tree_pass descriptors.
6862         * tree-ssa-forwprop.c: Update tree_pass descriptors.
6863         * tree-ssa-dce.c: Update tree_pass descriptors.
6864         * tree-ssa.c: Update tree_pass descriptors.
6865         * regclass.c: Update tree_pass descriptors.
6866         * integrate.c: Update tree_pass descriptors.
6867         * tree-optimize.c: Update tree_pass descriptors.
6868         * tree-ssa-phiprop.c: Update tree_pass descriptors.
6869         * tree-object-size.c: Update tree_pass descriptors.
6870         * combine.c: Update tree_pass descriptors.
6871         * tree-outof-ssa.c: Update tree_pass descriptors.
6872         * bb-reorder.c: Update tree_pass descriptors.
6873         * stack-ptr-mod.c: Update tree_pass descriptors.
6874         * var-tracking.c: Update tree_pass descriptors.
6875         * tree-profile.c: Update tree_pass descriptors.
6876         * tree-vect-generic.c: Update tree_pass descriptors.
6877         * reg-stack.c: Update tree_pass descriptors.
6878         * sched-rgn.c: Update tree_pass descriptors.
6879         * tree-ssa-structalias.c: Update tree_pass descriptors.
6880         * tree-cfg.c: Update tree_pass descriptors.
6881         * passes.c (current_pass): Update declaration.
6882         (finish_optimization_passes): Update.
6883         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
6884         (register_one_dump_file, register_dump_files_1, next_pass_1):
6885         Update arguments.
6886         (init_optimization_passes): Update handling of new types.
6887         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
6888         * ipa-struct-reorg.c: Update tree_pass descriptors.
6889         * tree-ssa-reassoc.c: Update tree_pass descriptors.
6890         * combine-stack-adj.c: Update tree_pass descriptors.
6891         * cfgrtl.c: Update tree_pass descriptors.
6892         * dce.c: Update tree_pass descriptors.
6893         * tree-ssanames.c: Update tree_pass descriptors.
6894
6895 2008-03-19  Richard Guenther  <rguenther@suse.de>
6896
6897         PR middle-end/35609
6898         * tree-ssa.c (walk_data): New structure.
6899         (warn_uninitialized_var): If not always_executed warn with "maybe"
6900         instead of "is".
6901         (execute_early_warn_uninitialized): Compute post-dominators.
6902         Initialize always_executed before processing each basic block.
6903
6904 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
6905
6906         PR target/35504
6907         * config/i386/i386.c (x86_this_parameter): Calculate correct location
6908         of "this" pointer when "regparm = N" or "fastcall" is in effect.
6909
6910 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6911
6912         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
6913
6914 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
6915
6916         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
6917         is true.
6918         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
6919         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
6920         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
6921         target after ignore has been set, and move there also the commputation
6922         of subtarget and original_target.
6923         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
6924         (LANG_HOOKS_INITIALIZER): Remove it.
6925         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
6926
6927 2008-03-18  Richard Guenther  <rguenther@suse.de>
6928
6929         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
6930         found an expression with constants, note that in the VN for the lhs.
6931         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
6932         fold them to constants if possible.  Run cleanup_cfg if done so.
6933         (execute_pre): Return todo.
6934         (do_pre): Likewise.
6935         (execute_fre): Likewise.
6936         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
6937         of constants.
6938         (get_prop_source_stmt): Look through pointer conversions.
6939
6940 2008-03-18  Jan Hubicka  <jh@suse.cz>
6941
6942         * tree-pretty-print.c: Include predict.h.
6943         (dump_generic_node): Dump predictor.
6944         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
6945         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
6946         * gimple-low.c (lower_stmt): Likewise.
6947         * expr.c (expand_expr_real): Likewise.
6948         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
6949         them.
6950         (build_predict_expr, build_predict_expr): New.
6951         * predict.h (predictor_name, build_predict_expr): Update.
6952         * c-typeck.c (c_finish_bc_stmt): Add prediction.
6953         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
6954         * predict.def (PRED_CONTINUE): Update hitrate.
6955         * tree.def (PREDICT_EXPR): Define.
6956         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
6957         do not handle BIND_EXPR.
6958         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
6959         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
6960         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
6961         operands.
6962
6963 2008-03-18  Michael Matz  <matz@suse.de>
6964
6965         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
6966
6967 2008-03-18  Richard Guenther  <rguenther@suse.de>
6968
6969         * tree-gimple.h (is_gimple_invariant_address): Declare.
6970         (is_gimple_constant): Likewise.
6971         * tree-gimple.c (is_gimple_constant): New function.
6972         (is_gimple_invariant_address): Likewise.
6973         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
6974         and is_gimple_invariant_address.
6975         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
6976         previous change.
6977         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
6978         an addressable base.
6979
6980 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
6981
6982         PR middle-end/35611
6983         * gimplify.c (gimplify_expr): Gimplify second operand of
6984         OMP_ATOMIC_LOAD.
6985
6986 2008-03-17  Richard Guenther  <rguenther@suse.de>
6987
6988         PR tree-optimization/19637
6989         * fold-const.c (fold_unary): Remove restrictions of removing
6990         intermediate pointer-conversions (P2)(P1)P0.
6991         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
6992         conversion to void pointer.
6993         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
6994
6995 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
6996
6997         PR debug/31510
6998         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
6999         emulated thread local variables.
7000
7001 2008-03-16  Richard Guenther  <rguenther@suse.de>
7002
7003         PR middle-end/35607
7004         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
7005         expand TREE_INVARIANT operations that are not gimple invariant.
7006
7007 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
7008
7009         * doc/extend.texi (Alignment): Say that the ABI controls
7010         the __alignof__ for non-strict-alignment targets rather
7011         than being a recommendation.
7012
7013 2008-03-15  Paul Brook  <paul@codesourcery.com>
7014
7015         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
7016         annotations.
7017         (arm_output_fn_unwind): Mark functions that can not be unwound.
7018
7019 2008-03-15  Paul Brook  <paul@codesourcery.com>
7020
7021         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
7022         extension instructions.
7023
7024 2008-03-15  Richard Guenther  <rguenther@suse.de>
7025
7026         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
7027         and fold constant aggregate refs.
7028         (fold_const_aggregate_ref): Handle string constants
7029         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
7030         (evaluate_stmt): Simplify now that ccp_fold folds constant
7031         aggregate refs.
7032
7033 2008-03-15  Paul Brook  <paul@codesourcery.com>
7034
7035         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
7036         (extzv): Use gen_extzv_t2.
7037         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
7038
7039 2008-03-15  Richard Guenther  <rguenther@suse.de>
7040
7041         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
7042         (fold_const_aggregate_ref): Likewise.
7043         (get_value): Return NULL if we don't have any values.
7044         (ccp_finalize): Set const_val to NULL after freeing it.
7045         * tree-flow.h (get_symbol_constant_value): Declare.
7046         (fold_const_aggregate_ref): Likewise.
7047         * tree-ssa-sccvn.c (try_to_simplify): Use them.
7048
7049 2008-03-15  Richard Guenther  <rguenther@suse.de>
7050
7051         PR middle-end/35593
7052         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
7053         to not produce negative array indices if not allowed.  Add
7054         parameter to indicate that.
7055         (maybe_fold_offset_to_component_ref): Allow negative array
7056         indices only for the first member of a structure.
7057         (maybe_fold_offset_to_reference): Allow negative array indices.
7058         (maybe_fold_stmt_addition): Likewise.
7059
7060 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
7061             Anatoly Sokolov <aesok@post.ru>
7062
7063         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
7064         (avr_arch): Add ARCH_AVR6.
7065         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
7066         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
7067         instead of fixed value 2.
7068         (print_operand_address): Use gs() asm specifier instead of pm().
7069         (avr_assemble_integer): (Ditto.).
7070         (avr_output_addr_vec_elt): (Ditto.).
7071         (print_operand): Handle "!" code.
7072         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
7073         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
7074         (AVR_HAVE_EIJMP_EICALL): Define.
7075         (AVR_3_BYTE_PC): Redefine.
7076         (AVR_2_BYTE_PC): (Ditto.).
7077         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
7078         (LINK_SPEC): Add atmega2560 and atmega2561.
7079         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
7080         (crtm2561.o).
7081         * config/avr/avr.md (call_insn): Use eicall instead of icall 
7082         for 3 byte PC devices.
7083         (call_value_insn): (Ditto.).
7084         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
7085         (indirect_jump): Use only for for 2 byte PC devices.
7086         (*tablejump): (Ditto.).
7087         (*indirect_jump_avr6): Add insn.
7088         (*tablejump_rjmp): Don't use for 3 byte PC devices.
7089         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
7090         instead of ijmp for 3 byte PC devices.
7091         (__tablejump2__): (Ditto.).
7092         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
7093         (MULITLIB_DIRNAMES): (Ditto.). 
7094         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
7095
7096 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
7097
7098         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
7099         "sse2_umulsidi3".  Use V1DI mode for operand 0.
7100         ("mmx_psadbw"): Use V1DI mode for operand 0.
7101         * config/i386/i386-modes.def (V1SI): New vector mode.
7102         * config/i386/i386.c (struct builtin_description)
7103         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
7104         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
7105         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
7106         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
7107         v1di_ftype_v8qi_v8qi type.
7108         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
7109
7110         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
7111         __builtin_ia32_pmuludq]: Fix the mode of return value.
7112
7113 2008-03-15  Richard Guenther  <rguenther@suse.de>
7114
7115         PR middle-end/35595
7116         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
7117         being a PHI_NODE.
7118
7119 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
7120         
7121         * doc/invoke.texi (Option Summary, Xtensa Options): Document
7122         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
7123         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
7124         unless TARGET_SERIALIZE_VOLATILE is enabled.
7125         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
7126         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
7127         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
7128
7129 2008-03-14  Richard Guenther  <rguenther@suse.de>
7130
7131         PR tree-optimization/34172
7132         * tree-flow.h (refs_may_alias_p): Declare.
7133         (get_single_def_stmt): Likewise.
7134         (get_single_def_stmt_from_phi): Likewise.
7135         (get_single_def_stmt_with_phi): Likewise.
7136         * tree-dfa.c (refs_may_alias_p): New function.
7137         (get_single_def_stmt): Likewise.
7138         (get_single_def_stmt_from_phi): Likewise.
7139         (get_single_def_stmt_with_phi): Likewise.
7140         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
7141         (vn_reference_lookup_1): New helper function.
7142         (vn_reference_lookup): Walk the virtual use-def chain to
7143         continue searching for a match if the def does not alias the
7144         reference we are looking for.
7145
7146 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
7147
7148         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
7149         archive and Perzl.  Update The Written Word listing.
7150
7151 2008-03-14  Richard Guenther  <rguenther@suse.de>
7152
7153         PR tree-optimization/34043
7154         PR tree-optimization/33989
7155         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
7156         when doing FRE.
7157         (bitmap_find_leader): Use extra argument to verify dominance
7158         relationship inside a basic-block.
7159         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
7160         (find_leader_in_sets): Adjust.
7161         (create_component_ref_by_pieces): Take extra argument for
7162         dominance check, handle lookup failures.
7163         (find_or_generate_expression): Likewise.
7164         (create_expression_by_pieces): Likewise.
7165         (insert_into_preds_of_block): Adjust.
7166         (create_value_expr_from): If asked for, verify all operands
7167         are in the blocks AVAIL_OUT set.
7168         (make_values_for_stmt): Check for SSA_NAMEs that are life
7169         over an abnormal edge.
7170         (compute_avail): Remove such check.
7171         (do_SCCVN_insertion): New function.
7172         (eliminate): If we do not find a leader suitable for replacement
7173         insert a replacement expression from SCCVN if available.
7174         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
7175         (struct vn_ssa_aux): Add needs_insertion flag.
7176         * tree-ssa-sccvn.c (may_insert): New global flag.
7177         (copy_reference_ops_from_ref): Value-number union member access
7178         based on its size, not type and member if insertion is allowed.
7179         (visit_reference_op_load): For a weak match from union type
7180         punning lookup a view-converted value and insert a SSA_NAME
7181         for that value if that is not found.
7182         (visit_use): Make dumps shorter.  Do not disallow value numbering
7183         SSA_NAMEs that are life over an abnormal edge to constants.
7184         (free_scc_vn): Release inserted SSA_NAMEs.
7185         (run_scc_vn): New flag to specify whether insertion is allowed.
7186         Process SSA_NAMEs in forward order.
7187         * tree-ssa-loop-im.c (for_each_index): Handle invariant
7188         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
7189         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
7190         pointer type to/from integral types that do not change the
7191         precision to regular conversions.
7192
7193 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
7194
7195         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7196         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7197         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
7198         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
7199         input arguments and the mode of return value.  Built-in functions
7200         that operate on whole 64-bit MMX register now use V1DI mode.
7201
7202 2008-03-13  Alon Dayan  <alond@il.ibm.com>
7203             Olga Golovanevsky  <olga@il.ibm.com>
7204
7205         PR tree-optimization/35041
7206         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
7207         to locate the right position in a statement.
7208
7209 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
7210
7211         PR target/34000
7212         PR target/35553
7213         * config/i386/xmmintrin.h:  Change all static inline functions to
7214         extern inline and add __gnu_inline__ attribute.
7215         * config/i386/bmintrin.h: Ditto.
7216         * config/i386/smmintrin.h: Ditto.
7217         * config/i386/tmmintrin.h: Ditto.
7218         * config/i386/mmintrin-common.h: Ditto.
7219         * config/i386/ammintrin.h: Ditto.
7220         * config/i386/emmintrin.h: Ditto.
7221         * config/i386/pmmintrin.h: Ditto.
7222         * config/i386/mmintrin.h: Ditto.
7223         * config/i386/mm3dnow.h: Ditto.
7224
7225 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
7226
7227         PR middle-end/35185
7228         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
7229         (lower_omp_2): New function.
7230         (lower_omp_1, lower_omp): Rewritten.
7231
7232 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
7233
7234         PR 35054
7235         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
7236         with the phrase "Microsoft Windows compilers".
7237         (Push/Pop Macro Pragmas): New subsection. Document
7238         #pragma push_macro and pragma pop_macro.
7239
7240 2008-03-12  Paul Brook  <paul@codesourcery.com>
7241
7242         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
7243
7244 2008-03-12  Paul Brook  <paul@codesourcery.com>
7245
7246         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
7247         (thumb2_alusi3_short): Exclude PLUS and MINUS.
7248         (thumb2_addsi_shortim): Rename ...
7249         (thumb2_addsi_short): ... to this.  Allow register operands.
7250         (thumb2_subsi_short): New pattern.
7251         (thumb2_one_cmplsi2_short,
7252         thumb2_negsi2_short): New patterns and peepholes.
7253
7254 2008-03-12  Paul Brook  <paul@codesourcery.com>
7255
7256         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
7257
7258 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
7259
7260         * config/i386/i386.md (int_cond): New code iterator.
7261         (fp_cond): Ditto.
7262         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
7263         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
7264         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
7265         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
7266         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
7267         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
7268         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
7269         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
7270
7271 2008-03-12  Paul Brook  <paul@codesourcery.com>
7272
7273         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
7274         instead of {arm,thumb}_compute_save_reg_mask.
7275         (output_return_instruction): Ditto.
7276         (thumb_unexpanded_epilogue): Ditto.
7277         (thumb1_expand_prologue): Ditto.
7278         (thumb1_output_function_prologue): Ditto.
7279         (arm_set_return_address): Ditto.
7280         (thumb_set_return_address): Ditto.
7281         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
7282         regs to achieve stack alignment.
7283         (thumb1_compute_save_reg_mask): Fix compiler warning.
7284         (arm_output_epilogue): Use offsets->saved_regs_mask.
7285         Adjust stack pointer by poping call clobered registers.
7286         (arm_expand_prologue): Use offsets->saved_regs_mask.
7287         Adjust stack pointer by pushing extra registers.
7288         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
7289
7290 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
7291
7292         PR tree-opt/35422
7293         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
7294         conversion to the operands of a multiplication.
7295
7296 2008-03-12  Richard Guenther  <rguenther@suse.de>
7297
7298         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
7299         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
7300         * timevar.def (TV_TREE_PHIPROP): Add.
7301         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
7302         pass description.  Use TV_TREE_PHIPROP.
7303         * tree-ssa-forwprop.c: Remove phiprop code.
7304
7305 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
7306
7307         PR middle-end/35549
7308         * omp-low.c (maybe_lookup_decl): Constify first argument.
7309         (use_pointer_for_field): Change last argument from bool to
7310         omp_context *.  Disallow shared copy-in/out in nested
7311         parallel if decl is shared in outer parallel too.
7312         (build_outer_var_ref, scan_sharing_clauses,
7313         lower_rec_input_clauses, lower_copyprivate_clauses,
7314         lower_send_clauses, lower_send_shared_vars): Adjust callers.
7315
7316 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
7317             Ira Rosen  <irar@il.ibm.com>
7318
7319         * tree-vectorizer.c (free_stmt_vec_info): New function.
7320         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
7321         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
7322         * tree-vectorizer.h (free_stmt_vec_info): Declare.
7323         * tree-vect-transform.c (vectorizable_conversion): Free
7324         vec_oprnds0 if it was allocated.
7325         (vect_permute_store_chain): Remove unused VECs.
7326         (vectorizable_store): Free VECs that are allocated in the..
7327         function.
7328         (vect_transform_strided_load, vectorizable_load): Likewise.
7329         (vect_remove_stores): Simplify the code.
7330         (vect_transform_loop): Move code to vect_remove_stores().
7331         Call vect_remove_stores() and free_stmt_vec_info().
7332
7333 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7334
7335         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
7336         TARGET_HPUX.  Revise comment.
7337         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
7338         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
7339         Use sr4 variant of `be' instruction when not generating PIC code.
7340         (attr_length_call): Adjust for above change.
7341
7342 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7343
7344         * ipa-reference.c (static_execute): Remove module_statics_const and
7345         associated setting code.
7346
7347 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
7348
7349         PR target/35540
7350         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
7351         predicate for operand 1.
7352         (paritysi2_cmp): Use register_operand predicate for operand 2.
7353         Use earlyclobber modifier for operand 1.  Remove support for
7354         memory operands.
7355         (paritydi2_cmp): Use register_operand predicate for operand 3.
7356         Use earlyclobber modifier for operand 1.  Remove support for
7357         memory operands.
7358
7359 2008-03-11  Paul Brook  <paul@codesourcery.com>
7360             Vladimir Prus  <vladimir@codesourcery.com>
7361
7362         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
7363         (arm_compute_save_reg0_reg12_mask): Always
7364         check if register 11 must be saved.  Always safe hard frame pointer
7365         when frame_pointer_needeed.
7366         (arm_compute_save_reg_mask): Save IP and PC
7367         only with apcs frames.
7368         (arm_output_epilogue): Adjust Thumb2 codepath to
7369         be also invoked and work for ARM non-apcs frames.
7370         (arm_expand_prologue): Don't bother saving IP
7371         for non-apcs frame, since it's not clobbered by
7372         prologue code.  Implement non-apcs frame
7373         layout.
7374
7375 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7376
7377         PR rtl-optimization/35281
7378         * expr.c (convert_move): Use a new pseudo for the intermediate
7379         from_mode->word_mode result.
7380
7381 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7382
7383         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
7384         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
7385         * toplev.c (compile_file): Don't call it.
7386
7387 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
7388
7389         PR middle-end/35526
7390         * expr.c (store_expr): Call emit_block_move if the mode
7391         of "temp" RTX is BLKmode.
7392
7393 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7394             Richard Guenther  <rguenther@suse.de>
7395
7396         PR tree-optimization/31358
7397         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
7398         the step with a NULL_TREE.
7399         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
7400         to sizetype if type is a pointer type.
7401         (add_candidate_1): Don't convert the base and step to
7402         the generic type if the orginal type is a pointer type.
7403         (add_iv_value_candidates): Use sizetype for the step
7404         if type is a pointer type.
7405         (cand_value_at): Likewise.
7406         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
7407         for pointer types.
7408         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
7409         Don't convert the tem affine to the type.
7410         (add_elt_to_tree): Use sizetype for the step if a pointer.
7411         Use POINTER_PLUS_EXPR for pointers.
7412         (aff_combination_to_tree): Use sizetype for the step if a
7413         pointer.
7414
7415 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
7416
7417         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
7418         Remove commutativity hint.
7419
7420 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
7421
7422         PR c/35438
7423         PR c/35439
7424         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
7425         errorneous type.  Check that v is a VAR_DECL.
7426
7427         PR middle-end/35099
7428         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
7429
7430 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
7431
7432         PR tree-optimization/35494
7433         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
7434         may be overriden at link and run time.
7435
7436 2008-03-10  Richard Guenther  <rguenther@suse.de>
7437
7438         PR tree-optimization/34677
7439         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
7440         (poolify_tree): Likewise.
7441         (modify_expr_template): Likewise.
7442         (poolify_modify_stmt): Likewise.
7443         (insert_fake_stores): Handle all component-ref style stores
7444         in addition to INDIRECT_REF.  Also handle complex types.
7445         Do not poolify the inserted load.
7446         (realify_fake_stores): Do not rebuild the tree but only
7447         make it a SSA_NAME copy.
7448         (init_pre): Remove initialzation of modify_expr_template.
7449         Do not allocate modify_expr_node_pool.
7450         (fini_pre): Do not free modify_expr_node_pool.
7451
7452 2008-03-10  Paul Brook  <paul@codesourcery.com>
7453
7454         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
7455         to avoid conflicts.
7456
7457 2008-03-10  Paul Brook  <paul@codesourcery.com>
7458             Mark Shinwell  <shinwell@codesourcery.com>
7459
7460         * config/arm/cortex-r4.md: New.
7461         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
7462         insn attributes.
7463         * config/arm/arm.md: Include cortex-r4.md.
7464         (insn): Add smmls, sdiv and udiv values.
7465         (generic_sched): Don't use generic scheduling for Cortex-R4.
7466         (arm_issue_rate): New function.
7467         (TARGET_SCHED_ISSUE_RATE): Define.
7468
7469 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
7470
7471         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
7472
7473 2008-03-10  Richard Guenther  <rguenther@suse.de>
7474
7475         * tree-ssa-pre.c (get_sccvn_value): Simplify.
7476         (compute_avail): Do not add stmt uses to AVAIL_OUT.
7477
7478 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
7479
7480         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
7481         Set default to true.
7482
7483 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7484
7485         * c.opt (Wsynth): Deprecate.
7486         * doc/invoke.texi (Option Summary, Warning Options): Document
7487         -Wno-format-contains-nul.
7488
7489 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
7490
7491         PR target/35496
7492         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
7493         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
7494
7495 2008-03-09  Ira Rosen  <irar@il.ibm.com>
7496
7497         * config/rs6000/rs6000.c (builtin_description): Rename vector
7498         left shift operations.
7499         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
7500         (altivec_vsl<VI_char>): Rename to ...
7501         (ashl<mode>3): ... new name.
7502         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
7503         gen_ashlv4si3.
7504         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
7505
7506 2008-03-08  Richard Guenther  <rguenther@suse.de>
7507
7508         * coverage.h (tree_coverage_counter_addr): Declare.
7509         * coverage.c (tree_coverage_counter_addr): New function.
7510         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
7511         before using again.
7512         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
7513         (tree_gen_one_value_profiler): Likewise.
7514         (tree_gen_ic_profiler): Likewise.
7515         (tree_gen_average_profiler): Likewise.
7516         (tree_gen_ior_profiler): Likewise.
7517
7518 2008-03-08  Richard Guenther  <rguenther@suse.de>
7519
7520         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
7521         (vn_binary_op_insert): Likewise.
7522         (vn_unary_op_lookup): Likewise.
7523         (vn_unary_op_insert): Likewise.
7524         (vn_nary_op_lookup): Declare.
7525         (vn_nary_op_insert): Likewise.
7526         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
7527         and binary hashes, use a single obstack for unary_op_pool
7528         and binary_op_pool.
7529         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
7530         a single struct vn_nary_op_s.  Store tree code length and
7531         a variable number of operands.
7532         (struct vn_reference_op_struct): Remove unused op2.
7533         (vn_reference_op_eq): Do not compare op2.
7534         (vn_reference_op_compute_hash): Do not compute hash of op2.
7535         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
7536         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
7537         with vn_nary_op_compute_hash.
7538         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
7539         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
7540         vn_nary_op_lookup.
7541         (vn_unary_op_insert, vn_binary_op_insert): Replace with
7542         vn_nary_op_insert.
7543         (visit_unary_op): Call nary functions.
7544         (visit_binary_op): Likewise.
7545         (process_scc): Adjust for struct vn_tables_s changes.
7546         (allocate_vn_table): Likewise.
7547         (free_vn_table): Likewise.
7548         * tree-vn.c (vn_add): Call nary functions.
7549         (vn_lookup): Likewise.
7550
7551 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
7552
7553         PR target/35498
7554         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
7555         wdst back after sync_compare_and_swapqhi_internal.
7556
7557 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
7558
7559         PR target/22152
7560         * config/i386/i386-modes.def (V1DI): New vector mode.
7561         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
7562         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
7563         (MMXMODE248): Ditto.
7564         (MMXMODE): Add V1DI mode.
7565         (mmxvecsize): Change DI mode to V1DI mode.
7566         ("mov<mode>): Use MMXMODEI8 mode iterator.
7567         ("*mov<mode>_internal_rex64"): Ditto.
7568         ("*mov<mode>_internal"): Ditto.
7569         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
7570         ("mmx_sub<mode>3"): Ditto.
7571         ("mmx_adddi3"): Remove insn pattern.
7572         ("mmx_subdi3"): Ditto.
7573         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
7574         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
7575         ("mmx_ashl<mode>3"): Ditto.
7576         ("mmx_lshrdi3"): Remove insn pattern.
7577         ("mmx_ashldi3"): Ditto.
7578         * config/i386/i386.c (classify_argument): Handle V1DImode.
7579         (function_arg_advance_32): Ditto.
7580         (function_arg_32): Ditto.
7581         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
7582         mmx_addv1di3 insn pattern.
7583         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
7584         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
7585         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
7586         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
7587         Remove definitions of built-in functions.
7588         (V1DI_type_node): New node.
7589         (v1di_ftype_v1di_int): Ditto.
7590         (v1di_ftype_v1di_v1di): Ditto.
7591         (v2si_ftype_v2si_si): Ditto.
7592         (v4hi_ftype_v4hi_di): Remove node.
7593         (v2si_ftype_v2si_di): Ditto.
7594         (ix86_init_mmx_sse_builtins): Handle V1DImode.
7595         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
7596         Redefine builtins using def_builtin_const with *_ftype_*_int node.
7597         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
7598         Add new builtins using def_builtin_const.
7599         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
7600         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
7601         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
7602         * config/i386/mmintrin.h (__v1di): New typedef.
7603         (_mm_add_si64): Cast arguments to __v1di type.
7604         (_mm_sub_si64): Ditto.
7605         (_mm_sll_pi16): Cast __count to __v4hi type.
7606         (_mm_sll_pi32): Cast __count to __v2si type.
7607         (_mm_sll_si64): Cast arguments to __v1di type.
7608         (_mm_srl_pi16): Cast __count to __v4hi type.
7609         (_mm_srl_pi32): Cast __count to __v2si type.
7610         (_mm_srl_si64): Cast arguments to __v1di type.
7611         (_mm_sra_pi16): Cast __count to __v4hi type.
7612         (_mm_sra_pi32): Cast __count to __v2si type.
7613         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
7614         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
7615         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
7616         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
7617         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
7618         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
7619         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
7620         (_mm_srai_pi32): Use __builtin_ia32_psradi.
7621         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
7622         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7623         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7624         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
7625
7626 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
7627
7628         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
7629
7630 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
7631
7632         PR target/35373
7633         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
7634         reg+const addressing for Altivec modes.  Don't generate reg+reg
7635         addressing for TFmode or TDmode quantities.
7636
7637 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
7638
7639         * c-common.c (vector_types_convertible_p): Call langhook
7640         instead of comptypes.
7641
7642 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7643
7644         PR tree-opt/35402
7645         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
7646         integral and scalar float variables which have a
7647         NULL DECL_INITIAL.
7648
7649 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
7650
7651         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
7652         dwarf_register_span hook when emitting unwind information for
7653         register-to-memory saves.
7654         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
7655         (rs6000_frame_related): Remove call to spe_synthesize_frame.
7656
7657 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
7658
7659         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
7660         for the same VAR_DECL.
7661
7662 2008-03-06  Tom Tromey  <tromey@redhat.com>
7663
7664         * treelang: Delete.
7665         * doc/standards.texi (Standards): Don't mention treelang.
7666         * doc/invoke.texi (Overall Options): Don't mention treelang.
7667         * doc/install.texi (Prerequisites): Don't mention bison or
7668         treelang.
7669         (Configuration): Don't mention treelang.
7670         (Building): Likewise.
7671         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
7672
7673 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
7674
7675         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
7676         word-extractions out of a multi-word object.
7677
7678 2008-03-06  Richard Guenther  <rguenther@suse.de>
7679
7680         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
7681         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
7682         result type and precision.
7683         * expr.c (get_inner_reference): Set unsignedp based on the result
7684         type of BIT_FIELD_REF.
7685         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
7686         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
7687         (try_instantiate_multiple_fields): Likewise.  Use the correct type
7688         for BIT_FIELD_REF.
7689         (sra_build_assignment): Likewise.
7690         (sra_build_elt_assignment): Likewise.
7691         (sra_explode_bitfield_assignment): Likewise.
7692         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
7693         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
7694         set BIT_FIELD_REF_UNSIGNED.
7695         (vectorizable_load): Likewise.
7696
7697 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
7698
7699         * cse.c (cse_extended_basic_block): Invalidate artificial defs
7700         at bb start.
7701
7702 2008-03-06  Richard Guenther  <rguenther@suse.de>
7703
7704         * alias.c (struct alias_set_entry): Move has_zero_child field
7705         to pack with alias_set.
7706
7707 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
7708
7709         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7710         32bit host.
7711
7712 2008-03-05  Ian Lance Taylor  <iant@google.com>
7713
7714         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
7715
7716 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
7717
7718         * fwprop.c (update_df): Support width and offset parameters of
7719         df_ref_create.
7720         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
7721         global_conflicts): Change DF_REF_EXTRACT to either
7722         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7723         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7724         * df-scan.c (df_ref_record, df_defs_record,
7725         df_ref_create_structure, df_def_record_1, df_uses_record,
7726         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
7727         df_bb_refs_collect, df_entry_block_defs_collect,
7728         df_exit_block_uses_collect): Support new width and offset fields.
7729         (ref_extract_pool): New storage pool.
7730         (df_free_ref): New function.
7731         (df_reg_chain_unlink, df_free_collection_rec,
7732         df_sort_and_compress_refs): Call df_free_ref.
7733         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
7734         of df_ref_extract.
7735         (df_ref_create_structure): Allocate df_ref_extract if offset and
7736         width fields are used.
7737         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
7738         (df_uses_record): Get offset and width from ZERO_EXTRACT 
7739         and SIGN_EXTRACT.
7740         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
7741         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7742         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7743         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
7744         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7745         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7746         (df_ref_extract): New structure.
7747         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
7748         (df_ref_create): Add width and offset parameters.
7749         
7750 2008-03-05  Richard Guenther  <rguenther@suse.de>
7751
7752         * tree-ssa-structalias.c (get_constraint_for_component_ref):
7753         Use ranges_overlap_p.
7754         (offset_overlaps_with_access): Rename
7755         to ranges_overlap_p and move ...
7756         * tree-flow-inline.h (ranges_overlap_p): ... here.
7757
7758         * tree.h (get_inner_reference, handled_component_p): Update
7759         comments.
7760
7761         * tree.h (record_component_aliases, get_alias_set,
7762         alias_sets_conflict_p, alias_sets_must_conflict_p,
7763         objects_must_conflict_p): Move declarations ...
7764         * alias.h (record_component_aliases, get_alias_set,
7765         alias_sets_conflict_p, alias_sets_must_conflict_p,
7766         objects_must_conflict_p): ... here.
7767         Include coretypes.h.
7768         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
7769
7770 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
7771
7772         * cfg.c: Include tree-flow.h.
7773         (remove_edge_raw): Call redirect_edge_var_map_clear.
7774         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
7775         * tree-flow-inline.h (redirect_edge_var_map_def): New.
7776         (redirect_edge_var_map_result): New.
7777         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
7778         PENDING_STMT use with redirect_edge_var_map_*.
7779         * tree-ssa.c (edge_var_maps): New definition.
7780         (redirect_edge_var_map_add): New.
7781         (redirect_edge_var_map_clear): New.
7782         (redirect_edge_var_map_dup): New.
7783         (redirect_edge_var_map_vector): New.
7784         (redirect_edge_var_map_destroy): New.
7785         (ssa_redirect_edge): Replace PENDING_STMT use with
7786         redirect_edge_var_map_*.
7787         (flush_pending_stmts): Same.
7788         (delete_tree_ssa): Destroy edge var map.
7789         * tree-flow.h (struct _edge_var_map): New.
7790         Define edge_var_map vector type.
7791         Declare redirect_edge_var_map_* prototypes.
7792         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
7793         * tree-cfg.c (reinstall_phi_args): Replace
7794         PENDING_STMT use with redirect_edge_var_map_*.
7795
7796 2008-03-05  Richard Guenther  <rguenther@suse.de>
7797
7798         PR tree-optimization/35472
7799         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
7800         whose single use_stmt has a overlapping set of loaded and
7801         stored symbols as that use_stmt might be a noop assignment then.
7802
7803 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
7804
7805         * gthr-rtems.h: Implement __gthread_mutex_destroy.
7806
7807 2008-03-05  Richard Guenther  <rguenther@suse.de>
7808
7809         PR c++/35336
7810         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
7811         should be constants.
7812         * tree-cfg.c (verify_expr): Verify it.
7813         * fold-const.c (fold_truthop): Remove code generating
7814         BIT_FIELD_REFs of structure bases.
7815         (fold_binary): Likewise.
7816         (fold_ternary): Position and size of BIT_FIELD_REFs are
7817         always host integers.
7818         (make_bit_field_ref): Remove.
7819         (optimize_bit_field_compare): Remove.
7820         (all_ones_mask_p): Remove.
7821
7822 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
7823
7824         PR gcc/33009
7825         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
7826         (split_block_and_df_analyze): New. Split basic block and rebuild
7827         dataflow.
7828         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
7829         SPLIT_BLOCK.
7830         (split_pattern_seq): Likewise.
7831         (erase_matching_seqs): Likewise.
7832         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
7833
7834 2008-03-04  Geoff Keating  <geoffk@apple.com>
7835
7836         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
7837         declaration and code.
7838         (tree_invalid_nonnegative_warnv_p): Likewise.
7839
7840 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
7841
7842         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
7843         examples.  Truncate option-names then causing overfull hbox.
7844
7845 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7846
7847         PR target/35222
7848         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
7849         on hpux10.
7850         * configure: Rebuilt.
7851
7852 2008-03-04  Rafael Espindola  <espindola@google.com>
7853
7854         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
7855         (tree_unary_nonnegative_warnv_p): New.
7856         (tree_binary_nonnegative_warnv_p): New.
7857         (tree_single_nonnegative_warnv_p): New.
7858         (tree_invalid_nonnegative_warnv_p): New.
7859         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
7860
7861 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7862
7863         PR 28322
7864         * opts.c (handle_option): Postpone 'unknown option' errors only for
7865         warning options.
7866
7867 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
7868
7869         PR target/35453
7870         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
7871         (_SIDD_XXX): This.
7872
7873 2008-03-04  Rafael Espindola  <espindola@google.com>
7874
7875         * fold-const.c (tree_unary_nonzero_warnv_p): New.
7876         (tree_binary_nonzero_warnv_p): New.
7877         (tree_single_nonzero_warnv_p): New.
7878         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
7879
7880 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
7881
7882         PR middle-end/35456
7883         * fold-const.c (fold_cond_expr_with_comparison): Prevent
7884         transformations for modes that have signed zeros.
7885         * ifcvt.c (noce_try_abs): Ditto.
7886
7887 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
7888
7889         * config/i386/i386.c (override_options): Force
7890         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
7891
7892 2008-03-04  Jan Hubicka  <jh@suse.cz>
7893
7894         PR c++/35262
7895         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
7896         in last commit.
7897
7898 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7899
7900         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
7901         label to probe the stack.
7902
7903 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7904
7905         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
7906         (__gthr_win32_mutex_destroy): Declare.
7907         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
7908         __gthr_win32_mutex_destroy.
7909         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
7910
7911 2008-03-03  Jan Hubicka  <jh@suse.cz>
7912
7913         PR c++/35262
7914         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
7915         aggressive on inlining cold calls.
7916
7917 2008-03-03  Richard Guenther  <rguenther@suse.de>
7918
7919         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
7920         struct copies into the expression table.
7921         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
7922         (try_to_simplify): Likewise.
7923         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
7924         integral and pointer arguments which do not change the
7925         precision to NOP_EXPRs.
7926         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
7927         VIEW_CONVERT_EXPR case.
7928
7929 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
7930
7931         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
7932         defined in a loop at depth 0 is invariant.
7933         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
7934         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
7935         be called at loop depth 0.
7936
7937 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
7938
7939         PR driver/35420
7940         * gcc.c (process_command): Update copyright notice dates.
7941         * gcov.c (print_version): Likewise.
7942         * gcov-dump.c (print_version): Likewise.
7943         * mips-tfile.c (main): Likewise.
7944         * mips-tdump.c (main): Likewise.
7945
7946 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7947
7948         PR 24924
7949         * c-common.c (flag_permissive): Delete.
7950         (constant_expression_warnings): Check flags first.
7951         (constant_expression_error): New.
7952         * c-common.h (flag_permissive): Delete.
7953         (constant_expression_error): Declare.
7954         * flags.h (flag_permissive): Declare. Update description.
7955         * diagnostic.c (pedwarn): Update.
7956         (permerror): New.
7957         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
7958         (permissive_error_kind): New.
7959         * toplev.c (flag_permissive): Define. Update description.
7960         * toplev.h (permissive_error_kind): Declare.
7961         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
7962         (pedwarn_c90): Use pedantic_warning_kind.
7963         * c-opts.c (c_common_post_options): flag_permissive does not affect
7964         flag_pedantic_errors.
7965
7966 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
7967
7968         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
7969         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
7970         __absvsi2, __absvDI2): Use unsigned arithmetic.
7971
7972 2008-03-02  Andi Kleen  <ak@suse.de>
7973             Richard Guenther  <rguenther@suse.de>
7974
7975         * struct-equiv.c: Remove file.
7976         * cfg_cleanup.c (condjump_equiv_p): Remove.
7977         * Makefile.in (OBJS-common): Remove struct-equiv.o.
7978         (struct-equiv.o): Remove rule.
7979         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
7980         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
7981         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
7982
7983 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7984
7985         * ifcvt.c (noce_process_if_block): Try to handle only the then
7986         block if the else block exists but isn't suitable.
7987
7988 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
7989
7990         PR gcc/35063
7991         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
7992         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
7993         regression from previous patch.
7994
7995 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
7996
7997         PR gcc/35063
7998         * gthr.h: Add __gthread_mutex_destroy as a function that must be
7999         implemented.
8000         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
8001         * gthr-single.h (__gthread_mutex_destroy): Likewise.
8002         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
8003         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
8004         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
8005         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
8006         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
8007         (__gthread_mutex_destroy_function): Rename to
8008         __gthread_mutex_destroy.
8009         * gthr-dce.h (__gthread_mutex_destroy): Call
8010         pthread_mutex_destroy.
8011         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
8012         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
8013         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
8014
8015 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8016
8017         * df-scan.c (df_ref_chain_change_bb): Simplify.
8018         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
8019         set_block_for_insn if there's any change.
8020         * df.h ((df_insn_change_bb): Fix prototype.
8021         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
8022         df_insn_change_bb, don't call set_block_for_insn.
8023         * emit-rtl.c (reorder_insns): Likewise.
8024         * haifa-sched.c (move_insn): Likewise.
8025
8026 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8027
8028         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
8029
8030 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8031
8032         * tree-flow-inline.h (next_readonly_imm_use): Return
8033         NULL_USE_OPERAND_P after the end.
8034
8035 2008-03-01  Richard Guenther  <rguenther@suse.de>
8036
8037         PR tree-optimization/35411
8038         * tree-sra.c (sra_build_assignment): Split conversion to
8039         final type to a separate statement if we are not assigning
8040         to a register.
8041
8042 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8043
8044         * fold-const.c (fold_convertible_p): Correct the logic to follow
8045         that in fold_convert().
8046
8047 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
8048
8049         PR c++/35315
8050         * tree-inline.c (build_duplicate_type): When we make a
8051         duplicate type, make it unique in the canonical types system.
8052
8053 2008-02-29  Tom Tromey  <tromey@redhat.com>
8054
8055         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
8056         input_file_stack_history, input_file_stack_restored): Remove.
8057         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
8058         * input.h (struct file_stack): Remove.
8059         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
8060         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
8061         Likewise.
8062         * diagnostic.h (struct diagnostic_context) <last_module>: Change
8063         type.
8064         (diagnostic_last_module_changed): Add 'map' argument.
8065         (diagnostic_set_last_function): Likewise.
8066         * diagnostic.c (undiagnostic_report_current_module): Iterate using
8067         line map, not input_file_stack.
8068         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
8069
8070 2008-02-29  Paul Brook  <paul@codesourcery.com>
8071
8072         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
8073
8074 2008-02-29  Paul Brook  <paul@codesourcery.com>
8075
8076         * config/arm/ieee754-df.S (muldf3): Use RET macros.
8077
8078 2008-02-29  Richard Guenther  <rguenther@suse.de>
8079
8080         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
8081         vn_lookup_or_add.
8082         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
8083         value for comparing for a store match.
8084         (simplify_unary_expression): Do nothing for SSA_NAMEs.
8085         (try_to_simplify): Do not do a full-blown reference lookup.
8086
8087 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
8088
8089         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
8090         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
8091
8092         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
8093
8094 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
8095
8096         * tree-loop-linear.c (try_interchange_loops): Compare memory access
8097         strides against cache sizes.
8098
8099 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
8100
8101         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
8102         constant to fpul.
8103
8104 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
8105
8106         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
8107         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
8108         is smaller than the original promoted value.
8109         (simplify_subreg): If OP is a SUBREG, try to preserve its
8110         SUBREG_PROMOTED_VAR_P information.
8111
8112 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
8113
8114         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
8115         (VN_INFO_GET): Allocate new objects on the obstack.
8116         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
8117         for rpo_numbers_temp, for consistency.
8118         (free_scc_vn): Free the obstack.
8119
8120 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
8121
8122         * doc/invoke.texi: Document -ftree-loop-distribution.
8123         * tree-loop-distribution.c: New.
8124         * tree-pass.h (pass_loop_distribution): New.
8125         * graphds.h (struct graph): Add htab_t indices.
8126         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
8127         * tree-vectorizer.c (rename_variables_in_loop): Extern.
8128         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
8129         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
8130         * tree-data-ref.c (debug_data_dependence_relations): New.
8131         (dump_data_dependence_relation): Also print data references.
8132         (free_data_ref): Extern.
8133         (same_access_functions): Moved...
8134         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
8135         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
8136         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
8137         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
8138         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
8139         (stmts_from_loop): Skip LABEL_EXPR.
8140         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
8141         New.
8142         (build_rdg): Initialize rdg->indices htab.
8143         (free_rdg, stores_from_loop, ref_base_address,
8144         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
8145         have_similar_memory_accesses_1, ref_base_address_1,
8146         remove_similar_memory_refs): New.
8147         * tree-data-ref.h: Depend on tree-chrec.h.
8148         (debug_data_dependence_relations, free_data_ref): Declared.
8149         (same_access_functions): ... here.
8150         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
8151         New.
8152         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
8153         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
8154         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
8155         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
8156         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
8157         rdg_vertex_for_stmt): Declared.
8158         (struct rdg_edge): Add level.
8159         (RDGE_LEVEL): New.
8160         (free_rdg, stores_from_loop, remove_similar_memory_refs,
8161         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
8162         Declared.
8163         (rdg_has_similar_memory_accesses): New.
8164         * tree-vect-analyze.c: Remove unused static decls.
8165         * lambda.h (dependence_level): New.
8166         * common.opt (ftree-loop-distribution): New.
8167         * tree-flow.h (mark_virtual_ops_in_bb, 
8168         slpeel_tree_duplicate_loop_to_edge_cfg,
8169         rename_variables_in_loop): Declared.
8170         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
8171         (OBJS-common): Add tree-loop-distribution.o.
8172         (tree-loop-distribution.o): New rule.
8173         * tree-cfg.c (mark_virtual_ops_in_bb): New.
8174         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
8175         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
8176
8177 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
8178
8179         PR target/33963
8180         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
8181         other than structures and unions.
8182
8183 2008-02-28  Richard Guenther  <rguenther@suse.de>
8184
8185         Revert:
8186         2008-02-26  Richard Guenther  <rguenther@suse.de>
8187
8188         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8189         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8190         (lookup_decl_from_uid): Declare.
8191         (remove_decl_from_map): Likewise.
8192         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8193         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8194         (decl_for_uid_map): New global hashtable mapping DECL_UID
8195         to the decl tree.
8196         (init_ttree): Allocate it.
8197         (insert_decl_to_uid_decl_map): New helper function.
8198         (make_node_stat): Insert new decls into the map.
8199         (copy_node_stat): Likewise.
8200         (lookup_decl_from_uid): New function.
8201         (remove_decl_from_map): Likewise.
8202         (print_decl_for_uid_map_statistics): New helper.
8203         (dump_tree_statistics): Call it.
8204
8205         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8206         (referenced_var_iterator): Adjust.
8207         (FOR_EACH_REFERENCED_VAR): Adjust.
8208         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8209         (num_referenced_vars): Adjust.
8210         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8211         (first_referenced_var): Remove.
8212         (end_referenced_vars_p): Likewise.
8213         (next_referenced_var): Likewise.
8214         (referenced_var_iterator_set): New helper function.
8215         * tree-dfa.c (referenced_var_lookup): Adjust.
8216         (referenced_var_check_and_insert): Likewise.
8217         (remove_referenced_var): Likewise.
8218         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8219         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8220         (verify_call_clobbering): Likewise.
8221         (verify_memory_partitions): Likewise.
8222         (init_tree_ssa): Allocate bitmap instead of hashtable for
8223         referenced_vars.
8224         (delete_tree_ssa): Adjust.
8225         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8226         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8227         (compute_tag_properties): Likewise.
8228         (set_initial_properties): Likewise.
8229         (find_partition_for): Likewise.
8230         (update_reference_counts): Likewise.
8231         (dump_may_aliases_for): Likewise.
8232         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8233         (add_call_clobber_ops): Likewise.
8234         (add_call_read_ops): Likewise.
8235         (get_asm_expr_operands): Likewise.
8236         * tree-into-ssa.c (dump_decl_set): Likewise.
8237         (update_ssa): Likewise.
8238         * tree-sra.c (scan_function): Likewise.
8239         (decide_instantiations): Likewise.
8240         (scalarize_parms): Likewise.
8241         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8242         (dsa_named_for): Likewise.
8243         * tree-ssa-structalias.c (update_alias_info): Likewise.
8244         (merge_smts_into): Likewise.
8245
8246 2008-02-27  David Daney  <ddaney@avtrex.com>
8247
8248         PR target/34409
8249         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
8250         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
8251         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
8252         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
8253         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
8254
8255 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
8256
8257         PR target/25477
8258         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
8259         (BUILT_IN_NEXTTOWARD): Remove.
8260         (BUILT_IN_NEXTTOWARDF): Ditto.
8261         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
8262         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
8263
8264 2008-02-27  Tom Tromey  <tromey@redhat.com>
8265
8266         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
8267         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
8268
8269 2008-02-27  Jan Beulich  <jbeulich@novell.com>
8270
8271         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
8272         update the respective field on newdecl.
8273
8274 2008-02-27  Revital Eres  <eres@il.ibm.com>
8275
8276         PR rtl-optimization/34999
8277         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
8278         crossing edges that ends with a call insn.
8279         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
8280         call insn and clear the EDGE_CROSSING flag of the crossing edge
8281         when fixing fallthru edges.
8282
8283 2008-02-27  Richard Guenther  <rguenther@suse.de>
8284
8285         PR middle-end/35390
8286         * fold-const.c (fold_unary): Return the correct argument,
8287         converted to the result type.
8288
8289 2008-02-27  Richard Guenther  <rguenther@suse.de>
8290
8291         PR middle-end/34971
8292         * expr.c (expand_expr_real_1): Assert on rotates that operate
8293         on partial modes.
8294         * fold-const.c (fold_binary): Use the types precision, not the
8295         bitsize of the mode if folding rotate expressions.  Build rotates
8296         only for full modes.
8297
8298 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
8299
8300         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
8301         and CPP_PRAGMA_EOL.
8302         * c-pragma.c (pragma_ns_name): New typedef.
8303         (registered_pp_pragmas): New variable.
8304         (c_pp_lookup_pragma): New function.
8305         (c_register_pragma_1): If flag_preprocess_only, do nothing
8306         for non-expanded pragmas, for expanded ones push pragma's
8307         namespace and name into registered_pp_pragmas vector.
8308         (c_invoke_pragma_handler): Register OpenMP pragmas even when
8309         flag_preprocess_only, don't register GCC pch_preprocess
8310         pragma if flag_preprocess_only.
8311         * c-opts.c (c_common_init): Call init_pragma even if
8312         flag_preprocess_only.
8313         * c-pragma.c (c_pp_lookup_pragma): New prototype.
8314         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
8315         cpp_register_pragma if flag_preprocess_only.
8316
8317 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8318
8319         PR c/28800
8320         * c-parser.c (c_parser_translation_unit): Warn for empty
8321         translation unit, not empty source file.
8322
8323 2008-02-26  Paul Brook  <paul@codesourcery.com>
8324
8325         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
8326         operand for Thumb-2.
8327         * config/arm/arm.h (reg_class): Add CORE_REGS.
8328         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
8329         (BASE_REG_CLASS): Use CORE_REGS.
8330         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
8331         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
8332         (REGNO_OK_FOR_INDEX_P): Exclude SP.
8333         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
8334         ARM_REGNO_OK_FOR_INDEX_P.
8335         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
8336         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
8337         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
8338         (ldm/stm peepholes): Ditto.
8339         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
8340         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
8341         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
8342         * config/arm/constraints.md: Enable "k" constraint on ARM.
8343
8344 2008-02-27  Ben Elliston  <bje@au.ibm.com>
8345
8346         * config/rs6000/rs6000.c: Annotate cache line size field in all
8347         instances of struct processor_costs.
8348
8349 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
8350
8351         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
8352         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
8353         jump_bypass): New counters.
8354         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
8355         * dce.c (gate_ud_dce): Same.
8356         (gate_fast_dce): Same.
8357         * dse.c (gate_dse1): New function.
8358         (gate_dse2): New function.
8359         (gate_dse): Merge results of new gate functions.
8360         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
8361         (gate_handle_jump_bypass): Add dbg_cnt.
8362         (gate_handle_gcse): Add dbg_cnt.
8363         * ifcvt.c (gate_handle_if_conversion): Same.
8364         (gate_handle_if_after_combine): Same.
8365         (gate_handle_if_after_reload): Same.
8366         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
8367
8368 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
8369
8370         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
8371         line sizes.
8372         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
8373
8374 2008-02-26  Jason Merrill  <jason@redhat.com>
8375
8376         PR c++/35315
8377         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
8378         alone if it's the naming decl for the type's main variant.
8379
8380 2008-02-26  Tom Tromey  <tromey@redhat.com>
8381
8382         * system.h (USE_MAPPED_LOCATION): Poison.
8383         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
8384         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
8385         (make_goto_expr_edges): Likewise.
8386         (remove_bb): Likewise.
8387         (execute_warn_function_return): Likewise.
8388         * basic-block.h (struct edge_def) <goto_locus>: Change type to
8389         location_t.
8390         * c-common.c (fname_decl): Remove old location code.
8391         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
8392         location code.
8393         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
8394         variant.
8395         (ASM_INPUT_SOURCE_LOCATION): Likewise.
8396         (gen_rtx_ASM_INPUT): Likewise.
8397         (gen_rtx_ASM_INPUT_loc): Likewise.
8398         (get_rtx_asm_OPERANDS): Remove.
8399         * cfglayout.c (insn_locators_alloc): Remove old location code.
8400         (set_curr_insn_source_location): Likewise.
8401         (curr_insn_locator): Likewise.
8402         * print-tree.c (print_node): Remove old location code.
8403         * tree-mudflap.c (mf_varname_tree): Remove old location code.
8404         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
8405         * cfgexpand.c (expand_gimple_cond_expr): Don't use
8406         location_from_locus.
8407         (construct_exit_block): Remove old location code.
8408         * emit-rtl.c (force_next_line_note): Remove old location code.
8409         * profile.c (branch_prob): Remove old location code.
8410         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
8411         LOC_LINE): Remove old-location variants.
8412         * langhooks.c (lhd_print_error_function): Remove old location
8413         code.
8414         * configure, config.in: Rebuilt.
8415         * configure.ac (--enable-mapped-location): Remove.
8416         * c-decl.c (c_init_decl_processing): Remove old location code.
8417         (finish_function): Likewise.
8418         * recog.c (decode_asm_operands): Remove old location code.
8419         * c-pch.c (c_common_read_pch): Remove old location code.
8420         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
8421         variants.
8422         * gimple-low.c (lower_function_body): Remove old location code.
8423         * toplev.c (unknown_location): Remove.
8424         (push_srcloc): Remove old-location variant.
8425         (process_options): Remove old location code.
8426         (lang_dependent_init): Likewise.
8427         * input.h (UNKNOWN_LOCATION): Move definition.
8428         (location_t): Undeprecate.
8429         (source_locus): Remove.
8430         (location_from_locus): Remove.
8431         (struct location_s): Remove.
8432         Remove all old-location code.
8433         (input_line, input_filename): Remove.
8434         * final.c (final_scan_insn): Remove old location code.
8435         * diagnostic.c (diagnostic_build_prefix): Remove
8436         USE_MAPPED_LOCATION test.
8437         * tree.h (gimple_stmt) <locus>: Now a location_t.
8438         (tree_exp) <locus>: Likewise.
8439         (DECL_IS_BUILTIN): Remove old-location variant.
8440         (annotate_with_file_line, annotate_with_locus): Likewise.
8441         (expr_locus, set_expr_locus): Update.
8442         * tree.c (build1_stat): Remove old location code.
8443         (last_annotated_node): Remove.
8444         (annotate_with_file_line): Remove old-location variant.
8445         (annotate_with_locus): Likewise.
8446         (expr_location): Remove old location code.
8447         (set_expr_location): Likewise.
8448         (expr_has_location): Likewise.
8449         (expr_locus): Likewise.
8450         (set_expr_locus): Likewise.
8451         (expr_filename): Don't use location_from_locus.
8452         (expr_lineno): Likewise.
8453         * rtl-error.c (location_for_asm): Remove old location code.
8454         * c-lex.c (cb_line_change): Remove old location code.
8455         (fe_file_change): Likewise.
8456         (cb_def_pragma): Likewise.
8457         (c_lex_with_flags): Likewise.
8458         * gengtype.c (do_typedef): Don't special-case location types.
8459         (define_location_structures): Remove.
8460         (main): Don't call define_location_structures.
8461         * tree-pretty-print.c (dump_implicit_edges): Remove old location
8462         code.
8463
8464 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8465
8466         PR 26264
8467         * builtins.def (BUILT_IN_STDARG_START): Remove.
8468         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
8469         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
8470         * tree-inline.c (inline_forbidden_p_1): Likewise.
8471         
8472 2008-02-26  Richard Guenther  <rguenther@suse.de>
8473
8474         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8475         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8476         (lookup_decl_from_uid): Declare.
8477         (remove_decl_from_map): Likewise.
8478         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8479         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8480         (decl_for_uid_map): New global hashtable mapping DECL_UID
8481         to the decl tree.
8482         (init_ttree): Allocate it.
8483         (insert_decl_to_uid_decl_map): New helper function.
8484         (make_node_stat): Insert new decls into the map.
8485         (copy_node_stat): Likewise.
8486         (lookup_decl_from_uid): New function.
8487         (remove_decl_from_map): Likewise.
8488         (print_decl_for_uid_map_statistics): New helper.
8489         (dump_tree_statistics): Call it.
8490
8491         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8492         (referenced_var_iterator): Adjust.
8493         (FOR_EACH_REFERENCED_VAR): Adjust.
8494         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8495         (num_referenced_vars): Adjust.
8496         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8497         (first_referenced_var): Remove.
8498         (end_referenced_vars_p): Likewise.
8499         (next_referenced_var): Likewise.
8500         (referenced_var_iterator_set): New helper function.
8501         * tree-dfa.c (referenced_var_lookup): Adjust.
8502         (referenced_var_check_and_insert): Likewise.
8503         (remove_referenced_var): Likewise.
8504         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8505         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8506         (verify_call_clobbering): Likewise.
8507         (verify_memory_partitions): Likewise.
8508         (init_tree_ssa): Allocate bitmap instead of hashtable for
8509         referenced_vars.
8510         (delete_tree_ssa): Adjust.
8511         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8512         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8513         (compute_tag_properties): Likewise.
8514         (set_initial_properties): Likewise.
8515         (find_partition_for): Likewise.
8516         (update_reference_counts): Likewise.
8517         (dump_may_aliases_for): Likewise.
8518         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8519         (add_call_clobber_ops): Likewise.
8520         (add_call_read_ops): Likewise.
8521         (get_asm_expr_operands): Likewise.
8522         * tree-into-ssa.c (dump_decl_set): Likewise.
8523         (update_ssa): Likewise.
8524         * tree-sra.c (scan_function): Likewise.
8525         (decide_instantiations): Likewise.
8526         (scalarize_parms): Likewise.
8527         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8528         (dsa_named_for): Likewise.
8529         * tree-ssa-structalias.c (update_alias_info): Likewise.
8530         (merge_smts_into): Likewise.
8531
8532 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8533
8534         PR 34351
8535         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
8536         * c-opts.c (c_common_handle_option): Wall enables
8537         Wvolatile-register-var.
8538         * common.opt: Move Wvolatile-register-var to...
8539         * c.opt: ...here.
8540         
8541 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8542
8543         * common.opt (Wlarger-than=): New.
8544         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
8545         -Wlarger-than=.
8546         * opts.c (common_handle_option): Handle -Wlarger-than=.
8547         * optc-gen.awk: Likewise.
8548         * opth-gen.awk: Likewise.
8549         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
8550         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8551         
8552 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8553
8554         * c-common.c (match_case_to_enum_1): Add appropriate
8555         OPT_W* parameter to warning.
8556         (c_do_switch_warnings): Likewise.
8557         * c-typeck.c (warning_init): Add one more parameter following
8558         'warning' function.
8559         (push_init_level): Update call to warning_init.
8560         (pop_init_level): Likewise.
8561         (add_pending_init): Likewise.
8562         (output_init_element: Likewise.
8563
8564 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8565
8566         PR 28322
8567         * toplev.c (toplev_main): If there are warnings or error, print
8568         errors for ignored options.
8569         * opts.c (ignored_options): New static variable.
8570         (postpone_unknown_option_error): New.
8571         (print_ignored_options): New.
8572         (handle_option): Postpone errors for unknown -Wno-* options.
8573         * opts.h (print_ignored_options): Declare.
8574         
8575 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
8576
8577         * config/mips/mips.md (loadgp_blockage, blockage): Change type
8578         to "ghost".
8579
8580 2008-02-25  Richard Guenther  <rguenther@suse.de>
8581
8582         Revert:
8583         2008-02-25  Richard Guenther  <rguenther@suse.de>
8584
8585         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8586         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8587         (lookup_decl_from_uid): Declare.
8588         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8589         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8590         (decl_for_uid_map): New global hashtable mapping DECL_UID
8591         to the decl tree.
8592         (init_ttree): Allocate it.
8593         (insert_decl_to_uid_decl_map): New helper function.
8594         (make_node_stat): Insert new decls into the map.
8595         (copy_node_stat): Likewise.
8596         (lookup_decl_from_uid): New function.
8597         (print_decl_for_uid_map_statistics): New helper.
8598         (dump_tree_statistics): Call it.
8599
8600         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8601         (referenced_var_iterator): Adjust.
8602         (FOR_EACH_REFERENCED_VAR): Adjust.
8603         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8604         (num_referenced_vars): Adjust.
8605         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8606         (first_referenced_var): Remove.
8607         (end_referenced_vars_p): Likewise.
8608         (next_referenced_var): Likewise.
8609         (referenced_var_iterator_set): New helper function.
8610         * tree-dfa.c (referenced_var_lookup): Adjust.
8611         (referenced_var_check_and_insert): Likewise.
8612         (remove_referenced_var): Likewise.
8613         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8614         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8615         (verify_call_clobbering): Likewise.
8616         (verify_memory_partitions): Likewise.
8617         (init_tree_ssa): Allocate bitmap instead of hashtable for
8618         referenced_vars.
8619         (delete_tree_ssa): Adjust.
8620         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8621         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8622         (compute_tag_properties): Likewise.
8623         (set_initial_properties): Likewise.
8624         (find_partition_for): Likewise.
8625         (update_reference_counts): Likewise.
8626         (dump_may_aliases_for): Likewise.
8627         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8628         (add_call_clobber_ops): Likewise.
8629         (add_call_read_ops): Likewise.
8630         (get_asm_expr_operands): Likewise.
8631         * tree-into-ssa.c (dump_decl_set): Likewise.
8632         (update_ssa): Likewise.
8633         * tree-sra.c (scan_function): Likewise.
8634         (decide_instantiations): Likewise.
8635         (scalarize_parms): Likewise.
8636         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8637         (dsa_named_for): Likewise.
8638         * tree-ssa-structalias.c (update_alias_info): Likewise.
8639         (merge_smts_into): Likewise.
8640
8641 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8642
8643         PR fortran/29549
8644         * doc/invoke.texi (-fcx-limited-range): Document new option.
8645         * toplev.c (process_options): Handle -fcx-fortran-rules.
8646         * common.opt: Add documentation for -fcx-fortran-rules.
8647
8648 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8649
8650         PR c/35162
8651         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
8652         actual behaviour and C99.
8653         
8654 2008-02-26  Ben Elliston  <bje@au.ibm.com>
8655
8656         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
8657         (ASM_CPU_POWER6_SPEC): Likewise.
8658         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
8659         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
8660         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
8661
8662 2008-02-25  Richard Guenther  <rguenther@suse.de>
8663
8664         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8665         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8666         (lookup_decl_from_uid): Declare.
8667         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8668         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8669         (decl_for_uid_map): New global hashtable mapping DECL_UID
8670         to the decl tree.
8671         (init_ttree): Allocate it.
8672         (insert_decl_to_uid_decl_map): New helper function.
8673         (make_node_stat): Insert new decls into the map.
8674         (copy_node_stat): Likewise.
8675         (lookup_decl_from_uid): New function.
8676         (print_decl_for_uid_map_statistics): New helper.
8677         (dump_tree_statistics): Call it.
8678
8679         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8680         (referenced_var_iterator): Adjust.
8681         (FOR_EACH_REFERENCED_VAR): Adjust.
8682         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8683         (num_referenced_vars): Adjust.
8684         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8685         (first_referenced_var): Remove.
8686         (end_referenced_vars_p): Likewise.
8687         (next_referenced_var): Likewise.
8688         (referenced_var_iterator_set): New helper function.
8689         * tree-dfa.c (referenced_var_lookup): Adjust.
8690         (referenced_var_check_and_insert): Likewise.
8691         (remove_referenced_var): Likewise.
8692         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8693         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8694         (verify_call_clobbering): Likewise.
8695         (verify_memory_partitions): Likewise.
8696         (init_tree_ssa): Allocate bitmap instead of hashtable for
8697         referenced_vars.
8698         (delete_tree_ssa): Adjust.
8699         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8700         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8701         (compute_tag_properties): Likewise.
8702         (set_initial_properties): Likewise.
8703         (find_partition_for): Likewise.
8704         (update_reference_counts): Likewise.
8705         (dump_may_aliases_for): Likewise.
8706         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8707         (add_call_clobber_ops): Likewise.
8708         (add_call_read_ops): Likewise.
8709         (get_asm_expr_operands): Likewise.
8710         * tree-into-ssa.c (dump_decl_set): Likewise.
8711         (update_ssa): Likewise.
8712         * tree-sra.c (scan_function): Likewise.
8713         (decide_instantiations): Likewise.
8714         (scalarize_parms): Likewise.
8715         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8716         (dsa_named_for): Likewise.
8717         * tree-ssa-structalias.c (update_alias_info): Likewise.
8718         (merge_smts_into): Likewise.
8719
8720 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
8721
8722         PR target/35258
8723         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
8724         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
8725         * alias.h (nonoverlapping_memrefs_p): Likewise.
8726
8727 2008-02-25  Jan Beulich  <jbeulich@novell.com>
8728
8729         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
8730         * config/i386/netware-libgcc.exp: Add __bswap?i2,
8731         __emultls_get_address, __emultls_register_common,
8732         __floatundi?f, and _Unwind_GetIPInfo.
8733         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
8734         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
8735         (gen_regparm_prefix): Likewise.
8736         (i386_nlm_encode_section_info): Sync with
8737         config/i386/winnt.c:i386_pe_encode_section_info().
8738         (i386_nlm_maybe_mangle_decl_assembler_name): New.
8739         i386_nlm_mangle_decl_assembler_name): New.
8740         (netware_override_options): New.
8741         * config/i386/netware.h (netware_override_options): Declare.
8742         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
8743         (i386_nlm_mangle_decl_assembler_name): Declare.
8744         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
8745
8746 2008-02-25  Ben Elliston  <bje@au.ibm.com>
8747
8748         PR other/32948
8749         * c-decl.c (grokdeclarator): Remove unused local variables
8750         `typedef_type' and `type_as_written'.
8751         * bb-reorder.c
8752         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
8753         unused local variable `has_hot_blocks'.
8754         (fix_crossing_conditional_branches): Remove unused local variable
8755         `prev_bb'.
8756         
8757 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
8758
8759         PR middle-end/19984
8760         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
8761         using DEF_C99_BUILTIN.
8762         (BUILT_IN_NANF): Ditto.
8763         (BUILT_IN_NANL): Ditto.
8764
8765 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
8766             Revital Eres  <eres@il.ibm.com>
8767
8768         * modulo-sched.c (calculate_must_precede_follow): Address TODO
8769         regarding the order of two dependent insns in the same row.
8770
8771 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
8772
8773         * stor-layout.c (layout_decl): Do not bump the alignment of a
8774         bit-field to more than byte alignment if it is packed.
8775
8776 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
8777
8778         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
8779         e300c2 and e300c3.
8780
8781 2008-02-24  Diego Novillo  <dnovillo@google.com>
8782
8783         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
8784
8785         PR 33738
8786         * tree-vrp.c (vrp_evaluate_conditional): With
8787         -Wtype-limits, emit a warning when comparing against a
8788         constant outside the natural range of OP0's type.
8789         * c.opt (Wtype-limits): Move ...
8790         * common.opt (Wtype-limits): ... here.
8791
8792 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
8793
8794         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
8795         * config/rs6000/e300c2c3.md: New file.
8796         * config/rs6000/rs6000.c (processor_costs): Add new costs for
8797         e300c2 and e300c3.
8798         (rs6000_override_options): Add e300c2 and e300c3 cases to
8799         processor_target_table. Do not allow usage of Altivec or Spe
8800         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
8801         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
8802         * config/rs6000/rs6000.h (processor_type): Add
8803         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
8804         (ASM_CPU_SPEC): Add e300c2 and e300c3.
8805         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
8806         and ppce300c3. Include e300c2c3.md.
8807
8808 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
8809
8810         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
8811         instead of TARGET_STRICT_ALIGN.
8812
8813 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
8814
8815         * explow.c (memory_address): Assert that the generated address is
8816         valid.
8817
8818 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8819
8820         PR target/25477
8821         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
8822         * config/darwin-ppc-ldouble-patch.def: New file.
8823         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
8824         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
8825         SUBTARGET_INIT_BUILTINS if defined.
8826         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
8827         New functions.
8828
8829 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8830
8831         PR rtl-opt/33512
8832         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
8833         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
8834
8835 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8836
8837         PR pch/35027
8838         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
8839         file" warning condtional on -Winvalid-PCH.
8840
8841 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
8842
8843         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
8844
8845 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
8846
8847         PR target/22076
8848         PR target/34256 
8849         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
8850         prevent reload from using MMX registers.
8851         (*mov<mode>_internal): Ditto.
8852         (*movv2sf_internal_rex64): Ditto.
8853         (*movv2sf_internal): Ditto.
8854
8855 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8856
8857         PR documentation/31569
8858         * doc/install.texi2html: Use makeinfo --no-number-sections.
8859
8860 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8861
8862         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
8863         ensure that we can address an entire entity > 8 bytes.  Don't
8864         generate reg+reg addressing for such data.
8865
8866 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8867
8868         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
8869         strings when optimizing for size, unless the target cares about
8870         alignment.
8871
8872 2008-02-22  Tom Tromey  <tromey@redhat.com>
8873
8874         * regclass.c (current_pass): Remove declaration.
8875
8876 2008-02-22  Anatoly Sokolov <aesok@post.ru>
8877
8878         * config/avr/libgcc.S (__RAMPZ__): Define.
8879         (__do_copy_data): Add for devices with 128KB code memory.
8880
8881 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8882
8883         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
8884         Use spe_abi.
8885         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
8886
8887 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
8888
8889         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
8890         GENNONACR_REGS.
8891
8892 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8893
8894         PR c/19999
8895         * c-typeck.c (build_binary_op): Warn about floating point
8896         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
8897
8898 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
8899
8900         PR target/34526
8901         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
8902         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
8903         add vrsave.
8904         (rs6000_override_options): Set altivec_abi as default, not override,
8905         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
8906         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
8907         is used; use new member spe_abi.
8908         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
8909         spe_abi and altivec_abi.
8910
8911 2008-02-22  Tomas Bily  <tbily@suse.cz>
8912
8913         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
8914
8915 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8916
8917         PR bootstrap/35273
8918         * config.build (build_file_translate): Set to `CMD //c' only if
8919         it works.
8920         * Makefile.in (build_file_translate): Improve comment.
8921
8922 2008-02-21  Jan Hubicka  <jh@suse.cz>
8923
8924         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
8925         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
8926         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
8927
8928 2008-02-21  Michael Matz  <matz@suse.de>
8929
8930         PR target/35264
8931         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
8932
8933 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
8934
8935         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
8936         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
8937         as insn constraint.
8938         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
8939         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
8940         SSE_VEC_FLOAT_MODE_P as insn constraint.
8941         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
8942         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
8943         sse4a_movntdf using MODEF mode iterator.
8944         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
8945         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
8946         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
8947         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
8948         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
8949         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
8950         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
8951
8952 2008-02-21  Richard Guenther  <rguenther@suse.de>
8953
8954         * tree.def (PAREN_EXPR): New tree code.
8955         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
8956         and PAREN_EXPR.
8957         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
8958         * expr.c (expand_expr_real_1): Likewise.
8959         * tree-inline.c (estimate_num_insns_1): Likewise.
8960         * tree-complex.c (expand_complex_move): Likewise.
8961         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
8962         as plain x.
8963
8964 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8965
8966         PR target/35225
8967         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
8968
8969 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8970
8971         PR target/35190
8972         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
8973
8974         * config/sh/sh.c (find_barrier): Don't go past
8975         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
8976
8977 2008-02-20  DJ Delorie  <dj@redhat.com>
8978
8979         * config/h8300/h8300.md (insv): Force source operand to be a register.
8980
8981         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
8982         as a jump, not as a plain insn.
8983         
8984 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
8985
8986         * doc/invoke.texi (Warning Options): Add new option
8987         -Wframe-larger-than=.
8988         (-Wframe-larger-than): Document.
8989
8990         * flags.h (warn_frame_larger_than, frame_larger_than_size):
8991         Add declarations for new option variables.
8992
8993         * final.c (final_start_function): Check the frame size
8994         before emission and issue a Wframe-larger-than warning.
8995
8996         * opts.c (warn_frame_larger_than, frame_larger_than_size):
8997         Add definitions for new option variables.
8998         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
8999
9000         * common.opt (Wframe-larger-than=): New option.
9001
9002 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
9003
9004         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
9005         (<sse>_div<mode>3): Ditto.
9006         (<sse>_vmdiv<mode>3): Ditto.
9007         (<sse>_vmsqrt<mode>2): Ditto.
9008         (*smax<mode>3): Ditto.
9009         (sse5_frcz<mode>2): Ditto.
9010         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
9011         as insn constraint.
9012
9013 2008-02-20  Richard Guenther  <rguenther@suse.de>
9014
9015         PR middle-end/35265
9016         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
9017         be happy with INTEGRAL_TYPE_P.
9018
9019 2008-02-20  Richard Guenther  <rguenther@suse.de>
9020
9021         * fold-const.c (split_tree): Associate floatig-point expressions
9022         if flag_associative_math is set.
9023
9024 2008-02-20  Richard Guenther  <rguenther@suse.de>
9025
9026         * tree.h (fold_real_zero_addition_p): Declare.
9027         * fold-const.c (fold_real_zero_addition_p): Export.
9028         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
9029         floating-point operations with zero and one.
9030
9031 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
9032
9033         * doc/install.texi: Correct references to CFLAGS, replacing them
9034         with BOOT_CFLAGS.  Document flags used during bootstrap for
9035         target libraries.
9036                                 
9037 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
9038
9039         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
9040         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
9041         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
9042         insn constraint.
9043         (smin<mode>3): Ditto from similar patterns.
9044         (smax<mode>3): Ditto.
9045         (*ieee_smin<mode>3): Ditto.
9046         (*ieee_smax<mode>3): Ditto.
9047         * config/i386/sse.md (sse): New mode attribute.
9048         (mov<mode>): Macroize expander from movv4sf and movv2df using
9049         SSEMODEF2P mode iterator.
9050         (<sse>_movnt<mode>): Ditto from similar patterns. Use
9051         SSE_VEC_FLOAT_MODE_P as insn constraint.
9052         (storent<mode>): Ditto.
9053         (storent<mode>): Macroize expander from storentsf and storentdf using
9054         MODEF mode iterator.
9055         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
9056         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
9057         (abs<mode>2): Ditto from similar patterns.
9058         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
9059         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
9060         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
9061         (<sse>_vmsqrt<mode>2): Ditto.
9062         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
9063         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
9064         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
9065         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
9066         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
9067         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
9068         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
9069         insn constraint.
9070         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
9071         iterator and SSE_FLOAT_MODE_P as insn constraint.
9072         (<sse>_ucomi): Ditto from similar patterns.
9073         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
9074         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
9075         SSE_VEC_FLOAT_MODE_P as insn constraint.
9076         (vcond<mode>): Ditto from similar patterns.
9077         (and<mode>3, *and<mode>3): Ditto.
9078         (<sse>_nand<mode>3): Ditto.
9079         (ior<mode>3, *ior<mode>3): Ditto.
9080         (xor<mode>3, *xor<mode>3): Ditto.
9081         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
9082         iterator and SSE_FLOAT_MODE_P as insn constraint.
9083         (*nand<mode>3): Ditto from similar patterns.
9084         (*ior<mode>3): Ditto.
9085         (*xor<mode>3): Ditto.
9086
9087 2008-02-20  Ira Rosen  <irar@il.ibm.com>
9088
9089         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
9090         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
9091         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
9092
9093 2008-02-19  Jan Hubicka  <jh@suse.cz>
9094
9095         * predict.c (tree_bb_level_predictions): Remove variable next
9096         mistakely introduced by previous commit.
9097
9098 2008-02-19  Jan Hubicka  <jh@suse.cz>
9099
9100         * predict.c (predict_paths_leading_to): Rewrite.
9101         (predict_paths_for_bb): New.
9102         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
9103
9104 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9105
9106         PR bootstrap/35218
9107         * Makefile.in (build_file_translate): New.
9108         (gcc-vers.texi): Use it for translating $(abs_srcdir).
9109         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
9110         * configure.ac (build_file_translate): Substitute it.
9111         * configure: Regenerate.
9112
9113 2008-02-19  Jan Hubicka  <jh@suse.cz>
9114
9115         PR rtl-optimization/34408
9116         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
9117         invalid sharing.
9118
9119 2008-02-19  Jan Hubicka  <jh@suse.cz>
9120
9121         PR middle-end/28779
9122         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
9123         call_expr.
9124
9125 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
9126
9127         PR Ada/35186
9128         * config/i386/i386-modes.def: Revert the last DI alignment
9129         change until Ada people can look into it.
9130
9131 2008-02-19  Nick Clifton  <nickc@redhat.com>
9132
9133         * opts.c (print_specific_help): Fix typo in --help text.
9134
9135 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
9136
9137         PR target/35239
9138         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
9139         32-bit inline asm without asm alternatives for host GCC < 3.0.
9140
9141 2008-02-19  Richard Guenther  <rguenther@suse.de>
9142
9143         PR tree-optimization/34989
9144         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
9145         Allow propagation to INDIRECT_REF if we can simplify only.
9146
9147 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9148
9149         * c-common.c (warn_for_collisions_1): Use appropriate option when
9150         warning.
9151
9152 2008-02-19  Nick Clifton  <nickc@redhat.com>
9153
9154         PR other/31349
9155         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
9156         (handle_options): Fix indentation.
9157         (print_filtered_help): If no language-specific options were
9158         displayed tell the user how to list all the options supported by
9159         the language's front-end.
9160         (print_specific_help): Fix indentation and remove duplicate line.
9161         (common_handle_option): Handle the -v option.
9162         For --help enable the display of undocumented options if the -v
9163         switch has been included on the command line.
9164         For --help= check for overlaps in the arguments between the option
9165         classes and the language names and issue a warning when they
9166         cannot be disambiguated.
9167         * c.opt (v): Pass on to the common option handler.
9168
9169 2008-02-19  Revital Eres  <eres@il.ibm.com> 
9170
9171         * modulo-sched.c (sms_schedule): Change dump message when
9172         create_ddg function fails.
9173         (try_scheduling_node_in_cycle): Rename row to cycle.
9174         (print_partial_schedule): Rename CYCLE to ROW.
9175
9176 2008-02-19  Christian Bruel  <christian.bruel@st.com>
9177             Zdenek Dvorak  <ook@ucw.cz>
9178
9179         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
9180
9181 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
9182
9183         PR target/33555
9184         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
9185         (*x86_movdicc_0_m1_se): Ditto.
9186
9187 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
9188
9189         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
9190         (CMPtype): Define as __gcc_CMPtype.
9191         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
9192         (CMPtype): Define as __gcc_CMPtype.
9193
9194 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
9195
9196         Support valgrind 3.3 for --enable-checking=valgrind.
9197         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
9198         here.
9199         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
9200         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
9201         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
9202         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
9203         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
9204         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
9205         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
9206         respectively.
9207         * ggc-zone.c: Similar.
9208         * ggc-page.c: Similar.
9209
9210 2008-02-19  Paul Brook  <paul@codesourcery.com>
9211
9212         PR target/35071
9213         * config/arm/ieee754-df.S: Fix do_it typo.
9214         * config/arm/ieee754-sf.S: Fix do_it typo.
9215
9216 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
9217
9218         PR target/35189
9219         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
9220         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
9221         (OPTION_MASK_ISA_SSE_SET): Likewise.
9222         (OPTION_MASK_ISA_SSE2_SET): Likewise.
9223         (OPTION_MASK_ISA_SSE3_SET): Likewise.
9224         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
9225         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
9226         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
9227         (OPTION_MASK_ISA_SSE4_SET): Likewise.
9228         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
9229         (OPTION_MASK_ISA_SSE5_SET): Likewise.
9230         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
9231         (OPTION_MASK_ISA_MMX_UNSET): Updated.
9232         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
9233         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
9234         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
9235         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
9236         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
9237         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
9238         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
9239         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
9240         (OPTION_MASK_ISA_SSE4): Removed.
9241         (ix86_handle_option): Turn on bits in ix86_isa_flags and
9242         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
9243         (override_options): Don't turn on implied SSE/MMX bits in
9244         ix86_isa_flags.
9245
9246 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
9247
9248         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
9249         32bit host.
9250
9251 2008-02-18  Joey Ye  <joey.ye@intel.com>
9252
9253         PR middle-end/34921
9254         * tree-nested.c (insert_field_into_struct): Set type alignment
9255         to field alignment if the former is less than the latter.
9256
9257 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
9258
9259         * BASE-VER: Set to 4.4.0.
9260
9261 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9262
9263         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
9264         * doc/cfg.texi: Likewise.
9265         * doc/extend.texi: Likewise.
9266         * doc/gty.texi: Likewise.
9267         * doc/invoke.texi: Likewise.
9268         * doc/loop.texi: Likewise.
9269         * doc/md.texi: Likewise.
9270         * doc/passes.texi: Likewise.
9271         * doc/rtl.texi: Likewise.
9272         * doc/sourcebuild.texi: Likewise.
9273         * doc/tm.texi: Likewise.
9274         * doc/tree-ssa.texi: Likewise.
9275
9276 2008-02-17  Richard Guenther  <rguenther@suse.de>
9277
9278         PR middle-end/35227
9279         * tree-complex.c (init_parameter_lattice_values): Handle parameters
9280         without default definition.
9281
9282 2008-02-17  Richard Guenther  <rguenther@suse.de>
9283
9284         PR tree-optimization/35231
9285         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
9286         if A | B != 1.
9287
9288 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
9289
9290         Revert:
9291         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
9292         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
9293         libgcc_cmp_return mode.
9294
9295 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9296
9297         PR c/28368
9298         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
9299
9300 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
9301
9302         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
9303         multilibs.
9304
9305 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9306
9307         * doc/c-tree.texi: Use `@.' where appropriate.
9308         * doc/extend.texi: Likewise.
9309         * doc/install.texi: Likewise.
9310         * doc/invoke.texi: Likewise.
9311         * doc/loop.texi: Likewise.
9312         * doc/makefile.texi: Likewise.
9313         * doc/md.texi: Likewise.
9314         * doc/passes.texi: Likewise.
9315         * doc/standards.texi: Likewise.
9316         * doc/tm.texi: Likewise.
9317
9318 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
9319
9320         PR middle-end/35196
9321         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
9322         in entry_bb.
9323         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
9324         rather than in entry_bb.
9325
9326 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9327
9328         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
9329         libgcc_cmp_return mode.
9330
9331 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
9332
9333         PR middle-end/35130
9334         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
9335         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
9336
9337 2008-02-15  Richard Guenther  <rguenther@suse.de>
9338             Zdenek Dvorak  <ook@ucw.cz>
9339
9340         PR tree-optimization/35164
9341         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
9342         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
9343         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
9344         Only propagate addresses which do not have abnormal SSA_NAMEs
9345         in their operands.
9346
9347 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
9348
9349         PR target/35088
9350         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
9351
9352 2008-02-15  Jan Hubicka  <jh@suse.cz>
9353
9354         PR middle-end/35149
9355         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
9356
9357 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9358
9359         PR middle-end/34621
9360         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
9361         when calculating alignment_pad.
9362
9363 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9364
9365         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
9366         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
9367         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
9368         and STACK_BOUNDARY define.
9369
9370 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
9371
9372         PR preprocessor/35061
9373         * c-pragma.c (handle_pragma_pop_macro): Check that
9374         pushed_macro_table has been allocated.
9375
9376 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
9377
9378         PR middle-end/35136
9379         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
9380         (force_gimple_operand): Likewise.
9381         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
9382         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
9383         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
9384         (find_interesting_uses_address): Check addressability and alignment
9385         of the base expression only after substituting bases of IVs into it.
9386
9387 2008-02-14  Michael Matz  <matz@suse.de>
9388
9389         PR target/34930
9390         * function.c (instantiate_virtual_regs_in_insn): Reload address
9391         before falling back to reloading the whole operand.
9392
9393 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
9394
9395         * config/s390/s390.c (s390_mainpool_start): Emit the pool
9396         before the first section switch note.
9397
9398 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9399
9400         * doc/bugreport.texi: Update copyright years.
9401         * doc/c-tree.texi: Likewise.
9402         * doc/cfg.texi: Likewise.
9403         * doc/cpp.texi: Likewise.
9404         * doc/cppinternals.texi: Likewise.
9405         * doc/fragments.texi: Likewise.
9406         * doc/frontends.texi: Likewise.
9407         * doc/gcc.texi: Likewise.
9408         * doc/gty.texi: Likewise.
9409         * doc/hostconfig.texi: Likewise.
9410         * doc/implement-c.texi: Likewise.
9411         * doc/libgcc.texi: Likewise.
9412         * doc/loop.texi: Likewise.
9413         * doc/makefile.texi: Likewise.
9414         * doc/options.texi: Likewise.
9415         * doc/passes.texi: Likewise.
9416         * doc/rtl.texi: Likewise.
9417         * doc/sourcebuild.texi: Likewise.
9418         * doc/standards.texi: Likewise.
9419         * doc/tree-ssa.texi: Likewise.
9420         * doc/trouble.texi: Likewise.
9421
9422         * doc/extend.texi: Use @: or add comma where appropriate.
9423         * doc/invoke.texi: Likewise.
9424         * doc/tm.texi: Likewise.
9425
9426 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
9427
9428         PR target/34393
9429         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
9430         to a reg.
9431
9432 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
9433
9434         * doc/md.texi (clz, ctz): Add reference.
9435         * doc/rtl.texi (clz, ctz): Likewise.
9436
9437 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9438
9439         PR other/35148
9440         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
9441         srcdir.
9442
9443 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
9444
9445         * config/s390/s390.c (struct constant_pool): New field
9446         emit_pool_after added.
9447         (s390_mainpool_start): Set the emit_pool_after flag according
9448         to the section switch notes.
9449         (s390_mainpool_finish): Consider emit_pool_after when emitting
9450         the literal pool at the end of the function.
9451         (s390_chunkify_start): Force literal pool splits at section
9452         switch notes.
9453
9454 2008-02-13  Michael Matz  <matz@suse.de>
9455
9456         PR debug/35065
9457         * var-tracking.c (clobber_variable_part): Correctly traverse the
9458         list.
9459
9460 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9461
9462         PR 29673
9463         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
9464         Add -fdump-ipa-inline.
9465         * tree-dump.c (dump_files): Remove tree-inlined dump.
9466         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
9467         
9468 2008-02-12  Richard Guenther  <rguenther@suse.de>
9469
9470         PR tree-optimization/35171
9471         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
9472         default defs.
9473
9474 2008-02-12  Richard Guenther  <rguenther@suse.de>
9475
9476         PR middle-end/35163
9477         * fold-const.c (fold_widened_comparison): Use get_unwidened in
9478         value-preserving mode.  Disallow final truncation.
9479
9480 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
9481
9482         PR middle-end/35136
9483         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
9484         code from here to...
9485         (force_gimple_operand): ...here.
9486
9487 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
9488
9489         PR c++/35144
9490         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
9491         non-compatible pointers.
9492         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
9493         different FIELD_DECLs, try harder by comparing field offsets, sizes
9494         and types.
9495
9496         PR inline-asm/35160
9497         * function.c (match_asm_constraints_1): Don't replace the same input
9498         multiple times.
9499
9500 2008-02-12  Anatoly Sokolov <aesok@post.ru>
9501
9502         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
9503         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
9504         (expand_epilogue): Restore RAMPZ register.
9505         * config/avr/avr.md (RAMPZ_ADDR): New constant.
9506
9507 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
9508
9509         * config/i386/cygwin.asm: (__alloca): Correct calling
9510         convention and alignment.
9511         (__chkstk): Force 8 byte stack alignment.
9512
9513 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
9514             Richard Guenther  <rguenther@suse.de>
9515
9516         PR tree-optimization/33992
9517         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
9518         the zero we compare against.
9519
9520 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
9521
9522         PR libfortran/35063
9523         * gthr-win32.h (__gthread_mutex_destroy_function): New function
9524         to CloseHandle after unlocking to prevent accumulation of handle
9525         count.
9526
9527 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9528
9529         PR middle_end/34150
9530         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
9531         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
9532         and update LABEL_NUSES during and after reload.
9533
9534 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
9535
9536         PR middle-end/34627
9537         * combine.c (simplify_if_then_else): Make sure the comparison is
9538         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
9539
9540 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
9541
9542         PR bootstrap/35051
9543         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
9544         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
9545         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
9546         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
9547         * tree.h (get_type_static_bounds): Likewise.
9548
9549 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9550
9551         * doc/invoke.texi (Option Summary, C++ Dialect Options)
9552         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9553         Make -Wfoo language annotations match what the compiler outputs.
9554
9555 2008-02-08  Sa Liu  <saliu@de.ibm.com>
9556
9557         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
9558         intrinsics spu_convts, spu_convtu, spu_convtf.
9559
9560 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
9561
9562         * doc/extend.texi (Function Attributes) <noinline>: Mention
9563         asm ("") as method to keep calls.
9564
9565 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9566
9567         PR other/32754
9568         * doc/options.texi (Options): Replace references to opts.sh with
9569         optc-gen.awk.
9570         * opts-common.c: Likewise.
9571         * optc-gen.awk: Likewise.
9572         
9573 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
9574
9575         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
9576
9577 2008-02-07  Richard Henderson  <rth@redhat.com>
9578
9579         PR rtl-opt/33410
9580         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
9581         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
9582         funny mode.
9583
9584 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
9585
9586         PR tree-optimization/35085
9587         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
9588         for operand entry oe2 in addition to operand entry oe3 in order to
9589         expose more opportunities for vectorizer sum reduction.
9590
9591 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9592
9593         PR other/35107
9594         * Makefile.in (LIBS): Remove $(GMPLIBS).
9595         (cc1-dummy, cc1): Add $(GMPLIBS).
9596
9597 2008-02-06  Jan Hubicka  <jh@suse.cz>
9598
9599         PR target/23322
9600         * i386.md (moddf_integer): Do not produce partial memory stalls for
9601         targets where it hurts.
9602
9603 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
9604
9605         PR target/35083
9606         * optabs.c (expand_float): Do not check for decimal modes when
9607         expanding unsigned integer through signed conversion.
9608
9609 2008-02-06  Nick Clifton  <nickc@redhat.com>
9610
9611         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
9612         inside the clobber with a match_operand and duplicated operand
9613         number in the constraint.
9614         (ineqbranchsi): Delete redundant comment.
9615
9616 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
9617
9618         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
9619         builtin_define ("__USE_INIT_FINI__").
9620         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
9621         -msx multilibs.
9622         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
9623
9624 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9625
9626         PR documentation/30330
9627         * doc/invoke.texi (C++ Dialect Options)
9628         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9629         For each warning option -Wfoo that allows -Wno-foo, ensure both
9630         -Wfoo and -Wno-foo are listed in the option index.  Fix index
9631         entry of -Wswitch-default, index -Wnormalized= including the
9632         `=', and -Wlarger-than-@var{len} including @var{len}.
9633
9634 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9635
9636         * config/i386/i386.md (floatunssisf2): Use
9637         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
9638         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
9639         Macroize expander using MODEF mode iterator.
9640
9641 2008-02-05  Diego Novillo  <dnovillo@google.com>
9642
9643         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
9644
9645         PR 33738
9646         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
9647
9648 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9649
9650         PR other/35070
9651         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
9652
9653 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
9654
9655         PR target/35084
9656         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
9657         to indicate if a message should be generated.
9658         (init_cumulative_args): Updated.
9659         (function_value_32): Likewise.
9660
9661 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
9662
9663         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
9664
9665 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9666
9667         PR target/35083
9668         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
9669         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
9670
9671 2008-02-04  Diego Novillo  <dnovillo@google.com>
9672
9673         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
9674
9675         PR 33738
9676         * tree-vrp.c (vrp_evaluate_conditional): With
9677         -Wtype-limits, emit a warning when comparing against a
9678         constant outside the natural range of OP0's type.
9679
9680 2008-02-04  Richard Guenther  <rguenther@suse.de>
9681
9682         PR middle-end/33631
9683         * expr.c (count_type_elements): Give for unions instead of
9684         guessing.
9685
9686 2008-02-04  Richard Guenther  <rguenther@suse.de>
9687
9688         PR middle-end/35043
9689         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
9690         to TYPE_DOMAINs base type instead of using bitsizetype here.
9691
9692 2008-02-03  Jason Merrill  <jason@redhat.com>
9693
9694         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
9695
9696 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9697
9698         PR other/29972
9699         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
9700         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
9701         (RS/6000 and PowerPC Options): Fix typos and markup.
9702         * doc/passes.texi (Tree-SSA passes): Likewise.
9703
9704 2008-02-02  Michael Matz  <matz@suse.de>
9705
9706         PR target/35045
9707         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
9708         from record_last_reg_set_info.
9709         (record_last_reg_set_info): Take an RTX argument, iterate over all
9710         constituent hardregs.
9711         (record_last_set_info, record_opr_changes): Change calls to
9712         new signature or to record_last_reg_set_info_regno.
9713
9714 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
9715
9716         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
9717
9718 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
9719
9720         PR rtl-optimization/34773
9721         * reg-notes.def (EQUAL): Mention significance of combination of
9722         REG_EQUAL and REG_RETVAL.
9723         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
9724         insn that has a REG_RETVAL.
9725
9726 2008-02-01  Roger Sayle  <roger@eyesopen.com>
9727
9728         PR bootstrap/33781
9729         * configure.ac (--enable-fixed-point): Disable unless explicitly
9730         requested on IRIX.
9731         * configure: Regenerate.
9732
9733 2008-02-01  Richard Guenther  <rguenther@suse.de>
9734
9735         PR other/35042
9736         * invoke.texi (-finline-limit): Remove no longer true parts
9737         of the documentation.  Note that there is no default value.
9738
9739 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
9740             Mark Mitchell  <mark@codesourcery.com>
9741             Ben Elliston  <bje@au.ibm.com>
9742
9743         PR c/29326
9744         * doc/extend.texi (Other Builtins): Document.
9745
9746 2008-01-31  Tom Browder <tom.browder@gmail.com>
9747
9748         * doc/c-tree.texi (Types): Fix grammar.
9749         (Expression trees): Ditto.
9750         * doc/passes.texi (Tree-SSA passes): Ditto.
9751         
9752         * doc/configterms.texi (Configure Terms): Fix typo.
9753         * doc/cpp.texi (Common Predefined Macros): Ditto.
9754         * doc/md.texi (Machine Constraints): Ditto.
9755         
9756         * doc/makefile.texi (Makefile): Add comma.
9757
9758 2008-01-31  Tom Browder  <tom.browder@gmail.com>
9759             Gerald Pfeifer  <gerald@pfeifer.com>
9760         
9761         * doc/sourcebuild.texi (Front End): Remove references to CVS
9762         and CVSROOT/modules.
9763         (Texinfo Manuals): Replace reference to CVS by one to SVN.
9764         (Back End): Remove reference to CVS.
9765
9766 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9767
9768         PR target/34900
9769         * config/mips/mips.c (gen_load_const_gp): New function, taking a
9770         comment from...
9771         (mips16_gp_pseudo_reg): ...here.
9772         * config/mips/mips.md (load_const_gp): Replace with...
9773         (load_const_gp_<mode>): ...this :P-based insn.
9774
9775 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9776
9777         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
9778         options. Minor fixes.
9779         (-std): Move reference to standards closer to where language
9780         standards are first mentioned.
9781         
9782 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9783
9784         PR rtl-optimization/34995
9785         * reload.c (alternative_allows_const_pool_ref): Take an rtx
9786         parameter and return a bool.  If the rtx parameter is nonnull,
9787         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
9788         (find_reloads): Update call accordingly.  Pass the new operand
9789         if it needed no address reloads, otherwise pass null.
9790
9791 2008-01-30  Richard Henderson  <rth@redhat.com>
9792
9793         PR c/34993
9794         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
9795         for unbounded arrays.
9796
9797 2008-01-30  Silvius Rus  <rus@google.com>
9798
9799         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
9800
9801 2008-01-30  Jan Hubicka  <jh@suse.cz>
9802
9803         PR target/34982
9804         * i386.c (init_cumulative_args): Use real function declaration when
9805         calling locally.
9806
9807 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
9808
9809         PR rtl-optimization/34998
9810         * global.c (build_insn_chain): Treat non-subreg_lowpart
9811         SUBREGs of pseudos as clobbering all the words covered by the
9812         SUBREG, not just all the bytes.
9813         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
9814         original df_ref rather than an extract parameter.
9815         (global_conflicts): Update call accordingly.
9816
9817 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
9818
9819         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
9820         the overflow check to make it easier to read.
9821         (__fixtfdi): Change the type of the ll member in union
9822         long_double to UDItype_x.
9823
9824 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
9825
9826         PR middle-end/34969
9827         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
9828         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
9829         * tree-inline.c (fold_marked_statements): Call
9830         cgraph_update_edges_for_call_stmt if folding a call statement.
9831         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
9832         debug_generic_stmt calls, reset it back afterwards.
9833
9834         PR c/35017
9835         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
9836         static decls.
9837         * c-typeck.c (build_external_ref): Don't pedwarn about
9838         static vars in current function's scope.
9839
9840 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
9841
9842         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
9843
9844 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
9845
9846         PR c/35002
9847         * ipa-struct-reorg.c: Fix spelling.
9848         * params.def: Ditto.
9849
9850 2008-01-29  Richard Guenther  <rguenther@suse.de>
9851
9852         PR middle-end/35006
9853         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
9854         field.
9855         * tree-inline.c (remap_type): Increment remapping_type_depth
9856         around remapping types.
9857         (copy_body_r): Only add referenced variables if they are referenced
9858         from code, not types.
9859
9860 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
9861
9862         PR c++/34055
9863         PR c++/34103
9864         PR c++/34219
9865         PR c++/34606
9866         PR c++/34753
9867         PR c++/34754
9868         PR c++/34755
9869         PR c++/34919
9870         PR c++/34961
9871         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
9872         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
9873
9874 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
9875
9876         PR target/34412
9877         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
9878         pointer for tiny stack.
9879
9880 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9881
9882         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
9883
9884 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9885
9886         * config/vx-common.h: Fix typo in comment.
9887
9888 2008-01-28  Ian Lance Taylor  <iant@google.com>
9889
9890         PR c++/34862
9891         PR c++/33407
9892         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
9893         coalesce pointers if they have different DECL_NO_TBAA_P values.
9894         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
9895         between variables with different DECL_NO_TBAA_P values.
9896
9897 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
9898
9899         PR 31535
9900         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
9901         are not legitimate small data references on SPE targets.
9902
9903 2008-01-28  David Daney  <ddaney@avtrex.com>
9904
9905         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
9906
9907 2008-01-28  David Daney  <ddaney@avtrex.com>
9908
9909         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
9910
9911 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
9912
9913         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
9914         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
9915         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
9916         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
9917         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
9918         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
9919         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
9920         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
9921
9922 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9923
9924         * basic-block.h (condjump_equiv_p): Fix comment.
9925
9926 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9927
9928         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
9929         print_generic_stmt_indented): Fix comment.
9930
9931 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9932
9933         * configure.ac (__stack_chk_fail): Add detecion for availability
9934         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
9935         * configure: Regenerate.
9936
9937 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
9938
9939         PR middle-end/34688
9940         * final.c (output_addr_const): Handle TRUNCATE.
9941
9942 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
9943
9944         PR target/34711
9945         * tree-ssa-loop-ivopts.c (comp_cost): New type.
9946         (zero_cost, infinite_cost): New constants.
9947         (struct cost_pair): Change type of cost to comp_cost.
9948         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
9949         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
9950         New functions.
9951         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
9952         split_address_cost, ptr_difference_cost, difference_cost,
9953         get_computation_cost_at, get_computation_cost,
9954         determine_use_iv_cost_generic, determine_use_iv_cost_address,
9955         determine_use_iv_cost_condition, determine_use_iv_costs,
9956         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
9957         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
9958         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
9959         Change type of cost to comp_cost.
9960         (determine_iv_cost): Increase cost of non-original ivs, instead
9961         of decreasing the cost of original ones.
9962         (get_address_cost): Indicate the complexity of the addressing mode 
9963         in comp_cost.
9964         (try_add_cand_for): Prefer using ivs not specific to some object.
9965         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
9966
9967 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
9968             Janis Johnson  <janis187@us.ibm.com>
9969
9970         PR target/34814
9971         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
9972         (TARGET_INSTANTIATE_DECLS): Likewise.
9973         * target.h (expand_to_rtl_hook): New target hook.
9974         (instantiate_decls): Likewise.
9975         * function.c (instantiate_decl): Make non-static.  Rename to...
9976         (instantiate_decl_rtl): ... this.
9977         (instantiate_expr): Use instantiate_decl_rtl.
9978         (instantiate_decls_1): Likewise.
9979         (instantiate_decls): Likewise.
9980         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
9981         * function.h (instantiate_decl_rtl): Add prototype.
9982         * cfgexpand.c (target.h): New include.
9983         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
9984         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
9985         (TARGET_INSTANTIATE_DECLS): Likewise.
9986         (TARGET_INITIALIZER): New target hooks added.
9987         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
9988         New prototype.
9989         * config/rs6000/rs6000.c (tree-flow.h): New include.
9990         (machine_function): Add sdmode_stack_slot field.
9991         (rs6000_alloc_sdmode_stack_slot): New function.
9992         (rs6000_instantiate_decls): Likewise.
9993         (rs6000_secondary_memory_needed_rtx): Likewise.
9994         (rs6000_check_sdmode): Likewise.
9995         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
9996         (TARGET_INSTANTIATE_DECLS): Likewise.
9997         (rs6000_hard_regno_mode_ok): Allow SDmode.
9998         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
9999         (rs6000_emit_move): Handle SDmode.
10000         (function_arg_advance): Likewise.
10001         (function_arg): Likewise.
10002         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
10003         SDmode var args for 32-bit compiles.
10004         (rs6000_secondary_reload_class): Handle SDmode.
10005         (rs6000_output_function_epilogue): Likewise.
10006         (rs6000_function_value): Simplify if statement.
10007         (rs6000_libcall_value): Likewise.
10008         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
10009         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
10010         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
10011         (movsd_hardfloat): New define_insn.
10012         (movsd_softfloat): Likewise.
10013         (movsd_store): Likewise.
10014         (movsd_load): Likewise.
10015         (extendsddd2): Likewise.
10016         (extendsdtd2): Likewise.
10017         (truncddsd2): Likewise.
10018         (movdd_hardfloat64): Fixup comment.
10019         (UNSPEC_MOVSD_LOAD): New constant.
10020         (UNSPEC_MOVSD_STORE): Likewise.
10021
10022 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
10023
10024         PR c++/34965
10025         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
10026         TRUTH_XOR_EXPR.
10027         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
10028         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
10029         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
10030         and TRUTH_XOR_EXPR.
10031
10032 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
10033
10034         PR target/34794
10035         * config.gcc: Separate AIX 5.3 from AIX 6.1.
10036         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
10037         __LONGDOUBLE128 too.
10038         * config/rs6000/aix61.h: New file.
10039
10040 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
10041
10042         PR rtl-optimization/34959
10043         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
10044         popcount and parity rtxes the same mode as their operand.
10045         Truncate or extend the result to the return value's mode
10046         if necessary.
10047
10048 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
10049
10050         PR target/34981
10051         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
10052         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
10053         to GOT_VERSION_REGNUM.
10054         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
10055         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
10056         * config/mips/mips.c (mips_emit_call_insn): New function.
10057         (mips_call_tls_get_addr): Call mips_expand_call directly.
10058         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
10059         emit_call_insn.
10060         (mips16_build_call_stub): Likewise.  Return the call insn or null.
10061         (mips_expand_call): Update the call to mips16_build_call_stub
10062         accordingly and a remove redundant condition.  Assert that MIPS16
10063         stubs do not use lazy binding.  Use mips_emit_call_insn and return
10064         the call insn.
10065         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
10066         TARGET_USE_GOT.
10067         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
10068         (mips_avoid_hazard): Remove hazard_set handling.
10069         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
10070         (UNSPEC_RESTORE_GP): ...this.
10071         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
10072         (FAKE_CALL_REGNO): Rename to...
10073         (GOT_VERSION_REGNUM): ...this.
10074         (type): Add "ghost" value.  Add an associated insn reservation.
10075         (hazard_set): Remove.
10076         (exception_receiver): Rename to...
10077         (restore_gp): ...this and update the unspec identifier accordingly.
10078         (exception_receiver, nonlocal_got_receiver): New expanders.
10079         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
10080         FAKE_CALL_REGNO.  Remove hazard_set attribute.
10081         (set_got_version, update_got_version): New patterns.
10082
10083 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
10084
10085         PR target/34970
10086         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
10087
10088 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
10089
10090         PR other/31955
10091         * doc/install.texi2html: Generate gcc-vers.texi.
10092
10093 2008-01-25  DJ Delorie  <dj@redhat.com>
10094
10095         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
10096
10097 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
10098
10099         * config/c4x: Remove directory.
10100         * config.gcc (crx-*, mt-*): Mark obsolete.
10101         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
10102         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
10103         sh-*-rtemscoff*): Remove cases.
10104         * defaults.h (C4X_FLOAT_FORMAT): Remove.
10105         * real.c (encode_c4x_single, decode_c4x_single,
10106         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
10107         c4x_extended_format): Remove.
10108         * real.h (c4x_single_format, c4x_extended_format): Remove.
10109         * doc/extend.texi (interrupt, naked): Remove mention of attributes
10110         on C4x.
10111         (Pragmas): Remove comment about c4x pragmas.
10112         * doc/install.texi (c4x): Remove target-specific instructions.
10113         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
10114         * doc/md.texi (Machine Constraints): Remove C4x documentation.
10115         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
10116         refer to C4x source files as examples.
10117         (C4X_FLOAT_FORMAT): Remove documentation.
10118
10119 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
10120
10121         * config/bfin/bfin.c (override_options): Reorder tests so that
10122         flag_pic gets enabled for -msep-data.
10123
10124 2008-01-25  Richard Guenther  <rguenther@suse.de>
10125
10126         PR middle-end/32244
10127         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
10128         to its bitfield precision if required.
10129
10130 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
10131
10132         PR middle-end/33880
10133         * tree-nested.c (walk_omp_for): New function.
10134         (convert_nonlocal_reference, convert_local_reference): Call
10135         walk_omp_for on OMP_FOR.
10136         (convert_call_expr): Call walk_body on OMP_FOR's
10137         OMP_FOR_PRE_INIT_BODY.
10138
10139 2008-01-25  Richard Guenther  <rguenther@suse.de>
10140
10141         PR tree-optimization/34966
10142         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
10143         default defs and PHI_NODEs we have to insert after the
10144         defining statement.
10145
10146 2008-01-24  Nick Clifton  <nickc@redhat.com>
10147
10148         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
10149         Provide a default definition.
10150         (LIBGCC2_UNITS_PER_WORD): Likewise.
10151
10152         * config/stormy16/stormy16.c: Include df.h for the prototype
10153         for df_regs_ever_live_p.
10154         (xstormy16_expand_builtin_va_start): Convert the stack offset
10155         into a component_ref and then use POINTER_PLUS_EXPR to add it
10156         to the incoming_virtual_args_rtx.
10157         (xstormy16_gimplify_va_arg_expr): Rename to
10158         xstormy16_gimplify_va_arg_expr.
10159         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
10160         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
10161         xstormy16_gimplify_va_arg_expr.
10162         Fix up some formatting issues.
10163
10164         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
10165         Move to predicates.md.
10166         (xs_hi_general_operand): Likewise.
10167         (xs_hi_nonmemory_operand): Likewise.
10168         * config/stormy16/predicates.md:
10169         (xstormy16_carry_plus_operand): New predicate.
10170         (xs_hi_general_operand): New predicate.
10171         (xs_hi_nonmemory_operand): New predicate.
10172         * config/stormy16/stormy16-protos.h:
10173         (xstormy16_carry_plus_operand): Delete prototype.
10174         (xs_hi_general_operand): Likewise.
10175         (xs_hi_nonmemory_operand): Likewise.
10176
10177         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
10178         modifiers as they are no longer needed and they can trigger
10179         reload spill failures.
10180
10181         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
10182         with a match_operand in order to help reload.
10183
10184         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
10185         constraint with 'e' for the 8th alternative as this version of
10186         the mov.w instruction only accepts the lower 8 registers.
10187
10188 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
10189
10190         PR target/34856
10191         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
10192         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
10193         vector elements.
10194
10195 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
10196
10197         PR middle-end/33333
10198         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
10199
10200 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
10201
10202         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
10203         New functions.
10204         (remove_structure): Update allocations list before removing structure.
10205         
10206 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
10207
10208         * ipa-struct-reorg.c (is_safe_cond_expr, 
10209         create_new_stmts_for_cond_expr): Use integer_zerop function,
10210         that recognize not only zero-pointer, but zero-integer too.
10211
10212 2008-01-25  Ben Elliston  <bje@au.ibm.com>
10213
10214         PR other/22232
10215         * fixproto: Escape "." in sed expression that strips leading "./".
10216
10217 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
10218
10219         PR driver/34904
10220         * gcc.c (SWITCH_OK): Removed.
10221         (SWITCH_LIVE): Changed to bit.
10222         (SWITCH_FALSE): Likewise.
10223         (SWITCH_IGNORE): Likewise.
10224         (switchstr): Change live_cond to unsigned int.
10225         (process_command): Replace SWITCH_OK with 0.
10226         (do_self_spec): Likewise.
10227         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
10228         (give_switch): Likewise.
10229         (used_arg): Likewise.
10230         (do_spec_1): Set the SWITCH_IGNORE bit.
10231         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
10232         bits.  Set the SWITCH_LIVE bit.
10233
10234 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
10235
10236         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
10237
10238 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
10239
10240         PR tree-optimization/34472
10241         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
10242         parameter to a "bool *" and set *DATA to false if there is
10243         an unsafe access.  Do not delete the structure here.
10244         (check_cond_exprs): Delete it here instead.
10245         (check_cond_exprs, exclude_cold_structs): Do not increase
10246         I when removing a structure.
10247
10248 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
10249
10250         PR target/34856
10251         * config/i386/i386.c (ix86_expand_vector_init): Consider only
10252         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
10253
10254 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
10255
10256         PR middle-end/34934
10257         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
10258         a fixed vector for stack.
10259
10260 2008-01-24  Ben Elliston  <bje@au.ibm.com>
10261
10262         PR c++/25701
10263         * doc/gcc.texi (Software development): Add a direntry for g++.
10264         
10265 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
10266
10267         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
10268         stale and straggling -fforce-addr comments above.
10269
10270         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
10271         define.
10272         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
10273         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
10274
10275 2008-01-23  Michael Matz  <matz@suse.de>
10276
10277         PR debug/34895
10278         * dwarf2out.c (force_type_die): Use modified_type_die instead of
10279         gen_type_die.
10280
10281 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
10282
10283         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
10284         malloc result type.
10285
10286 2008-01-23 Anatoly Sokolov <aesok@post.ru>
10287
10288         * config/avr/avr.c (avr_current_arch): New variable.
10289         (avr_arch_types): Add 'avr31' and 'avr51' entries.
10290         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
10291         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
10292         (avr_override_options): Init 'avr_current_arch'. 
10293         (base_arch_s): Move from here...
10294         * config/avr/avr.h (base_arch_s): ... here. Add new members 
10295         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
10296         'mega' to 'have_jmp_call'.
10297         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
10298         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
10299         macros.
10300         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
10301         architectures.
10302         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
10303         MULTILIB_MATCHES): (Ditto.).
10304
10305 2008-01-23  Richard Guenther  <rguenther@suse.de>
10306
10307         PR middle-end/31529
10308         * cgraphunit.c (cgraph_reset_node): Always mark the node
10309         not reachable if it is not queued already.
10310
10311 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
10312
10313         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
10314         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
10315         (cputype_selected): New static variable.
10316         (bfin_handle_option): Set it if -mcpu is used.
10317         (override_option): Select default set of workarounds if no cpu type
10318         selected on the command line.
10319         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
10320
10321         From  Michael Frysinger  <michael.frysinger@analog.com>
10322         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
10323         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
10324
10325         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
10326         for bf547, bf523, bf524, and bf526.
10327         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
10328         bf526.
10329         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
10330         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
10331         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
10332         __ADSPBF547__ and __ADSPBF54x__ for bf547.
10333         * doc/invoke.texi (Blackfin Options): Document that
10334         -mcpu now accept bf547, bf523, bf524, and bf526.
10335
10336 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
10337
10338         PR rtl-optimization/34628
10339         * combine.c (try_combine): Stop and undo after the first combination
10340         if an autoincrement side-effect on the first insn has effectively
10341         been lost.
10342
10343 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
10344
10345         PR target/34529
10346         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
10347         Offset addresses are not valid for Altivec or paired float modes.
10348
10349 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
10350
10351         PR c++/34607
10352         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
10353         if DECL_INITIAL (decl) is error_mark_node.
10354
10355         PR c++/34914
10356         * c-common.c (handle_vector_size_attribute): Only allow
10357         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
10358         the same way as pointer, array etc. types.
10359         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
10360
10361         PR c++/34917
10362         * tree.c (build_type_attribute_qual_variant): Call
10363         build_qualified_type if attributes are equal, but quals are not.
10364
10365 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10366
10367         PR 32102
10368         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
10369         * flags.h (warn_strict_aliasing): Remove.
10370         (warn_strict_overflow): Remove.
10371         * opts.c (warn_strict_aliasing): Remove.
10372         (warn_strict_overflow): Remove.
10373         * c-opts.c (c_common_handle_option): -Wall only sets
10374         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
10375         (c_common_post_options): Give default values to -Wstrict-aliasing
10376         and -Wstrict-overflow if they are uninitialized.
10377         * common.opt (Wstrict-aliasing): Specify Var and Init.
10378         (Wstrict-overflow): Likewise.
10379
10380 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
10381
10382         PR rtl-optimization/26854
10383         PR rtl-optimization/34400
10384         PR rtl-optimization/34884
10385         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
10386         DF_RD->gen.
10387         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
10388         (df_rd_bb_info.expanded_lr_out): Deleted
10389         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
10390         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
10391         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10392         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10393         Removed code to allocate, initialize or free expanded_lr_out.
10394         (df_rd_bb_local_compute_process_def): Restructured to make more
10395         understandable.
10396         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
10397         sets if the sets are being trimmed.
10398
10399 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
10400
10401         PR bootstrap/32287
10402         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
10403         (as_vers): Likewise.
10404         * configure: Regenerated.
10405
10406 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10407
10408         PR middle-end/33092
10409         * tree-pass.h (pass_build_alias): New pass.
10410         * tree-ssa-alias.c (gate_build_alias): New.
10411         (pass_build_alias): New.
10412         * passes.c (init_optimization_passes): Add pass_build_alias after
10413         pass_create_structure_vars.
10414
10415 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
10416
10417         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
10418         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
10419         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
10420         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
10421         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
10422         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
10423         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
10424         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
10425         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
10426         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
10427         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
10428         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
10429         * config/s390/s390.md (FP_ALL): New mode iterator.
10430         (_d): New mode attribute.
10431         ("*signbit<mode>2>"): Changed mode of first operand.
10432         ("isinf<mode>2"): Changed mode of first operand.
10433         ("*TDC_insn"): Adaptation for DFP modes.
10434
10435 2008-01-22  Ben Elliston  <bje@au.ibm.com>
10436
10437         * tree.c (check_qualified_type): Improve function description.
10438
10439 2008-01-21  Jason Merrill  <jason@redhat.com>
10440
10441         PR c++/34196
10442         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
10443         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
10444         if it is set.
10445
10446 2008-01-21  DJ Delorie  <dj@redhat.com>
10447
10448         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
10449         return zero.
10450
10451 2008-01-21  Richard Guenther  <rguenther@suse.de>
10452
10453         PR middle-end/34856
10454         * tree-cfg.c (verify_expr): Allow all invariant expressions
10455         instead of just constant class ones as reference argument.
10456         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
10457         like any other constant.
10458         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
10459
10460 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
10461
10462         * regmove.c (fixup_match_1): Update call crossed frequencies.
10463
10464 2008-01-21  Richard Guenther  <rguenther@suse.de>
10465
10466         PR c/34885
10467         * tree-inline.c (setup_one_parameter): Deal with mismatched
10468         types using a VIEW_CONVERT_EXPR.
10469
10470 2008-01-21  Alon Dayan  <alond@il.ibm.com>
10471             Olga Golovanevsky  <olga@il.ibm.com>
10472         
10473         PR tree-optimization/34701
10474         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
10475         when the structure size is not a power of 2.
10476
10477 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
10478
10479         * doc/install.texi: Add doc for --enable-checking=df.
10480         
10481 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10482
10483         PR rtl-optimization/34808
10484         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
10485
10486 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10487
10488         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
10489         input.
10490
10491 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
10492
10493         PR rtl-optimization/26854
10494         PR rtl-optimization/34400
10495         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
10496         DF_RD->gen.
10497         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
10498         (df_rd_bb_info.expanded_lr_out): New.
10499         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
10500         * loop_iv.c (iv_analysis_loop_init): Ditto.
10501         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10502         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10503         Added code to allocate, initialize or free expanded_lr_out.
10504         (df_rd_bb_local_compute_process_def): Restructured to make
10505         more understandable.
10506         (df_rd_confluence_n): Add code to do nothing with fake edges and
10507         code to no apply invalidate_by_call sets if the sets are being trimmed.
10508         (df_lr_local_finalize): Renamed to df_lr_finalize.
10509         (df_live_local_finalize): Renamed to df_live_finalize.
10510
10511 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10512
10513         PR target/34831
10514         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
10515         deciding whether to use reciprocal instructions.
10516
10517 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
10518
10519         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
10520         dwarf2out_note_section_used if cold_text_section is NULL.
10521
10522 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
10523
10524         PR gcov-profile/34610
10525         * tree-cfg.c (make_edges): Mark both outgoing edges from
10526         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
10527         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
10528         from OMP_FOR and OMP_CONTINUE outgoing edges.
10529
10530         * tree-profile.c (tree_profiling): Return early if
10531         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
10532         at the end.
10533         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
10534         from cfun to child_cfun.
10535         * function.h (struct function): Add after_tree_profile bit.
10536
10537 2008-01-19 Anatoly Sokolov <aesok@post.ru>
10538
10539         * config/avr/avr.S (_exit): Disable interrupt.
10540
10541 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
10542             Steven Bosscher  <stevenb.gcc@gmail.com>
10543
10544         PR rtl-optimization/26854
10545         PR rtl-optimization/34400
10546         * df-problems.c (df_live_scratch): New scratch bitmap.
10547         (df_live_alloc): Allocate df_live_scratch when doing df_live.
10548         (df_live_reset): Clear the proper bitmaps.
10549         (df_live_bb_local_compute): Only process the artificial defs once
10550         since the order is not important.
10551         (df_live_init): Init the df_live sets only with the variables
10552         found live by df_lr.
10553         (df_live_transfer_function): Use the df_lr sets to prune the
10554         df_live sets as they are being computed.  
10555         (df_live_free): Free df_live_scratch.
10556
10557 2008-01-18  Ian Lance Taylor  <iant@google.com>
10558
10559         * common.opt: Add fmerge-debug-strings.
10560         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
10561         flag_merge_debug_strings rather than flag_merge_constants.
10562         * doc/invoke.texi (Option Summary): Mention
10563         -fmerge-debug-strings.
10564         (Debugging Options): Document -fmerge-debug-strings.
10565
10566 2008-01-18  Ian Lance Taylor  <iant@google.com>
10567
10568         PR c++/33407
10569         * tree.h (DECL_IS_OPERATOR_NEW): Define.
10570         (struct tree_function_decl): Add new field operator_new_flag.
10571         * tree-inline.c (expand_call_inline): When inlining a call to
10572         operator new, force the return value to go into a variable, and
10573         set DECL_NO_TBAA_P on that variable.
10574         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
10575
10576 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
10577
10578         PR debug/34484
10579         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
10580         DWARF2_DEBUGGING_INFO.
10581         (dwarf2out_note_section_used): Ditto.  Add prototype.
10582         (have_multiple_function_sections, text_section_used,
10583         cold_text_section_used, *cold_text_sections): Move declarations
10584         before their uses.
10585
10586 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
10587
10588         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
10589         field and add signal_ra.
10590         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
10591         assignments to frame state pc.  Move end of stack check after
10592         MD_FALLBACK_FRAME_STATE_FOR.
10593         (uw_update_context_1): Use frame state signal_regs if set, instead
10594         of checking signal_frame flag.
10595         (uw_update_context): Use frame state signal_ra if set.
10596         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
10597         * config/xtensa/linux-unwind.h: New file.
10598
10599 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
10600
10601         * modulo-sched.c (get_sched_window): Fix comment typo.
10602
10603 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
10604
10605         PR tree-optimization/34648
10606         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
10607
10608 2008-01-17  Anatoly Sokolov <aesok@post.ru>
10609
10610         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
10611         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
10612
10613 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
10614
10615         PR rtl-optimization/34400
10616         * df-core.c (df_worklist_dataflow_overeager,
10617         df_worklist_dataflow_doublequeue): New functions.
10618         (df_worklist_dataflow): Two different worklist solvers.
10619         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
10620         New param.
10621
10622 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10623
10624         PR testsuite/34821
10625         * doc/invoke.texi: Document the dependence on pthread for fopenmp
10626         and ftree-parallelize-loops.
10627
10628 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
10629
10630         PR rtl-optimization/34826
10631         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
10632
10633 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
10634
10635         * global.c (find_reg): Mark the eh regs as used if necessary.
10636         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
10637         * ra.h (struct allocno): no_eh_reg field added.  Changed
10638         no_stack_reg type to bitfield.
10639
10640 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
10641
10642         * tree.c (substitute_in_expr): Add missing 'break'.
10643
10644 2008-01-17  Richard Guenther  <rguenther@suse.de>
10645
10646         PR tree-optimization/34825
10647         * tree-ssa-math-opts.c (is_division_by): Do not recognize
10648         x / x as division to handle.
10649
10650 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10651
10652         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
10653         "-pthread" is specified.
10654         * pa-hpux11.h (LIB_SPEC): Likewise.
10655
10656 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
10657             Peter Bergner  <bergner@vnet.ibm.com>
10658
10659         PR rtl-optimization/33796
10660         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
10661
10662 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10663
10664         PR libgfortran/34699
10665         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
10666         static links.
10667         * pa-hpux10.h (LINK_SPEC): Likewise.
10668         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
10669
10670 2008-01-16  Richard Guenther  <rguenther@suse.de>
10671
10672         PR middle-end/32628
10673         * fold-const.c (fold_convert_const_int_from_int): Do not
10674         set overflow if that occured only because of a sign extension
10675         change when converting from/to a sizetype with the same
10676         precision and signedness.
10677
10678 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10679
10680         PR debug/34249
10681         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
10682         location address to the correct place.  Update copyright year.
10683
10684 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10685
10686         * lambda-code.c (lambda_transform_legal_p): Handle the case of
10687         no dependences in the dependence_relations vector.
10688
10689 2008-01-16  Jan Hubicka  <jh@suse.cz>
10690
10691         PR rtl-optimization/31396
10692         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
10693         * cfg.c (dump_reg_info): Print it.
10694         * regs.h (struct reg_info_t): add freq_calls_crossed.
10695         (REG_FREQ_CALLS_CROSSED): New macro.
10696         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
10697         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
10698         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
10699         regmove_optimize): Update call crossed frequencies.
10700         * local-alloc.c (struct qty): Add freq_calls_crossed.
10701         (alloc_qty): Copute freq_calls_crossed.
10702         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
10703         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
10704         * ra.h (struct allocno): Add freq_calls_crossed.
10705
10706 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10707
10708         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
10709         libgomp when compiling with ftree-parallelize-loops.
10710         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
10711
10712 2008-01-16  Richard Guenther  <rguenther@suse.de>
10713
10714         PR tree-optimization/34769
10715         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
10716         * tree.c (int_cst_value): Instead make this function more
10717         permissive in what it accepts as valid input.  Document this
10718         function always sign-extends the value.
10719
10720 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
10721             Richard Guenther  <rguenther@suse.de>
10722
10723         PR c/34668
10724         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
10725         (gimple_fold_indirect_ref_rhs): ... this.
10726         (gimple_fold_indirect_ref): New function with foldings
10727         that preserve lvalueness.
10728         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
10729         * tree-flow.h (gimple_fold_indirect_ref): Declare.
10730         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
10731         to fold an INDIRECT_REF, fall back to the old use of
10732         fold_indirect_ref_1.
10733
10734 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10735
10736         * tree-data-ref.c (subscript_dependence_tester_1): Call 
10737         free_conflict_function.
10738         (compute_self_dependence): Same.
10739
10740 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10741
10742         PR debug/34249
10743         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
10744         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
10745         function global.
10746         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
10747         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
10748         for DWARF2_UNWIND_INFO targets.
10749
10750 2008-01-16  Richard Guenther  <rguenther@suse.de>
10751
10752         PR c/34768
10753         * c-typeck.c (common_pointer_type): Do not merge inconsistent
10754         type qualifiers for function types.
10755
10756 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
10757
10758         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
10759         loop_iterator li from previous commit.
10760
10761 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
10762
10763         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
10764
10765 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10766
10767         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
10768         (parallelize_loops): Don't parallelize irreducible components.
10769
10770 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10771
10772         PR c++/24924
10773         * c-opts (c_common_post_options): Do not enable CPP
10774         flag_pedantic_errors by default.
10775         
10776 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
10777
10778         PR rtl-optimization/31944
10779         * cse.c (remove_pseudo_from_table): New function.
10780         (merge_equiv_classes): Use above function to remove pseudo-registers.
10781         (invalidate): Likewise.
10782
10783 2008-01-13  Richard Guenther  <rguenther@suse.de>
10784
10785         PR middle-end/34601
10786         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
10787         instead of TYPE_MODE to deal with calls from expand_one_error_var.
10788
10789 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
10790
10791         * gcse.c (cprop_jump): Call validate_unshare_change instead of
10792         validate_change to unshare the source of the PC set.
10793
10794 2008-01-12  Jan Hubicka  <jh@suse.cz>
10795
10796         PR middle-end/32135
10797         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
10798         references above array bounds.  This might trigger bounds checks for
10799         pointers to arrays.
10800
10801 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10802
10803         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
10804         new_replaceable_dependencies.
10805
10806 2008-01-12  Doug Kwan  <dougkwan@google.com>
10807
10808         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
10809         instead of OPT_Wreturn_type in warning due to ignored return type
10810         qualifiers.
10811         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
10812         options included in -Wextra.
10813         * c.opt: New option -Wignored_qualifiers.
10814         * doc/invoke.texi (Warning Options, -Wextra): Add new option
10815         -Wignore_qualifiers.
10816         (-Wignored-qualifiers): Document.
10817         (-Wreturn-type): Remove description of functionality now handled
10818         by -Wignored-qualifiers.
10819
10820 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
10821
10822         PR ada/33788
10823         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
10824         NOP_EXPR if it is between integral types with the same precision.
10825
10826 2008-01-12  Jan Hubicka  <jh@suse.cz>
10827
10828         PR other/28023
10829         * invoke.texi (max-inline-recursive-depth): Fix default value.
10830
10831 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
10832
10833         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
10834         correct type.
10835
10836 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
10837         
10838         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
10839         
10840 2008-01-11  James E. Wilson  <wilson@specifix.com>
10841
10842         PR target/26015
10843         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
10844
10845 2008-01-11  Anatoly Sokolov <aesok@post.ru>
10846
10847         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
10848         save/restore frame pointer register and don't use 'call-prologues' 
10849         optimization in function with "OS_task" attribute.
10850
10851 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
10852
10853         PR middle-end/31309
10854         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
10855         when copying to memory.
10856
10857 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
10858
10859         PR rtl-optimization/30905
10860         * cfgcleanup.c: Include dce.h
10861         (crossjumps_occured): New global variable.
10862         (try_crossjump_bb): Exit loop after finding a fallthru edge.
10863         If something changed, set crossjumps_occured to true.
10864         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
10865         Don't add/remove fake edges to exit here...
10866         (cleanup_cfg): ...but do it here, when crossjumping.
10867         Run a fast DCE when successful crossjumps occured in the latest
10868         iteration of try_optimize_cfg.
10869
10870 2008-01-11  Richard Guenther  <rguenther@suse.de>
10871
10872         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
10873         (struct vn_unary_op_s): Likewise.
10874         (vn_reference_insert): Free old reference on hash collision.
10875
10876 2008-01-10  Raksit Ashok  <raksit@google.com>
10877
10878         PR rtl-optimization/27971
10879         * combine.c (find_split_point): Split PLUS expressions which are
10880         inside a MEM rtx, and whose first operand is complex.
10881
10882 2008-01-10  DJ Delorie  <dj@redhat.com>
10883
10884         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
10885         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
10886         (m32c_hard_regno_ok): Call the underlying function.
10887
10888 2008-01-10  Richard Guenther  <rguenther@suse.de>
10889
10890         PR middle-end/34683
10891         * tree-cfg.c (tree_merge_blocks): Do not go through the
10892         full-blown folding and stmt updating path if we just deal
10893         with virtual operands.
10894         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
10895         test for abnormal SSA_NAMEs.
10896
10897 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
10898
10899         PR middle-end/34641
10900         * reload.c (push_reload): Add assertions.  All constants from
10901         reg_equiv_constant should have been used for replacing the respective
10902         pseudo earlier.
10903         (find_reloads_address): Invoke find_reloads_address_part for
10904         constant taken from the reg_equiv_constant array.
10905
10906 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
10907
10908         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
10909         field (valnum) the first in the struct.  Replace bools with
10910         unit bit fields.
10911
10912 2008-01-10  Richard Guenther  <rguenther@suse.de>
10913
10914         PR tree-optimization/34651
10915         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
10916         types and ordering for masking and converting.
10917
10918 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
10919
10920         PR tree-optimization/34017
10921         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
10922         also for PHI_NODE expressions.
10923
10924 2008-01-09  Jan Hubicka  <jh@suse.cz>
10925
10926         PR tree-optimization/34708
10927         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
10928         based on number of case labels.
10929         (init_inline_once): Remove switch_cost.
10930         * tree-inline.h (eni_weights_d): Remove switch_cost.
10931
10932 2008-01-09  Richard Guenther  <rguenther@suse.de>
10933         Andrew Pinski  <andrew_pinski@playstation.sony.com>
10934
10935         PR middle-end/30132
10936         * gimplify.c (gimplify_cond_expr): Do not create an addressable
10937         temporary if an rvalue is ok or an lvalue is not required.
10938
10939 2008-01-09  Richard Guenther  <rguenther@suse.de>
10940
10941         PR middle-end/34458
10942         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
10943         adjust return type.
10944
10945 2008-01-09  Richard Guenther  <rguenther@suse.de>
10946
10947         PR middle-end/34679
10948         * tree.c (host_integerp): Check for sizetype only if the
10949         type is an integer type.
10950
10951 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
10952
10953         PR debug/26364
10954         * opts.c (decode_options): Disable inlining of functions called
10955         once if not in unit-at-a-time mode.
10956
10957 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
10958
10959         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
10960
10961 2008-01-08  Richard Guenther  <rguenther@suse.de>
10962
10963         PR middle-end/31863
10964         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
10965         out early if the result will be unused.
10966
10967 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
10968
10969         PR target/34709
10970         Revert:
10971
10972         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10973         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10974         for TARGET_RECIP.       
10975         
10976 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
10977         
10978         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
10979         for vectorization tuned.
10980         
10981 2008-01-08  Richard Guenther  <rguenther@suse.de>
10982
10983         PR tree-optimization/34683
10984         * tree-ssa-operands.c (operand_build_cmp): Export.
10985         * tree-ssa-operands.h (operand_build_cmp): Declare.
10986         * tree-vn.c (vuses_compare): Remove.
10987         (sort_vuses): Use operand_build_cmp.
10988         (sort_vuses_heap): Likewise.
10989         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
10990         to re-use old VEC if available.  Do not sort already sorted VUSEs.
10991         (vdefs_to_vec): Do not sort already sorted VDEFs.
10992
10993 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
10994
10995         PR middle-end/34694
10996         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
10997
10998 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
10999
11000         PR target/34702
11001         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
11002         limitations of reciprocal sequences on x86 targets.
11003
11004 2008-01-08  Richard Guenther  <rguenther@suse.de>
11005
11006         PR tree-optimization/34683
11007         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
11008
11009 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
11010
11011         PR target/34622
11012         * config/darwin.c (darwin_mergeable_string_section): Don't use
11013         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
11014
11015 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
11016
11017         PR target/34682
11018         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
11019         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
11020         predicates of op0 and op1 to register_operand.
11021         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
11022         expander using X87MODEF mode iterator.  Change predicates of
11023         op0 and op1 to register_operand.
11024         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
11025         corresponding patterns and macroize using MODEF macro.  Change
11026         predicates of op0 and op1 to register_operand and remove
11027         "m" constraint. Disparage "r" alternative with "!".
11028         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
11029         macroize using X87MODEF macro.  Change predicates of op0 and op1
11030         to register_operand and remove "m" constraint.  Disparage "r"
11031         alternative with "!".
11032         (absneg splitter with memory operands): Remove.
11033         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
11034         patterns and macroize using X87MODEF mode iterator.
11035         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
11036         Change predicate of op1 to register_operand.
11037         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
11038         for memory operands.
11039
11040 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
11041
11042         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
11043
11044 2008-01-07  Richard Guenther  <rguenther@suse.de>
11045
11046         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
11047         fields.
11048
11049 2008-01-07  Richard Guenther  <rguenther@suse.de>
11050
11051         PR tree-optimization/34683
11052         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
11053         VOPs of the needed size to save memory.  Use VEC_quick_push
11054         to save compile-time.
11055         (vdefs_to_vec): Likewise.
11056
11057 2008-01-07  Sa Liu  <saliu@de.ibm.com>
11058
11059         * config/spu/spu.md (divdf3): Genetate inline code for double
11060         division.  The implementation doesn't handle INF or NAN, therefore it
11061         only applies when -ffinite-math-only is given.
11062
11063 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
11064
11065         PR libstdc++/34680
11066         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
11067         * doc/cpp.texi ([Common Predefined Macros]): Document.
11068
11069 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
11070
11071         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
11072         order to use commutative addition instead of subtraction.
11073
11074 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11075             Mircea Namolaru  <namolaru@il.ibm.com>
11076             Vladimir Yanovsky  <yanov@il.ibm.com>
11077             Revital Eres  <eres@il.ibm.com>
11078
11079         PR tree-optimization/34263
11080         * tree-outof-ssa.c (process_single_block_loop_latch,
11081         contains_tree_r): New functions.
11082         (analyze_edges_for_bb): Call process_single_block_loop_latch
11083         function to empty single-basic-block latch block if possible.
11084
11085 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11086
11087         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
11088         for TARGET_RECIP.
11089         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
11090
11091 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
11092
11093         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
11094
11095 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
11096
11097         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
11098
11099 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
11100
11101         PR tree-optimization/34618
11102         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
11103         flag from T.
11104
11105 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11106
11107         PR target/34673
11108         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
11109         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
11110         Update copyright year.
11111
11112         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
11113         Update copyright year.
11114         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
11115         using NR fixup.
11116
11117 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
11118
11119         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
11120         edge does not point to current bb before changing need_assert.
11121
11122 2008-01-04  Richard Guenther  <rguenther@suse.de>
11123
11124         PR middle-end/34029
11125         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
11126         for verifying purposes if they are is_gimple_min_invariant.
11127
11128 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
11129
11130         PR tree-optimization/34448
11131         PR tree-optimization/34465
11132         * gimplify.c (gimplify_init_constructor): Add new parameter
11133         notify_temp_creation.  Use it.
11134         (gimplify_modify_expr_rhs): Take volatiles into account when
11135         optimizing constructors.
11136         Do not optimize constructors if gimplify_init_constructor will dump to
11137         memory.
11138         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
11139         * gcc.c-torture/compile/pr34448.c: New.
11140
11141 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
11142
11143         PR gcov-profile/34609
11144         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
11145         return_slot if result is TREE_ADDRESSABLE.
11146
11147 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
11148
11149         * config/mips/mips.md (sqrt_condition): Tweak comment.
11150         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
11151
11152 2008-01-03  Tom Tromey  <tromey@redhat.com>
11153
11154         PR c/34457
11155         * c-common.c (c_type_hash): Handle VLAs.
11156
11157 2008-01-03  Jan Hubicka  <jh@suse.cz>
11158
11159         PR tree-optimization/31081
11160         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
11161         0 when inlining and not inlining to first basic block.
11162         (remap_decl): When var is initialized to 0, don't set default_def.
11163         (expand_call_inline): Set entry_bb.
11164         * tree-inline.h (copy_body_data): Add entry_bb.
11165
11166 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
11167
11168         PR c++/34619
11169         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
11170         before returning.
11171
11172         PR tree-optimization/29484
11173         * tree-inline.c (inline_forbidden_p_2): New function.
11174         (inline_forbidden_p): Disallow inlining if some static var
11175         has an address of a local LABEL_DECL in its initializer.
11176         * doc/extend.texi (Labels as Values): Document &&foo behaviour
11177         vs. inlining.
11178
11179 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
11180
11181         PR tree-optimization/34635
11182         * tree-data-ref.c (add_other_self_distances): Make sure that the
11183         evolution step is constant.
11184
11185 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
11186
11187         PR middle-end/34608
11188         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
11189
11190 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
11191
11192         * tree-sra.c (scalarize_init): Insert the generate_element_init
11193         statements after the generate_element_zero statements.
11194
11195 2008-01-02  Richard Guenther  <rguenther@suse.de>
11196
11197         PR middle-end/34093
11198         PR middle-end/31976
11199         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
11200         for very large number of operands instead of ICEing.
11201
11202 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
11203
11204         PR target/34013
11205         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
11206         while stack probing.
11207
11208 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
11209
11210         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
11211         in C++0x mode.
11212
11213 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
11214
11215         PR libmudflap/26442
11216         * tree-mudflap.c (mx_register_decls): Guard warning by
11217         !DECL_ARTIFICIAL check.
11218
11219 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
11220
11221         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
11222         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
11223         sse5_perm<mode>): Fix constraints.