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.md (define_mode_iterator P): New.
4         (split): Merged XF and DF rules using P.
5
6 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
7
8         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
9         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed
10         prototype.
11         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
12         return type to int.
13         (ix86_call_abi_override): Remove check for call_used_regs.
14
15 2008-06-03  Richard Guenther  <rguenther@suse.de>
16
17         * tree-ssa-structalias.c (find_func_aliases): Add constraints
18         for the lhs of calls if the return type contains pointers.
19
20 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
21
22         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
23         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
24         * function.c (allocate_struct_function): Use of
25         OVERRIDE_ABI_FORMAT.
26         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
27         of cfun and DEFAULT_ABI to deceide abi mode.
28         (DEFAULT_ABI): New.
29         (REG_PARM_STACK_SPACE): Removed.
30         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
31         (STACK_BOUNDARY): Use default target to deceide stack boundary.
32         * config/i386/i386-protos.h (ix86_cfun_abi): New.
33         (ix86_function_abi): Likewise.
34         (ix86_function_type_abi): Likewise.
35         (ix86_call_abi_override): Likewise.
36         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
37         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
38         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
39         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
40         specific defines.
41         (X86_64_REGPARM_MAX): New.
42         (X86_64_SSE_REGPARM_MAX): New.
43         (X64_REGPARM_MAX): New.
44         (X64_SSE_REGPARM_MAX): New.
45         (X86_32_REGPARM_MAX): New.
46         (X86_32_SSE_REGPARM_MAX): New.
47         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
48         (ix86_function_regparm): Handle user calling abi.
49         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
50         by DEFAULT_ABI versus SYSV_ABI check.
51         (ix86_reg_parm_stack_space): New.
52         (ix86_function_type_abi): New.
53         (ix86_call_abi_override): New.
54         (ix86_function_abi): New.
55         (ix86_cfun_abi): New.
56         (init_cumulative_args): Call abi specific initialization.
57         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
58         (function_arg_64): Extend SSE_REGPARM_MAX check.
59         (function_arg (): Remove TARGET_64BIT_MS_ABI.
60         (ix86_pass_by_reference): Likewise.
61         (ix86_function_value_regno_p): Likewise.
62         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
63         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
64         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
65         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
66         (setup_incoming_varargs_64): Adjust regparm for call abi.
67         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
68         (ix86_va_start): Likewise.
69         (ix86_gimplify_va_arg): Likewise.
70         (ix86_expand_prologue): Likewise.
71         (output_pic_addr_const): Likewise.
72         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
73         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
74         (x86_output_mi_thunk): Likewise.
75         (x86_function_profiler): Likewise.
76         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
77         (SYSV_ABI, MS_ABI): New constants.
78         (DEFAULT_ABI): New.
79         (init_regs): Add prototype of function in regclass.c file.
80         (OVERRIDE_ABI_FORMAT): New.
81         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
82         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
83         (OUTGOING_REG_PARM_STACK_SPACE): New.
84         (ix86_reg_parm_stack_space): New prototype.
85         (CUMULATIVE_ARGS): Add call_abi member.
86         (machine_function): Add call_abi member.
87         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace TARGET_64BIT_MS_ABI
88         by DEFAULT_ABI compare to MS_ABI.
89
90 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
91
92         PR target/34879
93         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
94         (avr_builtin_setjmp_frame_value): New function.
95         * config/avr/avr.md (nonlocal_goto_receiver): Define.
96         (nonlocal_goto): Define.
97
98 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
99
100         * config/mips/mips.c (mips_emit_loadgp): Return early if
101         there is nothing do to, otherwise emit a blockage if
102         !TARGET_EXPLICIT_RELOCS || crtl->profile.
103         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
104
105 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
106
107         * configure.ac: Drop unneeded backslash ending up in config.in.
108         * acinclude.m4: Likewise.
109         * config.in: Regenerate.
110
111 2008-05-26  Jan Hubicka  <jh@suse.cz>
112
113         * predict.c (maybe_hot_frequency_p): Break out of...
114         (maybe_hot_bb_p): ... here.
115         (maybe_hot_edge_p): New.
116         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
117         * basic-block.h (maybe_hot_edge_p): Declare.
118
119 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
120
121         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
122         (*cmpfp_<mode>_cc): Ditto.
123         (*fp_jcc_8<mode>_387): Ditto.
124         (*fop_<MODEF:mode>_2_i387): Ditto.
125         (*fop_<MODEF:mode>_3_i387): Ditto.
126         (*fop_xf_2_i387): Ditto.
127         (*fop_xf_3_i387): Ditto.
128
129 2008-06-02  Tomas Bily  <tbily@suse.cz>
130
131         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
132
133 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
134
135         * config/mips/mips.c (mips_valid_offset_p): New function.
136         (mips_valid_lo_sum_p): Likewise.
137         (mips_classify_address): Use them.
138         (mips_force_address): New function.
139         (mips_legitimize_address): Use it.
140         * config/mips/mips.md (MOVE128): New mode iterator.
141         (movtf): Require TARGET_64BIT.  Remove empty strings.
142         (*movtf_internal): Rename to...
143         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
144         of "R" and use {,fp}{load,store} attributes instead of "multi".
145         Use a separate define_split.
146         (*movtf_mips16): New pattern.
147
148 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
149
150         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
151         * config/mips/mips.c (mips_expand_before_return): New function.
152         (mips_expand_epilogue): Call it.
153         * config/mips/mips.md (return): Turn into a define_expand.
154         (*return): New insn.
155
156 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
157
158         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
159         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
160         functions.  Do not emit uses and clobbers of CONCATs; individually
161         use and clobber their operands.
162         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
163         gen_clobber, emit_use and gen_use.
164         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
165         (expand_builtin_return): Likewise.
166         * cfgbuild.c (count_basic_blocks): Likewise.
167         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
168         * explow.c (emit_stack_restore): Likewise.
169         * expmed.c (extract_bit_field_1): Likewise.
170         * expr.c (convert_move, emit_move_complex_parts): Likewise.
171         (emit_move_multi_word, store_constructor): Likewise.
172         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
173         (thread_prologue_and_epilogue_insns): Likewise.
174         * lower-subreg.c (resolve_simple_move): Likewise.
175         * optabs.c (widen_operand, expand_binop): Likewise.
176         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
177         * reload.c (find_reloads): Likewise.
178         * reload1.c (eliminate_regs_in_insn): Likewise.
179         * stmt.c (expand_nl_goto_receiver): Likewise.
180         * config/alpha/alpha.md (builtin_longjmp): Likewise.
181         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
182         * config/arm/arm.c (arm_load_pic_register): Likewise.
183         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
184         * config/arm/arm.md (untyped_return): Likewise.
185         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
186         * config/avr/avr.c (expand_prologue): Likewise.
187         * config/bfin/bfin.c (do_unlink): Likewise.
188         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
189         * config/cris/cris.c (cris_expand_prologue): Likewise.
190         * config/darwin.c (machopic_indirect_data_reference): Likewise.
191         (machopic_legitimize_pic_address): Likewise.
192         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
193         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
194         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
195         (ix86_expand_convert_uns_didf_sse): Likewise.
196         (ix86_expand_vector_init_general): Likewise.
197         * config/ia64/ia64.md (eh_epilogue): Likewise.
198         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
199         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
200         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
201         (config/iq2000/iq2000.c): Likewise.
202         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
203         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
204         (builtin_longjmp): Likewise.
205         * config/mn10300/mn10300.md (call, call_value): Likewise.
206         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
207         * config/pdp11/pdp11.md (abshi2): Likewise.
208         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
209         * config/s390/s390.c (s390_emit_prologue): Likewise.
210         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
211         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
212         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
213         * config/sh/sh.c (prepare_move_operands): Likewise.
214         (output_stack_adjust, sh_expand_epilogue): Likewise.
215         (sh_set_return_address, sh_expand_t_scc): Likewise.
216         * config/sparc/sparc.c (load_pic_register): Likewise.
217         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
218         * config/spu/spu.c (spu_expand_epilogue): Likewise.
219         * config/v850/v850.c (expand_epilogue): Likewise.
220
221 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
222
223         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
224         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
225         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
226         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
227         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
228         stack pointer register.
229         (output_movhi): Remove code for interrupt specific writing to the 
230         stack pointer register.
231
232 2008-05-31  Richard Guenther  <rguenther@suse.de>
233
234         PR tree-optimization/34244
235         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
236         (tree_expr_nonzero_warnv_p): Likewise.
237         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
238         ssa_name_nonnegative_p.
239         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
240         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
241         not tree_expr_nonzero_warnv_p.
242
243         PR tree-optimization/36262
244         Revert
245         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
246
247         PR tree-optimization/34244
248         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
249         (record_numbers_of_iterations): New function.
250         (execute_vrp): Cache the numbers of iterations of loops.
251         * tree-scalar-evolution.c (scev_reset_except_niters):
252         New function.
253         (scev_reset): Use scev_reset_except_niters.
254         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
255
256 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
257
258         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
259         __WORKAROUND_RETS when appropriate.
260
261 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
262
263         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
264         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
265         mode iterator.
266         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
267         *fop_df_comm_sse insn patterns using MODEF mode iterator.
268         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
269         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
270         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
271         *fop_df_1_mixed insn patterns using MODEF mode iterator.
272         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
273         *fop_df_1_sse insn patterns using MODEF mode iterator.
274         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
275         *fop_df_1_i387 insn patterns using MODEF mode iterator.
276         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
277         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
278         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
279         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
280         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
281         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
282         (*fop_xf_4_i387): Use <MODE> for mode attribute.
283         (*fop_xf_5_i387): Ditto.
284         (*fop_xf_6_i387): Ditto.
285
286 2008-05-30  Richard Guenther  <rguenther@suse.de>
287
288         * builtins.c (build_string_literal): Avoid generating
289         a non-gimple_val result.
290
291 2008-05-30  DJ Delorie  <dj@redhat.com>
292
293         * exec-tool.in: Use an environment variable (private) instead of a
294         file (shared) as a semaphore, so as to not break parallel builds.
295
296 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
297
298         * optabs.c (maybe_encapsulate_block): Remove.
299         (emit_libcall_block): Adjust accordingly.
300         * optabs.h (maybe_encapsulate_block): Remove prototype.
301
302         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
303         Don't use maybe_encapsulate_block.
304
305 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
306
307         * config/rs6000/rs6000.c (rs6000_legitimize_address,
308         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
309         rtx is a SYMBOL_REF before calling get_pool_constant.
310
311 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
312
313         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
314
315 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
316
317         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
318         rather than OS names to choose INO_T_EQ definition.
319         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
320         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
321
322 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
323
324         PR target/36348
325         * config/darwin-f.c: New.
326         * config/t-darwin: Added rule to build darwin-f.o.
327         * config.gcc: Defined new variable, fortran_target_objs.
328         (*-*-darwin*): Set fortran_target_objs.
329         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
330         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
331         * configure: Regenerated.
332
333 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
334
335         PR target/35771
336         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
337         canonical type if needed.
338
339 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
340
341         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
342
343 2008-05-29  Richard Guenther  <rguenther@suse.de>
344
345         PR tree-optimization/36343
346         PR tree-optimization/36346
347         PR tree-optimization/36347
348         * tree-flow.h (clobber_what_p_points_to): Declare.
349         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
350         pointed-to variable is dereferenced is irrelevant to whether
351         the pointer can access the pointed-to variable.
352         (clobber_what_p_points_to): New function.
353         * tree-ssa-alias.c (set_initial_properties): Use it.
354         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
355         call clobber check for NMTs.
356
357 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
358         
359         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
360         for printing gcov_type.
361
362 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
363
364         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
365         and the eh region information.
366         * value-prof.c (gimple_move_stmt_histograms): New function.
367         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
368
369 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
370
371         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
372
373 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
374
375         * value-prof.c (tree_ic_transform): Print counts.
376         * tree-profile.c (tree_gen_ic_func_profiler):
377         Clear __gcov_indreict_call_callee variable to avoid misattribution
378         of the profile.
379
380 2008-05-28  Rafael Espindola  <espindola@google.com>
381
382         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
383         invalid sharing.
384
385 2008-05-28  Richard Guenther  <rguenther@suse.de>
386
387         PR tree-optimization/36339
388         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
389         and clobbering code out of the loop.
390
391 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
392
393         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
394         letters defined.
395
396         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
397         s390_contiguous_bitmask_p, s390_symref_operand_p,
398         s390_check_symref_alignment, s390_reload_larl_operand,
399         s390_reload_symref_address): New functions.
400         (s390_branch_condition_mnemonic): Support compare and branch
401         instructions.
402         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
403         and 'W' constraints.
404         (s390_secondary_reload): Add secondary reloads for unaligned
405         symbol refs or symbol refs to floating point or QI/TI mode
406         integer values.
407         (legitimate_address_p): Accept symbol references as addresses.
408         (s390_expand_insv): Use rotate and insert selected bits
409         instruction for insv when building for z10.
410         (print_operand_address): Handle symbol ref addresses.
411         (print_operand): Output modifier 'c' added for signed byte values.
412         (s390_encode_section_info): Mark symbol refs with
413         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
414
415         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
416         (length attribute): RRF, RRR have 4 byte length.
417         (FPALL, INTALL): New mode iterators added.
418         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
419         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
420         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
421         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
422         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
423         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
424         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
425         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
426         instructions.
427         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
428         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
429         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
430         reload<INTALL:mode><P:mode>_toreg_z10,
431         reload<FPALL:mode><P:mode>_tomem_z10,
432         reload<FPALL:mode><P:mode>_toreg_z10,
433         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
434         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
435         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
436         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
437         definition.
438         (movmem, clrmem, cmpmem): New splitters added.
439
440         * config/s390/predicates.md (larl_operand): Use
441         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
442         SYMBOL_REF_ALIGN1_P.
443         (s390_signed_integer_comparison,
444         s390_unsigned_integer_comparison): New predicates.
445
446         * config/s390/s390-protos.h (s390_check_symref_alignment,
447         s390_contiguous_bitmask_p, s390_reload_larl_operand,
448         s390_reload_symref_address,
449         s390_compare_and_branch_condition_mask): Prototypes added.
450
451         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
452         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
453         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
454
455 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
456
457         * config/s390/s390.c (z10_cost): New cost function for z10.
458         (s390_handle_arch_option, override_options): Support -march=z10 switch.
459         (s390_issue_rate): Adjust issue rate for z10.
460         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
461         (processor_flags): Add PF_Z10.
462         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
463         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
464         * gcc/config.gcc: Add z10.
465
466 2008-05-28  Richard Guenther  <rguenther@suse.de>
467
468         PR tree-optimization/36291
469         * tree-flow. h (struct gimple_df): Remove var_anns member.
470         * tree-flow-inline.h (gimple_var_anns): Remove.
471         (var_ann): Simplify.
472         * tree-dfa.c (create_var_ann): Simplify.
473         (remove_referenced_var): Clear alias info from var_anns of globals.
474         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
475         (delete_tree_ssa): Clear alias info from var_anns of globals.
476         Do not free var_anns.
477         (var_ann_eq): Remove.
478         (var_ann_hash): Likewise.
479
480 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
481
482         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
483         and loongson2f entries.
484         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
485         * config/mips/mips.h (processor_type): Add Loongson-2E
486         and Loongson-2F entries.
487         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
488         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
489         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
490         * doc/invoke.texi (MIPS Options): Document loongson2e
491         and loongson2f processor names.
492
493 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
494
495         PR target/35767
496         PR target/35771
497         * config/i386/i386.c (ix86_function_arg_boundary): Use
498         alignment of canonical type.
499         (ix86_expand_vector_move): Check unaligned memory access for
500         all SSE modes.
501
502 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
503
504         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
505         Moved to the front of file.
506
507 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
508             H.J. Lu  <hongjiu.lu@intel.com>
509
510         * dwarf2out.c (current_fde): New.
511         (add_cfi): Use it.
512         (lookup_cfa:): Likewise.
513         (dwarf2out_end_epilogue): Likewise.
514         (dwarf2out_note_section_used): Likewise.
515
516 2008-05-27  Michael Matz  <matz@suse.de>
517
518         PR c++/27975
519         * c.opt (Wenum-compare): New warning option.
520         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
521
522 2008-05-27  Michael Matz  <matz@suse.de>
523
524         PR middle-end/36326
525         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
526         non-BLKmode types.
527         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
528         into memory as tail calls.
529
530 2008-05-27  Richard Guenther  <rguenther@suse.de>
531
532         PR tree-optimization/36339
533         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
534         pointers cause all addressable variables to be call clobbered.
535
536 2008-05-27  Richard Guenther  <rguenther@suse.de>
537
538         PR tree-optimization/36245
539         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
540
541 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
542
543         * config/s390/s390.md: Replace all occurences of the 'm'
544         constraint with 'RT'.
545
546 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
547
548         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
549         definitions added.
550         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
551         "*movdi_64".
552         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
553         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
554         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
555
556 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
557
558         * reload.c: (find_reloads): Skip alternatives according to the
559         "enabled" attribute. Constify the constraint variable.
560         * recog.c (get_attr_enabled): Add default implementation.
561         (extract_insn): Set the alternative_enabled_p array
562         in the recog_data struct.
563         (preprocess_constraints, constrain_operands): Skip
564         alternatives according to the "enabled" attribute
565         * recog.h (struct recog_data): New field alternative_enabled_p.
566         (skip_alternative): New inline function.
567         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
568         (record_reg_classes): Skip alternative according to the
569         "enabled" attribute.
570
571         * doc/md.texi: Add documention for the "enabled" attribute.
572
573 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
574
575         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
576         * postreload.c (reload_cse_simplify_operands): Replace 'm'
577         constraint with TARGET_MEM_CONSTRAINT.
578         * recog.c (asm_operand_ok, preprocess_constraints,
579         constrain_operands): Likewise.
580         * regclass.c (record_reg_classes): Likewise.
581         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
582         * reload1.c (maybe_fix_stack_asms): Likewise.
583         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
584         * recog.h: Adjust comment.
585         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
586         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
587         * doc/md.texi: Add a note to description of 'm' constraint.
588         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
589
590 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
591
592         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
593         that the bitfield is of integral type before testing its precision.
594
595 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
596             Sa Liu  <saliu@de.ibm.com> 
597
598         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
599         __modti3, __udivti3, __umodti3 and __udivmodti4.
600         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
601         that implement TImode mul and div functions.
602         * config/spu/multi3.c: New. Implement __multi3.
603         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
604         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
605         functions on SPU.
606
607 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
608
609         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
610         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
611         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
612         tls_sysv_suffix): New mode and mode attribute iterators.
613         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
614         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
615         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
616         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
617         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
618         iterators.
619
620 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
621
622         PR tree-optimization/36329
623         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
624         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
625         * cgraphbuild.c (initialize_inline_failed): Use the latter
626         macro in lieu of the former.
627         * ipa-inline.c (cgraph_mark_inline): Likewise.
628         (cgraph_decide_inlining_of_small_function): Likewise.
629         (cgraph_decide_inlining): Likewise.
630         (cgraph_decide_inlining_incrementally): Likewise.
631
632 2008-05-26  Tristan Gingold  <gingold@adacore.com>
633             Anatoly Sokolov  <aesok@post.ru>
634
635         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
636         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
637         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
638         optimization for 'avr6' architecture.
639
640 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
641
642         PR target/34932
643         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
644
645 2008-05-26  Richard Guenther  <rguenther@suse.de>
646
647         * tree-ssa-sccvn.c (expr_has_constants): Declare.
648         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
649
650 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
651
652         PR middle-end/36253
653         * caller-save.c (insert_restore): Verify alignment of spill space.
654         (insert_save): Likewise.
655         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
656         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
657         (STACK_SLOT_ALIGNMENT): Likewise.
658         * function.c (LOCAL_ALIGNMENT): Removed.
659         (get_stack_local_alignment): New.
660         (assign_stack_local): Use it.  Set alignment on stack slot.
661         (assign_stack_temp_for_type): Use get_stack_local_alignment.
662         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
663         (STACK_SLOT_ALIGNMENT): New.
664         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
665         stack slot in XFmode.
666
667         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
668
669 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
670
671         PR/36321
672         * config/i386/i386.md (allocate_stack_worker_64): Make sure
673         argument operand in rax isn't removed.
674
675 2008-05-26  Richard Guenther  <rguenther@suse.de>
676
677         PR middle-end/36300
678         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
679         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
680
681 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
682
683         PR bootstrap/36331
684         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
685
686 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
687
688         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
689         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
690
691 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
692
693         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
694         build a trampoline if we don't want one.
695         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
696         return zero for nested functions if we don't want a trampoline.
697
698 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
699
700         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
701
702 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
703
704         PR fortran/18428
705         * c.opt: Removed undocumented option '-lang-fortran'.
706         * c-common.h: Removed global variable 'lang_fortran'.
707         * c-opts.c (c_common_handle_option): Removed code to handle
708         option '-lang-fortran'. Updated includes.
709         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
710         definition of '__GFORTRAN__'.
711         (define__GNUC__): Reimplemented to use BASEVER and
712         cpp_define_formatted.
713         (builtin_define_with_value_n): Removed.
714         * c-incpath.h: Renamed to ...
715         * incpath.h: ... this.
716         * c-incpath.c: Renamed to ...
717         * incpath.c: ... this. Updated includes.
718         * fix-header.c: Updated includes.
719         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
720         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
721         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
722
723 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
724
725         * tree.h: Update the table of flags used on tree nodes.
726         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
727         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
728         (FORCED_LABEL): Add access check.
729         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
730         (ASM_INPUT_P): Likewise.
731         (ASM_VOLATILE_P): Likewise.
732         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
733         (OMP_SECTION_LAST): Access private_flag directly.
734         (OMP_RETURN_NOWAIT): Likewise.
735         (OMP_PARALLEL_COMBINED): Likewise.
736         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
737         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
738         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
739         deprecated_flag directly.
740
741 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
742
743         * final.c (frame_pointer_needed): Removed.
744         * flags.h (frame_pointer_needed): Likewise.
745
746         * function.h (rtl_data): Add frame_pointer_needed.
747         (frame_pointer_needed): New.
748
749 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
750
751         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
752
753 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
754
755         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
756         SRC is a REG.
757
758 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
759
760         * c-common.c (strip_array_types): Move function to..
761         * tree.c: ..here.
762         (get_inner_array_type): Delete.
763         * c-common.h (strip_array_types): Move declaration to..
764         * tree.h: ..here.
765         (get_inner_array_type): Delete.
766         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
767         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
768         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
769         * config/pa/pa.c (emit_move_sequence): Likewise.
770
771 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
772
773         * config/i386/i386.md (*sse_prologue_save_insn): Set length
774         attribute to 34.
775
776 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
777
778         * function.c: Include target hook for nonlocal_goto frame value.
779
780 2008-05-24  Richard Guenther  <rguenther@suse.de>
781
782         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
783         variable can be only accessed through a pointer or a union.
784
785 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
786
787         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
788         * doc/extend.texi: Likewise.
789
790 2008-05-23  DJ Delorie  <dj@redhat.com>
791
792         * config/m32c/jump.md (untyped_call): Add.
793
794         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
795         for A24 to PSImode.
796         (m32c_address_cost): Detail costs for indirect offsets.
797
798 2008-05-23  Rafael Espindola  <espindola@google.com>
799
800         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
801         if a node is a SUBREG.
802         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
803         is a SUBREG.
804
805 2008-05-23  Paul Brook  <paul@codesourcery.com>
806             Carlos O'Donell  <carlos@codesourcery.com>
807
808         * doc/extend.texi: Clarify use of __attribute__((naked)).
809         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
810         * target.h (gcc_target): Add allocate_stack_slots_for_args.
811         * function.c (use_register_for_decl): Use
812         targetm.calls.allocate_stack_slots_for_args.
813         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
814         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
815         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
816
817 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
818
819         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
820
821 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
822
823         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
824         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
825         is only rounded once.
826
827 2008-05-23  Richard Guenther  <rguenther@suse.de>
828
829         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
830
831 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
832             Jakub Jelinek  <jakub@redhat.com>
833
834         PR target/36079
835         * configure.ac: Handle --enable-cld.
836         * configure: Regenerated.
837         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
838         * config/i386/i386.h (struct machine_function): Add needs_cld field.
839         (ix86_current_function_needs_cld): New define.
840         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
841         (cld): New isns pattern.
842         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
843         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
844         * config/i386/i386.opt (mcld): New option.
845         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
846         TARGET_CLD and ix86_current_function_needs_cld.
847         (override_options): Use -mcld by default for 32-bit code if
848         USE_IX86_CLD.
849
850         * doc/install.texi (Options specification): Document --enable-cld.
851         * doc/invoke.texi (Machine Dependent Options)
852         [i386 and x86-64 Options]: Add -mcld option.
853         (Intel 386 and AMD x86-64 Options): Document -mcld option.
854
855 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
856         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
857         (return_in_memory_64): Likewise.
858         (return_in_memory_ms_64): Likewise.
859
860 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
861
862         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
863         * builtins.c (fold_builtin_fpclassify): New.
864         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
865         * builtins.def (BUILT_IN_FPCLASSIFY): New.
866         * c-common.c (handle_type_generic_attribute): Adjust to accept
867         fixed arguments before an elipsis.
868         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
869         * doc/extend.texi: Document __builtin_fpclassify.
870
871 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
872
873         * omp-low.c (gate_expand_omp_ssa): Remove.
874         (pass_expand_omp_ssa): Remove.
875         (gate_expand_omp): Do not check for flag_openmp_ssa.
876         * common.opt (-fopenmp-ssa): Remove.
877         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
878
879 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
880
881         * config/sh/sh.opt (mfixed-range): New option.
882         * config/sh/sh-protos.h (sh_fix_range): Declare.
883         * config/sh/sh.c (sh_fix_range): New function.
884         * config/sh/sh.h (sh_fixed_range_str): Declare.
885         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
886         is not empty.
887         * doc/invoke.texi (SH Options): Document -mfixed-range.
888
889 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
890
891         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
892         it before the redeclaration.
893
894 2008-05-22  Anatoly Sokolov <aesok@post.ru>
895
896         * config/avr/avr.c (get_sequence_length): Add new function.
897         (expand_prologue, expand_epilogue): Remove duplicate code.
898
899 2008-05-22  Rafael Espindola  <espindola@google.com>
900
901         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
902         sharing.
903
904 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
905
906         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
907         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
908
909         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
910         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
911         (vect_update_misalignment_for_peel): Likewise.
912         (vector_alignment_reachable_p): Likewise.
913         * tree-vect-transform.c (vectorizable_load): Likewise.
914         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
915         (get_vectype_for_scalar_type): Pass mode of scalar_type
916         to UNITS_PER_SIMD_WORD.
917
918         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
919         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
920         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
921         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
922         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
923
924 2008-05-22  Ira Rosen  <irar@il.ibm.com>
925
926         PR tree-optimization/36293
927         * tree-vect-transform.c (vect_transform_strided_load): Don't check
928         if the first load must be skipped because of a gap.
929
930 2008-05-22  Richard Guenther  <rguenther@suse.de>
931
932         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
933         more cases of offset disambiguation that is possible if
934         strict-aliasing rules apply.
935         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
936         for basic offset and type-based disambiguation.
937
938 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
939
940         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
941         ix86_expand_vector_set on V16QImode for SSE4.1.
942
943 2008-05-21  Tom Tromey  <tromey@redhat.com>
944
945         * c.opt (Wimport): Mark as undocumented.
946         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
947         -Wno-import.
948         (Warning Options): Likewise.
949         * doc/cppopts.texi: Don't mention -Wimport.
950
951 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
952
953         PR tree-optimization/36287
954         PR tree-optimization/36286
955         * lambda-code.c (build_access_matrix): Do not use the loop->num
956         for computing the number of induction variables: use the loop depth
957         instead.
958
959 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
960
961         PR/36280
962         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
963         option -f(no-)leading-underscore.
964
965 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
966
967         * config/i386/i386.c (ix86_expand_vector_init_general): Use
968         GET_MODE_NUNITS (mode).
969
970 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
971
972         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
973         (-mmulhw): Add 464 to description.
974         (-mdlmzb): Likewise.
975         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
976         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
977         464fp entries.
978         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
979         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
980         * config/rs6000/rs6000.md: Update comments for 464.
981
982 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
983
984         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
985
986 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
987
988         * config/i386/sse.md (vec_extractv4sf): Removed.
989         (vec_extractv2df): Likewise.
990         (vec_extractv2di): Likewise.
991         (vec_extractv4si): Likewise.
992         (vec_extractv8hi): Likewise.
993         (vec_extractv16qi): Likewise.
994         (vec_extract<mode>): New.
995
996 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
997
998         * config/i386/sse.md (vec_setv4sf): Removed.
999         (vec_setv2df): Likewise.
1000         (vec_setv2di): Likewise.
1001         (vec_setv4si): Likewise.
1002         (vec_setv8hi): Likewise.
1003         (vec_setv16qi): Likewise.
1004         (vec_set<mode>): New.
1005
1006 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1007
1008         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
1009         goto for vec_concat and vec_interleave.
1010
1011 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1012
1013         * config/i386/sse.md (vec_initv4sf): Removed.
1014         (vec_initv2df): Likewise.
1015         (vec_initv2di): Likewise.
1016         (vec_initv4si): Likewise.
1017         (vec_initv8hi): Likewise.
1018         (vec_initv16qi): Likewise.
1019         (vec_init<mode>): New.
1020
1021 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
1022
1023         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
1024
1025 2008-05-21  Tom Tromey  <tromey@redhat.com>
1026
1027         * ggc-zone.c (lookup_page_table_if_allocated): New function.
1028         (zone_find_object_offset): Likewise.
1029         (gt_ggc_m_S): Likewise.
1030         (highest_bit): Likewise.
1031         * ggc-page.c (gt_ggc_m_S): New function.
1032         * stringpool.c (string_stack): Remove.
1033         (init_stringpool): Update.
1034         (ggc_alloc_string): Use ggc_alloc.
1035         (maybe_delete_ident): New function.
1036         (ggc_purge_stringpool): Likewise.
1037         (gt_ggc_m_S): Remove.
1038         * ggc-common.c (ggc_protect_identifiers): New global.
1039         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
1040         ggc_protect_identifiers.
1041         * ggc.h (ggc_protect_identifiers): Declare.
1042         (gt_ggc_m_S): Update.
1043         (ggc_purge_stringpool): Declare.
1044         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
1045         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
1046         special case.
1047         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
1048
1049 2008-05-21  David S. Miller  <davem@davemloft.net>
1050
1051         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
1052         tmake_file.
1053
1054 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1055
1056         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
1057         once finished.
1058
1059 2008-05-20  David Daney  <ddaney@avtrex.com>
1060
1061         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
1062         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
1063         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
1064         UNSPEC_UPDATE_GOT_VERSION): Renumber.
1065         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
1066         (atomic_hiqi_op): New define_code_iterator.
1067         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
1068         mips_expand_compare_and_swap_12.
1069         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
1070         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
1071         (sync_<optab><mode>, sync_old_<optab><mode>,
1072         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
1073         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
1074         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
1075         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
1076         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
1077         (test_and_set_12): New insn.
1078         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
1079         sync_new_<optab><mode>, sync_old_nand<mode>,
1080         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
1081         clobber to operand 0 for SI and DI mode insns.
1082         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
1083         mips_gen_fn_4): New typedefs.
1084         (mips_gen_fn_ptrs): Define new union type.
1085         (mips_expand_compare_and_swap_12): Remove declaration.
1086         (mips_expand_atomic_qihi): Declare function.
1087         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
1088         (mips_expand_atomic_qihi): ... this.  Use new generator function
1089         parameter.
1090         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
1091         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
1092         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
1093         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
1094         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
1095         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
1096         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
1097         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
1098         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
1099         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
1100         New macros.
1101
1102 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
1103
1104         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
1105         the missing break.
1106
1107 2008-05-20  Anatoly Sokolov <aesok@post.ru>
1108
1109         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
1110         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
1111         (avr_attribute_table): Add 'OS_main' function attribute.
1112         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
1113         functions with 'OS_main' attribute.
1114
1115 2008-05-20  Richard Guenther  <rguenther@suse.de>
1116
1117         PR tree-optimization/35204
1118         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
1119         helper, split out from ...
1120         (DFS): ... here.  Make the DFS walk non-recursive.
1121
1122 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
1123             Jan Sjodin  <jan.sjodin@amd.com>
1124
1125         PR tree-optimization/36181
1126         * tree-parloops.c (loop_has_vector_phi_nodes): New.
1127         (parallelize_loops): Don't parallelize when the loop has vector
1128         phi nodes.
1129
1130 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1131             Sebastian Pop  <sebastian.pop@amd.com>
1132
1133         * tree-loop-linear.c (gather_interchange_stats): Look in the access
1134         matrix, and never look at the tree representation of the memory
1135         accesses.
1136         (linear_transform_loops): Computes parameters and access matrices.
1137         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
1138         when fails.
1139         (access_matrix_get_index_for_parameter): New.
1140         * tree-data-ref.h (struct access_matrix): New.
1141         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
1142         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
1143         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
1144         am_vector_index_for_loop): New.
1145         (struct data_reference): Add field access_matrix.
1146         (DR_ACCESS_MATRIX): New.
1147         (compute_data_dependences_for_loop): Update declaration.
1148         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
1149         * lambda.h (lambda_vector_vec_p): Declared.
1150         * lambda-code.c: Depend on pointer-set.h.
1151         (lambda_collect_parameters_from_af, lambda_collect_parameters,
1152         av_for_af_base, av_for_af, build_access_matrix,
1153         lambda_compute_access_matrices): New.
1154         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
1155
1156 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
1157
1158         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
1159         $SOURCEDIR/include.
1160
1161 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1162             Sebastian Pop  <sebastian.pop@amd.com>
1163
1164         PR tree-optimization/36206
1165         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
1166         FOLD_CONVERSIONS.
1167         (instantiate_scev_1): Rename flags to fold_conversions.
1168         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
1169         outeside instantiation_loop.
1170         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
1171         (evolution_function_is_affine_or_constant_p): Removed.
1172         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
1173         instantiate_scev.
1174         (analyze_siv_subscript): Pass in the loop nest number.
1175         Call evolution_function_is_affine_in_loop instead of 
1176         evolution_function_is_affine_p.
1177         (analyze_overlapping_iterations): Pass in the loop nest number.
1178
1179 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1180             Sebastian Pop  <sebastian.pop@amd.com>
1181
1182         PR tree-optimization/36206
1183         * tree-chrec.h (chrec_fold_op): New.
1184         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
1185         and other trees.
1186
1187 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
1188
1189         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
1190         (DIRS_EQ): New.
1191         (remove_duplicates): Do not set inode on non-inode systems.
1192         Use DIRS_EQ.
1193
1194 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
1195
1196         * config.gcc (tm_file): Update comments about relative pathnames.
1197
1198 2008-05-20  Richard Guenther  <rguenther@suse.de>
1199
1200         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
1201         * tree-ssa-sccvn.c (process_scc): Likewise.
1202         * tree-ssa-sink.c (execute_sink_code): Likewise.
1203         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
1204         * tree-vrp.c (process_assert_insertions): Likewise.
1205         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
1206         (perform_tree_ssa_dce): Likewise.
1207         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1208         (dump_dominator_optimization_stats): Likewise.
1209         * tree-vectorizer.c (vectorize_loops): Likewise.
1210
1211 2008-05-20  Richard Guenther  <rguenther@suse.de>
1212
1213         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
1214
1215 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
1216
1217         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
1218         (ix86_i386elf_return_in_memory): Likewise.
1219         (ix86_i386interix_return_in_memory): Likewise.
1220         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
1221         (SUBTARGET_RETURN_IN_MEMORY): New.
1222         * config/i386/i386elf.h: Likewise.
1223         * config/i386/ptx4-i.h: Likewise.
1224         * config/i386/sol2-10.h: Likewise.
1225         * config/i386/sysv4.h: Likewise.
1226         * config/i386/vx-common.h: Likewise.
1227         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
1228         * config/i386/i386.c (ix86_return_in_memory): Made static and
1229         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
1230         (ix86_i386elf_return_in_memory): Removed.
1231         (ix86_i386interix_return_in_memory): Removed.
1232         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
1233         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
1234
1235 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
1236
1237         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
1238
1239 2008-05-19  Xinliang David Li  <davidxl@google.com>
1240
1241         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
1242         * opts.c: Ditto.
1243         * common.opt: Ditto.
1244         * doc/invoke.texi: Ditto.
1245
1246 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1247
1248         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
1249         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
1250
1251 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1252
1253         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
1254         sizes of operand array from 8/4 to 4/2.
1255         (ix86_expand_vector_init_general): Change size of operand array
1256         from 32 to 16.  Remove op0, op1 and half_mode.
1257
1258 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1259
1260         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
1261         (ix86_expand_vector_init_interleave): Likewise.
1262         (ix86_expand_vector_init_general): Use them.  Assert
1263         word_mode == SImode when n_words == 4.
1264
1265 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
1266
1267         * config/i386/i386.c (ix86_secondary_reload): New static function.
1268         (TARGET_SECONDARY_RELOAD): New define.
1269         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
1270         * config/i386/i386.md (reload_outqi): Remove.
1271
1272 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1273
1274         PR middle-end/35509
1275         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
1276         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
1277         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
1278         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
1279         (fold_builtin_1): Likewise.
1280         * builtins.def (BUILT_IN_ISINF_SIGN): New.
1281         c-common.c (check_builtin_function_arguments): Handle
1282         BUILT_IN_ISINF_SIGN.
1283         * doc/extend.texi: Document __builtin_isinf_sign.
1284         * fold-const.c (operand_equal_p): Handle COND_EXPR.
1285
1286 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
1287
1288         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
1289         EH cleanup at the end of the pass, search for those that have been
1290         turned into forwarder blocks and do the cleanup on their successor.
1291
1292 2008-05-18  Richard Guenther  <rguenther@suse.de>
1293
1294         * tree-cfg.c (verify_gimple_expr): Allow conversions from
1295         pointers to sizetype and vice versa.
1296
1297 2008-05-18 Xinliang David Li   <davidxl@google.com>
1298
1299         * gcc/tree-ssa-dce.c: Coding style fix.
1300         (check_pow): Documentation comment. 
1301         (check_log): Documenation comment. Coding style fix.
1302         (is_unnecessary_except_errno_call): Ditto.
1303         (gen_conditions_for_pow): Ditto.
1304         (gen_conditions_for_log): Ditto.
1305         (gen_shrink_wrap_conditions): Ditto.
1306         (shrink_wrap_one_built_in_calls): Ditto.
1307         * gcc/doc/invoke.texi: Better documentation string.
1308         * ChangeLog: Fix wrong change log entries from 
1309         May 17 checkin on function call DCE.
1310
1311 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
1312
1313         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
1314
1315 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
1316
1317         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
1318         * df-problems.c (simulation routines): Fixed block comment to
1319         properly say how to add forwards scanning functions.
1320         
1321 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1322
1323         * tree-inline.c (setup_one_parameter): Remove dead code.
1324
1325 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1326
1327         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
1328         a BIT_AND_EXPR only for an INTEGER_TYPE.
1329
1330 2008-05-17 Xinliang David Li   <davidxl@google.com>
1331
1332         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
1333         (check_pow, check_log, is_unnecessary_except_errno_call): New 
1334         functions to check for eliminating math functions that are pure 
1335         except for setting errno.
1336         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
1337         general condition expressions for shrink-wrapping pow/log calls.
1338         (gen_shrink_wrap_conditions): Ditto.
1339         (shrink_wrap_one_built_in_call): Ditto.
1340         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
1341         (mark_operand_necessary): If debugging, output if OP is necessary.
1342         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
1343         unnecessary.
1344         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
1345         opt level >= 2.
1346         * gcc/common.opt: New user flag -ftree-builtin-dce.
1347         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
1348
1349 2008-05-16  David S. Miller  <davem@davemloft.net>
1350
1351         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
1352         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1353
1354 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
1355
1356         PR target/36246
1357         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
1358
1359 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1360
1361         * ifcvt.c (dead_or_predicable): Rename
1362         df_simulate_one_insn_backwards to df_simulate_one_insn.
1363         * recog.c (peephole2_optimize): Ditto.
1364         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
1365         Ditto.
1366         * df.h: Rename df_simulate_one_insn_backwards to
1367         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
1368         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
1369         scanning of defs and uses.
1370         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
1371         (df_simulate_one_insn_forwards): Removed.
1372
1373 2008-05-16  Doug Kwan  <dougkwan@google.com>
1374
1375         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
1376         QNaN & SNaN.
1377         (real_from_string): Handle NaNs and Inf as approriate.
1378
1379 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1380
1381         * doc/gty.texi (Source Files Containing Type Information): Note
1382         that headers should appear first in the gtfiles list.
1383
1384 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1385
1386         * tree.def (COND_EXEC): Properly documented this code.
1387
1388 2008-05-16  Diego Novillo  <dnovillo@google.com>
1389
1390         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
1391         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
1392         the new field.
1393
1394 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1395
1396         * tree-ssa-dse (max_stmt_uid): Removed.
1397         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
1398         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
1399         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
1400         * function.h (cfun.last_stmt_uid): New field.
1401         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
1402         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
1403         New functions.
1404         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
1405         (create_stmt_ann): Initialize the ann->uid field.
1406         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
1407         with new calls.
1408         * tree-flow.h (renumber_gimple_stmt_uids): New function.
1409
1410 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1411
1412         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
1413         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
1414         (init_empty_tree_cfg): Call it.
1415
1416 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1417
1418         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
1419         Update all users.
1420
1421 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1422
1423         * doc/invoke.text (-fdump-tree-*-verbose): New option.
1424         * tree-dump.c (dump_options): New verbose option.
1425         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
1426         Add verbose dump.
1427         * tree-pass.h (TDF_VERBOSE): New dump flag.
1428         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
1429         (tree-flow.h): Added include.
1430         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
1431
1432 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
1433
1434         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
1435
1436         From Jie Zhang  <jie.zhang@analog.com>
1437         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1438         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
1439         mcpu=bf561-none and mcpu=bf561-0.2.
1440         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1441         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1442         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1443         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1444         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
1445         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
1446         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
1447         option.
1448         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
1449         (cputype_selected): Remove.
1450         (bfin_handle_option): Don't use cputype_selected.
1451         (override_options): When no mcpu option, enable all workarounds.
1452         Don't use bfin_workarounds.
1453         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
1454         processor type.
1455         (DEFAULT_CPU_TYPE): Don't define.
1456
1457 2008-05-16  Richard Guenther  <rguenther@suse.de>
1458
1459         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
1460         on deletion of the last stmt.
1461
1462 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1463
1464         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
1465         V8HImode for SSE2 and V16QImode for SSE4.1.
1466
1467 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
1468
1469         * cgraph.h (compute_inline_parameters): Made public.
1470         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
1471         variable_generate_summary, function_write_summary,
1472         variable_write_summary, variable_read_summary.  Added generate_summary,
1473         write_summary, read_summary.
1474         * cgraphunit.c (cgraph_process_new_functions): Changed call from
1475         pass_ipa_inline.function_generate_summary, to
1476         compute_inline_parameters. 
1477         * ipa-inline.c (compute_inline_parameters): Made public and added
1478         node parameter.
1479         (compute_inline_parameters_for_current): New function.
1480         (pass_inline_param): Now calls compute_inline_parameters_for_current.
1481         (inline_generate_summary): Removed parameter and made to loop over
1482         all cgraph nodes.
1483         (pass_ipa_inline): Updated for new IPA_PASS structure.
1484         * passes.c (execute_ipa_summary_passes): Now is called once per
1485         pass rather than once per node*pass.
1486         
1487 2008-05-15  Anatoly Sokolov <aesok@post.ru>
1488
1489         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
1490         avr_have_mul_p, avr_asm_only_p): Remove variables.
1491         (avr_override_options): Remove initialization of removed variables.
1492         (avr_file_start):  Convert removed variables to fields of 
1493         'struct base_arch_s *avr_current_arch'. 
1494         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
1495         (AVR_HAVE_MUL): (Ditto.).
1496         (AVR_HAVE_MOVW): (Ditto.).
1497         (AVR_HAVE_LPMX): (Ditto.). 
1498         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
1499         avr_asm_only_p): Remove declaration.
1500
1501 2008-05-15  Diego Novillo  <dnovillo@google.com>
1502
1503         * config/arm/arm.c (arm_return_in_memory): Fix return type.
1504         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
1505
1506 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
1507
1508         PR middle-end/36194
1509         * combine.c (check_conversion): Rename back to check_promoted_subreg.
1510         Don't call record_truncated_value from here.
1511         (record_truncated_value): Turn it into a for_each_rtx callback.
1512         (record_truncated_values): New function.
1513         (combine_instructions): Call note_uses with record_truncated_values.
1514         Change name of check_conversion to check_promoted_subreg. 
1515
1516 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
1517
1518         * doc/sourcebuild.texi: Document support for torture tests.
1519
1520 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1521
1522         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
1523         to alternative 4 of operand 2.
1524
1525 2008-05-15  Richard Guenther  <rguenther@suse.de>
1526
1527         * tree-pass.h (current_pass): Declare.
1528         (get_pass_for_id): Likewise.
1529         * passes.c (passes_by_id, passes_by_id_size): New globals.
1530         (set_pass_for_id): New function.
1531         (get_pass_for_id): Likewise.
1532         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
1533         (execute_function_todo): Flush per function statistics.
1534         * toplev.c (compile_file): Init statistics.
1535         (general_init): Do early statistics initialization.
1536         (finalize): Finish statistics.
1537         * statistics.h (statistics_early_init): Declare.
1538         (statistics_init): Likewise.
1539         (statistics_fini): Likewise.
1540         (statistics_fini_pass): Likewise.
1541         (statistics_counter_event): Likewise.
1542         (statistics_histogram_event): Likewise.
1543         * statistics.c: New file.
1544         * Makefile.in (OBJS-common): Add statistics.o.
1545         (statistics.o): Add dependencies.
1546         * doc/invoke.texi (-fdump-statistics): Document.
1547
1548         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
1549         (insert): Likewise.
1550         (execute_pre): Use statistics_counter_event.
1551         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
1552         (substitute_and_fold): Increment it.  Use statistics_counter_event.
1553
1554 2008-05-15  Diego Novillo  <dnovillo@google.com>
1555
1556         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
1557
1558         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
1559         * tree-ssa-alias.c (new_type_alias): Remove references to
1560         sub-variables from comment.
1561         * tree-ssa-operands.c (swap_tree_operands): Likewise.
1562
1563 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1564
1565         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
1566         attribute to 1 only for insertps alternative.
1567
1568 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1569
1570         * config/bfin/bfin.md (loadbytes): New pattern.
1571         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
1572         (bfin_init_builtins): Initialize it.
1573         (bdesc_1arg): Add it.
1574
1575 2008-05-15  Sa Liu  <saliu@de.ibm.com>
1576
1577         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
1578         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
1579         * testsuite/lib/target-supports.exp: Add
1580         check_effective_target_fortran_integer_16.
1581
1582 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1583
1584         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
1585         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
1586         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
1587         (TARGET_RETURN_IN_MEMORY): Define.
1588
1589 2008-05-15  Richard Guenther  <rguenther@suse.de>
1590
1591         PR middle-end/36244
1592         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
1593         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
1594         represent unmodifiable vars.
1595
1596 2008-05-15  Richard Guenther  <rguenther@suse.de>
1597
1598         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
1599         INDIRECT_REF and TARGET_MEM_REF.
1600         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1601         TARGET_MEM_REF.
1602
1603 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1604             H.J. Lu  <hongjiu.lu@intel.com>
1605
1606         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
1607         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
1608         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
1609         insn alternatives.  Add missing alternatives.
1610         (*vec_concatv2di_rex64_sse4_1): Likewise.
1611         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
1612         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
1613         Require TARGET_SSE.
1614
1615 2008-05-15  Richard Guenther  <rguenther@suse.de>
1616
1617         PR tree-optimization/36009
1618         PR tree-optimization/36204
1619         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
1620         (determine_invariantness_stmt): Record the loop a store is
1621         always executed in.
1622         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
1623         dependency.
1624
1625 2008-05-15  Richard Guenther  <rguenther@suse.de>
1626
1627         PR tree-optimization/34330
1628         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
1629         through the pointer will alias the SMT.
1630
1631 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
1632
1633         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
1634
1635 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
1636
1637         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
1638
1639 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1640             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1641
1642         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
1643         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
1644         (vashl_optab): New optab for vector/vector shifts.
1645         (vashr_optab): Ditto.
1646         (vlshr_optab): Ditto.
1647         (vrotl_optab): Ditto.
1648         (vrotr_optab): Ditto.
1649         (optab_subtype): New enum for optab_for_tree_code call.
1650         (optab_for_tree_code): Add enum optab_subtype argument.
1651
1652         * optabs.c (optab_for_tree_code): Take an additional argument to
1653         distinguish between a vector shift by a scalar and vector shift by
1654         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
1655         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
1656         vector shift by a vector.
1657         (expand_widen_pattern_expr): Pass additional argument to
1658         optab_for_tree_code.
1659
1660         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
1661         vrotl_optab, vrotr_optab.
1662
1663         * expr.c (expand_expr_real_1): Update calls to
1664         optab_for_tree_code to distinguish between vector shifted by a
1665         scalar and vector shifted by a vector.
1666         * tree-vectorizer.c (supportable_widening_operation): Ditto.
1667         (supportable_narrowing_operation): Ditto.
1668         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
1669         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
1670         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
1671         (vect_create_epilog_for_reduction): Ditto.
1672         (vectorizable_reduction): Ditto.
1673         (vectorizable_operation): Ditto.
1674         (vect_strided_store_supported): Ditto.
1675         (vect_strided_load_supported): Ditto.
1676         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
1677         * expmed.c (expand_shift): Ditto.
1678
1679         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
1680         scalar type.
1681         (ashr@var{m}3): Ditto.
1682         (vashl@var{m}3): Document new vector/vector shift standard name.
1683         (vashr@var{m}3): Ditto.
1684         (vlshr@var{m}3): Ditto.
1685         (vrotl@var{m}3): Ditto.
1686         (vrotr@var{m}3): Ditto.
1687
1688         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
1689         (PPERM_INVERT): Ditto.
1690         (PPERM_REVERSE): Ditto.
1691         (PPERM_REV_INV): Ditto.
1692         (PPERM_ZERO): Ditto.
1693         (PPERM_ONES): Ditto.
1694         (PPERM_SIGN): Ditto.
1695         (PPERM_INV_SIGN): Ditto.
1696         (PPERM_SRC1): Ditto.
1697         (PPERM_SRC2): Ditto.
1698
1699         * config/i386/sse.md (mulv2di3): Add SSE5 support.
1700         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
1701         allows a memory operand to be the value being added, and split it
1702         to improve vectorization.
1703         (sse5_pmacsdqh_mem): Ditto.
1704         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
1705         (sse5_mulv2div2di3_high): Ditto.
1706         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
1707         (vec_pack_trunc_v4si): Ditto.
1708         (vec_pack_trunc_v2di): Ditto.
1709         (sse5_pcmov_<mode>): Remove code that tried to use use
1710         andps/andnps instead of pcmov.
1711         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
1712         pmacsdqh instructions.
1713         (vec_widen_smult_lo_v4si): Ditto.
1714
1715         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
1716         (PPERM_INVERT): Ditto.
1717         (PPERM_REVERSE): Ditto.
1718         (PPERM_REV_INV): Ditto.
1719         (PPERM_ZERO): Ditto.
1720         (PPERM_ONES): Ditto.
1721         (PPERM_SIGN): Ditto.
1722         (PPERM_INV_SIGN): Ditto.
1723         (PPERM_SRC1): Ditto.
1724         (PPERM_SRC2): Ditto.
1725         (ix86_expand_sse_movcc): Move the SSE5 test after the if
1726         true/false tests.
1727         (ix86_expand_int_vcond): If SSE5 generate all possible integer
1728         comparisons.
1729         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
1730         says ignore whether the last reference is a memory operand.
1731
1732 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1733             Paolo Bonzini <bonzini at gnu dot org>
1734
1735         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
1736         shift patterns.
1737
1738         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
1739         (vlshr<mode>3): Rename from vlshr<mode>3.
1740         (vashr<mode>3): Rename from vashr<mode>3.
1741         (mulv4sf3): Change the names of vector shift patterns.
1742         (mulv4si3): Ditto.
1743         (negv4sf2): Ditt.
1744
1745         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
1746         shift insns.
1747
1748         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
1749         (SI_SHLHI): Ditto.
1750         (SI_SHL): Ditto.
1751         (SI_SHLI): Ditto.
1752         (SI_ROTH): Ditto.
1753         (SI_ROTHI): Ditto.
1754         (SI_ROT): Ditto.
1755         (SI_ROTI): Ditto.
1756         (SPU_RL_0): Ditto.
1757         (SPU_RL_1): Ditto.
1758         (SPU_RL_2): Ditto.
1759         (SPU_RL_3): Ditto.
1760         (SPU_RL_4): Ditto.
1761         (SPU_RL_5): Ditto.
1762         (SPU_RL_6): Ditto.
1763         (SPU_RL_7): Ditto.
1764         (SPU_SL_0): Ditto.
1765         (SPU_SL_1): Ditto.
1766         (SPU_SL_2): Ditto.
1767         (SPU_SL_3): Ditto.
1768         (SPU_SL_4): Ditto.
1769         (SPU_SL_5): Ditto.
1770         (SPU_SL_6): Ditto.
1771         (SPU_SL_7): Ditto.
1772
1773         * config/spu/spu.md (v): New iterator macro to add v for vector types.
1774         (floatunssidf2_internal): Change vector/vector shift names.
1775         (floatunsdidf2_internal): Ditto.
1776         (mulv8hi3): Ditto.
1777         (ashrdi3): Ditto.
1778         (ashrti3): Ditto.
1779         (cgt_df): Ditto.
1780         (cgt_v2df): Ditto.
1781         (dftsv): Ditto.
1782         (vashl<mode>3): Rename from ashl<mode>3.
1783         (vashr<mode>3): Rename from ashr<mode>3.
1784         (vlshr<mode>3): Rename from lshr<mode>3.
1785         (vrotl<mode>3): Rename from rotl<mode>3.
1786
1787 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1788
1789         PR target/36224
1790         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
1791         multiply gives the wrong value when doing widening multiplies.
1792         (vec_widen_smult_lo_v4si): Ditto.
1793
1794 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1795
1796         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
1797         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
1798         emit_library_call_value. 
1799         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
1800         * tree.h (ECF_LIBCALL_BLOCK): Removed.
1801         * calls.c (initialize_argument_information, precompute_arguments, 
1802         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
1803         (precompute_arguments): Removed flags parameter.
1804         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
1805         
1806 2008-05-14  Richard Guenther  <rguenther@suse.de>
1807
1808         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
1809         Make sure to register the store if the use is a PHI_NODE.
1810
1811 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1812
1813         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1814         memory if the component is to be referenced in BLKmode according
1815         to get_inner_reference.
1816
1817 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
1818
1819         * calls.c (emit_library_call_value_1): Restore code clearing
1820         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
1821
1822 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1823             Nicolas Roche  <roche@adacore.com>
1824
1825         * configure.ac: Add support for a "gcc_subdir" variable in
1826         config-lang.in, to denote a subdirectory where the language/GCC
1827         integration files are to be found.
1828         * configure: Regenerate.
1829
1830 2008-05-14  Ira Rosen  <irar@il.ibm.com>
1831
1832         PR tree-optimization/36098
1833         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
1834         value for the first load in the group in case of a gap.
1835         (vect_build_slp_tree): Check that there are no gaps in loads.
1836
1837 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1838
1839         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
1840         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
1841         expand_copysign_bit, ): Change call to emit_no_conflict_block to
1842         emit_insn and remove unneeded code to construct extra args.
1843         (emit_no_conflict_block): Removed.
1844         * optabls.h: (emit_no_conflict_block): Removed.
1845         * cse.c (cse_extended_basic_block): Remove search for
1846         REG_NO_CONFLICT note.
1847         * global.c: Removed incorrect comment added in revision 117.
1848         * expr.c (convert_move): Change call to emit_no_conflict_block to
1849         emit_insn.
1850         * recog.c: Change comments so that they do not mention
1851         REG_NO_CONFLICT.
1852         * local_alloc.c (combine_regs): Removed last parameter.
1853         (no_conflict_p): Removed.
1854         (block_alloc): Removed note, no_conflict_combined_regno and set
1855         local vars. Removed all code to process REG_NO_CONFLICT blocks.
1856         (combine_regs): Removed already_dead and code to look for
1857         REG_NO_CONFLICT notes.
1858         * lower_subreg (remove_retval_note): Removed code to look for
1859         REG_NO_CONFLICT block.
1860         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
1861         (resolve_clobber): Remove code to process libcalls that have
1862         REG_NO_CONFLICT notes.
1863         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
1864         case.
1865         * combine.c (can_combine_p, distribute_notes):  Removed
1866         REG_NO_CONFLICT case.
1867         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
1868         to emit_insns.
1869         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
1870         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
1871         Ditto.
1872         * reg-notes.def (NO_CONFLICT): Removed.
1873
1874 2008-05-14  David S. Miller  <davem@davemloft.net>
1875
1876         * config/sparc/sparc.c (sparc_profile_hook): If
1877         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
1878         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
1879         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1880
1881 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
1882
1883         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
1884
1885 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
1886
1887         PR target/36222
1888         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
1889         and op1 expansion before vector concat to have less live pseudos.
1890
1891 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
1892
1893         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
1894         ix86_expand_vector_set if supported.
1895
1896 2008-05-13  Diego Novillo  <dnovillo@google.com>
1897             Kenneth Zadeck  <zadeck@naturalbridge.com>
1898
1899         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
1900
1901         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
1902         phinodes_print_statistics, init_ssanames, fini_ssanames,
1903         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
1904         release_ssa_name, release_defs, replace_ssa_name_symbol,
1905         ssanames_print_statistics): Move ...
1906         * tree-flow.h: ... here.
1907         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
1908         Use FN instead of cfun.
1909         (make_ssa_name_fn): Rename from make_ssa_name.
1910         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
1911         * tree-flow-inline.h (make_ssa_name): Move from
1912         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
1913         * omp-low.c (expand_omp_parallel):
1914         * tree-flow-inline.h (redirect_edge_var_map_result):
1915         * tree-ssa.c (init_tree_ssa): Add argument FN.
1916         Use it instead of cfun.  Update all users.
1917
1918 2008-05-13  Tom Tromey  <tromey@redhat.com>
1919
1920         PR preprocessor/22168:
1921         * doc/cpp.texi (Top): Update menu.
1922         (Alternatives to Wrapper #ifndef): New node.
1923         (Other Directives): Document deprecation.
1924         (Obsolete Features): Remove menu.
1925         (Assertions): Merge node into Obsolete Features.
1926         (Obsolete once-only headers): Move earlier; rename to Alternatives
1927         to Wrapper #ifndef.
1928         * doc/cppopts.texi: Update.
1929         * c.opt (Wdeprecated): Enable for C and ObjC.
1930         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
1931         (C++ Dialect Options): Move -Wno-deprecated from here to...
1932         (Warning Options): ... here.
1933
1934 2008-05-13  Richard Guenther  <rguenther@suse.de>
1935
1936         PR middle-end/36227
1937         * fold-const.c (fold_sign_changed_comparison): Do not allow
1938         changes in pointer-ness.
1939
1940 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1941
1942         PR target/24713
1943         * config/sh/sh.c (sh_expand_prologue): Don't clear
1944         RTX_FRAME_RELATED_P for push insns.
1945
1946 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
1947
1948         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
1949
1950 2008-05-12  Anatoly Sokolov <aesok@post.ru>
1951
1952         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
1953         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
1954         Use 'machine->is_leaf' instead of 'leaf_func_p'.
1955
1956 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1957
1958         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
1959         (*vec_concatv4sf_sse): This.
1960         (*sse2_concatv2si): Renamed to ...
1961         (*vec_concatv2si_sse2): This.
1962         (*sse1_concatv2si): Renamed to ...
1963         (*vec_concatv2si_sse): This.
1964         (*vec_concatv2di_rex): Renamed to ...
1965         (*vec_concatv2di_rex64): This.
1966         (*vec_concatv2si_sse4_1): New.
1967         (*vec_concatv2di_rex64_sse4_1): Likewise.
1968
1969 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
1970
1971         PR rtl-optimization/36111
1972         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
1973         that was created for swappable operands.
1974
1975 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
1976
1977         PR ada/36001
1978         * Makefile.in: Substitute GNATMAKE and GNATBIND.
1979         * configure.ac: Add call to ACX_PROG_GNAT.
1980
1981 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
1982
1983         * optc-gen.awk: Fix comment typo.
1984
1985 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1986
1987         * pretty-print.c (pp_integer_with_precision): Use
1988         HOST_LONG_LONG_FORMAT.
1989
1990 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
1991
1992         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
1993                 
1994 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
1995
1996         * config/i386/i386.c (bdesc_ptest): Removed.
1997         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
1998         (bdesc_args): Add __builtin_ia32_ptestz128,
1999         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
2000         (ix86_init_mmx_sse_builtins): Updated.
2001         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
2002         (ix86_expand_builtin): Updated.
2003
2004 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
2005
2006         * tree-cfg.c (valid_fixed_convert_types_p): New function.
2007         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
2008
2009 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
2010
2011         * value-prof.c (interesting_stringop_to_profile): Do not
2012         return early for BUILT_IN_MEMPCPY.
2013
2014 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2015
2016         * calls.c (expand_call): Don't use callgraph to increase
2017         preferred_stack_boundary.
2018
2019         * cgraph.h (cgraph_rtl_info): Use unsigned on
2020         preferred_incoming_stack_boundary.
2021
2022         * final.c (rest_of_clean_state): Use unsigned on
2023         preferred_stack_boundary.
2024
2025 2008-05-09  Tom Tromey  <tromey@redhat.com>
2026
2027         PR preprocessor/22231:
2028         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
2029         proceeding.
2030
2031 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
2032
2033         PR tree-optimization/36129
2034         * tree-ssa-ccp.c: Include value-prof.h.
2035         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
2036         built-in function was folded to a constant.
2037         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
2038
2039 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
2040             Sebastian Pop  <sebastian.pop@amd.com>
2041
2042         * tree-scalar-evolution.c: Document instantiate_scev.
2043         (instantiate_parameters_1): Renamed instantiate_scev_1.
2044         Don't use the same loop for instantiation_loop and evolution_loop.
2045         (instantiate_scev): New.
2046         (instantiate_parameters): Moved...
2047         (resolve_mixers): Update call to instantiate_scev_1 to pass the
2048         same loop twice.  Maintains the semantics for this function.
2049         * tree-scalar-evolution.h (instantiate_scev): Declare.
2050         (instantiate_parameters): ...here.  Now static inline.
2051         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
2052         instead of resolve_mixers.
2053
2054 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
2055
2056         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
2057
2058 2008-05-09  Tomas Bily  <tbily@suse.cz>
2059
2060         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
2061         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
2062         * tree-ssa-structalias.c (get_constraint_for): Likewise.
2063         * c-common.c (c_common_truthvalue_conversion): Likewise.
2064         * tree-object-size.c (compute_object_offset): Likewise.
2065         * tree-inline.c (estimate_num_insns_1): Likewise.
2066         * varasm.c (const_hash_1, compare_constant, copy_constant)
2067         (compute_reloc_for_constant, output_addressed_constants)
2068         (initializer_constant_valid_p): Likewise.
2069         * c-omp.c (check_omp_for_incr_expr): Likewise.
2070         * gimplify.c (gimplify_expr): Likewise.
2071         * c-typeck.c (c_finish_return): Likewise.
2072         * tree-vectorizer.c (supportable_widening_operation)
2073         (supportable_narrowing_operation): Likewise.
2074         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
2075         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
2076         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
2077         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
2078         (descr_info_loc): Likewise.
2079         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
2080         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
2081         (fold_unary): Likewise.
2082         * builtins.c (get_pointer_alignment): Likewise.
2083         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
2084         (instantiate_parameters_1): Likewise.
2085         * tree.c (expr_align, stabilize_reference): Likewise.
2086         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
2087         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
2088         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
2089         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
2090         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
2091         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
2092         Likewise.
2093         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
2094         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
2095         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
2096         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
2097         (forward_propagate_comparison)
2098         (tree_ssa_forward_propagate_single_use_vars): Likewise.
2099         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
2100         * emit-rtl.c (component_ref_for_mem_expr)
2101         (set_mem_attributes_minus_bitpos): Likewise.
2102         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
2103         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
2104         Likewise.
2105         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
2106         (build_function_call, pointer_diff, build_compound_expr)
2107         (c_finish_return): Likewise.
2108         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
2109         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
2110         Likewise.
2111         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
2112         * expr.c (is_aligning_offset): Likewise.
2113         * tree-ssa-alias.c (is_escape_site): Likewise.
2114         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
2115         (check_all_va_list_escapes): Likewise.
2116         * tree-ssa-loop-ivopts.c (determine_base_object)
2117         (determine_common_wider_type): Likewise.
2118         * dojump.c (do_jump): Likewise.
2119         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
2120         * tree-gimple.c (is_gimple_cast): Likewise.
2121         * fold-const.c (decode_field_reference, )
2122         (fold_sign_changed_comparison, fold_unary, fold_comparison)
2123         (fold_binary): Likewise.
2124         * tree-ssa-alias-warnings.c (find_alias_site_helper)
2125         (already_warned_in_frontend_p): Likewise.
2126         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
2127         * tree.c (really_constant_p, get_unwidened): Likewise.
2128         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
2129         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
2130         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
2131         Likewise.
2132         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
2133         CONVERT_EXPR_P.
2134         (CONVERT_EXPR_P): Define.
2135         (CASE_CONVERT): Define.
2136         
2137 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
2138
2139         PR middle-end/36117
2140         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
2141         (delete_unmarked_insns): When deleting a call, call
2142         delete_unreachable_blocks.
2143         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2144         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
2145
2146 2008-05-08  Richard Guenther  <rguenther@suse.de>
2147
2148         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
2149         (-ftree-salias): Likewise.
2150         (salias-max-implicit-fields): Remove param documentation.
2151         (salias-max-array-elements): Likewise.
2152         * tree-pass.h (pass_create_structure_vars): Remove.
2153         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
2154         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2155         * tree-ssa-alias.c (create_structure_vars): Remove.
2156         (gate_structure_vars): Likewise.
2157         (pass_create_structure_vars): Likewise.
2158         (gate_build_alias): Likewise.
2159         (pass_build_alias): Adjust to run always and dump the function.
2160         * common.opt (ftree-salias): Hide.
2161         * passes.c (init_optimization_passes): Remove
2162         pass_create_structure_vars, adjust comment.
2163         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
2164         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2165         * opts.c (decode_options): Do not set flag_tree_salias.
2166         (common_handle_option): Add OPT_ftree_salias to the backward
2167         compatibility section.
2168
2169 2008-05-08  Richard Guenther  <rguenther@suse.de>
2170
2171         * tree-flow-inline.h (var_can_have_subvars): Move ...
2172         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
2173         * tree-flow.h (var_can_have_subvars): Remove.
2174         (push_fields_onto_fieldstack): Remove.
2175         (sort_fieldstack): Likewise.
2176         (struct fieldoff): Move ...
2177         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
2178         alias_set and base_for_components fields.
2179         (sort_fieldstack): Make static.
2180         (push_fields_onto_fieldstack): Likewise.  Remove code that
2181         handles anything but RECORD_TYPEs.  Remove alias_set and
2182         base_for_components handling.
2183         (create_variable_info_for): Adjust.
2184
2185 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
2186
2187         * common.opt (Wframe-larger-than=): Shorten the help message
2188         to one line.
2189         * doc/invoke.texi (Wframe-larger-than=): Add more description.
2190
2191 2008-05-08  Rafael Espindola  <espindola@google.com>
2192
2193         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
2194         trap.
2195         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
2196         trap and that both operands are gimple values.
2197         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
2198         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
2199         is a fp operation.
2200
2201 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
2202
2203         * read-rtl.c (join_c_conditions): Return the first string if the
2204         two strings are equal.
2205
2206 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
2207
2208         * gensupport.h (pred_data): Add a "num_codes" field.
2209         (add_predicate_code): Declare.
2210         * gensupport.c (add_predicate_code): New function.
2211         (std_pred_table): Add an "allows_const_p" field.
2212         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
2213         Remove the (incomplete) list of such codes from the codes field.
2214         (init_predicate_table): Use add_predicate_code.  Add all
2215         RTX_CONST_OBJs if allows_const_p is true.
2216         * genrecog.c (process_define_predicate): Use add_predicate_code.
2217
2218 2008-05-08  David Daney  <ddaney@avtrex.com>
2219             Richard Sandiford  <rsandifo@nildram.co.uk>
2220         
2221         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
2222         special case of constant zero operands.
2223         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
2224         old and new values.  Special case constant zero values.
2225         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
2226         fails.
2227         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
2228         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
2229
2230 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
2231
2232         PR target/36090
2233         * simplify-rtx.c (simplify_plus_minus): Create CONST of
2234         similar RTX_CONST_OBJ before CONST_INT.
2235
2236 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
2237
2238         * stmt.c (expand_stack_restore): Change sa mode if needed.
2239
2240 2008-05-08  Richard Guenther  <rguenther@suse.de>
2241
2242         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
2243         return type to bool.
2244         (ix86_sol10_return_in_memory): Likewise.
2245         (ix86_i386elf_return_in_memory): Likewise.
2246         (ix86_i386interix_return_in_memory): Likewise.
2247         * config/i386/i386.c (ix86_return_in_memory): Likewise.
2248         (ix86_sol10_return_in_memory): Likewise.
2249         (ix86_i386elf_return_in_memory): Likewise.
2250         (ix86_i386interix_return_in_memory): Likewise.
2251
2252 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
2253
2254         PR bootstrap/36180
2255         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
2256         fndecl argument.
2257         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
2258         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
2259         declared in front.
2260
2261 2008-05-08  Richard Guenther  <rguenther@suse.de>
2262
2263         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
2264         * tree-data-ref.h (struct dr_alias): Remove subvars field.
2265         (DR_SUBVARS): Remove.
2266         * tree-dfa.c (dump_subvars_for): Remove.
2267         (debug_subvars_for): Likewise.
2268         (dump_variable): Do not dump subvars.
2269         (remove_referenced_var): Do not remove subvars.
2270         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
2271         (lookup_subvars_for_var): Remove.
2272         (get_subvars_for_var): Likewise.
2273         (get_subvars_at): Likewise.
2274         (get_first_overlapping_subvar): Likewise.
2275         (overlap_subvar): Likewise.
2276         * tree-flow.h (subvar_t): Remove.
2277         (struct var_ann_d): Remove subvars field.
2278         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
2279         argument.  Remove special handling of SFTs.
2280         (compute_tag_properties): Likewise.
2281         (set_initial_properties): Likewise.
2282         (compute_call_clobbered): Likewise.
2283         (count_mem_refs): Likewise.
2284         (compute_memory_partitions): Likewise.
2285         (compute_flow_insensitive_aliasing): Likewise.
2286         (setup_pointers_and_addressables): Likewise.
2287         (new_type_alias): Likewise.
2288         (struct used_part): Remove.
2289         (used_portions): Likewise.
2290         (struct used_part_map): Likewise.
2291         (used_part_map_eq): Likewise.
2292         (used_part_map_hash): Likewise.
2293         (free_used_part_map): Likewise.
2294         (up_lookup): Likewise.
2295         (up_insert): Likewise.
2296         (get_or_create_used_part_for): Likewise.
2297         (create_sft): Likewise.
2298         (create_overlap_variables_for): Likewise.
2299         (find_used_portions): Likewise.
2300         (create_structure_vars): Likewise.
2301         * tree.def (STRUCT_FIELD_TAG): Remove.
2302         * tree.h (MTAG_P): Adjust.
2303         (struct tree_memory_tag): Remove base_for_components and
2304         unpartitionable flags.
2305         (struct tree_struct_field_tag): Remove.
2306         (SFT_PARENT_VAR): Likewise.
2307         (SFT_OFFSET): Likewise.
2308         (SFT_SIZE): Likewise.
2309         (SFT_NONADDRESSABLE_P): Likewise.
2310         (SFT_ALIAS_SET): Likewise.
2311         (SFT_UNPARTITIONABLE_P): Likewise.
2312         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
2313         (union tree_node): Remove sft field.
2314         * alias.c (get_alias_set): Remove special handling of SFTs.
2315         * print-tree.c (print_node): Remove handling of SFTs.
2316         * tree-dump.c (dequeue_and_dump): Likewise.
2317         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
2318         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
2319         * tree-predcom.c (set_alias_info): Do not set subvars.
2320         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
2321         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
2322         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
2323         (add_vars_for_offset): Remove.
2324         (add_virtual_operand): Remove special handling of SFTs.
2325         (add_call_clobber_ops): Likewise.
2326         (add_call_read_ops): Likewise.
2327         (get_asm_expr_operands): Likewise.
2328         (get_modify_stmt_operands): Likewise.
2329         (get_expr_operands): Likewise.
2330         (add_to_addressable_set): Likewise.
2331         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
2332         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2333         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
2334         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
2335         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
2336         (tree_node_structure): Likewise.
2337         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
2338         handling of SFTs.
2339         (find_what_p_points_to): Likewise.
2340
2341 2008-05-08  Sa Liu  <saliu@de.ibm.com>
2342
2343         * config/spu/spu.md: Fixed subti3 pattern.
2344
2345 2008-05-08  Richard Guenther  <rguenther@suse.de>
2346
2347         PR middle-end/36154
2348         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
2349         sure to create a representative for trailing arrays for PTA.
2350
2351 2008-05-08  Richard Guenther  <rguenther@suse.de>
2352
2353         PR middle-end/36172
2354         * fold-const.c (operand_equal_p): Two objects which types
2355         differ in pointerness are not equal.
2356
2357 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
2358
2359         * calls.c (compute_argument_block_size): Add argument tree fndecl.
2360         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
2361         (emit_library_call_value_1): Add new variable fndecl initialized by
2362         NULL_TREE. It should be the decl type of orgfun, but this information
2363         seems not to be available here, so it uses the default calling abi.
2364         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
2365         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
2366         by TARGET_RETURN_IN_MEMORY.
2367         * config/i386/i386-interix.h: Likewise.
2368         * config/i386/i386.h: Likewise.
2369         * config/i386/i386elf.h: Likewise.
2370         * config/i386/ptx4-i.h: Likewise.
2371         * config/i386/sol2-10.h: Likewise.
2372         * config/i386/sysv4.h: Likewise.
2373         * config/i386/vx-common.h: Likewise.
2374         * config/cris/cris.h: Removed #if 0 clause.
2375         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
2376         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
2377         argument.
2378         (ix86_sol10_return_in_memory): Likewise.
2379         (ix86_i386elf_return_in_memory): New.
2380         (ix86_i386interix_return_in_memory): New.
2381         * config/mt/mt-protos.h (mt_return_in_memory): New.
2382         * config/mt/mt.c: Likewise.
2383         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2384         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
2385         * config/bfin/bfin.h: Likewise.
2386         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
2387         argument.
2388         * config/bfin/bfin.c: Likewise.
2389         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2390         * config/alpha/unicosmk.h: Likewise.
2391         * config/i386/cygming.h: Likewise.
2392         * config/iq2000/iq2000.h: Likewise.
2393         * config/mips/mips.h: Likewise.
2394         * config/mn10300/mn10300.h: Likewise.
2395         * config/rs6000/rs6000.h: Likewise.
2396         * config/score/score.h: Likewise.
2397         * config/spu/spu.h: Likewise.
2398         * config/v850/v850.h: Likewise.
2399         * defaults.h: Likewise.
2400         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
2401         * expr.c (emit_block_move): Adjust use of
2402         OUTGOING_REG_PARM_STACK_SPACE.
2403         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
2404         OUTGOING_REG_PARM_STACK_SPACE.
2405         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
2406
2407 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
2408
2409         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
2410         on OMP_RETURN for OMP_FOR.
2411
2412         PR debug/35896
2413         * dwarf2out.c (dw_expand_expr, common_check): Removed.
2414         (fortran_common): New function.
2415         (gen_variable_die): Call fortran_common instead of common_check,
2416         adjust for it returning tree instead of rtx.  Formatting.
2417
2418 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
2419
2420         PR rtl/7335
2421         PR rtl/33826
2422         * see.c (see_copy_insn): Copy new pure const attributes for new call.
2423         * c-decl.c (merge_decls): Ditto.
2424         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
2425         to RTL_CONST_OR_PURE_CALL_P.
2426         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
2427         Initialized DECL_LOOPING_CONST_PURE.
2428         (process_call_operands): Set tree_side_effects properly.
2429         * tree.h (TREE_READONLY_DECL_P): Removed.
2430         (DECL_IS_PURE): Renamed to DECL_PURE_P.
2431         (DECL_LOOPING_OR_CONST_P): New macro.
2432         (struct tree_function_decl): Added looping_const_or_pure_p.
2433         (ECF_*) Renumbered.
2434         (ECF_LOOPING_OR_CONST_P): New macro.
2435         * rtlanal.c (pure_const_p): Removed.
2436         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
2437         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
2438         to RTL_CONST_CALL_P.
2439         * ipa-pure-const.c (pure_const_state_e): Added looping field.
2440         (check_decl, check_tree, check_call, scan_function): Initialize
2441         looping.
2442         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
2443         (static_execute): Set looping true for recursive functions.
2444         Undo setting state to IPA_NEITHER for recursive functions.
2445         * cse.c (cse_insn): 
2446         * ifcvt.c (noce_can_store_speculate_p): Changed
2447         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
2448         RTL_CONST_OR_PURE_CALL_P.
2449         * dse.c (scan_insn): Ditto.
2450         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
2451         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
2452         RTL_CONST_OR_PURE_CALL_P.
2453         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
2454         pure_call_p to RTL_CONST_CALL_P.
2455         * gimplify.c (gimplify_call_expr): Clear side effects for
2456         non-looping pure and constant calls.
2457         * calls.c (emit_call_1): Set rtl flags from ecf flags.
2458         (flags_from_decl_or_type): Set ecf flags from decl flags.
2459         (initialize_argument_information): Turn off
2460         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
2461         Change const to pure if callee_copies is true rather than just
2462         turning off const.
2463         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
2464         way of marking pure calls.
2465         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
2466         Remove hack that was supposed to fix pr7335 and remove old
2467         way of marking pure calls.
2468         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
2469         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
2470         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
2471         RTL_CONST_OR_PURE_CALL_P.
2472         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
2473         * loop-invariant.c (find_exits, find_invariant_bb): Changed
2474         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
2475         * sched-deps.c (schedule_analyze): Ditto.
2476         * rtl.h (struct rtx_def): Use call field, unchanging field, and
2477         return_val field of calls to represent pure and const function info.
2478         (CONST_OR_PURE_CALL_P): Deleted macro.
2479         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2480         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
2481         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
2482         TREE_READONLY.
2483         * tree-optimize.c (execute_fixup_cfg): Added test for
2484         ECF_LOOPING_CONST_OR_PURE.
2485         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
2486         DECL_PURE_P.
2487         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
2488         effects for looping pure or const calls.
2489         (verify_gimple_expr): Added verification code. 
2490         * config/alpha/alpha.c (alpha_legitimize_address,
2491         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
2492         RTL_CONST_CALL_P.
2493         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
2494         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
2495         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
2496         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
2497         RTL_CONST_OR_PURE_CALL_P.
2498         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
2499         and const calls to be deleted.
2500
2501 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2502
2503         PR target/35714
2504         * config/i386/mmx.md (mmx_subv2sf3): New expander.
2505         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
2506         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
2507         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2508         to handle nonimmediate operands.
2509         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
2510         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
2511         to handle nonimmediate operands.
2512         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
2513         (mmx_pmulhrwv4hi3): New expander.  Use
2514         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2515         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
2516         (sse2_umulv1siv1di3): New expander.  Use
2517         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2518         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
2519         (mmx_eq<mode>3): New expander.  Use
2520         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2521         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
2522         (mmx_uavgv8qi3): New expander.  Use
2523         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2524         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
2525         (mmx_uavgv4hi3): New expander.  Use
2526         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2527
2528         * config/i386/sse.md
2529         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
2530         to handle nonimmediate operands.
2531         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
2532         to handle nonimmediate operands.
2533         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
2534         to handle nonimmediate operands.
2535         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
2536         to handle nonimmediate operands.
2537         (sse2_unpckhpd_exp): New expander.  Use
2538         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2539         (sse2_unpcklpd_exp): New expander.  Use
2540         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2541         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
2542         to handle nonimmediate operands.
2543         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
2544         to handle nonimmediate operands.
2545         (*sse2_<plusminus_insn><mode>3): Rename from
2546         sse2_<plusminus_insn><mode>3 insn pattern.
2547         (sse2_<plusminus_insn><mode>3): New expander.  Use
2548         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2549         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
2550         (sse2_umulv2siv2di3): New expander.  Use
2551         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2552         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
2553         (sse4_1_mulv2siv2di3): New expander.  Use
2554         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2555         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
2556         (sse2_pmaddwd): New expander.  Use
2557         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2558         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
2559         (sse2_eq<mode>3): New expander.  Use
2560         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2561         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
2562         (sse4_1_eqv2di3): New expander.  Use
2563         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2564         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2565         (sse2_uavgv16qi3): New expander.  Use
2566         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2567         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2568         (sse2_uavgv16qi3): New expander.  Use
2569         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2570         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
2571         (sse2_uavgv8hi3): New expander.  Use
2572         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2573         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
2574         (ssse3_pmulhrswv8hi3): New expander.  Use
2575         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2576         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
2577         (ssse3_pmulhrswv4hi3): New expander.  Use
2578         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2579
2580         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
2581         (<sse>_vmmul<mode>3): Ditto.
2582         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
2583         (divv2df3): Ditto.
2584         (ssse3_pmaddubsw128): Use register_operand for operand 1.
2585         (ssse3_pmaddubsw): Ditto.
2586
2587         * config/i386/i386.c (struct_builtin_description)
2588         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
2589         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
2590         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
2591         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
2592         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
2593         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
2594         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
2595         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
2596         (ix86_fixup_binary_operands): Assert that src1
2597         and src2 must have the same mode when swapped.
2598         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
2599         and ix86_binary_operator_ok.  Do not force operands in registers
2600         when optimizing.
2601
2602 2008-05-07  Jan Hubicka  <jh@suse.cz>
2603
2604         * cgraph.c (dump_cgraph_node): Update.
2605         * cgraph.h (cgraph_local_info): Break out inline summary.
2606         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
2607         hook.
2608         * ipa-inline (inline_summary): New accestor function.
2609         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
2610         cgraph_decide_inlining, compute_inline_parameters): Update.
2611         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
2612
2613 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
2614
2615         Cleanup ColdFire scheduling support and add V4 pipeline model.
2616
2617         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
2618         (define_attr cpu): Add cfv4 value.
2619         (define_attr type, define_attr type1): Merge into a single 'type'
2620         attribute.  Update all uses.
2621         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
2622         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
2623         Update all uses.
2624         (define_attr opx_mem, define_attr opy_mem): Remove.
2625         (define_attr op_mem): Clean up, update comment.
2626         (define_attr size): Use specific values instead of general int.
2627         (define_attr guess, define_attr split): Remove.  Update all uses.
2628         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
2629         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
2630         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
2631         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
2632         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
2633         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
2634         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
2635         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
2636         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
2637         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
2638         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
2639         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
2640         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
2641         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
2642         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
2643         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
2644         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
2645         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
2646         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
2647         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
2648         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
2649         Update or set attributes.
2650         (stack_tie): New fake instruction.
2651
2652         * config/m68k/m68k.h (TUNE_CFV4): New macro.
2653         (m68k_sched_attr_size): Update declaration.
2654         (m68k_sched_attr_type2): Remove.
2655         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
2656         Declare new bypass predicates.
2657
2658         * config/m68k/m68k.c (m68k_sched_issue_rate,
2659         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
2660         implementations.
2661         (TARGET_SCHED_ISSUE_RATE,
2662         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
2663         (override_options): Handle scheduling for ColdFire V4 core.
2664         (m68k_expand_prologue): Emit stack_tie.
2665         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
2666         'OP_TYPE_FPN'.  Update all uses.
2667         (sched_guess_p): Remove.
2668         (sched_address_type): Handle symbolic addresses.
2669         (sched_get_operand): New static function.
2670         (sched_operand_type): Merge into sched_attr_op_type.
2671         (sched_attr_op_type): Handle FP registers, handle quick constants,
2672         update.
2673         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
2674         (m68k_sched_attr_size): Update.  Move logic to ...
2675         (sched_get_attr_size_int): New static function.
2676         (sched_get_opxy_mem_type): New static function.
2677         (m68k_sched_attr_op_mem): Update.
2678         (m68k_sched_attr_type2): Remove.
2679         (sched_cfv4_bypass_data): New static variable.
2680         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
2681         (m68k_sched_issue_rate): Implement scheduler hook.
2682         (struct _sched_ib: enabled_p): New field.
2683         (m68k_sched_variable_issue): Update.  Handle V4.
2684         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
2685         sched_dump_class_func_t, sched_dump_split_class,
2686         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
2687         sched_dump_dfa_class, m68k_sched_dump): Remove.
2688         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
2689         hook.
2690         (m68k_sched_init_global): Remove statisctics dumping, introduce
2691         sanity check that all instructions have pipeline reservations.  Handle
2692         ColdFire V4 core.
2693         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2694         Handle ColdFire V4 core.
2695         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
2696         New static functions.
2697         (m68k_sched_address_bypass_p): New bypass predicate.
2698         (sched_get_indexed_address_scale): New static function.
2699         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
2700
2701         * cf.md: Update comments.
2702         (define_attr type2): Remove.  Use 'type' attribute instead.
2703         Update all uses.
2704         (cf_ib): Rename to cfv123_ib.  Update all uses.
2705         (cf_oep): Rename to cfv123_oep.  Update all uses.
2706         (cf_chr): Rename to cfv123_chr.  Update all uses.
2707         (cf_mem): Rename to cfv123_mem.  Update all uses.
2708         (cf_mac): Move to more appropriate place.
2709         (cfv123_guess): New automaton and cpu_unit.
2710         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
2711         Update uses of 'size' attribute.  Handle before reload scheduling.
2712         (cfv123_guess): New dummy reservation for unhandled instructions.
2713         (cfv4_*): Pipeline description of ColdFire V4 core.
2714         (ignore): New reservation to handle 'ignore' type.
2715
2716 2008-05-07  Ian Lance Taylor  <iant@google.com>
2717
2718         PR middle-end/36013
2719         * gimplify.c (find_single_pointer_decl_1): Don't look through
2720         indirections.
2721         (find_single_pointer_decl): Adjust comments.
2722
2723 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
2724
2725         PR middle-end/36137
2726         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
2727         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
2728
2729         PR middle-end/36106
2730         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
2731         integral type rather than floating point, then VIEW_CONVERT_EXPR
2732         to the floating point type.
2733
2734 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2735
2736         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
2737         TFmode op0 to register.
2738
2739 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
2740
2741         * c-decl.c (grokdeclarator): Comment typo.
2742
2743 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
2744
2745         * tree-flow.h: Remove prototype for computed_goto_p.
2746         * tree-cfg.c (computed_goto_p): Make static.
2747
2748 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
2749
2750         PR target/35657
2751         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
2752         (contains_aligned_value_p): This.  Handle _Decimal128.
2753         (ix86_function_arg_boundary): Only align _Decimal128 to its
2754         natural boundary and handle it properly.
2755
2756 2008-05-06  Martin Jambor  <mjambor@suse.cz>
2757
2758         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
2759         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
2760         (ipcp_method_set_orig_node): Removed.
2761         (ipcp_cval_get_cvalue_type): Removed.
2762         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
2763         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
2764         (ipcp_cval_set_cvalue_type): Removed.
2765         (ipcp_cval_get_cvalue): Removed.
2766         (ipcp_cval_set_cvalue): Removed.
2767         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
2768         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
2769         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
2770         (ipcp_cval_meet): Renamed to ipa_lattice_meet
2771         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
2772         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
2773         (ipcp_get_ith_lattice): Changed parameters.
2774         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
2775         (ipcp_lattice_from_jfunc): Changed parameters.
2776         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
2777         (ipcp_method_cval_print): Added temporary variable info.
2778         (ipcp_redirect): Removed already unused local variable caller.
2779         (ipcp_redirect): New temporary variable orig_callee_info
2780         (ipcp_redirect): Removed newly unused local variable callee.
2781         (ipcp_redirect): Removed (a bit confusing) local variable type.
2782         (ipcp_insert_stage): Added local variable info.
2783         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
2784         renamed too
2785         (ipcp_formal_create): Removed.
2786         (ipcp_method_cval_set): Removed.
2787         (ipcp_propagate_stage): Renamed lattice variables.
2788         (ipcp_method_cval_set_cvalue_type): Removed.
2789         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
2790         (ipcp_print_all_lattices): Changed printed strings to refer to 
2791         lattices rather than cvals.
2792         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
2793         (ipcp_propagate_const): Changed formal parameters.
2794         (build_const_val): Changed formal parameters.
2795         (ipcp_insert_stage): Removed useless variable cvalue
2796         (build_const_val): Changed formal parameters.
2797         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
2798         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
2799         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
2800         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
2801         (ipcp_print_func_profile_counts): Changed string from "method" to 
2802         "function"
2803         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
2804         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
2805         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
2806         (ipcp_structures_print): Renamed to ipcp_print_all_structures
2807         (ipcp_profile_print): Renamed to ipcp_print_profile_data
2808         (ipcp_lat_is_const): Changed parameters and made inline.
2809         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
2810         (ipcp_redirect): Renamed to ipcp_need_redirect_p
2811         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
2812         the predicate condition directly
2813         (ipcp_propagate_stage): Added local variable args. Removed local
2814         variable callee.  (Both are mere code simplifications.)
2815         (ipcp_method_dont_insert_const): Renamed to
2816         ipcp_node_not_modifiable_p.
2817         (ipcp_node_not_modifiable_p): Made inline.
2818         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
2819         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
2820         (ipcp_print_all_lattices): Removed variable cvalue
2821         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
2822         Updated comments.
2823
2824 2008-05-06  Olivier Hainque  <hainque@adacore.com>
2825
2826         * tree-sra.c (try_instantiate_multiple_fields): Early return
2827         if field has POINTER_TYPE.
2828
2829 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
2830
2831         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
2832         by using 'q' specifier for instruction.
2833         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
2834
2835 2008-05-06  Anatoly Sokolov <aesok@post.ru>
2836
2837         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
2838         Change mode of zero_extract from QImode to HImode.
2839         (sign bit tests peepholes): (Ditto.).
2840
2841 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
2842
2843         * config/i386/mmx.md: Remove double backslashes from asm templates.
2844         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
2845         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2846         to handle nonimmediate operands.
2847         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
2848         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2849         to handle nonimmediate operands.
2850         (*mmx_<code>v2sf3_finite): New insn pattern.
2851         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
2852         (mmx_<code>v2sf3): New expander.  Use
2853         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2854         (mmx_<plusminus_insn><mode>3): New expander.  Use
2855         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2856         (*mmx_<plusminus_insn><mode>3): New insn pattern.
2857         (mmx_add<mode>3): Removed.
2858         (mmx_ssadd<mode>3): Ditto.
2859         (mmx_usadd<mode>3): Ditto.
2860         (mmx_sub<mode>3): Ditto.
2861         (mmx_sssub<mode>3): Ditto.
2862         (mmx_ussub<mode>3): Ditto.
2863         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
2864         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
2865         to handle nonimmediate operands.
2866         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
2867         insn pattern.
2868         (mmx_smulv4hi3_highpart): New expander.  Use
2869         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2870         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
2871         insn pattern.
2872         (mmx_umulv4hi3_highpart): New expander.  Use
2873         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2874         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
2875         (mmx_<code>v4hi3): New expander.  Use
2876         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2877         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
2878         (mmx_<code>v8qi3): New expander.  Use
2879         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2880         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
2881         (mmx_<code><mode>3): New expander.  Use
2882         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2883
2884 2008-05-05  Jan Hubicka  <jh@suse.cz>
2885
2886         PR tree-optimization/36118
2887         * passes.c (pass_init_dump_file): Fix dump header.
2888
2889 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2890
2891         PR middle-end/36141
2892         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
2893         VCE for function decls.
2894
2895 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2896
2897         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
2898
2899 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2900
2901         * config/i386/i386.md (sat_plusminus): New.
2902         (plusminus_insn): Likewise.
2903         (plusminus_mnemonic): Likewise.
2904         (addsub): Removed.
2905         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
2906         (*<addsub><mode>3_cc_overflow): Renamed to ...
2907         (*<plusminus_insn><mode>3_cc_overflow): This.
2908         (*<addsub>si3_zext_cc_overflow): Renamed to ...
2909         (*<plusminus_insn>si3_zext_cc_overflow): This.
2910
2911         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
2912         (<plusminus_insn><mode>3): This.
2913         (*<addsub><mode>3): Renamed to ...
2914         (*<plusminus_insn><mode>3): This.
2915         (<sse>_vm<addsub><mode>3): Renamed to ...
2916         (<sse>_vm<plusminus_insn><mode>3): This.
2917         (sse3_h<addsub>v4sf3): Renamed to ...
2918         (sse3_h<plusminus_insn>v4sf3): This.
2919         (sse3_h<addsub>v2df3): Renamed to ...
2920         (sse3_h<plusminus_insn>v2df3): This.
2921         (<plusminus_insn><mode>3): New.
2922         (*<plusminus_insn><mode>3): Likewise.
2923         (sse2_<plusminus_insn><mode>3): Likewise.
2924         (add<mode>): Removed.
2925         (*add<mode>3): Likewise.
2926         (sse2_ssadd<mode>3): Likewise.
2927         (sse2_usadd<mode>3): Likewise.
2928         (sub<mode>3): Likewise.
2929         (*sub<mode>3): Likewise.
2930         (sse2_sssub<mode>3): Likewise.
2931         (sse2_ussub<mode>3): Likewise.
2932
2933 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
2934
2935         * gthr-single.h: Add in required interface elements as per gthr.h.
2936         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
2937         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
2938         Generalize UNUSED macro. 
2939         (__gthread_once): Add.
2940         (__gthread_key_create): Add.
2941         (__gthread_key_delete): Add.
2942         (__gthread_getspecific): Add.
2943         (__gthread_setspecific): Add.
2944         
2945 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
2946
2947         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
2948         the same size types for the indirect reference on the rhs, then
2949         create a VCE.
2950
2951 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
2952
2953         * config/i386/i386.md
2954         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
2955         one insn template instead of template series.
2956         (*xordi_1_rex64): Ditto.
2957         (*xordi_2_rex64): Ditto.
2958
2959 2008-05-05  Ira Rosen  <irar@il.ibm.com>
2960
2961         PR tree-optimization/36119
2962         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
2963         in case of SLP.
2964
2965 2008-06-04  Jan Hubicka  <jh@suse.cz>
2966
2967         tree-optimization/36100
2968         * tree-pass.h (pass_O0_always_inline): Declare.
2969         * ipa-inline.c (inline_transform): Remove dead code.
2970         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
2971         pass_O0_always_inline): New.
2972         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
2973
2974 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
2975
2976         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
2977         mnemonic in this_param move for TARGET_64BIT.
2978
2979 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
2980
2981         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
2982         (*strmovsi_rex_1): Ditto.
2983         (*strsetsi_1): Ditto.
2984         (*strsetsi_rex_1): Ditto.
2985
2986         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
2987         adddicc expanders using SWI mode iterator.
2988
2989 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2990
2991         PR target/36121
2992         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
2993         argument handling.
2994
2995 2008-05-04  David S. Miller  <davem@davemloft.net>
2996
2997         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
2998         (sparc*-*-linux*): Use linux.h in tm_file.
2999         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
3000         compiler defaulting to 32-bit.
3001         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
3002         no longer needed.
3003         * config/sparc/linux.h: Remove definitions now obtained
3004         properly from linux.h
3005         * config/sparc/linux64.h: Likewise.
3006         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
3007         don't want this setting for 32-bit builds in a biarch compiler.
3008         * doc/install.texi: Add sparc-linux to list of targets
3009         supporting --enable-targets=all.
3010
3011 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
3012
3013         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
3014
3015 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
3016
3017         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
3018         after V4SI_FTYPE_V8HI.
3019         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
3020         case V4SI_FTYPE_V2DF.
3021
3022 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
3023
3024         * doc/invoke.texi (max-flow-memory-locations): Removed.
3025         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
3026         
3027 2008-05-03  Richard Guenther  <rguenther@suse.de>
3028
3029         PR middle-end/34973
3030         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
3031
3032 2008-05-02  David S. Miller  <davem@davemloft.net>
3033
3034         * config.gcc (need_64bit_hwint): Document libcpp dependency.
3035
3036 2008-05-02  Simon Baldwin <simonb@google.com>
3037
3038         PR bootstrap/36108
3039         * c-common.h (warn_array_subscript_range): Removed.
3040         * c-common.c (warn_array_subscript_range): Ditto.
3041         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
3042         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
3043
3044 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
3045
3046         * config/i386/i386.c (ix86_special_builtin_type): New.
3047         (bdesc_special_args): Likewise.
3048         (ix86_expand_special_args_builtin): Likewise.
3049         (ix86_init_mmx_sse_builtins): Updated.
3050         (ix86_expand_builtin): Updated.
3051         (ix86_expand_store_builtin): Removed.
3052         (ix86_expand_unop_builtin): Likewise.
3053
3054         * config/i386/mm3dnow.h (__v2sf): Moved to ...
3055         * config/i386/mmintrin.h (__v2sf): Here.
3056
3057         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
3058         const __v2sf.
3059         (_mm_loadl_pi): Likewise.
3060         (_mm_storeh_pi): Replace __v2si with __v2sf.
3061         (_mm_storel_pi): Likewise.
3062
3063         * doc/extend.texi: Correct __builtin_ia32_loadhps,
3064         __builtin_ia32_loadlps, __builtin_ia32_storehps,
3065         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
3066         __builtin_ia32_loadlpd.
3067
3068 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
3069
3070         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
3071         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
3072         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
3073         (ix86_init_mmx_sse_builtins): Updated.
3074         (ix86_expand_args_builtin): Likewise.
3075         (ix86_expand_builtin): Likewise.
3076         (ix86_expand_unop1_builtin): Renamed to ...
3077         (ix86_expand_unop_vec_merge_builtin): This.
3078
3079 2008-05-01  Jan Hubicka  <jh@suse.cz>
3080
3081         PR bootstrap/36100
3082         * ipa-inline.c (inline_generate_summary): Make static.
3083         (inline_transform): Do not call inlining at -O0; make static.
3084         * passes.c (execute_todo): Add sanity check.
3085         (execute_one_ipa_transform_pass): Execute proper flags.
3086
3087 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
3088
3089         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
3090         (DECL_NONADDRESSABLE_P): Likewise.
3091         * alias.c (record_component_aliases): Fix comment.
3092
3093 2008-05-01  Simon Baldwin <simonb@google.com>
3094
3095         * c-common.h (warn_array_subscript_range): New function.
3096         * c-common.c (warn_array_subscript_range): Ditto.
3097         * tree-vrp.c (check_array_ref): Corrected code to agree with
3098         comment, ignoring only arrays of size 0 or size 1.
3099         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
3100
3101 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3102
3103         * config/i386/i386.c (ix86_builtin_type): Replace
3104         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
3105         (bdesc_args): Updated.
3106         (ix86_init_mmx_sse_builtins): Likewise.
3107         (ix86_expand_args_builtin): Likewise.
3108
3109         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
3110         with __v1di.
3111
3112         * doc/extend.texi: Correct __builtin_ia32_palignr.
3113
3114 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3115
3116         PR target/36095
3117         * config/i386/i386.c (bdesc_crc32): Removed.
3118         (ix86_expand_crc32): Likewise.
3119         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
3120         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
3121         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
3122         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
3123         UINT_FTYPE_UINT_UCHAR.
3124         (bdesc_args): Updated. Add crc32 builtins.
3125         (ix86_init_mmx_sse_builtins): Updated.
3126         (ix86_expand_args_builtin): Updated to support subreg.
3127
3128         * doc/extend.texi: Correct __builtin_ia32_crc32di.
3129
3130 2008-05-01  Jan Hubicka  <jh@suse.cz>
3131
3132         * tree-pass.h (opt_pass): Add IPA_PASS.
3133         (varpool_node, cgraph_node): Forward declare.
3134         (ipa_opt_pass): Define.
3135         (pass_ipa_inline): Turn into ipa_opt_pass.
3136         (pass_apply_inline): Remove.
3137         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
3138         (apply_inline): Turn into ....
3139         (inline_transform): ... this one.
3140         (inline_generate_summary): New function.
3141         (pass_apply_inline): Remove.
3142         * function.h (ipa_opt_pass): Forward declare structure; typedef;
3143         vector.
3144         (struct function): Add ipa_transforms_to_apply.
3145         * passes.c (register_one_dump_file): Work on IPA_PASS.
3146         (init_optimization_passes): Remove pass_inline_parameters and
3147         pass_apply_inline.
3148         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
3149         (execute_one_pass) ... here; apply transforms when possible.
3150         (add_ipa_transform_pass, execute_ipa_summary_asses,
3151         execute_one_ipa_transform_pass): New.
3152         (execute_ipa_pass_list): Update for IPA_PASS type.
3153
3154 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3155
3156         * config/i386/i386.c (ix86_builtin_type): Add
3157         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
3158         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
3159         (bdesc_args): Add SSE4a builtins.
3160         (ix86_init_mmx_sse_builtins): Updated.
3161         (ix86_expand_args_builtin): Likewise.
3162         (ix86_expand_builtin): Likewise.
3163
3164 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3165
3166         * config/i386/i386.c (ix86_builtin_type): Add
3167         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
3168         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
3169         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
3170         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
3171         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
3172         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
3173         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
3174         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
3175         and DI_FTYPE_DI_DI_INT.
3176         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
3177         (ix86_init_mmx_sse_builtins): Updated.
3178         (ix86_expand_args_builtin): Likewise.
3179         (ix86_expand_builtin): Likewise.
3180         (ix86_expand_binop_imm_builtin): Removed.
3181
3182         * doc/extend.texi: Correct __builtin_ia32_palignr128.
3183
3184 2008-04-30  Richard Guenther  <rguenther@suse.de>
3185
3186         PR tree-optimization/32921
3187         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
3188
3189 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
3190
3191         * config/arm/arm.c (arm_unwind_emit): Use
3192         crtl->all_throwers_are_sibcalls instead of
3193         cfun->all_throwers_are_sibcalls.
3194         (arm_output_fn_unwind): Likewise.
3195         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
3196         instead of cfun->uses_pic_offset_table.
3197         (frv_expand_prologue): Likewise.
3198         (frv_frame_pointer_required): Likewise.
3199         (frv_expand_fdpic_call): Likewise.
3200         (frv_emit_movsi): Likewise.
3201         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
3202         cfun->returns_pcc_struct instead of
3203         current_function_returns_pcc_struct.
3204         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
3205         instead of cfun->calls_eh_return.
3206         (m32c_pushm_popm): Likewise.
3207         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
3208         "extern" declaration.
3209
3210 2008-04-30  Richard Guenther  <rguenther@suse.de>
3211
3212         PR tree-optimization/21636
3213         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
3214         constant address.
3215         (evaluate_stmt): Print the likely value.
3216         (ccp_visit_stmt): Avoid excessive vertical spacing.
3217
3218 2008-04-30  Rafael Espindola  <espindola@google.com>
3219
3220         * builtins.c (fold_call_expr): Return realret.
3221         * tree-ssa-threadedge.c
3222         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
3223         __builtin_object_size.
3224
3225 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
3226
3227         * gcc.c (wrapper_string): New variable.
3228         (insert_wrapper): New function.
3229         (execute): New option -wrapper.
3230         * doc/invoke.texi (Overall Options): New driver option -wrapper.
3231
3232 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
3233
3234         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
3235         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
3236         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
3237         from...
3238         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
3239         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
3240         config/rs6000/e500crtres64gprctr.asm,
3241         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
3242         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
3243         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
3244         config/rs6000/e500crtsav64gprctr.asm,
3245         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
3246         config/rs6000/e500crtsavg64gprctr.asm: New files.
3247         * config/rs6000/t-ppccomm: Add build rules for new files.
3248         (LIB2FUNCS_STATIC_EXTRA): Add new files.
3249         * config/rs6000/t-netbsd: Add build rules for new files.
3250         (LIB2FUNCS_STATIC_EXTRA): New variable.
3251         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
3252         (CRTSAVRES_DEFAULT_SPEC): Likewise.
3253         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
3254
3255 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
3256
3257         * config/i386/i386.c (ix86_builtin_type): Add
3258         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
3259         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
3260         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
3261         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
3262         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
3263         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
3264         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
3265         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
3266         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
3267         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
3268         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
3269         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
3270         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
3271         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
3272         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
3273         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
3274         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
3275         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
3276         V1DI_FTYPE_V2SI_V2SI.
3277         (bdesc_2arg): Moved to ...
3278         (bdesc_args): Here.
3279         (ix86_init_mmx_sse_builtins): Updated.
3280         (ix86_expand_args_builtin): Updated.  Take a pointer
3281         to const struct builtin_description.  Handle comparison
3282         builtin functions.
3283         (ix86_expand_sse_compare): Take a new argument for swapping operands.
3284         (ix86_expand_builtin): Updated.
3285
3286         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
3287         (ssse3_pmaddubsw128): This.
3288         (ssse3_pmaddubswv4hi3): Renamed to ...
3289         (ssse3_pmaddubsw): This.
3290
3291         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
3292         (__builtin_ia32_packssdw128): Likewise.
3293         (__builtin_ia32_packuswb128): Likewise.
3294         (__builtin_ia32_pmaddubsw): Likewise.
3295         (__builtin_ia32_pmaddubsw128): Likewise.
3296
3297 2008-04-30  Richard Guenther  <rguenther@suse.de>
3298
3299         PR tree-optimization/14847
3300         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
3301         (recognize_bits_test): Use it.
3302         (recognize_single_bit_test): Likewise.
3303
3304 2008-04-30  Martin Jambor  <mjambor@suse.cz>
3305
3306         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
3307         instead of setting number of formal parameters to zero.
3308         (ipcp_init_stage): Do not set the number of actual parameters to zero 
3309         either.
3310         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
3311         which are called with variable number of arguments.
3312         (ipcp_insert_stage): Explicitely skipping all nodes which are
3313         called with variable number of arguments.
3314         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
3315         number of parameters.
3316
3317         * ipa-prop.h (struct ipa_node_params): Added flag
3318         called_with_var_arguments
3319         (ipa_set_param_count): Added.  Changed sole setter to use it.
3320         (ipa_get_param_count): Added.  All readers of param_count
3321         converted to use it instead.
3322         (ipa_set_called_with_variable_arg): Added.
3323         (ipa_is_called_with_var_arguments): Added.
3324         (ipa_get_ith_param): Added.  All readers of param_decls converted
3325         to use it instead.
3326         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
3327         changed to use it. 
3328         (ipa_get_cs_argument_count): Added, all readers of argument_count
3329         changed to cal it.
3330         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
3331         to use it.
3332         
3333         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
3334         (struct ipcp_lattice): Renamed cval_type to type
3335         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
3336
3337         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
3338         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
3339         (ipcp_insert_stage): Changed the type of variable cvalue to tree
3340         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
3341         (build_const_val): Changed the type of parameter cvalue to tree
3342         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
3343         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
3344         
3345         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
3346         constant 
3347
3348         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
3349         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
3350         (ipa_add_method): Renamed to ipa_push_func_to_list
3351         (ipa_remove_method): Renamed to ipa_pop_func_from_list
3352         (ipa_callsite_param_count): Removed.
3353         (ipa_callsite_param_count_set): Removed.
3354         (ipa_callsite_param): Removed.
3355         (ipa_callsite_callee): Removed.
3356         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
3357         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
3358         (ipa_method_formal_count): Removed.
3359         (ipa_method_formal_count_set): Removed.
3360         (ipa_method_get_tree): Removed.
3361         (ipa_method_tree_map_create): Removed.
3362         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
3363         (ipa_create_param_decls_array): Creates the array itself
3364         (ipa_create_param_decls_array): Temporary variable info instead of 
3365         a few dereferences.
3366         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
3367         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
3368         (get_type): Removed.
3369         (ipa_jf_get_info_type): Removed.
3370         (ipa_node_create): Renamed to ipa_create_node_params
3371         (ipa_free): Renamed to ipa_free_all_node_params
3372         (ipa_nodes_create): Renamed to ipa_create_all_node_params
3373         (ipa_edges_create): Renamed to ipa_create_all_edge_args
3374         (ipa_edges_free): Renamed to ipa_free_all_edge_args
3375         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
3376         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
3377         ipa_free_all_edge_args
3378         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
3379         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
3380         (ipa_create_methodlist_node): Removed.
3381         (ipa_methodlist_method): Removed.
3382         (ipa_methodlist_method_set): Removed.
3383         (ipa_methodlist_next_method): Removed.
3384         (ipa_methodlist_next_method_set): Removed.
3385         (ipa_method_is_modified): Removed.
3386         (ipa_method_modify_create): Removed.
3387         (ipa_method_modify_init): Temporary variable info instead of a few 
3388         dereferences.
3389         (ipa_detect_param_modifications): Temporary variable info instead of 
3390         a few dereferences.
3391         (ipa_compute_jump_functions): Temporary variable info instead of 
3392         a few dereferences.
3393         (ipa_method_modify_set): Removed.
3394         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
3395         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
3396         than craph_node as the first parameter.
3397         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
3398         (ipa_method_modify_init): Removed.
3399         (ipa_compute_jump_functions): Added a temp variable instead of 
3400         repeatadly dereferencing the cgraph_edge.aux pointer
3401         (ipa_callsite_param_set_type): Removed.
3402         (ipa_compute_jump_functions): i renamed to index and moved to 
3403         an inner block
3404         (ipa_callsite_param_set_info_type_formal): Removed.
3405         (ipa_callsite_param_set_info_type): Removed.
3406         (ipa_callsite_param_map_create): Removed.
3407         (ipa_callsite_tree): Removed.
3408         (ipa_callsite_caller): Removed.
3409         (ipa_pop_func_from_list): return_method removed to return_func
3410
3411         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
3412         prefixed all values with IPA_. Changed all users.
3413         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
3414         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
3415         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
3416         (union parameter_info): Renamed to jump_func_value.
3417         (union jump_func_value): Renamed value to constant
3418         (struct ipa_jump_func): Renamed info_type to value
3419         (struct ipa_node): Renamed to ipa_node_params
3420         (struct ipa_node_params): Renamed ipa_arg_num to param_count
3421         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
3422         (struct ipa_node_params): Renamed ipa_mod to modified_flags
3423         (struct ipa_edge): Renamed to ipa_edge_args
3424         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
3425         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
3426         (struct ipa_methodlist): Renamed to ipa_func_list
3427         (struct ipa_func_list): method_p renamed to node, next_method
3428         renamed to next
3429         (ipa_methodlist_p): Removed, switched all users to struct pointer
3430         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
3431
3432 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
3433
3434         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
3435         (rs6000_emit_epilogue): Use backchain to restore only when we
3436         have a large frame.  Make use of frame pointer to restore if we
3437         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
3438
3439 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
3440
3441         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3442         Add mode to zero_extract.
3443         (sign bit tests peepholes): (Ditto.).
3444
3445 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3446
3447         * config/i386/i386.c (ix86_builtins): Replace Prescott New
3448         Instructions in comments with SSE3.
3449         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
3450         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
3451         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
3452         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
3453         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
3454         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
3455         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
3456         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
3457         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
3458         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
3459         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
3460         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
3461         (bdesc_sse_args): Renamed to ...
3462         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
3463         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
3464         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
3465         IX86_BUILTIN_FABSQ.
3466         (bdesc_1arg): Moved to ...
3467         (bdesc_args): Here.
3468         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
3469         Instructions in comments with SSE3.
3470         (ix86_expand_sse_operands_builtin): Renamed to ...
3471         (ix86_expand_args_builtin): This.  Updated.
3472         (ix86_expand_unop1_builtin): Update comments.
3473         (ix86_expand_builtin): Updated.
3474
3475 2008-04-29  Richard Guenther  <rguenther@suse.de>
3476
3477         PR tree-optimization/36078
3478         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
3479         Update virtual SSA form after cleaning up the CFG.
3480
3481 2008-04-29  Richard Guenther  <rguenther@suse.de>
3482
3483         PR middle-end/15255
3484         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
3485
3486 2008-04-29  Richard Guenther  <rguenther@suse.de>
3487
3488         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
3489         (compute_may_aliases): Do not call finalize_ref_all_pointers.
3490         (compute_flow_insensitive_aliasing): Do not treat
3491         PTR_IS_REF_ALL pointers special.
3492         (get_smt_for): Likewise.
3493         (may_alias_p): Re-structure.
3494         (is_escape_site): A ref-all pointer conversion is not an escape site.
3495         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
3496         PTR_IS_REF_ALL pointers special.
3497         * tree-ssa-structalias.h (struct alias_info): Remove
3498         ref_all_symbol_mem_tag field.
3499         (PTR_IS_REF_ALL): Remove.
3500
3501 2008-04-29  Richard Guenther  <rguenther@suse.de>
3502
3503         PR middle-end/36077
3504         * fold-const.c (extract_muldiv_1): In combining division constants
3505         make sure to never overflow.
3506
3507 2008-04-29  Nick Clifton  <nickc@redhat.com>
3508
3509         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
3510
3511 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3512
3513         PR bootstrap/35169
3514         * optc-gen.awk: Work around HP-UX/IA awk bug.
3515
3516 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
3517
3518         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
3519         2008-04-25 commit.
3520
3521 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3522
3523         PR target/36073
3524         * config/i386/i386.md
3525         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
3526         Change operand 1 predicate to nonimmediate_operand.
3527
3528 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
3529
3530         PR debug/36060
3531         * dwarf2out.c (struct die_struct): Mark as chain_circular through
3532         die_sub field.
3533         * gengtype.c (walk_type, write_func_for_structure): Handle
3534         chain_circular.
3535         * doc/gty.texi: Document chain_circular.
3536
3537 2008-04-28  Richard Guenther  <rguenther@suse.de>
3538
3539         PR tree-optimization/36066
3540         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
3541         SCEV and loop.
3542
3543 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3544
3545         PR target/36064
3546         * config/i386/i386.md
3547         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
3548         Use match_scratch instead of match_operand for operands 3 and 4.
3549
3550 2008-04-27  Richard Guenther  <rguenther@suse.de>
3551
3552         PR tree-optimization/18754
3553         PR tree-optimization/34223
3554         * tree-pass.h (pass_complete_unrolli): Declare.
3555         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
3556         loop size before and after unconditionally of UL_NO_GROWTH in effect.
3557         Rewrite loop into loop closed SSA form if it is not already.
3558         (tree_unroll_loops_completely): Re-structure to iterate over
3559         innermost loops with intermediate CFG cleanups.
3560         Unroll outermost loops only if requested or the code does not grow
3561         doing so.
3562         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
3563         loops are available.
3564         (tree_vectorize): Instead do so here.
3565         (tree_complete_unroll): Also unroll outermost loops.
3566         (tree_complete_unroll_inner): New function.
3567         (gate_tree_complete_unroll_inner): Likewise.
3568         (pass_complete_unrolli): New pass.
3569         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
3570         uses outside of the loop.
3571         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
3572         form if it is available.  
3573         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
3574         * passes.c (init_optimization_passes): Schedule complete inner
3575         loop unrolling pass before the first CCP pass after final inlining.
3576
3577 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3578
3579         * targhooks.h (default_emutls_var_fields,
3580         default_emutls_var_init): Declare.
3581         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
3582         * target.h (struct gcc_target): Add struct emutls member.
3583         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
3584         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
3585         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
3586         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
3587         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
3588         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
3589         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
3590         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
3591         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
3592         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
3593         emit debug information.
3594         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
3595         * varasm.c: Include targhooks.h.
3596         (emutls_object_section, emutls_tmpl_section): New.
3597         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
3598         (EMUTLS_SEPARATOR): New.
3599         (prefix_name): New.
3600         (get_emutls_object_name): New.
3601         (default_emutls_var_fields): New, broken out of ...
3602         (get_emutls_object_type): ... here.  Adjust to use target hooks.
3603         (get_emutls_init_templ_addr): Adjust to use target hooks.
3604         (emutls_decl): Adjust to use target hooks.
3605         (emutls_finish): Likewise.
3606         (default_emutls_var_init): New, broken out of ...
3607         (assemble_variable): ... here.  Adjust to use target hooks.
3608         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
3609         SECCAT_EMUTLS_TMPL.
3610         * c-common.c (handle_section_attribute): Prevent overriding
3611         sections for emulated tls with special sections.
3612         * config/i386/i386.c (x86_64_elf_select_section): Add
3613         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
3614         (x86_64_elf_unique_section): Likewise.
3615         * config/vxworks.c: Include tree.h.
3616         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
3617         (vxworks_override_options): Set TLS scheme.
3618         * doc/tm.texi (Emulated TLS): New node.
3619
3620 2008-04-26  Simon Baldwin <simonb@google.com>
3621
3622         PR c/35652
3623         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
3624         with propagated string constants.
3625
3626 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
3627
3628         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
3629         constraint for operand 2 when operand 0 is memory operand.
3630         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
3631         operand 0 is memory operand.
3632         (fix_trunc<mode>_i387_with_temp): Ditto.
3633         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
3634         operand 2 when operand 1 is memory operand.
3635         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
3636         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
3637         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
3638         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3639         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
3640         operands 2,3 and 4 when operand 1 is memory operand.
3641         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
3642         is memory operand.
3643         (fistdi2_floor_with_temp): Ditto.
3644         (fist<mode>2_floor_with_temp): Ditto.
3645         (fistdi2_ceil_with_temp): Ditto.
3646         (fist<mode>2_ceil_with_temp): Ditto.
3647         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
3648
3649 2008-04-26  David Daney  <ddaney@avtrex.com>
3650
3651         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
3652         unspec_volitile.
3653         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
3654         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3655         UNSPEC_UPDATE_GOT_VERSION): Renumber.
3656         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
3657         (compare_and_swap_12): New insn.
3658         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
3659         * config/mips/mips.c (mips_force_binary): New function.
3660         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
3661         (mips_expand_compare_and_swap_12): New function.
3662         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
3663
3664 2008-04-25  Jan Hubicka  <jh@suse.cz>
3665
3666         PR testsuite/35843
3667         * cfgexpand.c (pass_expand): Turn into RTL pass.
3668         * passes.c (execute_one_pass): Do pass typechecking after execution.
3669         * tree-pass.h (pass_expand): Turn into RTL pass.
3670
3671         * function.h (struct rtl_data): Move here fields
3672         accesses_prior_frames, calls_eh_return, saves_all_registers,
3673         has_nonlocal_goto, has_asm_statement, is_thunk,
3674         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
3675         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
3676         arg_pointer_save_area_init from struct function; turn into bool.
3677         (struct function): Move
3678         calls_eh_return, saves_all_registers, has_nonlocal_goto,
3679         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
3680         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
3681         tail_call_emit, arg_pointer_save_area_init
3682         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
3683         (current_function_returns_struct, current_function_returns_pcc_struct,
3684         current_function_calls_setjmp, current_function_calls_alloca,
3685         current_function_accesses_prior_frames,
3686         current_function_calls_eh_return, current_function_is_thunk,
3687         current_function_stdarg, current_function_profile,
3688         current_function_limit_stack, current_function_uses_pic_offset_table,
3689         current_function_uses_const_pool, current_function_has_nonlocal_label,
3690         current_function_saves_all_registers,
3691         current_function_has_nonlocal_goto,
3692         current_function_has_asm_statement): Remove accesor macros.
3693         * ra-conflict.c (global_conflicts): Update.
3694         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
3695         (suitable_for_tail_call_opt_p): Update.
3696         * builtins.c (expand_builtin_return_addr): Update.
3697         (expand_builtin_setjmp_setup): Update.
3698         (expand_builtin_nonlocal_goto): Update.
3699         * final.c (final_start_function): Update.
3700         (profile_function): Update.
3701         (leaf_function_p): Update.
3702         (only_leaf_regs_used): Update.
3703         * df-scan.c (df_get_exit_block_use_set): Update.
3704         * dojump.c (clear_pending_stack_adjust): Update.
3705         * tree-stdarg.c (gate_optimize_stdarg): Update.
3706         * gimple-low.c (lower_function_body): Update.
3707         * global.c (compute_regsets): Update.
3708         (global_alloc): Update.
3709         * dwarf2out.c (dwarf2out_begin_prologue): Update.
3710         * expr.c (expand_assignment): Update.
3711         * dse.c (dse_step0): Update.
3712         (dse_step1): Update.
3713         * c-decl.c (store_parm_decls): Update.
3714         * local-alloc.c (combine_regs): Update.
3715         (find_free_reg): Update.
3716         * function.c (assign_parms_augmented_arg_list): Update.
3717         (assign_parm_find_data_types): Update.
3718         (assign_parms): Update.
3719         (allocate_struct_function): Update.
3720         (expand_function_start): Update.
3721         (expand_function_end): Update.
3722         (get_arg_pointer_save_area): Update.
3723         (thread_prologue_and_epilogue_insns): Update.
3724         (rest_of_match_asm_constraints): Update.
3725         * stor-layout.c (variable_size): Update.
3726         * gcse.c (gcse_main): Update.
3727         (bypass_jumps): Update.
3728         * gimplify.c (gimplify_function_tree): Update.
3729         * calls.c (emit_call_1): Update.
3730         (expand_call): Update.
3731         * bt-load.c (compute_defs_uses_and_gen): Update.
3732         * except.c (sjlj_assign_call_site_values): Update.
3733         (sjlj_emit_function_enter): Update.
3734         (can_throw_external): Update.
3735         (set_nothrow_function_flags): Update.
3736         (expand_builtin_unwind_init): Update.
3737         (expand_eh_return): Update.
3738         (convert_to_eh_region_ranges): Update.
3739         (output_function_exception_table): Update.
3740         * emit-rtl.c (gen_tmp_stack_mem): Update.
3741         * cfgexpand.c (expand_used_vars): Update.
3742         (tree_expand_cfg): Update.
3743         * cfgcleanup.c (rest_of_handle_jump): Update.
3744         * explow.c (allocate_dynamic_stack_space): Update.
3745         * varasm.c (assemble_start_function): Update.
3746         (force_const_mem): Update.
3747         (mark_constant_pool): Update.
3748         * tree-optimize.c (tree_rest_of_compilation): Update.
3749         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
3750         * tree-cfg.c (notice_special_calls): Update.
3751         (is_ctrl_altering_stmt): Update.
3752         (tree_can_make_abnormal_goto): Update.
3753         (tree_purge_dead_abnormal_call_edges): Update.
3754         * config/alpha/predicates.md: Update.
3755         * config/alpha/alpha.c (alpha_sa_mask): Update.
3756         (alpha_sa_size): Update.
3757         (alpha_does_function_need_gp): Update.
3758         (alpha_expand_prologue): Update.
3759         (alpha_start_function): Update.
3760         (alpha_output_function_end_prologue): Update.
3761         (alpha_expand_epilogue): Update.
3762         * config/frv/frv.c (frv_stack_info): Update.
3763         (frv_expand_epilogue): Update.
3764         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
3765         (s390_register_info): Update.
3766         (s390_frame_info): Update.
3767         (s390_init_frame_layout): Update.
3768         (s390_can_eliminate): Update.
3769         (save_gprs): Update.
3770         * config/spu/spu.c (spu_split_immediate): Update.
3771         (need_to_save_reg): Update.
3772         (spu_expand_prologue): Update.
3773         (spu_expand_epilogue): Update.
3774         * config/sparc/sparc.md: Update.
3775         * config/sparc/sparc.c (eligible_for_return_delay): Update.
3776         (sparc_tls_got): Update.
3777         (legitimize_pic_address): Update.
3778         (sparc_emit_call_insn): Update.
3779         (sparc_expand_prologue): Update.
3780         (output_return): Update.
3781         (print_operand): Update.
3782         (sparc_function_ok_for_sibcall): Update.
3783         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
3784         * config/m32r/m32r.md: Update.
3785         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
3786         (m32r_compute_frame_size): Update.
3787         (m32r_expand_prologue): Update.
3788         (m32r_expand_epilogue): Update.
3789         (m32r_legitimize_pic_address): Update.
3790         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
3791         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3792         * config/i386/i386.c (ix86_frame_pointer_required): Update.
3793         (gen_push): Update.
3794         (ix86_save_reg): Update.
3795         (ix86_compute_frame_layout): Update.
3796         (ix86_expand_prologue): Update.
3797         (ix86_expand_epilogue): Update.
3798         * config/sh/sh.c (output_stack_adjust): Update.
3799         (calc_live_regs): Update.
3800         (sh5_schedule_saves): Update.
3801         (sh_expand_prologue): Update.
3802         (sh_expand_epilogue): Update.
3803         (sh_setup_incoming_varargs): Update.
3804         (sh_allocate_initial_value): Update.
3805         (sh_get_pr_initial_val): Update.
3806         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
3807         * config/sh/sh.md (label:): Update.
3808         * config/avr/avr.c (out_movhi_mr_r): Update.
3809         * config/crx/crx.h (enum): Update.
3810         * config/xtensa/xtensa.h (along): Update.
3811         * config/stormy16/stormy16.c Update.
3812         (xstormy16_compute_stack_layout): Update.
3813         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
3814         (fr30_expand_prologue): Update.
3815         * config/cris/cris.c (cris_conditional_register_usage): Update.
3816         (cris_reg_saved_in_regsave_area): Update.
3817         (cris_initial_frame_pointer_offset): Update.
3818         (cris_simple_epilogue): Update.
3819         (cris_expand_prologue): Update.
3820         (cris_expand_epilogue): Update.
3821         (cris_expand_pic_call_address): Update.
3822         (cris_asm_output_symbol_ref): Update.
3823         (cris_asm_output_label_ref): Update.
3824         * config/cris/cris.md Update.
3825         * config/iq2000/iq2000.c (compute_frame_size): Update.
3826         (iq2000_expand_epilogue): Update.
3827         * config/mt/mt.h (save_direction): Update.
3828         * config/mn10300/mn10300.c (mn10300_function_value): Update.
3829         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
3830         (ia64_secondary_reload_class): Update.
3831         * config/m68k/m68k.c (m68k_save_reg): Update.
3832         (m68k_expand_prologue): Update.
3833         (m68k_expand_epilogue): Update.
3834         (legitimize_pic_address): Update.
3835         * config/rs6000/rs6000.c (rs6000_got_register): Update.
3836         (first_reg_to_save): Update.
3837         (first_altivec_reg_to_save): Update.
3838         (compute_vrsave_mask): Update.
3839         (compute_save_world_info): Update.
3840         (rs6000_stack_info): Update.
3841         (spe_func_has_64bit_regs_p): Update.
3842         (rs6000_ra_ever_killed): Update.
3843         (rs6000_emit_eh_reg_restore): Update.
3844         (rs6000_emit_allocate_stack): Update.
3845         (rs6000_emit_prologue): Update.
3846         (rs6000_emit_epilogue): Update.
3847         (rs6000_output_function_epilogue): Update.
3848         (output_profile_hook): Update.
3849         (rs6000_elf_declare_function_name): Update.
3850         * config/rs6000/rs6000.h (rs6000_args): Update.
3851         * config/rs6000/rs6000.md: Update.
3852         * config/mcore/mcore.c (mcore_expand_prolog): Update.
3853         * config/arc/arc.c (arc_output_function_epilogue): Update.
3854         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
3855         * config/darwin.c (machopic_function_base_name): Update.
3856         * config/score/score3.c (score3_compute_frame_size): Update.
3857         (rpush): Update.
3858         (rpop): Update.
3859         (score3_epilogue): Update.
3860         * config/score/score7.c (score7_compute_frame_size): Update.
3861         (score7_prologue): Update.
3862         (score7_epilogue): Update.
3863         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
3864         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3865         * config/arm/arm.c (use_return_insn): Update.
3866         (require_pic_register): Update.
3867         (arm_load_pic_register): Update.
3868         (arm_compute_save_reg0_reg12_mask): Update.
3869         (arm_compute_save_reg_mask): Update.
3870         (thumb1_compute_save_reg_mask): Update.
3871         (output_return_instruction): Update.
3872         (arm_output_function_prologue): Update.
3873         (arm_output_epilogue): Update.
3874         (arm_get_frame_offsets): Update.
3875         (arm_expand_prologue): Update.
3876         (thumb_pushpop): Update.
3877         (thumb_exit): Update.
3878         (thumb1_expand_prologue): Update.
3879         (thumb1_expand_epilogue): Update.
3880         (arm_unwind_emit): Update.
3881         (arm_output_fn_unwind): Update.
3882         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
3883         * config/arm/arm.md: Update.
3884         * config/pa/pa.md: Update.
3885         * config/pa/pa.c (legitimize_pic_address): Update.
3886         (compute_frame_size): Update.
3887         (hppa_expand_prologue): Update.
3888         (hppa_expand_epilogue): Update.
3889         (borx_reg_operand): Update.
3890         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
3891         (HARD_REGNO_RENAME_OK): Update.
3892         * config/mips/mips.c (mips_global_pointer): Update.
3893         (mips_save_reg_p): Update.
3894         (mips_compute_frame_info): Update.
3895         (mips_frame_pointer_required): Update.
3896         (mips_expand_prologue): Update.
3897         (mips_expand_epilogue): Update.
3898         (mips_can_use_return_insn): Update.
3899         (mips_reorg_process_insns): Update.
3900         * config/v850/v850.c (compute_register_save_size): Update.
3901         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
3902         * config/mmix/mmix.c (along): Update.
3903         (mmix_expand_epilogue): Update.
3904         * config/bfin/bfin.c (legitimize_pic_address): Update.
3905         (must_save_p): Update.
3906         (stack_frame_needed_p): Update.
3907         (add_to_reg): Update.
3908         (bfin_expand_prologue): Update.
3909         * stmt.c (expand_asm_operands): Update.
3910         * reload1.c (reload): Update.
3911         (init_elim_table): Update.
3912
3913 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
3914         
3915         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
3916         
3917 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
3918
3919         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
3920         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
3921         (mov<mode>): Removed.
3922         (*movv4sf_internal): Likewise.
3923         (*movv2df_internal): Likewise.
3924
3925 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
3926
3927         * config.gcc (crx-*-elf): Remove deprecation.
3928
3929 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
3930
3931         * config/i386/cygming-crtend.c (register_frame_ctor): Register
3932         __gcc_deregister_frame with atexit.
3933         (deregister_frame_dtor): Remove.
3934
3935 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
3936             Nathan Sidwell  <nathan@codesourcery.com>
3937
3938         * config/rs6000/rs6000.opt (mspe): Remove Var property.
3939         (misel): Likewise.
3940         * config/rs6000/rs6000.h (rs6000_spe): Declare.
3941         (rs6000_isel): Likewise.
3942         * config/rs6000/rs6000.c (rs6000_spe): New variable.
3943         (rs6000_isel): New variable.
3944         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
3945
3946 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3947
3948         PR c++/35758
3949         * c-common.c (handle_vector_size_attribute): Call
3950         lang_hooks.types.reconstruct_complex_type instead of
3951         reconstruct_complex_type.
3952         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
3953         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
3954         * langhooks.h (struct lang_hooks_for_types): Add
3955         reconstruct_complex_type hook.
3956         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
3957         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
3958
3959 2008-04-24  Richard Guenther  <rguenther@suse.de>
3960
3961         * c-common.h (check_builtin_function_arguments): Declare.
3962         * c-common.c (validate_nargs): New function.
3963         (check_builtin_function_arguments): Likewise.
3964         * c-typeck.c (build_function_call): Call
3965         check_builtin_function_arguments.
3966         * builtins.c (fold_builtin_classify): Remove error reporting code.
3967         (fold_builtin_unordered_cmp): Likewise.
3968         (fold_builtin_1): Likewise.
3969         (fold_builtin_n): Likewise.
3970
3971 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3972
3973         PR tree-optimization/36008
3974         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
3975         the original op1, rather than delta by step.
3976
3977 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
3978             Sebastian Pop  <sebastian.pop@amd.com>
3979
3980         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
3981         eliminate_local_variables_stmt, eliminate_local_variables,
3982         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
3983         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
3984         of code delimited by two edges in the CFG.
3985         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
3986         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
3987         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
3988         the case of parallelisation of reductions.
3989         (expr_invariant_in_region_p): New.
3990
3991         * tree-flow.h (gather_blocks_in_sese_region): Declared.
3992         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
3993
3994 2008-04-24  Ira Rosen  <irar@il.ibm.com>
3995             Richard Guenther  <rguenther@suse.de>
3996
3997         PR tree-optimization/36034
3998         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
3999         incapable of dealing with loads with gaps.
4000
4001 2008-04-24  Rafael Espindola  <espindola@google.com>
4002
4003         * tree-flow.h (vrp_evaluate_conditional): Change signature.
4004         * tree-ssa-propagate.c (fold_predicate_in): Update call to
4005         vrp_evaluate_conditional.
4006         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
4007         (vrp_evaluate_conditional): Split the cond argument.
4008         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
4009         (simplify_stmt_for_jump_threading): Update call to
4010         vrp_evaluate_conditional.
4011
4012 2008-04-24  Ira Rosen  <irar@il.ibm.com>
4013
4014         PR tree-optimization/35982
4015         * tree-vect-analyze.c (vect_check_interleaving): Check that the
4016         interleaved data-refs are of the same type.
4017
4018 2008-04-24  Danny Smith  <dannysmith@users.net>
4019
4020         * c-format.c (check_format_info_main): Use strncmp rather than a
4021         magic prefix to handle multichar length specs.
4022         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
4023         Don't prefix "I64" and "I32" with '\0'.
4024
4025 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4026
4027         PR target/36015
4028         * config/i386/i386.c (init_cumulative_args): Don't pass anything
4029         in registers for -m32 only if stdarg_p (fntype).
4030
4031 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
4032
4033         PR rtl-optimization/36006
4034         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
4035         temp to op0 in order to avoid invalid rtx sharing.
4036
4037 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
4038
4039         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
4040         check TREE_INVARIANT.
4041         * tree-gimple.c (is_gimple_address): New.
4042         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
4043         * tree-gimple.h (is_gimple_address): New.
4044         * tree.h (decl_address_invariant_p): New.
4045         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
4046         (build_string): Likewise.
4047         (decl_address_invariant_p): New, from is_gimple_invariant_address.
4048         (tree_invariant_p_1): Likewise.
4049         (save_expr): Use it.
4050         (tree_invariant_p): New.
4051         (skip_simple_arithmetic): Use it.
4052         (stabilize_reference_1): Use it.
4053         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
4054         simplify.
4055         (build1_stat): Drop code to compute TREE_INVARIANT.
4056         (build2_stat): Drop code to compute TREE_INVARIANT.
4057         (build3_stat): Drop code to compute TREE_INVARIANT.
4058         (build4_stat): Drop code to compute TREE_INVARIANT.
4059         (build5_stat): Drop code to compute TREE_INVARIANT.
4060         (build7_stat): Drop code to compute TREE_INVARIANT.
4061         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
4062         * tree.h (struct tree_base): Remove invariant_flag.
4063         (TREE_INVARIANT): Remove.
4064         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
4065         (fold_builtin_expect): Check TREE_CONSTANT.
4066         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
4067         * c-tree.h (c_expr_to_decl): Drop third parameter.
4068         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
4069         (build_c_cast): Don't set TREE_INVARIANT.
4070         (pop_init_level): Don't set TREE_INVARIANT.
4071         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
4072         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
4073         TREE_CONSTANT.
4074         (gimplify_init_constructor): Don't set TREE_INVARIANT.
4075         (gimplify_addr_expr): Adjust comment.
4076         * tree-mudflap.c (mf_build_string):
4077         * print-tree.c (print_node): Don't print TREE_INVARIANT.
4078         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
4079         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
4080         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
4081         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
4082         * langhooks.h (struct lang_hooks): Drop third parameter from
4083         expr_to_decl.
4084
4085 2008-04-23  Richard Guenther  <rguenther@suse.de>
4086
4087         PR tree-optimization/27799
4088         PR tree-optimization/32921
4089         PR tree-optimization/32624
4090         * tree-ssa-structalias.c (merge_smts_into): Only merge the
4091         SMTs aliases and the tag itself into the solution.
4092         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
4093         merge the points-to solution back into the SMT aliases.
4094         (may_alias_p): Use alias_set_subset_of instead of
4095         aliases_conflict_p.  A pointer which points to
4096         memory with alias set zero may access any variable.
4097
4098 2008-04-23  Richard Guenther  <rguenther@suse.de>
4099
4100         * alias.c (alias_set_subset_of): Correctly handle asking
4101         if zero is a subset of an alias set with zero child.
4102         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
4103         (compute_flow_insensitive_aliasing): Correctly walk all
4104         pointers.  Do not unnecessarily union sets.
4105
4106 2008-04-23  Richard Guenther  <rguenther@suse.de>
4107
4108         PR middle-end/36021
4109         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
4110
4111 2008-04-22  Tomas Bily  <tbily@suse.cz>
4112
4113         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
4114         unreachable case.
4115         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
4116         NON_LVALUE_EXPR.
4117         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
4118         * tree-ssa-structalias.c (get_constraint_for): Likewise.
4119         * tree-inline.c (estimate_num_insns_1): Likewise.
4120         * varasm.c (const_hash_1, compare_constant, copy_constant)
4121         (compute_reloc_for_constant, output_addressed_constants): Likewise.
4122         * emit-rtl.c (component_ref_for_mem_expr)
4123         (set_mem_attributes_minus_bitpos): Likewise.
4124         * expr.c (highest_pow2_factor, expand_expr_real_1, )
4125         (is_aligning_offset): Likewise.
4126         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
4127         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
4128         * dojump.c (do_jump): Likewise.
4129         * builtins.c (get_pointer_alignment, get_memory_rtx)
4130         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
4131         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
4132
4133 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
4134
4135         PR rtl-optimization/36017
4136         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
4137         expanding the library call.
4138
4139 2008-04-22  Ian Lance Taylor  <iant@google.com>
4140
4141         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
4142         than size_in_bytes.
4143
4144 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
4145
4146         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
4147         of LR/CTR moves for Power6.
4148
4149 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
4150
4151         PR middle-end/36003
4152         * passes.c (init_optimization_passes): Remove
4153         pass_fast_rtl_byte_dce.
4154         
4155 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
4156
4157         PR target/29096
4158         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
4159         builtin functions to generate faster code.
4160         (_mm_cvtpu16_ps): Ditto.
4161         (_mm_cvtpi32x2_ps): Ditto.
4162
4163 2008-04-22  Nick Clifton  <nickc@redhat.com>
4164
4165         * common.opt (ftree-loop-distribution): Add Optimization
4166         attribute.
4167
4168         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
4169         (frv_expand_builtin_va_start): Likewise.
4170
4171         * config/arm/arm.c (thumb_find_work_register): Fix location of
4172         argument register count.
4173
4174 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
4175
4176         Support scheduling for ColdFire V1 and V3 microarchitecture.
4177         Improve scheduling of multiplication instructions.
4178
4179         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
4180         (mac): New instruction attribute.
4181         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
4182         (m68k_sched_mac): New variable.
4183         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
4184         Handle cfv1 and cfv3.
4185         (max_insn_size): New static variable.
4186         (struct _sched_ib): New type.
4187         (sched_ib): New static variable.
4188         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
4189         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
4190         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
4191         Update.
4192         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
4193         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
4194         new variables.  Update.
4195         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
4196         Add modeling of cfv3 instruction buffer.  Update.
4197         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
4198         * config/m68k/m68k.h (TUNE_CFV3): New macro.
4199         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
4200         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
4201         a particular reservation applies to.
4202         (type2): Reorganize attribute values.  Rename alu to alu_reg,
4203         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
4204         to mul_l and mul_w.
4205         (cf_ib_*): Simplify description of instruction buffer.
4206         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
4207         (cf_mem): Split into cf_mem1 and cf_mem2.
4208         (cf_v2_move_??): Rename to cfv12_alu_??.
4209         (cf_v2_move_l_??): Rename to cfv12_omove_??.
4210         (cf_v2_mul_??): Remove reservations.
4211         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
4212         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
4213         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
4214         appropriate place.
4215         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
4216         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
4217         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
4218         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
4219         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
4220         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
4221         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
4222         expansions of the above reservations for instructions of sizes
4223         1, 2 and 3 words.
4224
4225 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
4226
4227         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
4228
4229 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
4230
4231         * coverage.c: Include tree-pass.h.
4232         (coverage_counter_alloc): Print da_file_name to the dump file.
4233
4234 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
4235
4236         * sbitmap.c (sbitmap_range_empty_p): New function.
4237         * sbitmap.h (sbitmap_range_empty_p): New function.
4238         * bitmap.h: Now includes obstack.h.
4239
4240 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
4241             Kenneth Zadeck  <zadeck@naturalbridge.com>
4242
4243         * dbgcnt.def (ra_byte_scan): Added.
4244         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
4245         when the last hit happens for a counter.  
4246         * timevar.def (TV_DF_BYTE_LR): New variable.
4247         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
4248         * passes.c (pass_fast_rtl_byte_dce): New pass.
4249         * fwprop.c (update_df): Added mode to call df_ref_create.
4250         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
4251         DF_REF_EXTRACT_OFFSET.
4252         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
4253         DF_BYTE_LR_OUT, df_byte_lr): New macro.
4254         (df_mm): New enum.
4255         (df_ref_extract): Added mode field.
4256         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
4257         DF_REF_EXTRACT_OFFSET.
4258         (DF_REF_EXTRACT_MODE): New macro.
4259         (df_byte_lr_bb_info): New structure.
4260         (df_print_byte_regset, df_compute_accessed_bytes, 
4261         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
4262         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
4263         df_byte_lr_simulate_uses,
4264         df_byte_lr_simulate_artificial_refs_at_top,
4265         df_byte_lr_simulate_artificial_refs_at_end,
4266         df_compute_accessed_bytes): New function.
4267         (df_ref_create): Add parameter.
4268         (df_byte_lr_get_bb_info): New inline function.
4269         * df-scan.c (df_ref_record, df_uses_record,
4270         df_ref_create_structure): Added mode parameter.
4271         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
4272         df_defs_record, df_uses_record, df_get_conditional_uses,
4273         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
4274         df_entry_block_defs_collect, df_exit_block_uses_collect):
4275         Added mode parameter to calls to df_ref_record, df_uses_record,
4276         df_ref_create_structure.
4277         (df_ref_equal_p, df_ref_compare): Added test for modes.
4278         (df_ref_create_structure): Added code to set mode.  Renamed
4279         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
4280         DF_REF_EXTRACT_OFFSET.
4281         * df-core.c (df_print_byte_regset): New function.
4282         * df-byte-scan.c: New file.
4283         * df-problems.c (df_rd_transfer_function): Removed unnecessary
4284         calls to BITMAP_FREE.  
4285         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
4286         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
4287         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
4288         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
4289         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
4290         df_byte_lr_local_compute, df_byte_lr_init,
4291         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
4292         df_byte_lr_transfer_function, df_byte_lr_free, 
4293         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
4294         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
4295         df_byte_lr_simulate_uses,
4296         df_byte_lr_simulate_artificial_refs_at_top,
4297         df_byte_lr_simulate_artificial_refs_at_end): New function.
4298         * dce.c (byte_dce_process_block): New function.
4299         (dce_process_block): au is now passed in rather than computed
4300         locally.  Changed loops that look at artificial defs to not look
4301         for conditional or partial ones, because there never are any.  
4302         (fast_dce): Now is able to drive byte_dce_process_block or 
4303         dce_process_block depending on the kind of dce being done.
4304         (rest_of_handle_fast_dce): Add parameter to fast_dce.
4305         (rest_of_handle_fast_byte_dce): New function.
4306         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
4307         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
4308
4309 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
4310
4311         PR fortran/35019
4312         * gcc.h: Added fortran options that take arguments to
4313         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
4314         macros.
4315
4316 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
4317
4318         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
4319         scalarization if on the LHS and not a full access.
4320
4321 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4322
4323         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
4324
4325 2008-04-18  Rafael Espindola  <espindola@google.com>
4326
4327         * tree-vrp.c (find_case_label_index): Fix the binary search.
4328         (find_case_label_range): New.
4329         (vrp_visit_switch_stmt): Use find_case_label_range.
4330         (simplify_switch_using_ranges): Use find_case_label_range.
4331
4332 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4333
4334         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
4335         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
4336
4337 2008-04-18  Tom Tromey  <tromey@redhat.com>
4338
4339         PR libcpp/15500:
4340         * doc/cpp.texi (Implementation-defined behavior): Mention
4341         -finput-charset.
4342
4343 2008-04-18  Ian Lance Taylor  <iant@google.com>
4344
4345         * fold-const.c (pointer_may_wrap_p): New static function.
4346         (fold_comparison): Add another test for pointer overflow.  Use
4347         pointer_may_wrap_p to disable some false positives.
4348
4349 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
4350           
4351         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
4352         (fname_as_string): Match updated cpp_interpret_string prototype.
4353         (fix_string_type): Support char16_t* and char32_t*.
4354         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
4355         derivative) nodes.  Register as builtin if C++0x.
4356         (c_parse_error): Support CPP_CHAR{16,32}.
4357         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
4358         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
4359         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
4360         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
4361         CTI_CHAR32_ARRAY_TYPE>: New elements.
4362         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
4363         char32_type_node, signed_char32_type_node, char16_array_type_node,
4364         char32_array_type_node): New defines.
4365         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
4366         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
4367         (lex_string): Support CPP_STRING{16,32}, match updated
4368         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
4369         (lex_charconst): Support CPP_CHAR{16,32}.
4370         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
4371         and CPP_STRING{16,32}.
4372
4373 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
4374
4375         PR bootstrap/35457
4376         * aclocal.m4: Regenerate.
4377         * configure: Regenerate.
4378
4379 2008-04-18  Jan Hubicka  <jh@suse.cz>
4380
4381         * except.c (dw2_size_of_call_site_table,
4382         sjlj_size_of_call_site_table): Use vector API for call_site_record.
4383
4384         * cgraphbuild.c (build_cgraph_edges): Update.
4385         * tree-pass.h: Update comment.
4386         * final.c (leaf_function_p): Update.
4387         (leaf_renumber_regs): Update.
4388         (rest_of_clean_state): Update.
4389         * omp-low.c (expand_omp_parallel): Update.
4390         * ipa-reference.c (analyze_function): Update.
4391         * reorg.c (find_end_label): Update.
4392         (optimize_skip): Update.
4393         (fill_simple_delay_slots): Update.
4394         (fill_simple_delay_slots): Update.
4395         (make_return_insns): Update.
4396         (dbr_schedule): Update.
4397         * gimple-low.c (record_vars_into): Update.
4398         * cfgbuild.c (make_edges): Update.
4399         * function.c (assign_stack_local): Update.
4400         (assign_parm_adjust_stack_rtl): Update.
4401         (locate_and_pad_parm): Update.
4402         (allocate_struct_function): Do not initialize stack_alignment_needed
4403         and preferred_stack_boundary here.
4404         (stack_protect_prologue): Update.
4405         (stack_protect_epilogue): Update.
4406         (expand_function_start): Initialize stack_alignment_needed,
4407         preferred_stack_boundary and max_jumptable_ents.
4408         (expand_function_end): Update.
4409         (free_after_compilation): Do not NULLify epilogue_delay_list.
4410         * function.h (struct rtl_data): Add stack_protect_guard,
4411         stack_alignment_needed,
4412         preferred_stack_boundary, epilogue_delay_list.
4413         (struct function): Remove value_histograms, stack_alignment_needed,
4414         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
4415         last_label_uid,
4416         unexpanded_var_list, stack_protect_guard.
4417         (current_function_epilogue_delay_list): Remove.
4418         * ipa-type-escape.c (analyze_function): Update.
4419         * gimplify.c (pop_gimplify_context): Update comment.
4420         * calls.c (expand_call): Update.
4421         (emit_library_call_value_1): Update.
4422         * except.c (set_nothrow_function_flags): Update.
4423         * cfgexpand.c (get_decl_align_unit): Update.
4424         (create_stack_guard): Update.
4425         (estimated_stack_frame_size): Update.
4426         (expand_used_vars): Update.
4427         (tree_expand_cfg): Free histogram earliers, init expansion variables.
4428         * explow.c (allocate_dynamic_stack_space): Update.
4429         * tree-ssa-live.c (remove_unused_locals): Update.
4430         * varasm.c (mark_constant_pool): Update.
4431         * tree-inline.c (remap_decls): Update.
4432         (initialize_cfun): Update.
4433         (declare_return_variable): Update.
4434         (inline_forbidden_p): Update.
4435         (expand_call_inline): Update.
4436         (declare_inline_vars): Update.
4437         (tree_function_versioning): Update.
4438         * tree-flow.h (value_histograms): New.
4439         (VALUE_HISTOGRAMS): New macro.
4440         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
4441         last_label_uid.
4442         * tree-cfg.c (set_bb_for_stmt): Update.
4443         (replace_by_duplicate_decl): Update.
4444         (move_block_to_fn): Update.
4445         (new_label_mapper): Update.
4446         (dump_function_to_file): Update.
4447         * ipa-struct-reorg.c (build_data_structure): Update.
4448         * cfgrtl.c (print_rtl_with_bb): Update.
4449         * reload1.c (reload): Update.
4450         (reload): Update.
4451         * config/i386/i386.c (setup_incoming_varargs_64,
4452         ix86_compute_frame_layout): Update.
4453         * config/arc/arc.c (arc_output_function_epilogue): Update.
4454
4455 2008-04-18  Marius Strobl <marius@FreeBSD.org>
4456
4457         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
4458         for FreeBSD as well.
4459         * gthr-posix95.h: Likewise.
4460
4461 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
4462
4463         PR rtl-optimization/35838
4464         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
4465         out the byte offset of the first subreg.
4466
4467 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
4468
4469         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
4470         to split_ti instead of three separate calls with single member arrays.
4471         (subti3 splitter): Ditto.
4472         (adddi3 splitter): Ditto with split_di.
4473         (subdi3 splitter): Ditto.
4474         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
4475         two separate calls with single member arrays.  Swap match_dup
4476         operands 1 and 2 to better fit into the array.
4477         (negdi2 splitter): Ditto with split_di.
4478         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
4479         two separate calls with single member arrays.  Swap match_dup operands
4480         6 and 7 to better fit into the array.
4481
4482 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
4483
4484         * config/i386/i386.c (sse_builtin_type): New.
4485         (bdesc_sse_args): Likewise.
4486         (bdesc_sse_3arg): Removed.
4487         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4488         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
4489         IX86_BUILTIN_ROUNDPS.
4490         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
4491         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
4492         IX86_BUILTIN_ROUNDPS.
4493         (ix86_expand_sse_4_operands_builtin): Removed.
4494         (ix86_expand_sse_operands_builtin): New.
4495         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
4496         and CODE_FOR_sse4_1_roundps.
4497         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4498         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
4499
4500 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
4501
4502         PR target/35907
4503         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
4504         regs before frame pop when needed.  If use_backchain_to_restore_sp
4505         then load backchain into a temp reg to restore vr and vrsave.  Add
4506         code to restore vr after frame pop if possible.
4507
4508 2008-04-17  Richard Guenther  <rguenther@suse.de>
4509
4510         * tree-vn.c (expressions_equal_p): Do not check type
4511         equality or compatibility before calling operand_equal_p.
4512         * fold-const.c (operand_equal_p): Check equivalence of
4513         integer constants before bailing out due to signedness or
4514         precision differences.
4515         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
4516         spurious differences in type qualification.  Ignore types
4517         for COMPONENT_REFs at all.
4518
4519 2008-04-17  Christian Bruel  <christian.bruel@st.com>
4520
4521         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
4522         msw_skip comparison.
4523         
4524 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
4525
4526         PR c/35739
4527         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
4528         reg type.
4529
4530         PR tree-optimization/35899
4531         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
4532         rather than TREE_OPERAND.
4533
4534 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
4535
4536         PR target/35944
4537         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
4538         temporary registers.  Change operand predicate to general_operand.
4539         (remainderxf3): Ditto.
4540
4541 2008-04-16  Richard Guenther  <rguenther@suse.de>
4542
4543         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
4544         * tree-affine.c (aff_combination_expand): Look through some
4545         conversions.
4546
4547 2008-04-15  Doug Kwan  <dougkwan@google.com>
4548
4549         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
4550         for hex printing.
4551         * tree-pretty-print.c (dump_generic_node): Ditto.
4552         * final.c (output_addr_const): Ditto.
4553         * dwarf2out.c (output_cfi): Ditto.
4554         * c-pretty-print.c (pp_c_integer_constant): Ditto.
4555         * print-rtl.c (print_rtx): Ditto.
4556         * print-tree.c (print_node_brief, print_node): Ditto.
4557         * c-common.c (match_case_to_enum_1): Ditto.
4558         * sched-vis.c (print_value): Ditto.
4559         * config/i386/i386.c (print_operand): Cast to long unsigned int
4560         for hex printing.
4561
4562 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
4563         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
4564         MS Windows VirtualProtect function.
4565
4566 2008-04-15  Jan Hubicka  <jh@suse.cz>
4567
4568         * gengtype.c (write_root): Param_is argument is OK.
4569         * expr.c (expand_expr_real_1): Update call of get_exception_*.
4570         * function.h: Include varray.h
4571         (rtl_eh): New stucture based on except.c one.
4572         (call_site_record): New forward declaration and vector type.
4573         * calls.c (emit_call_1): Do not call
4574         note_current_region_may_contain_throw.
4575         * except.c (eh_status): Remove cur_region, try_region since they are
4576         unused.
4577         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
4578         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
4579         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
4580         Remove call_site_data_used, call_site_data_size.
4581         Turn call_site_record into vector in function.h.
4582         (note_current_region_may_contain_throw): Remove.
4583         (get_exception_pointer, get_exception_filter): Do not take struct
4584         function argument; update.
4585         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
4586         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
4587         build_post_landing_pads, dw2_build_landing_pads,
4588         sjlj_assign_call_site_values, sjlj_mark_call_sites,
4589         sjlj_emit_function_enter, sjlj_emit_function_enter, 
4590         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
4591         sjlj_build_landing_pads, finish_eh_generation,
4592         remove_exception_handler_label, remove_eh_handler,
4593         maybe_remove_eh_handler, add_reachable_handler,
4594         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
4595         add_action_record, collect_one_action_chain, add_call_site,
4596         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
4597         sjlj_output_call_site_table, output_function_exception_table,
4598         * except.h (note_current_region_may_contain_throw): Remove
4599         (get_exception_pointer, get_exception_filter): Do not take struct
4600         function argument.
4601         * Makefile.in (GTFILES): Put varargs before struct function.
4602
4603 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4604
4605         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
4606         punt for STRING_CST.
4607         (get_constraint_for): Deal with STRING_CST here instead.
4608
4609 2008-04-15  Richard Guenther  <rguenther@suse.de>
4610
4611         * tree-ssa-propagate.c (substitute_and_fold): Substitute
4612         statements in a basic-block with a backward walk.  Do not
4613         substitute into dead statements but instead remove those.
4614
4615 2008-04-15  Richard Guenther  <rguenther@suse.de>
4616
4617         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
4618         to zero, thus disable creation of SFTs.
4619
4620 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4621
4622         * tree-predcom.c (suitable_reference_p): Return false if the
4623         reference can throw.
4624
4625 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
4626
4627         PR c/35751
4628         * c-decl.c (finish_decl): If extern or static var has variable
4629         size, set TREE_TYPE (decl) to error_mark_node.
4630
4631 2008-04-15  Rafael Espindola  <espindola@google.com>
4632
4633         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
4634         variable arg1.
4635
4636 2008-04-15  Richard Guenther  <rguenther@suse.de>
4637
4638         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
4639         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
4640         (visit_reference_op_load): Do walk vuse-vdef chains on
4641         vn_reference_lookup.
4642         (visit_reference_op_store): But do not here.
4643         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
4644         vn_reference_lookup.
4645         (vn_lookup_with_vuses): But do so here.
4646
4647 2008-04-14  Ian Lance Taylor  <iant@google.com>
4648
4649         * fold-const.c (fold_overflow_warning): Remove assertion.
4650
4651 2008-04-15  Ben Elliston  <bje@au.ibm.com>
4652
4653         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
4654         temp1 local variables.
4655
4656 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
4657
4658         PR target/35661
4659         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
4660         ".text.unlikely" section as executable.
4661
4662 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
4663
4664         * config/ia64/ia64.c (rtx_needs_barrier): Handle
4665         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
4666         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
4667         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
4668         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
4669         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
4670         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
4671
4672 2008-04-14  Ian Lance Taylor  <iant@google.com>
4673
4674         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
4675         * fold-const.c (fold_comparison): If appropriate, test
4676         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
4677         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
4678         reassociating a pointer type.
4679         * doc/invoke.texi (Optimize Options): Document that
4680         -fstrict-overflow applies to pointer wraparound.
4681
4682 2008-04-13  Jan Hubicka  <jh@suse.cz>
4683
4684         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
4685
4686 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
4687
4688         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
4689         we are going to "save the world".
4690
4691 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
4692
4693         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
4694         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
4695         operand 0 constraint, not "=".
4696
4697 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
4698
4699         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
4700
4701 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4702
4703         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
4704         of size of positions_needed * CHAR_BIT.
4705
4706 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4707
4708         PR middle-end/35897
4709         * dse.c (store_info): Change positions_needed to unsigned
4710         HOST_WIDE_INT.
4711         (lowpart_bitmask): New.
4712         (record_store): Cast to unsigned HOST_WIDE_INT for
4713         positions_needed.  Assert width <= size of positions_needed *
4714         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
4715         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
4716         lowpart_bitmask to set mask.
4717
4718 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
4719
4720         * config/bfin/constraints.md: New file.
4721         * config/bfin/bfin.md: Include it.
4722         (adddi3): Use satisfies_constraint functions instead of the old macros.
4723         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
4724         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
4725         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
4726         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
4727         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
4728         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
4729         EXTRA_CONSTRAINT): Delete.
4730         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
4731         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
4732         of the old macros.
4733         * config/bfin/bfin.c: Include "tm-constrs.h".
4734         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
4735         Use satisfies_constraint functions instead of the old macros.
4736         * doc/md.texi (Blackfin Constraints): Update file name reference.
4737
4738 2008-04-11  Richard Guenther  <rguenther@suse.de>
4739
4740         PR tree-optimization/35869
4741         * tree-vrp.c (execute_vrp): Move switch statement update after
4742         jump threading.  Schedule another cfg cleanup run.
4743
4744 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
4745
4746         PR c/35744
4747         * attribs.c (decl_attributes): Return early on errorneous node.
4748
4749 2008-04-10  Oleg Ryjkov  <olegr@google.com>
4750
4751         * tree.h (struct tree_base): Added a new flag default_def_flag.
4752         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
4753
4754 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4755
4756         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
4757
4758 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4759
4760         PR target/35768
4761         * pa.md: Define mode iterator P.  Define mode attribute dwc.
4762         (dcacheflush): Update pattern to use iterator P and attribute dwc.
4763         (icacheflush): Likewise.
4764         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
4765         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
4766
4767 2008-04-11  Ben Elliston  <bje@au.ibm.com>
4768
4769         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
4770
4771 2008-04-10  Rafael Espindola  <espindola@google.com>
4772
4773         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
4774         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
4775         (extract_range_from_expr): The same.
4776
4777 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4778
4779         * config/mips/mips.md (GPR2): New mode iterator.
4780         (seq): Add comment.
4781         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
4782         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
4783         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
4784         Rewrite these to take two modes, the mode of comparison and the
4785         mode of the destination.
4786         * config/mips/mips.c (mips_expand_scc): Instead of having
4787         paradoxical subreg as destination, expand "narrowing" scc if mode
4788         of comparison is SI and target is requested in DI mode.
4789         (mips_emit_int_order_test): Update comment.  Make mode of
4790         comparison match CMP0 rather than TARGET.  When creating inverse
4791         target use mode of TARGET.
4792
4793 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4794
4795         * gcov-dump.c (tag_summary): Only print summaries for the first
4796         GCOV_COUNTERS_SUMMABLE counters.
4797
4798 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
4799
4800         * config/i386/i386.md (absneg): New code iterator.
4801         (absnegprefix): New code attribute.
4802         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
4803         patterns using absneg code iterator.
4804         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
4805         using absneg code iterator.
4806         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
4807         *neg<mode>2 patterns using absneg code iterator.
4808         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4809         *negextendsfdf2 patterns using absneg code iterator.
4810         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
4811         *negextendsfxf2 patterns using absneg code iterator.
4812         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4813         *negextendsfdf2 patterns using absneg code iterator.
4814         * config/i386/sse.md (<code><mode>2): Macroize expander from
4815         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
4816
4817 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
4818
4819         * config/s390/s390.h: Remove the remains of the recent search
4820         & replace action of current_function_outgoing_args_size.
4821
4822 2008-04-10  Ira Rosen  <irar@il.ibm.com>
4823
4824         PR tree-optimization/35821
4825         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
4826         NEW_STMT_LIST is not NULL.
4827
4828 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
4829
4830         PR libstdc++/35597
4831         * toplev.c (process_options): Remove -ffunction-sections debugging
4832         warning.
4833
4834 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
4835
4836         PR middle-end/PR28690
4837         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
4838         than gen_rtx_fmt_ee to perform more canonicalizations.
4839
4840 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4841
4842         PR driver/35665
4843         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
4844
4845 2008-04-09  Richard Guenther  <rguenther@suse.de>
4846
4847         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
4848         (dump_function_to_file): Dump function arguments with types.
4849
4850 2008-04-08  Richard Guenther  <rguenther@suse.de>
4851
4852         * fold-const.c (fold_widened_comparison): Do not allow
4853         sign-changes that change the result.
4854
4855 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
4856
4857         PR target/35839
4858         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
4859         kinds of indirect references.
4860
4861 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
4862
4863         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
4864         GNU Fortran language string.
4865
4866 2008-04-08  Rafael Espindola  <espindola@google.com>
4867
4868         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
4869         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
4870         * tree.h (tree_call_nonnegative_warnv_p): New.
4871
4872 2008-04-08  Jan Hubicka  <jh@suse.cz>
4873
4874         * function.c (free_after_compilation): Clear out regno_reg_rtx
4875         pointer.
4876
4877 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
4878
4879         Revert
4880         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
4881
4882         PR middle-end/PR28690
4883         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
4884         same precedence as REG_POINTER and MEM_POINTER operands.
4885
4886 2008-04-08  Richard Guenther  <rguenther@suse.de>
4887
4888         PR middle-end/35834
4889         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
4890         for adding index to base.
4891
4892 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
4893
4894         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
4895         (MINGW_ENABLE_EXECUTE_STACK): New.
4896         (IN_LIBGCC2): For libgcc include windows.h file for
4897         function declarations.
4898
4899 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
4900
4901         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
4902         and tem2 if tem1 is not a REG or MULT.
4903
4904 2008-04-08  Jan Hubicka  <jh@suse.cz>
4905
4906         * function.h (incomming_args): Break out of struct function.
4907         (function_subsections): Break out of struct function.
4908         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
4909         return_rtx and hard_reg_initial_vals from struct function.
4910         Kill inl_max_label_num.
4911         (current_function_pops_args, current_function_args_info,
4912         current_function_args_size, current_function_args_size,
4913         current_function_pretend_args_size,
4914         current_function_outgoing_args_size,
4915         current_function_internal_arg_pointer, current_function_return_rtx):
4916         Kill compatibility accestor macros.
4917         * builtins.c (expand_builtin_apply_args_1): Update.
4918         (expand_builtin_next_arg): Update.
4919         * df-scan.c (df_get_call_refs): Update.
4920         * dbxout.c (dbxout_function_end): Update.
4921         * dwarf2out.c (dwarf2out_switch_text_section): Update.
4922         (output_line_info): Update.
4923         (secname_for_decl): Update.
4924         (dwarf2out_var_location): Update.
4925         * function.c (free_after_compilation): Update.
4926         (assign_parm_find_stack_rtl): Update.
4927         (assign_parms): Update.
4928         (expand_dummy_function_end): Update.
4929         (expand_function_end): Update.
4930         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
4931         (expand_call): Update.
4932         (emit_library_call_value_1): Update.
4933         (store_one_arg): Update.
4934         * varasm.c (initialize_cold_section_name): Update.
4935         (unlikely_text_section): Update.
4936         (unlikely_text_section_p): Update.
4937         (assemble_start_function): Update.
4938         (assemble_end_function): Update.
4939         (default_section_type_flags): Update.
4940         (switch_to_section): Update.
4941         * integrate.c (set_decl_abstract_flags): Update.
4942         (get_hard_reg_initial_val): Update.
4943         (has_hard_reg_initial_val): Update.
4944         (allocate_initial_values): Update.
4945         * resource.c (init_resource_info): Update.
4946         * config/alpha/alpha.c (NUM_ARGS): Update.
4947         (direct_return): Update.
4948         (alpha_va_start): Update.
4949         (alpha_sa_size): Update.
4950         (alpha_initial_elimination_offset): Update.
4951         (alpha_expand_prologue): Update.
4952         (alpha_start_function): Update.
4953         (alpha_expand_epilogue): Update.
4954         (unicosmk_initial_elimination_offset):
4955         * config/alpha/alpha.md (call expander): Update.
4956         * config/s390/s390.c (s390_register_info): Update.
4957         (s390_register_info): Update.
4958         (s390_frame_info): Update.
4959         (s390_initial_elimination_offset): Update.
4960         (s390_build_builtin_va_list): Update.
4961         (s390_va_start): Update.
4962         * config/spu/spu.c (direct_return): Update.
4963         (spu_expand_prologue): Update.
4964         (spu_initial_elimination_offset): Update.
4965         (spu_build_builtin_va_list): Update.
4966         (spu_va_start): Update.
4967         * config/sparc/sparc.c (sparc_init_modes): Update.
4968         (sparc_compute_frame_size): Update.
4969         (function_value): Update.
4970         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
4971         * config/i386/i386.md (return expander): Update.
4972         * config/i386/i386.c (ix86_va_start): Update.
4973         (ix86_can_use_return_insn_p): Update.
4974         (ix86_compute_frame_layout): Update.
4975         (ix86_expand_epilogue): Update.
4976         * config/sh/sh.c (output_stack_adjust): Update.
4977         (calc_live_regs): Update.
4978         (sh_expand_prologue): Update.
4979         (sh_builtin_saveregs): Update.
4980         (sh_va_start): Update.
4981         (initial_elimination_offset): Update.
4982         (sh_allocate_initial_value): Update.
4983         (sh_function_ok_for_sibcall): Update.
4984         (sh_get_pr_initial_val): Update.
4985         * config/sh/sh.md (return expander): Update.
4986         * config/avr/avr.c (frame_pointer_required_p): UPdate.
4987         * config/crx/crx.c (crx_compute_frame): UPdate.
4988         (crx_initial_elimination_offset): UPdate.
4989         * config/xtensa/xtensa.c (compute_frame_size): Update
4990         (xtensa_builtin_saveregs): Update.
4991         (xtensa_va_start): Update.
4992         (order_regs_for_local_alloc): Update.
4993         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
4994         (xstormy16_expand_builtin_va_start): Update.
4995         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
4996         * config/m68hc11/m68hc11.md (return expanders): Update.
4997         * config/m68hc11/m68hc11.c (expand_prologue): Update.
4998         (expand_epilogue): Update.
4999         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
5000         (cris_simple_epilogue): Update.
5001         (cris_expand_prologue): Update.
5002         (cris_expand_epilogue): Update.
5003         * config/iq2000/iq2000.c (iq2000_va_start): Update.
5004         (compute_frame_size): Update.
5005         * config/mt/mt.c (mt_compute_frame_size): Update.
5006         * config/mn10300/mn10300.c (expand_prologue): Update.
5007         (expand_epilogue): Update.
5008         (initial_offset): Update.
5009         (mn10300_builtin_saveregs):
5010         * config/mn10300/mn10300.md (return expander): Update.
5011         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
5012         (ia64_initial_elimination_offset): Update.
5013         (ia64_initial_elimination_offset): Update.
5014         (ia64_expand_prologue): Update.
5015         * config/m68k/m68k.md (return expander): Update.
5016         * config/rs6000/rs6000.c (rs6000_va_start): Update.
5017         (rs6000_stack_info): Update.
5018         * config/mcore/mcore.c (layout_mcore_frame): Update.
5019         (mcore_expand_prolog): Update.
5020         * config/arc/arc.c (arc_compute_frame_size): Update.
5021         * config/score/score3.c (score3_compute_frame_size): Update.
5022         * config/score/score7.c (score7_compute_frame_size): Update.
5023         * config/arm/arm.c (use_return_insn): Update.
5024         (thumb_find_work_register): Update.
5025         (arm_compute_save_reg_mask): Update.
5026         (arm_output_function_prologue): Update.
5027         (arm_output_epilogue): Update.
5028         (arm_size_return_regs): Update.
5029         (arm_get_frame_offsets): Update.
5030         (arm_expand_prologue): Update.
5031         (thumb_exit): Update.
5032         (thumb_unexpanded_epilogue): Update.
5033         (thumb1_output_function_prologue): Update.
5034         * config/pa/pa.md (return expander): Update.
5035         * config/pa/pa.c (compute_frame_size): Update.
5036         (hppa_builtin_saveregs): Update.
5037         * config/mips/mips.c (mips_va_start): Update.
5038         (mips16_build_function_stub): Update.
5039         (mips_compute_frame_info): Update.
5040         (mips_restore_gp): Update.
5041         (mips_output_function_prologue): Update.
5042         (mips_expand_prologue): Update.
5043         * config/v850/v850.c (compute_frame_size): Update.
5044         (expand_prologue): * config/mmix/mmix.c (along): update.
5045         (mmix_initial_elimination_offset): update.
5046         (mmix_reorg): update.
5047         (mmix_use_simple_return): update.
5048         (mmix_expand_prologue): update.
5049         (mmix_expand_epilogue): Update.
5050         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
5051         (emit_link_insn): Update.
5052
5053 2008-04-08  Anatoly Sokolov <aesok@post.ru>
5054
5055         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
5056         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
5057         instructions.
5058         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
5059         atmega103 device.
5060
5061 2008-04-07  Jan Hubicka  <jh@suse.cz>
5062
5063         * function.h (rtl): Rename to x_rtl.
5064         (crtl): New define.
5065         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5066         frame_offset, stack_check_probe_note, arg_pointer_save_area,
5067         used_temp_slots avail_temp_slots, temp_slot_level,
5068         nonlocal_goto_handler_labels): Update accesstors.
5069         (rtl): New global variable.
5070         (struct function): Move some fileds to rtl_data.
5071         (get_arg_pointer_save_area): Update prototype.
5072         * builtins.c (expand_builtin_setjmp_receiver): Update call of
5073         get_arg_pointer_save_area.
5074         * expr.c (init_expr): Update
5075         * function.c (get_frame_size): Update
5076         (assign_stack_local): Update
5077         (expand_function_end): Update.
5078         (get_art_pointer_save_area): Update
5079         * function.h 
5080         * emit-rtl.c (rtl): Declare.
5081         (regno_reg_rtx): Declare.
5082         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
5083         Update.
5084         (gen_reg_rtx): Update.
5085         * varasm.c (n_deferred_constatns): Update accestor.
5086         (init_varasm_status): Do not allocate varasm_status.
5087         (force_const_mem, get_pool_size, output_constant_pool): Update.
5088         * stmt.c (force_label_rtx): Do not use x_ prefixes.
5089         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
5090         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
5091         * sparc/sparc.h (INIT_EXPANDERS): Update.
5092         * ia64/ia64.h (INIT_EXPANDERS): Update.
5093
5094 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
5095
5096         * reload.c (push_secondary_reload): Add missing break to for loop.
5097
5098 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
5099
5100         PR middle-end/PR28690
5101         * rtlanal.c: Update copyright years.
5102         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
5103         as REG_POINTER and MEM_POINTER operands.
5104         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
5105         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
5106         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
5107         * gcse.c: Update copyright years.
5108         (pre_delete): Call gen_reg_rtx_and_attrs.
5109         (hoist_code): Likewise.
5110         (build_store_vectors): Likewise.
5111         (delete_store): Likewise.
5112         * loop-invariant.c (move_invariant_reg): Likewise.
5113         Update copyright years.
5114
5115 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
5116
5117         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
5118         control string instead of quoted.
5119
5120 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
5121
5122         * doc/rtl.texi: Rewrite of subreg section.
5123
5124 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
5125
5126         PR/35842
5127         * config/i386/i386.c (legitimize_pic_address): Add treating
5128         of dllimport SYM_REF's.
5129         (legitimize_dllimport_symbol): Add prototype.
5130
5131 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5132
5133         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
5134         reference in constructor with non self-referential type.
5135
5136 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5137
5138         Removal of Return with Depressed Stack Pointer support
5139         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
5140         (ECF_SP_DEPRESSED): Likewise.
5141         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
5142         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
5143         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5144         (expand_call): Do not test ECF_SP_DEPRESSED.
5145         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5146         * function.c (keep_stack_depressed): Delete.
5147         (handle_epilogue_set): Likewise.
5148         (update_epilogue_consts): Likewise.
5149         (emit_equiv_load): Likewise.
5150         (thread_prologue_and_epilogue_insns): Remove support for Return with
5151         Depressed Stack Pointer.
5152         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5153
5154 2008-04-06  Richard Guenther  <rguenther@suse.de>
5155
5156         PR tree-optimization/35400
5157         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
5158         information from SSA_NAMEs.
5159
5160 2008-04-06  Anatoly Sokolov <aesok@post.ru>
5161
5162         * config/avr/avr.h (avr_mega_p): Remove declaration.
5163         (AVR_MEGA): Remove macro.
5164         * config/avr/avr.c (avr_mega_p): Remove variable.
5165         (avr_override_options): Remove inicializion of avr_mega_p.
5166         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
5167         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
5168         (avr_jump_mode): (Ditto.).
5169         (avr_output_progmem_section_asm_op): (Ditto.).
5170         (avr_asm_init_sections): (Ditto.).
5171         (avr_asm_init_sections): (Ditto.).
5172         (avr_rtx_costs): (Ditto.).
5173         * config/avr/avr.md: (Ditto.).
5174         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
5175         '__AVR_MEGA__'.
5176
5177 2008-04-06  Richard Guenther  <rguenther@suse.de>
5178
5179         PR tree-optimization/35842
5180         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
5181         is_gimple_invariant_address.
5182
5183 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
5184
5185         * gcc.c (default_compilers): Sync Fortran extensions list with
5186         that in fortran/lang-specs.h.
5187         * doc/invoke.texi: Likewise.
5188         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
5189         * dwarf2out.c (gen_compile_unit_die): Likewise.
5190
5191 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
5192
5193         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
5194
5195 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
5196
5197         PR target/12329
5198         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
5199         attribute is used for nested functions.
5200
5201 2008-04-05  Jan Hubicka  <jh@suse.cz>
5202
5203         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
5204
5205         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
5206         letter argument.
5207         (dump_files): Update.
5208         (enable_rtl_dump_file): Do not accept letter argument.
5209         * tree-pass.h (dump_file_info): Remove letter argument.
5210         * toplev.c (decode_d_option): Update -da handling.
5211         * toplev.h (enable_rtl_dump_file): Update prototype.
5212         * passes.c (register_one_dump_file): Do not accept IPA argument; work
5213         it out based on pass type.
5214         (register_dump_files_1): Likewise.
5215         (init_optimization_passes): Update register_one_dump_file calls.
5216         (execute_one_pass): Sanity check that IPA passes are called at IPA
5217         level and RTL passes at RTL level.
5218         (execute_pass_list): IPA pass can not be after or subpass of
5219         GIMPLE/RTL pass.
5220         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
5221         disallov RTL subpasses of IPA subpasses.
5222
5223 2008-04-05  Ben Elliston  <bje@au.ibm.com>
5224
5225         * tree-cfg.c (need_fake_edge_p): Return false for calls to
5226         builtins that return exactly once and do not throw. Cache call to
5227         call_expr_flags.
5228
5229 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
5230
5231         PR rtl-optimization/34916
5232         PR middle-end/35519
5233         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
5234         between instruction pairs.
5235
5236 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
5237
5238         * doc/invoke.texi: Document -mbitops for SH.
5239         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
5240         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
5241         * config/sh/sh.c (print_operand): Add %t operand code.
5242         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
5243         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
5244         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
5245         (extendqihi2): Likewise.
5246         (movqi_i): Likewise.
5247         (insv): Use bset, bclr and bst instructions for SH2A if possible.
5248         (extv): Use bld instruction for SH2A if possible.
5249         (extzv): Likewise.
5250         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
5251         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
5252         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
5253         (bset.b, bclr.b): Define peepholes.
5254         * config/sh/sh.opt (mbitops): New option.
5255
5256 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
5257
5258         PR target/35620
5259         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
5260         and view convert expression.
5261
5262 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
5263
5264         PR target/35364
5265         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
5266
5267 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
5268
5269         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
5270
5271         * config/i386/cpuid.h (bit_AES): New.
5272         (bit_PCLMUL): Likewise.
5273
5274         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
5275         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
5276         SSE2 if AES or PCLMUL is enabled.
5277         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
5278         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
5279         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
5280         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
5281         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
5282         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
5283         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
5284         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
5285         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
5286         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
5287         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
5288         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
5289         __builtin_ia32_aeskeygenassist128 and
5290         __builtin_ia32_pclmulqdq128.
5291         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
5292         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
5293         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
5294
5295         * config/i386/i386.h (TARGET_AES): New.
5296         (TARGET_PCLMUL): Likewise.
5297         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
5298
5299         * config/i386/i386.md (UNSPEC_AESENC): New.
5300         (UNSPEC_AESENCLAST): Likewise.
5301         (UNSPEC_AESDEC): Likewise.
5302         (UNSPEC_AESDECLAST): Likewise.
5303         (UNSPEC_AESIMC): Likewise.
5304         (UNSPEC_AESKEYGENASSIST): Likewise.
5305         (UNSPEC_PCLMUL): Likewise.
5306
5307         * config/i386/i386.opt (maes): New.
5308         (mpclmul): Likewise.
5309
5310         * config/i386/sse.md (aesenc): New pattern.
5311         (aesenclast): Likewise.
5312         (aesdec): Likewise.
5313         (aesdeclast): Likewise.
5314         (aesimc): Likewise.
5315         (aeskeygenassist): Likewise.
5316         (pclmulqdq): Likewise.
5317
5318         * config/i386/wmmintrin.h: New.
5319
5320         * doc/extend.texi: Document AES and PCLMUL built-in function.
5321
5322         * doc/invoke.texi: Document -maes and -mpclmul.
5323
5324 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
5325
5326         * function.c (free_after_parsing): Replace with
5327         cxx_push_function_context from C++ front-end.
5328         (allocate_struct_function): Don't call langhook.
5329         * langhooks.h (struct lang_hooks_for_functions): Delete.
5330         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
5331         member "function".
5332         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
5333         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
5334         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
5335         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
5336         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
5337         remove LANG_HOOKS_FUNCTION_INITIALIZER.
5338         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
5339
5340         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
5341         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
5342         
5343 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
5344
5345         PR c/35440
5346         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
5347         for all types.
5348
5349 2008-04-04  Richard Guenther  <rguenther@suse.de>
5350
5351         PR middle-end/35823
5352         * fold-const.c (optimize_minmax_comparison): Use the correct
5353         type for the constant in the simplified comparison.
5354
5355 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
5356
5357         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
5358         Pass L2 size as "--param l2-cache-size" to the compiler.
5359         (decode_l2_cache): New function to decode L2 cache parameters using
5360         0x8000006 extended cpuid function.
5361         (detect_caches_amd): Determine parameters of L2 cache using
5362         decode_l2_caches function.
5363         (decode_caches_intel): Decode L2 cache parameters.
5364         (detect_caches_intel): Determine L2 cache parameters using
5365         decode_caches_intel and decode_l2_caches functions.
5366
5367 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
5368
5369         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
5370         secondary input reload for subword loads from the constant pool.
5371
5372 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
5373
5374         PR target/35713
5375         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
5376           constants of the appropriate size for runtime calculations.
5377
5378         PR c/35712
5379         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
5380           decimal-float literal constant zero.
5381
5382 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
5383
5384         PR c/35738
5385         * c-parser.c (c_parser_omp_atomic): Call
5386         default_function_array_conversion on the RHS.
5387
5388         PR middle-end/35818
5389         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
5390         call is_variable_sized if decl has incomplete type.
5391
5392 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
5393
5394         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
5395
5396 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
5397
5398         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
5399         iterators.
5400         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
5401         (sgt<u>): Merge sgt and sgtu into new expander.
5402         (sgt, sgtu): Remove expanders.
5403         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
5404         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
5405         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
5406         *sgtu_<mode>_mips16 into new pattern.
5407         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
5408         (sge<u>): Merge sge and sgeu into new expander.
5409         (sge, sgeu): Remove expanders.
5410         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
5411         new pattern.
5412         (*sge_<mode>, second *sge_<mode>): Remove patterns.
5413         (slt<u>): Merge slt and sltu into new expander.
5414         (slt, sltu): Remove expanders.
5415         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
5416         (*slt_<mode>, *sltu_<mode>): Remove patterns.
5417         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
5418         *sltu_<mode>_mips16 into new pattern.
5419         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
5420         (sle<u>): Merge sle and sleu into new expander.
5421         (sle, sleu): Remove expanders.
5422         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
5423         (*sle_<mode>, *sleu_<mode>): Remove patterns.
5424         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
5425         *sleu_<mode>_mips16 into new pattern.
5426         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
5427
5428 2008-04-03  Jan Hubicka  <jh@suse.cz>
5429
5430         PR tree-optimization/35795
5431         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
5432         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
5433         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
5434         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
5435         * score/score3.c (score3_output_mi_thunk): Likewise.
5436         * score/score7.c (score7_output_mi_thunk): Likewise.
5437         * mips/mips.c (mips_output_mi_thunk): Likewise.
5438
5439 2008-04-03  Richard Guenther  <rguenther@suse.de>
5440
5441         * tree-vrp.c (extract_range_from_unary_expr): Handle all
5442         conversions.  Simplify code.
5443
5444 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5445
5446         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
5447
5448 2008-04-03  Tom Tromey  <tromey@redhat.com>
5449             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5450
5451         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
5452         * config/bfin/t-bfin-linux (generated_files): Add
5453         linux-sysroot-suffix.h.
5454         * doc/install.texi (Prerequisites): Require make 3.80.
5455         * doc/sourcebuild.texi (Front End Directory): Document new
5456         variable.
5457         * Makefile.in (generated_files): New variable.
5458         (ALL_HOST_OBJS): New variable.
5459         ($(ALL_HOST_OBJS)): New target.
5460
5461 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5462
5463         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
5464         (remap_block): Call id->transform_lang_insert_block instead
5465         of langhook.
5466         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
5467         Set id.transform_lang_insert_block to NULL.
5468         (clone_body): Move to cp/optimize.c
5469         * tree-inline.h (struct copy_body_data): Change
5470         transform_lang_insert_block to function pointer.
5471         (copy_generic_body, copy_decl_no_change): Export.
5472         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
5473         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
5474         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
5475
5476         * c-tree.h (insert_block): Kill.
5477         * c-decl.c (insert_block): Kill.
5478
5479 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5480
5481         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5482         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5483         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
5484         argument.
5485         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
5486         argument, call {push,pop}_function_context from here.
5487         * c-parser.c: Use c_{push,pop}_function_context.
5488
5489         * function.c (push_function_context_to): Move meat ...
5490         (push_function_context): ... here.  Simplify.
5491         * function.c (pop_function_context_from): Move meat ...
5492         (pop_function_context): ... here.  Simplify.
5493         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
5494         leave_nested).
5495         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5496         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5497         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
5498         * tree.h (push_function_context_to, pop_function_context_from): Remove.
5499
5500 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5501
5502         * expmed.c (extract_force_align_mem_bit_field): Remove.
5503
5504 2008-04-03  Richard Guenther  <rguenther@suse.de>
5505
5506         PR middle-end/35800
5507         * expr.h (try_casesi): Adjust prototype.
5508         * expr.c (try_casesi): Take fallback label as extra parameter.
5509         Use that for gen_casesi if default_label is NULL.
5510         * stmt.c (expand_case): Pass fallback label to try_casesi,
5511         make sure to fill gaps with a fallback label if default_label
5512         is not present.
5513
5514 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
5515
5516         PR target/35801
5517         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
5518
5519 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5520
5521         * expmed.c (extract_split_bit_field): Remove if (0) code.
5522         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
5523         (do_ds_constraint): Likewise.
5524
5525 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
5526
5527         * doc/cppopts.texi (-dU): Document.
5528         * c-common.h (flag_dump_macros): Update comment.
5529         * c-opts.c (handle_OPT_d): Handle -dU.
5530         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
5531         dump_queued_macros, cb_used_define, cb_used_undef): New.
5532         (init_pp_output): Handle -dU.
5533         (cb_line_change): Call dump_queued_macros.
5534         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
5535
5536 2008-04-02  Anatoly Sokolov <aesok@post.ru>
5537
5538         * config/avr/predicates.md (io_address_operand): New predicate. 
5539         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
5540         * config/avr/avr.c (avr_io_address_p): Remove function.
5541         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
5542         'avr_io_address_p' function.
5543         (out_movhi_r_mr): (Ditto.).
5544         (out_movqi_mr_r): (Ditto.).
5545         (out_movhi_mr_r): (Ditto.).
5546         (avr_address_cost): (Ditto.).
5547
5548 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
5549
5550         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
5551         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
5552         in 32bit mode when XMM registers are available to avoid store
5553         forwarding stalls.
5554         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
5555         corresponding post-reload splitters.
5556
5557 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5558
5559         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
5560         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
5561         __builtin_ia32_roundss.
5562         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
5563         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
5564         __builtin_ia32_roundss.
5565         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
5566         IX86_BUILTIN_SHUFPD here.
5567
5568 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5569
5570         * config/i386/i386.md (plogic): New.
5571         (plogicprefix): Likewise.
5572
5573         * config/i386/mmx.md (mmx_<code><mode>3): New.
5574         (mmx_and<mode>3): Removed.
5575         (mmx_ior<mode>3): Likewise.
5576         (mmx_xor<mode>3): Likewise.
5577
5578         * config/i386/sse.md (<code><mode>3): New.
5579         (*<code><mode>3): Likewise.
5580         (*<code><mode>3): Likewise.
5581         (<code><mode>3): Likewise.
5582         (*sse_<code><mode>3): Likewise.
5583         (*sse2_<code><mode>3): Likewise.
5584         (<code>tf3): Likewise.
5585         (*<code>tf3): Likewise.
5586         (and<mode>3): Likewise.
5587         (*and<mode>3): Likewise.
5588         (ior<mode>3): Removed.
5589         (*ior<mode>3): Likewise.
5590         (xor<mode>3): Likewise.
5591         (*xor<mode>3): Likewise.
5592         (*and<mode>3): Likewise.
5593         (*ior<mode>3): Likewise.
5594         (*xor<mode>3): Likewise.
5595         (and<mode>3): Likewise.
5596         (*sse_and<mode>3): Likewise.
5597         (*sse2_and<mode>3): Likewise.
5598         (andtf3): Likewise.
5599         (*andtf3): Likewise.
5600         (ior<mode>3): Likewise.
5601         (*sse_ior<mode>3): Likewise.
5602         (*sse2_ior<mode>3): Likewise.
5603         (iortf3): Likewise.
5604         (*iortf3): Likewise.
5605         (xor<mode>3): Likewise.
5606         (*sse_xor<mode>3): Likewise.
5607         (*sse2_xor<mode>3): Likewise.
5608         (xortf3): Likewise.
5609         (*xortf3): Likewise.
5610
5611 2008-04-02  Richard Guenther  <rguenther@suse.de>
5612
5613         PR tree-optimization/14495
5614         PR tree-optimization/34793
5615         * tree-vrp.c (struct switch_update): New structure.
5616         (to_remove_edges, to_update_switch_stmts): New VECs.
5617         (simplify_switch_using_ranges): New function.  Remove not taken
5618         case labels and edges.
5619         (simplify_stmt_using_ranges): Call it.
5620         (identify_jump_threads): Mark edges we have queued for removal
5621         so we don't thread them.
5622         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
5623         case label vector.
5624         * tree-cfg.c (group_case_labels): Deal with missing default label.
5625         (tree_verify_flow_info): Allow missing default label.
5626         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
5627         (emit_case_nodes): Likewise.
5628         (expand_case): Do not rely on the default label to be present.
5629         * expr.c (try_casesi): Deal with NULL default_label.
5630         (do_tablejump): Likewise.
5631
5632 2008-04-02  Richard Guenther  <rguenther@suse.de>
5633
5634         PR tree-optimization/14495
5635         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
5636         SWITCH_EXPR here ...
5637         (vrp_visit_switch_stmt): ... but here (new function).
5638         (find_case_label_index): New helper function.
5639         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
5640
5641 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5642
5643         * fwprop.c: Fix ISO-C99ism.
5644
5645 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5646
5647         PR bootstrap/35752
5648         * Makefile.in (objdir): Set it here.
5649         * configure.ac: Not here.  Find dynamic linker characteristics.
5650         * exec-tool.in: Use them.
5651         * aclocal.m4: Regenerate.
5652         * configure: Regenerate.
5653
5654 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5655
5656         * expr.c (expand_var): Delete it.
5657         * expr.h (expand_var): Delete prototype.
5658         * function.c (expand_function_start): Use expand_decl instead.
5659         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
5660         langhook.
5661
5662 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
5663
5664         PR rtl-optimization/35542
5665         * fwprop.c (forward_propagate_and_simplify): Replace
5666         loc_reg_mentioned_in_p with reg_mentioned_p.
5667
5668 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5669
5670         PR rtl-optimization/35281
5671         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
5672         (propagate_rtx_1): Handle PR_HANDLE_MEM.
5673         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
5674         (varying_mem_p): Move above propagate_rtx.
5675         (all_uses_available_at): Do not check MEMs.
5676
5677 2008-04-02  Rafael Espindola  <espindola@google.com>
5678
5679         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
5680         (register_edge_assert_for_2): Split the cond argument.
5681         (register_edge_assert_for_1): Adjust for the change in
5682         register_edge_assert_for_2.
5683         (register_edge_assert_for): Split the cond argument.
5684         (find_switch_asserts): Adjust for the change in
5685         register_edge_assert_for.
5686
5687 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
5688
5689         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
5690         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
5691         offsets for 64-bit mingw.
5692         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
5693         abi for x86_64-pc-mingw.
5694
5695 2008-04-02  Richard Guenther  <rguenther@suse.de>
5696
5697         * tree-vrp.c (extract_range_from_assert): Make sure to not
5698         produce range min/max with TREE_OVERFOW set.
5699         If merging a anti-range and a range keep the anti-range if
5700         the range covers all values of the type.
5701         (register_edge_assert_for_2): Only allow sign-changing
5702         conversions in detecting canonical range checks.  Also
5703         register an assert for the unsigned name if useful.
5704
5705         PR tree-optimization/35787
5706         * tree-vrp.c (vrp_val_max): New function.
5707         (vrp_val_min): Likewise.
5708         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
5709         (vrp_val_is_min): Likewise.
5710         (supports_overflow_infinity): Use vrp_val_{min,max}.
5711         (negative_overflow_infinity): Likewise.
5712         (positive_overflow_infinity): Likewise.
5713         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
5714         (is_positive_overflow_infinity): Likewise.
5715         (is_overflow_infinity): Likewise.
5716         (avoid_overflow_infinity): Use vrp_val_{min,max} and
5717         vrp_val_is_{min,max}.
5718         (set_and_canonicalize_value_range): Canonicalize anti-ranges
5719         to ranges if possible.  Avoid empty ranges.
5720
5721 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5722
5723         PR middle-end/35705
5724         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
5725         the expression is a function address.
5726
5727 2008-04-01  George Helffrich  <george@gcc.gnu.org>
5728
5729         PR fortran/35154, fortran/23057
5730         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
5731         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
5732         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
5733         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
5734         in common.
5735         (dbxout_syms): Check for COMMON-based symbol and wrap in
5736         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
5737         in bracket for efficiency.
5738
5739         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
5740         using DW_TAG_common_block + member offset.
5741         (add_pubname_string): New function.
5742         (dw_expand_expr): New function to find block name and offset for
5743         COMMON var.
5744         (common_check): New function to check whether symbol in Fortran COMMON.
5745         (gen_variable_die): If COMMON, use DW_TAG_common_block.
5746
5747 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
5748
5749         PR c/35436
5750         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
5751
5752 2008-04-02  Ben Elliston  <bje@au.ibm.com>
5753
5754         * config/v850/v850.md (casesi): Remove if (0) code.
5755         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5756         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
5757
5758 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
5759
5760         * config/i386/i386.md (rex64suffix): New mode attribute.
5761         (floathi<mode>2): Disable expander for SSE math.
5762         (*floathi<mode>2_1): New insn insn_and_split pattern.
5763         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
5764         corresponding post-reload splitters.
5765         (*floathi<mode>2_i387): New macroized insn pattern.
5766         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
5767         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
5768         insn_and_split pattern.
5769         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
5770         New macroized instruction patterns and corresponding post-reload
5771         splitters.
5772         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
5773         and corresponding post-reload splitters.
5774         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
5775         New macroized instruction patterns.
5776         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
5777         macroized instruction patterns and corresponding post-reload splitters.
5778         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
5779         corresponding post-reload splitters.
5780         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
5781         New macroized instruction patterns.
5782         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
5783         corresponding post-reload splitters.
5784         (*floatsi<mode>2_i387): New macroized instruction patterns.
5785
5786 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
5787
5788         * config/i386/i386.md (smaxmin): New.
5789         (umaxmin): Likewise.
5790         (maxminiprefix): Likewise.
5791         (maxminfprefix): Likewise.
5792         (<code><mode>3): Likewise.
5793         (smin<mode>3): Removed.
5794         (smax<mode>3): Likewise.
5795
5796         * config/i386/mmx.md (mmx_<code>v2sf3): New.
5797         (mmx_<code>v4hi3): Likewise.
5798         (mmx_<code>v8qi3): Likewise.
5799         (mmx_smaxv2sf3): Removed.
5800         (mmx_sminv2sf3): Likewise.
5801         (mmx_umaxv8qi3): Likewise.
5802         (mmx_smaxv4hi3): Likewise.
5803         (mmx_uminv8qi3): Likewise.
5804         (mmx_sminv4hi3): Likewise.
5805
5806         * config/i386/sse.md (<addsub><mode>3): New.
5807         (*<addsub><mode>3): Likewise.
5808         (<sse>_vm<addsub><mode>3): Likewise.
5809         (<maxmin><mode>3): Likewise.
5810         (*<maxmin><mode>3_finite): Likewise.
5811         (*<maxmin><mode>3): Likewise.
5812         (<sse>_vm<maxmin><mode>3): Likewise.
5813         (sse3_h<addsub>v4sf3): Likewise.
5814         (sse3_h<addsub>v2df3): Likewise.
5815         (<maxmin>v16qi3): Likewise.
5816         (*<maxmin>v16qi3): Likewise.
5817         (<maxmin>v8hi3): Likewise.
5818         (*<maxmin>v8hi3): Likewise.
5819         (*sse4_1_<maxmin><mode>3): Likewise.
5820         (*sse4_1_<maxmin><mode>3): Likewise.
5821         (add<mode>3): Removed.
5822         (*add<mode>3): Likewise.
5823         (<sse>_vmadd<mode>3): Likewise.
5824         (sub<mode>3): Likewise.
5825         (*sub<mode>3): Likewise.
5826         (<sse>_vmsub<mode>3): Likewise.
5827         (smin<mode>3): Likewise.
5828         (*smin<mode>3_finite): Likewise.
5829         (*smin<mode>3): Likewise.
5830         (<sse>_vmsmin<mode>3): Likewise.
5831         (smax<mode>3): Likewise.
5832         (*smax<mode>3_finite): Likewise.
5833         (*smax<mode>3): Likewise.
5834         (<sse>_vmsmax<mode>3): Likewise.
5835         (sse3_haddv4sf3): Likewise.
5836         (sse3_haddv2df3): Likewise.
5837         (sse3_hsubv4sf3): Likewise.
5838         (sse3_hsubv2df3): Likewise.
5839         (umaxv16qi3): Likewise.
5840         (*umaxv16qi3): Likewise.
5841         (smaxv8hi3): Likewise.
5842         (*smaxv8hi3): Likewise.
5843         (*sse4_1_smax<mode>3): Likewise.
5844         (*sse4_1_umax<mode>3): Likewise.
5845         (uminv16qi3): Likewise.
5846         (*uminv16qi3): Likewise.
5847         (sminv8hi3): Likewise.
5848         (*sminv8hi3): Likewise.
5849         (*sse4_1_smin<mode>3): Likewise.
5850         (*sse4_1_umin<mode>3): Likewise.
5851
5852 2008-04-01  Rafael Espindola  <espindola@google.com>
5853
5854         * tree-cfg.c (verify_expr): remove in_phi.
5855         (verify_stmt): Don't call walk_tree with verify_expr. Use
5856         is_gimple_min_invariant instead of is_gimple_val.
5857
5858 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
5859
5860         * doc/include/gpl_v3.texi: Update for manpage generation.
5861         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
5862         gpl.texi.
5863         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
5864         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
5865         gpl_v3.texi instead of gpl.texi.
5866         (gpl.pod): New.
5867
5868 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
5869
5870         PR pch/13675
5871         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
5872
5873 2008-04-01  Rafael Espindola  <espindola@google.com>
5874
5875         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
5876         (extract_code_and_val_from_cond): Use
5877         extract_code_and_val_from_cond_with_ops.
5878
5879 2008-04-01  Jan Hubicka  <jh@suse.cz>
5880
5881         * function.c (free_after_compilation): Free epilogue_delay_list.
5882         (prepare_function_start): Assert that previous compilation was freed.
5883
5884 2008-04-01  Jan Hubicka  <jh@suse.cz>
5885             Jim Wilson  <wilson@tuliptree.org>
5886             Andreas Tobler <andreast@gcc.gnu.org>
5887
5888         PR middle-end/35781
5889         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
5890         rtl.emit instead cfun->emit.
5891         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
5892         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
5893
5894 2008-04-01  Ben Elliston  <bje@au.ibm.com>
5895
5896         * doc/c-tree.texi (Function Basics): Fix grammatical error.
5897
5898 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
5899
5900         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
5901         New options
5902         (fprofile-use): Add var flag_profile_use
5903         * coverage.c (coverage_begin_output): Do not open a gcno file for
5904         output only if -ftest-coverage is set.
5905         Do not add getpwd() to gcda file path.
5906         (build_gcov_info): Check the new flag
5907         flag_profile_datafile_relative_path.
5908         (coverage_init): Use profile_data_prefix.
5909         Read profile counter only if flag_profile_use is set.
5910         * opts.c (common_handle_option): New option fprofile-use=,
5911         fprofile-dir=, fprofile-generate=.
5912         * toplev.c (profile_data_prefix): New variable definition.
5913         * toplev.h (profile_data_prefix): New declaration.
5914         * doc/invoke.tex (Option Summary, Optimization Options):
5915         Add new options.
5916
5917 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
5918
5919         * varasm.c (output_constant_pool_1): In LABEL_REF check,
5920         use tmp consistently.
5921
5922         PR target/35695
5923         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
5924         * config/ia64/ia64.c (rtx_needs_barrier): Handle
5925         UNSPEC_FR_RECIP_APPROX_RES.
5926         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
5927
5928 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
5929
5930         PR c/35750
5931         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
5932
5933 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5934
5935         PR middle-end/30186
5936         * fold-const.c (fold_indirect_ref_1): Support accessing non first
5937         element of the vector via a pointer.
5938
5939 2008-03-31  Ian Lance Taylor  <iant@google.com>
5940
5941         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
5942
5943 2008-03-31  Jan Hubicka  <jh@suse.cz>
5944
5945         * builtins.c (expand_builtin_setjmp_receiver): Update call of
5946         get_arg_pointer_save_area.
5947         * expr.c (init_expr): Just clear out rtl.expr.
5948         * function.c (free_after_compilation): Clear out whole RTL structure.
5949         (get_func_frame_size): Merge into ...
5950         (get_frame_size): ... this one.
5951         (assign_stack_local_1): Merge into ...
5952         (assign_stack_local): ... this one.
5953         (expand_function_end): Update call of get_arg_pointer_save_area.
5954         (get_art_pointer_save_area): Remove cfun argument.
5955         * function.h (emit_status): regno_pointer_align does not need length
5956         attribute. Move x_regno_reg_rtx to ...
5957         (regno_reg_rtx): ... new global array.
5958         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
5959         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
5960         apply_args_value, forced_labels, stack_pointer_delta):
5961         Update accestors.
5962         (struct varasm_status): Move here from varasm.c
5963         (struct rtl_data): New. Move here some fields from struct function.
5964         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5965         frame_offset, stack_check_probe_note, arg_pointer_save_area,
5966         used_temp_slots avail_temp_slots, temp_slot_level,
5967         nonlocal_goto_handler_labels): Update accesstors.
5968         (rtl): New global variable.
5969         (struct function): Move some fileds to rtl_data.
5970         (get_arg_pointer_save_area): Update prototype.
5971         * emit-rtl.c (rtl): Declare.
5972         (regno_reg_rtx): Declare.
5973         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
5974         Update.
5975         (gen_reg_rtx): Update.
5976         (init_virtual_regs): Do not tate emit_status argument.
5977         (init_emit): Do not allocate emit.
5978         * varasm.c (varasm_statuc): Move to function.h.
5979         (n_deferred_constatns): Update accestor.
5980         (init_varasm_status): Do not allocate varasm_status.
5981         (force_const_mem, get_pool_size, output_constant_pool): Update.
5982         * stmt.c (force_label_rtx): Do not use x_ prefixes.
5983         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
5984
5985 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
5986
5987         PR rtl-optimization/35729
5988         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
5989         references.
5990
5991 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
5992
5993         PR target/32000
5994         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
5995         load/store if memory is unaligned.
5996         (*movti_rex64): Likewise.
5997
5998         * config/i386/predicates.md (misaligned_operand): New.
5999
6000 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
6001
6002         PR tree-opt/35431
6003         * tree-ssa-phiopt.c (conditional_replacement): Return early for
6004         complex types.
6005
6006 2008-03-31  Jan Beulich  <jbeulich@novell.com>
6007
6008         * config/ia64/constraints.md: Add 'j' constraint.
6009         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
6010         (movdi_internal): Likewise.
6011
6012 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
6013
6014         PR c/35748
6015         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
6016
6017 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
6018
6019         PR target/35757
6020         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
6021         proper error message for the third argument on blendpd and
6022         blendps.
6023
6024         * config/i386/sse.md (blendbits): New.
6025         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
6026
6027 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
6028
6029         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
6030
6031 2008-03-30  Richard Guenther  <rguenther@suse.de>
6032
6033         PR middle-end/31023
6034         * fold-const.c (fold_sign_changed_comparison): Do leave
6035         conversions to base-types alone.
6036
6037 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6038
6039         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
6040         the link register if one altivec register is be saved.
6041
6042 2008-03-30  Ben Elliston  <bje@au.ibm.com>
6043
6044         * final.c (final_scan_insn): Remove if (0) code.
6045
6046 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
6047
6048         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
6049
6050 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
6051
6052         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
6053         of V4SFmode to ix86_binary_operator_ok.
6054
6055 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
6056
6057         * config/i386/i386.c (override_options): Initialize
6058         ix86_veclib_handler to ix86_veclibabi_svml when
6059         -mveclibabi=svml is used.
6060         (ix86_veclibabi_svml): New function for SVML ABI style
6061         vectorization support.
6062         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
6063
6064 2008-03-28  Rafael Espindola  <espindola@google.com>
6065
6066         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
6067         (tree_binary_nonnegative_warnv_p): Make it public.
6068         (tree_single_nonnegative_warnv_p): Make it public.
6069         (tree_invalid_nonnegative_warnv_p): Make it public.
6070         (tree_unary_nonzero_warnv_p): Make it public.
6071         (tree_binary_nonzero_warnv_p): Make it public
6072         (tree_single_nonzero_warnv_p): Make it public.
6073         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
6074         (extract_range_from_binary_expr): Split the expr argument.
6075         (extract_range_from_unary_expr): Split the expr argument.
6076         (extract_range_from_comparison): Split the expr argument.
6077         (extract_range_from_expr): Use the new aux functions.
6078         (vrp_evaluate_conditional_warnv): Use
6079         vrp_evaluate_conditional_warnv_with_ops.
6080         * tree.h (tree_unary_nonzero_warnv_p): Declare.
6081         (tree_binary_nonzero_warnv_p): Declare.
6082         (tree_single_nonzero_warnv_p): Declare.
6083         (tree_expr_nonzero_warnv_p): Declare.
6084         (tree_unary_nonnegative_warnv_p): Declare.
6085         (tree_binary_nonnegative_warnv_p): Declare.
6086         (tree_single_nonnegative_warnv_p): Declare.
6087         (tree_invalid_nonnegative_warnv_p): Declare.
6088
6089 2008-03-28  Richard Guenther  <rguenther@suse.de>
6090
6091         PR tree-optimization/30317
6092         PR tree-optimization/30911
6093         PR tree-optimization/34793
6094         * tree-vrp.c (set_and_canonicalize_value_range): New function.
6095         (struct assert_locus_d): New member EXPR.
6096         (register_new_assert_for): Add EXPR parameter to support
6097         ASSERT_EXPR <name, expr OP limit>.
6098         (register_edge_assert_for_1): Adjust callers.
6099         (find_assert_locations): Likewise.
6100         (process_assert_insertions_for): Build condition from expression.
6101         (extract_range_from_assert): Handle ASSERT_EXPRs
6102         of the form ASSERT_EXPR <name, expr OP limit>.
6103         (register_edge_assert_for_2): New helper registering
6104         asserts for comparisons.  Recognize range tests of the form
6105         (unsigned)i - CST1 OP CST2.
6106         (register_edge_assert_for_1): Use it.
6107         (register_edge_assert_for): Likewise.
6108         (needs_overflow_infinity): Integer sub-types
6109         do not need overflow infinities.
6110         (vrp_val_is_max): The extreme values of integer sub-types
6111         are those of the base type.
6112         (vrp_val_is_min): Likewise.
6113         * tree.def (ASSERT_EXPR): Document extra allowed conditional
6114         expressions.
6115
6116 2008-03-28  Nick Clifton  <nickc@redhat.com>
6117
6118         PR target/31110
6119         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
6120         Return GENERAL_REGS for stack adjustment reloads.
6121
6122 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6123
6124         PR target/31334
6125         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
6126         const_vector when all the vectors are constant.
6127
6128 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
6129
6130         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
6131         comparisons.
6132         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
6133         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
6134         (scc_sf): New.
6135         (s<code>_sf): Use new scc_sf attribute for opcode names.
6136
6137 2008-03-27  Tom Tromey  <tromey@redhat.com>
6138
6139         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
6140         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
6141         config/spu/t-spu-elf, config/i386/t-interix,
6142         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
6143         config/i386/x-darwin, config/i386/x-mingw32,
6144         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
6145         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
6146         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
6147         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
6148         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
6149         config/rs6000/x-darwin, config/rs6000/t-rs6000,
6150         config/score/t-score-elf, config/arm/t-strongarm-pe,
6151         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
6152         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
6153         Revert automatic dependency patch.
6154
6155 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
6156
6157         PR target/35657
6158         * config/i386/i386.c (ix86_function_arg_boundary): Align
6159         decimal floating point to its natural boundary.
6160
6161 2008-03-27  Richard Guenther  <rguenther@suse.de>
6162
6163         PR middle-end/35716
6164         * fold-const.c (fold_comparison): Restrict distinct decl
6165         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
6166         solely rely on operand_equal_p.
6167
6168 2008-03-27  Richard Guenther  <rguenther@suse.de>
6169
6170         PR c/32511
6171         * c-common.c (handle_weak_attribute): Reject combination of
6172         weak and inline.
6173
6174 2008-03-27  Richard Guenther  <rguenther@suse.de>
6175
6176         PR tree-optimization/32810
6177         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
6178         conversions from DECL_INITIAL.
6179         (fold_const_aggregate_ref): Likewise from constructor elements.
6180
6181 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
6182
6183         * tree-affine.h (aff_combination_expand): Declare.
6184         (get_inner_reference_aff): Likewise.
6185         * tree-affine.c (aff_combination_expand): Split out from
6186         tree_to_aff_combination_expand.
6187         (get_inner_reference_aff): New function.
6188         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
6189         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
6190         (struct lim_aux_data): sm_done field removed.
6191         (mem_ref_loc_p, mem_ref_locs_p): New types.
6192         (struct mem_ref): Added id, stored, accesses_in_loop,
6193         indep_loop, dep_loop, indep_ref, dep_ref fields.
6194         Removed is_stored, locs and next fields.
6195         (memory_accesses): New variable.
6196         (movement_possibility): Do not allow moving statements
6197         that store to memory.
6198         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
6199         New functions.
6200         (determine_max_movement): For statements with memory references,
6201         find the outermost loop in that the reference is independent.
6202         (move_computations_stmt): Mark the virtual operands for renaming.
6203         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
6204         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
6205         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
6206         add_vop_ref_mapping, create_vop_ref_mapping_loop,
6207         create_vop_ref_mapping, analyze_memory_references,
6208         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
6209         get_all_locs_in_loop, ref_always_accessed_p,
6210         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
6211         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
6212         store_motion_loop, store_motion): New functions.
6213         (struct vop_to_refs_elt): New type.
6214         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
6215         memref_hash, memref_eq, hoist_memory_references): Rewritten.
6216         (schedule_sm): Replaced by...
6217         (execute_sm): ... this.
6218         (determine_lsm_ref, hoist_memory_references,
6219         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
6220         find_more_ref_vops, free_mem_ref, free_mem_refs,
6221         determine_lsm_loop, determine_lsm): Removed.
6222         (tree_ssa_lim_finalize): Free data structures used by store motion.
6223         (tree_ssa_lim): Call analyze_memory_references.  Use
6224         store_motion instead of determine_lsm.
6225
6226 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
6227
6228         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
6229         rename tmake_file to m68hc11/t-m68hc11.
6230         (mcore): Set inhibit_libc to true.
6231         * config.host (alpha*-dec-*vms*): Set extra_programs.
6232         (interix3*): Don't use host_xmake_file.
6233         * configure.ac: Let config.gcc override inhibit_libc.
6234         * configure: Regenerate.
6235
6236         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
6237         * config/t-openbsd-thread: Remove commented out lines.
6238         
6239         * config/x-interix: Remove.
6240
6241         * config/m68hc11/t-m68hc11-gas: Rename to...
6242         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
6243
6244         * config/mcore/t-mcore: Remove T_CFLAGS.
6245         * config/mcore/t-mcore-pe: Likewise.
6246
6247 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
6248
6249         * configure.ac: Replace custom __GNU_SOURCE test with
6250         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
6251         * aclocal.m4: Regenerate.
6252         * configure: Regenerate.
6253         * config.in: Regenerate.
6254
6255 2008-03-27  Richard Guenther  <rguenther@suse.de>
6256
6257         * fold-const.c (target.h): Include.
6258         (fold_comparison): Fold comparison of addresses of decls
6259         that bind locally or of constants.  Consolidate address folding code.
6260         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
6261         results from fold_binary_to_constant.
6262         (compare_values_warnv): Likewise.
6263
6264 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
6265
6266         PR middle-end/35429
6267         * fold-const.c (fold_truthop): Check for integeral types when folding
6268         a == 0 && b == 0 and a != 0 || b != 0 .
6269
6270 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
6271
6272         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
6273
6274 2008-03-26  Andreas Schwab  <schwab@suse.de>
6275
6276         * doc/invoke.texi: Fix use of @item vs. @itemx.
6277
6278 2008-03-26  Tom Tromey  <tromey@redhat.com>
6279
6280         * Makefile.in (build/gensupport.o, build/print-rtl.o,
6281         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
6282         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
6283         build/gencodes.o, build/genconditions.o, build/genconfig.o,
6284         build/genconstants.o, build/genemit.o, build/genextract.o,
6285         build/genflags.o, build/genmddeps.o, build/genopinit.o,
6286         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
6287         options.h.
6288
6289 2008-03-26  Richard Guenther  <rguenther@suse.de>
6290
6291         Revert
6292         2008-03-26  Richard Guenther  <rguenther@suse.de>
6293
6294         * fold-const.c (target.h): Include.
6295         (fold_comparison): Fold comparison of addresses of two decls
6296         that bind locally.  Consolidate address folding code.
6297
6298 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6299
6300         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
6301         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
6302         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
6303         dconstsqrt2, dconstthird, dconste and/or dconst10.
6304         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
6305         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
6306         dconstsqrt2, dconste): Delete.
6307         (init_emit_once): Likewise.  Simplify initializing dconstm1.
6308         Constify variable.
6309         * real.c (get_real_const): New.
6310         * real.h (dconst3, dconst10, dconstm2, dconstthird,
6311         dconstsqrt2, dconste): Delete.
6312         (real_value_const, get_real_const): New.
6313
6314 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
6315
6316         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
6317
6318         * config/i386/i386.c (ix86_function_arg_boundary): Check
6319         BIGGEST_ALIGNMENT instead of 128.
6320         (setup_incoming_varargs_64): Likewise.
6321
6322 2008-03-26  Tom Tromey  <tromey@redhat.com>
6323
6324         * Makefile.in (DEPFILES): Add missing '/'.
6325
6326 2008-03-26  Richard Guenther  <rguenther@suse.de>
6327
6328         * fold-const.c (target.h): Include.
6329         (fold_comparison): Fold comparison of addresses of two decls
6330         that bind locally.  Consolidate address folding code.
6331
6332 2008-03-26  Nick Clifton  <nickc@redhat.com>
6333
6334         PR target/31232
6335         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
6336         not allow INT+INT as a legitimate addressing mode.
6337
6338 2008-03-26  Richard Guenther  <rguenther@suse.de>
6339
6340         * tree-flow.h (widen_bitfield): Remove declaration.
6341         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
6342         (widen_bitfield): Remove function.
6343         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
6344         code.
6345
6346 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6347
6348         PR target/31558
6349         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
6350         error_mark_node's.
6351
6352 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
6353
6354         PR rtl-optimization/35232
6355         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
6356         (forget_old_reloads_1, forget_marked_reloads): Don't clear
6357         reg_reloaded_call_part_clobbered here.
6358         (reload_regs_reach_end_p): New function.
6359         (reload_reg_rtx_for_input): New variable.
6360         (reload_reg_rtx_for_output): Likewise.
6361         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
6362         when reassigning a pseudo register.  Load reloadreg from 
6363         reload_reg_rtx_for_input, moving the mode and register
6364         calculation to...
6365         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
6366         instead of the original when deciding whether an input reload
6367         would be a no-op or whether an output reload can be deleted.
6368         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
6369         when setting up new_spill_reg_store.  Load it from
6370         reload_reg_rtx_for_output, moving the mode and register
6371         calculation to...
6372         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
6373         instead of the original when deciding whether an output reload
6374         would be a no-op.  Do the same when modifying insn notes.
6375         Use rtx_equal_p instead of == to compare the registers.
6376         (inherit_piecemeal_p): Take a mode and two register numbers
6377         as argument.
6378         (emit_reload_insns): Clear new_spill_reg_store for every hard
6379         register in the reload register.  Remove spill registers
6380         from reg_reloaded_valid before considering whether to record
6381         inheritance information for them.  Use reload_reg_rtx_for_output
6382         instead of reg_rtx when recording output reloads.  Use
6383         reload_reg_rtx_for_input instead of reg_rtx when recording
6384         input reloads.  Set or clear reg_reloaded_call_part_clobbered
6385         at the same time as setting reg_reloaded_valid.
6386         (delete_output_reload): Add a new_reload_reg parameter and use it
6387         instead of rld[j].reg_rtx.
6388         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
6389         calls accordingly.
6390
6391 2008-03-25  Tom Tromey  <tromey@redhat.com>
6392
6393         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
6394         (build/genattr.o): Likewise.
6395         (build/genattrtab.o): Likewise.
6396         (build/gencodes.o): Likewise.
6397         (build/genconfig.o): Likewise.
6398         (build/genconstants.o): Likewise.
6399         (build/genemit.o): Likewise.
6400         (build/genextract.o): Likewise.
6401         (build/genflags.o): Likewise.
6402
6403 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
6404         
6405         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
6406         instead of size_int for integer types.
6407         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
6408         to match type of MINUS_EXPR.
6409         
6410 2008-03-25  Tom Tromey  <tromey@redhat.com>
6411
6412         * configure: Rebuilt.
6413         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
6414         Makefile.
6415
6416 2008-03-25  Tom Tromey  <tromey@redhat.com>
6417
6418         * config/x-solaris (host-solaris.o): Update.
6419         * config/x-linux (host-linux.o): Update.
6420         * config/x-hpux (host-hpux.o): Update.
6421         * config/x-darwin (host-darwin.o): Update.
6422         * config/v850/t-v850e (v850-c.o): Update.
6423         * config/v850/t-v850 (v850-c.o): Update.
6424         * config/t-vxworks (vxworks.o): Update.
6425         * config/t-sol2 (sol2-c.o, sol2.o): Update.
6426         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
6427         * config/spu/t-spu-elf (spu-c.o): Update.
6428         (spu.o): Remove.
6429         * config/sh/t-symbian (sh-c.o): Update.
6430         (symbian.o): Update.
6431         * config/sh/t-sh (sh-c.o): Update.
6432         * config/score/t-score-elf (score7.o, score3.o): Update.
6433         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
6434         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
6435         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
6436         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
6437         (rs6000.o): Remove.
6438         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6439         * config/m32c/t-m32c (m32c-pragma.o): Update.
6440         * config/ia64/t-ia64 (ia64-c.o): Update.
6441         * config/i386/x-mingw32 (host-mingw32.o): Update.
6442         * config/i386/x-i386 (driver-i386.o): Update.
6443         * config/i386/x-darwin (host-i386-darwin.o): Update.
6444         * config/i386/x-cygwin (host-cygwin.o): Update.
6445         * config/i386/t-nwld (nwld.o): Update.
6446         * config/i386/t-netware (netware.o): Update.
6447         * config/i386/t-interix (winnt.o): Update.
6448         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
6449         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
6450         msformat-c.o): Update.
6451         * config/bfin/t-bfin-linux (generated_files): Add
6452         linux-sysroot-suffix.h.
6453         * config/arm/t-wince-pe (pe.o): Update.
6454         * config/arm/t-strongarm-pe (pe.o): Update.
6455         * config/arm/t-pe (pe.o): Update.
6456         * config/arm/t-arm (arm-c.o): Update.
6457         * doc/install.texi (Prerequisites): Require make 3.80.
6458         * Makefile.in: Remove .o targets.
6459         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
6460         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
6461         (simple_generated_h, simple_generated_c): Move earlier.
6462         (generated_files): New variable.
6463         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
6464         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
6465         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
6466         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
6467         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
6468         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
6469         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
6470         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
6471         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
6472         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
6473         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
6474         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
6475         (.c.o): Remove.
6476         (COMPILE.base, COMPILE): New variables.
6477         (%.o): New pattern rule.
6478         (ALL_HOST_OBJS): New variable.
6479         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
6480         (dummy-checksum.o, cc1-checksum.o): Remove.
6481         (DRIVER_SHLIB): New variable.
6482         (DRIVER_DEFINES): Use it.
6483         (gencondmd.c): Move out of build/.
6484         (s-conditions): Update.
6485         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
6486         (ALL_BUILD_OBJS): Likewise.
6487         (build/%.o): Use BUILDCOMPILE.
6488         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
6489         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
6490         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
6491         build/gencheck.o, build/gencodes.o, build/genconditions.o,
6492         build/genconfig.o, build/genconstants.o, build/genemit.o,
6493         build/genextract.o, build/genflags.o, build/genmddeps.o,
6494         build/genopinit.o, build/genoutput.o, build/genpeep.o,
6495         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
6496         build/gen-protos.o, build/scan.o, build/fix-header.o,
6497         build/scan-decls.o): Simplify.
6498         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
6499         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
6500         prefix.o, toplev.o): Reduce to variable setting.
6501         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
6502         ($(out_object_file), gcc-options.o): New targets.
6503         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
6504         * configure: Rebuilt.
6505         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
6506         * doc/sourcebuild.texi (Front End Directory): Document new variable.
6507
6508 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
6509
6510         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
6511         complain when we hit an error, return ERROR_MARK_NODE.
6512
6513 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6514
6515         * config/sh/constraints.md (Pso, Psz): New constraints.
6516         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
6517         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
6518
6519 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6520
6521         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
6522         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
6523
6524 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6525
6526         * config/sh/sh.md (prefetch): Add condition for SH2A target.
6527         (prefetch_sh2a): New.   
6528
6529 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6530             Naveen.H.S  <naveen.hs@kpitcummins.com>
6531
6532         * config/sh/constraints.md (I28): New constraint.
6533         * config/sh/sh.c (broken_move): Add support for movi20s.
6534         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
6535
6536 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
6537             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6538             Naveen.H.S  <naveen.hs@kpitcummins.com>
6539
6540         * config/sh/sh.c (SH_ATTRIBUTES): Define.
6541         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
6542         (print_operand): Handle resbank in %@ operand code.
6543         (sh_encode_section_info): New.
6544         (push_regs): Add conditions for resbank.
6545         (sh_expand_epilogue): Likewise.
6546         (sh_insert_attributes): Likewise.
6547         (sh_attribute_table): Likewise.
6548         (sh_handle_resbank_handler_attribute): New.
6549         (sh2a_handle_function_vector_handler_attribute): New.
6550         (sh2a_is_function_vector_call): New.
6551         (sh2a_get_function_vector_number): New.
6552         (sh2a_function_vector_p): New.
6553         (sh_cfun_resbank_handler_p): New.
6554         * config/sh/sh.md (calli): Emit jsr/n if possible.
6555         (calli_tbr_rel): New.
6556         (calli_pcrel): Emit jsr/n if possible.
6557         (return_i): Emit rts/n if possible.
6558         (call_valuei_tbr_rel): New.
6559         (call_valuei_pcrel): Add condition for SH2A target.
6560         (call_value): Likewise.
6561         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
6562         (sh2a_get_function_vector_number): Likewise.
6563         (sh2a_is_function_vector_call): Likewise.
6564         * doc/extend.texi: Document TBR relative addressing of SH2A.
6565         (resbank): Add description for SH2A.
6566
6567 2008-03-24  Richard Guenther  <rguenther@suse.de>
6568
6569         PR c/22371
6570         * gimplify.c (gimplify_modify_expr): For frontend type-correct
6571         pointer assignments change conversions according to middle-end rules.
6572         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
6573         * configure.ac: Include type checking in yes.
6574         * configure: Regenerate.
6575
6576 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6577
6578         * diagnostic.c (diagnostic_count_diagnostic): Delete.
6579         (diagnostic_report_diagnostic): Update. Handle ICEs here.
6580         
6581 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
6582
6583         * gthr-vxworks.h (UNUSED): Define.
6584
6585 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
6586
6587         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
6588
6589 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
6590
6591         * doc/extend.texi (Function Attributes): Add missing comma in the
6592         example of the "alloc_size" attribute.
6593         
6594 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
6595
6596         Revert:
6597         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
6598
6599         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
6600         32bit host.
6601
6602         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6603
6604         PR target/35496
6605         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6606         of the underlying type of a MS bitfield layout to the natural
6607         alignment of the type.
6608
6609         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6610
6611         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6612         to their natural alignment to avoid store forwarding stalls.
6613
6614 2008-03-22  Richard Guenther  <rguenther@suse.de>
6615
6616         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
6617         For PHI nodes verify the address is invariant.
6618         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
6619         (get_symbol_constant_value): Use is_gimple_min_invariant.
6620         (maybe_fold_stmt_indirect): Likewise.
6621
6622 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
6623
6624         PR rtl-optimization/33927
6625         * Makefile.in (dse.o): Depend on $(TM_P_H).
6626         * expr.h (extract_low_bits): Declare.
6627         * expmed.c (extract_low_bits): New function.
6628         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
6629         * dse.c: Include tm_p.h.
6630         (find_shift_sequence): Remove the read_reg argument and return the
6631         read value.  Emit the instructions instead of returning them.
6632         Iterate on new_mode rather than calculating it each time.
6633         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
6634         source to NEW_MODE and extract_low_bits to convert the shifted
6635         value to READ_MODE.
6636         (replace_read): Allow the load and store to have different mode
6637         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
6638         or extraction instructions before trying the replacement.  Update
6639         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
6640
6641 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6642
6643         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6644         to their natural alignment to avoid store forwarding stalls.
6645
6646 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6647
6648         PR target/27946
6649         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
6650         encouraging but not allowing gprs for input;
6651         change the input constraint to !f#r.
6652         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
6653         gprs for output;
6654         change the output constraint to !f#r.
6655
6656 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
6657
6658         PR target/13958
6659         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
6660         corresponding post-reload splitters.
6661         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
6662         when x87 FP math is selected.
6663         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
6664         New function prototype.
6665         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
6666         unreachable function to ease macroization of insn patterns.
6667
6668 2008-03-21  Martin Jambor  <mjambor@suse.cz>
6669
6670         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
6671         reference dumps if ddr is NULL or dependence is unknown.
6672
6673 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6674
6675         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
6676         unsigned extension into account.
6677         (ATOMIC_COMPARE_AND_SWAP): Likewise.
6678         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
6679         Do computations on a scratch register.
6680
6681 2008-03-21  Richard Guenther  <rguenther@suse.de>
6682
6683         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
6684         Use is_gimple_min_invariant instead of TREE_INVARIANT.
6685         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
6686         * tree-ssa-dom.c (record_equality): Likewise.
6687         * tree-inline.c (copy_body_r): Likewise.
6688         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
6689         TREE_INVARIANT.
6690
6691 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6692
6693         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
6694         as 'delete_unused' argument.
6695
6696 2008-03-20  Richard Guenther  <rguenther@suse.de>
6697
6698         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
6699         special casing of constant qualifiers.
6700         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
6701         care about them in general.
6702         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
6703         regardless of their type.
6704         (fold_stmt_r): Forcefully fold *& if we end up with that.
6705
6706 2008-03-20  Paul Brook  <paul@codesourcery.com>
6707
6708         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
6709         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
6710         linker flags.
6711         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
6712         definition.
6713         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
6714         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
6715
6716 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
6717
6718         * common.opt (Wmudflap): New option.
6719         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
6720         (mx_register_decls): Likewise.
6721         (mudflap_finish_file): Likewise.
6722         * doc/invoke.texi: Document -Wno-mudflap.
6723
6724 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
6725
6726         * c-format.c (replace_format_name_to_system_name): New.
6727         (cmp_attribs): New.
6728         (convert_format_name_to_system_name): New.
6729         (decode_format_attr): Add use of convert_format_name_to_system_name.
6730         (format_types_orig): Add gnu_ prefix to names.
6731         (check_format_info_main): Special treating of \0 escaped names for
6732         supporting multi-character format specifiers as I32, I64.
6733         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
6734         (gnu_target_overrides_format_attributes): New.
6735         * c-format.h: Add structure target_ovr_attr to hold
6736         system specific formatter names.
6737         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
6738         msformat-c.o file to c_target_objs and cxx_target_objs.
6739         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6740         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
6741         (TARGET_N_FORMAT_TYPES): New.
6742         * config/i386/msformat-c.c: New.
6743         * config/i386/t-cygming: Add build rule for msformat-c.o.
6744         * doc/extend.texi: Add new format names gnu_* and ms_* and
6745         further details.
6746         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6747
6748 2008-03-20  Ira Rosen  <irar@il.ibm.com>
6749
6750         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
6751         optimizations turned on under -O3.
6752         (ftree-vectorize): Add that the flag is turned on with -O3.
6753
6754 2008-03-20  Ben Elliston  <bje@au.ibm.com>
6755
6756         * regmove.c (try_auto_increment): Fix spelling error in comment.
6757         * final.c (final_scan_insn): Likewise.
6758
6759 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
6760
6761         PR target/14552
6762         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
6763         allocator preferences for "y" and "r" class registers.
6764         ("*mov<mode>_internal"): Ditto.
6765         ("*movv2sf_internal_rex64"): Ditto.
6766         ("*movv2sf_internal"): Ditto.
6767
6768 2008-03-19  Michael Matz  <matz@suse.de>
6769
6770         PR middle-end/35616
6771         * calls.c (expand_call): Check overlap of arguments with call
6772         address for sibcalls.
6773
6774 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6775
6776         PR target/35496
6777         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6778         of the underlying type of a MS bitfield layout to the natural
6779         alignment of the type.
6780
6781 2008-03-19  Jan Hubicka  <jh@suse.cz>
6782
6783         PR other/35094
6784         * toplev.c (decode_d_option): Handle all CPP flags.
6785         * tree-vrp.c: Update tree_pass descriptors.
6786         * regrename.c: Update tree_pass descriptors.
6787         * fwprop.c: Update tree_pass descriptors.
6788         * doc/invoke.texi: Remove documentation of dropped -d? flags.
6789         * tree-into-ssa.c: Update tree_pass descriptors.
6790         * tree-dump.c: Update tree_pass descriptors.
6791         * tree-complex.c: Update tree_pass descriptors.
6792         * tree-dump.h: Update tree_pass descriptors.
6793         * see.c: Update tree_pass descriptors.
6794         * cgraphbuild.c: Update tree_pass descriptors.
6795         * tracer.c: Update tree_pass descriptors.
6796         * tree-loop-distribution.c: Update tree_pass descriptors.
6797         * cgraph.c: Update tree_pass descriptors.
6798         * postreload-gcse.c: Update tree_pass descriptors.
6799         * postreload.c: Update tree_pass descriptors.
6800         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
6801         * tree-tailcall.c: Update tree_pass descriptors.
6802         * tree-pass.h (tree_opt_pass): Rename to ...
6803         (opt_pass) ... this one; add "type" field and remove letter field.
6804         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
6805         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
6806         all_lowering_passes): Update declaration.
6807         * ipa-cp.c: Update tree_pass descriptors.
6808         * final.c: Update tree_pass descriptors.
6809         * omp-low.c: Update tree_pass descriptors.
6810         * tree-ssa-dse.c: Update tree_pass descriptors.
6811         * ipa-reference.c: Update tree_pass descriptors.
6812         * tree-ssa-uncprop.c: Update tree_pass descriptors.
6813         * auto-inc-dec.c: Update tree_pass descriptors.
6814         * reorg.c: Update tree_pass descriptors.
6815         * cgraphunit.c: Update tree_pass descriptors.
6816         * tree-ssa-copyrename.c: Update tree_pass descriptors.
6817         * tree-ssa-ccp.c: Update tree_pass descriptors.
6818         * df-core.c: Update tree_pass descriptors.
6819         * mode-switching.c: Update tree_pass descriptors.
6820         * tree-nomudflap.c: Update tree_pass descriptors.
6821         * modulo-sched.c: Update tree_pass descriptors.
6822         * ipa-pure-const.c: Update tree_pass descriptors.
6823         * cse.c: Update tree_pass descriptors.
6824         * web.c: Update tree_pass descriptors.
6825         * tree-stdarg.c: Update tree_pass descriptors.
6826         * tree-ssa-math-opts.c: Update tree_pass descriptors.
6827         * tree-ssa-dom.c: Update tree_pass descriptors.
6828         * tree-nrv.c: Update tree_pass descriptors.
6829         * tree-ssa-alias.c: Update tree_pass descriptors.
6830         * loop-init.c: Update tree_pass descriptors.
6831         * gimple-low.c: Update tree_pass descriptors.
6832         * ipa-inline.c: Update tree_pass descriptors.
6833         * tree-ssa-sink.c: Update tree_pass descriptors.
6834         * global.c: Update tree_pass descriptors.
6835         * ifcvt.c: Update tree_pass descriptors.
6836         * jump.c: Update tree_pass descriptors.
6837         * predict.c: Update tree_pass descriptors.
6838         * tree-ssa-loop.c: Update tree_pass descriptors.
6839         * recog.c: Update tree_pass descriptors.
6840         * dse.c: Update tree_pass descriptors.
6841         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
6842         * tree-eh.c: Update tree_pass descriptors.
6843         * regmove.c: Update tree_pass descriptors.
6844         * local-alloc.c
6845         * function.c: Update tree_pass descriptors.
6846         * tree-vectorizer.c: Update tree_pass descriptors.
6847         * gcse.c: Update tree_pass descriptors.
6848         * ipa-type-escape.c: Update tree_pass descriptors.
6849         * tree-if-conv.c: Update tree_pass descriptors.
6850         * init-regs.c: Update tree_pass descriptors.
6851         * ipa.c: Update tree_pass descriptors.
6852         * tree-ssa-phiopt.c: Update tree_pass descriptors.
6853         * rtl-factoring.c: Update tree_pass descriptors.
6854         * lower-subreg.c: Update tree_pass descriptors.
6855         * bt-load.c: Update tree_pass descriptors.
6856         * tree-dfa.c: Update tree_pass descriptors.
6857         * except.c: Update tree_pass descriptors.
6858         * emit-rtl.c: Update tree_pass descriptors.
6859         * cfgexpand.c: Update tree_pass descriptors.
6860         * tree-cfgcleanup.c: Update tree_pass descriptors.
6861         * cfgcleanup.c: Update tree_pass descriptors.
6862         * tree-ssa-pre.c: Update tree_pass descriptors.
6863         * tree-sra.c: Update tree_pass descriptors.
6864         * tree-mudflap.c: Update tree_pass descriptors.
6865         * tree-ssa-copy.c: Update tree_pass descriptors.
6866         * cfglayout.c: Update tree_pass descriptors.
6867         * tree-ssa-forwprop.c: Update tree_pass descriptors.
6868         * tree-ssa-dce.c: Update tree_pass descriptors.
6869         * tree-ssa.c: Update tree_pass descriptors.
6870         * regclass.c: Update tree_pass descriptors.
6871         * integrate.c: Update tree_pass descriptors.
6872         * tree-optimize.c: Update tree_pass descriptors.
6873         * tree-ssa-phiprop.c: Update tree_pass descriptors.
6874         * tree-object-size.c: Update tree_pass descriptors.
6875         * combine.c: Update tree_pass descriptors.
6876         * tree-outof-ssa.c: Update tree_pass descriptors.
6877         * bb-reorder.c: Update tree_pass descriptors.
6878         * stack-ptr-mod.c: Update tree_pass descriptors.
6879         * var-tracking.c: Update tree_pass descriptors.
6880         * tree-profile.c: Update tree_pass descriptors.
6881         * tree-vect-generic.c: Update tree_pass descriptors.
6882         * reg-stack.c: Update tree_pass descriptors.
6883         * sched-rgn.c: Update tree_pass descriptors.
6884         * tree-ssa-structalias.c: Update tree_pass descriptors.
6885         * tree-cfg.c: Update tree_pass descriptors.
6886         * passes.c (current_pass): Update declaration.
6887         (finish_optimization_passes): Update.
6888         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
6889         (register_one_dump_file, register_dump_files_1, next_pass_1):
6890         Update arguments.
6891         (init_optimization_passes): Update handling of new types.
6892         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
6893         * ipa-struct-reorg.c: Update tree_pass descriptors.
6894         * tree-ssa-reassoc.c: Update tree_pass descriptors.
6895         * combine-stack-adj.c: Update tree_pass descriptors.
6896         * cfgrtl.c: Update tree_pass descriptors.
6897         * dce.c: Update tree_pass descriptors.
6898         * tree-ssanames.c: Update tree_pass descriptors.
6899
6900 2008-03-19  Richard Guenther  <rguenther@suse.de>
6901
6902         PR middle-end/35609
6903         * tree-ssa.c (walk_data): New structure.
6904         (warn_uninitialized_var): If not always_executed warn with "maybe"
6905         instead of "is".
6906         (execute_early_warn_uninitialized): Compute post-dominators.
6907         Initialize always_executed before processing each basic block.
6908
6909 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
6910
6911         PR target/35504
6912         * config/i386/i386.c (x86_this_parameter): Calculate correct location
6913         of "this" pointer when "regparm = N" or "fastcall" is in effect.
6914
6915 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6916
6917         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
6918
6919 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
6920
6921         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
6922         is true.
6923         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
6924         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
6925         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
6926         target after ignore has been set, and move there also the commputation
6927         of subtarget and original_target.
6928         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
6929         (LANG_HOOKS_INITIALIZER): Remove it.
6930         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
6931
6932 2008-03-18  Richard Guenther  <rguenther@suse.de>
6933
6934         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
6935         found an expression with constants, note that in the VN for the lhs.
6936         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
6937         fold them to constants if possible.  Run cleanup_cfg if done so.
6938         (execute_pre): Return todo.
6939         (do_pre): Likewise.
6940         (execute_fre): Likewise.
6941         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
6942         of constants.
6943         (get_prop_source_stmt): Look through pointer conversions.
6944
6945 2008-03-18  Jan Hubicka  <jh@suse.cz>
6946
6947         * tree-pretty-print.c: Include predict.h.
6948         (dump_generic_node): Dump predictor.
6949         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
6950         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
6951         * gimple-low.c (lower_stmt): Likewise.
6952         * expr.c (expand_expr_real): Likewise.
6953         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
6954         them.
6955         (build_predict_expr, build_predict_expr): New.
6956         * predict.h (predictor_name, build_predict_expr): Update.
6957         * c-typeck.c (c_finish_bc_stmt): Add prediction.
6958         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
6959         * predict.def (PRED_CONTINUE): Update hitrate.
6960         * tree.def (PREDICT_EXPR): Define.
6961         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
6962         do not handle BIND_EXPR.
6963         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
6964         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
6965         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
6966         operands.
6967
6968 2008-03-18  Michael Matz  <matz@suse.de>
6969
6970         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
6971
6972 2008-03-18  Richard Guenther  <rguenther@suse.de>
6973
6974         * tree-gimple.h (is_gimple_invariant_address): Declare.
6975         (is_gimple_constant): Likewise.
6976         * tree-gimple.c (is_gimple_constant): New function.
6977         (is_gimple_invariant_address): Likewise.
6978         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
6979         and is_gimple_invariant_address.
6980         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
6981         previous change.
6982         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
6983         an addressable base.
6984
6985 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
6986
6987         PR middle-end/35611
6988         * gimplify.c (gimplify_expr): Gimplify second operand of
6989         OMP_ATOMIC_LOAD.
6990
6991 2008-03-17  Richard Guenther  <rguenther@suse.de>
6992
6993         PR tree-optimization/19637
6994         * fold-const.c (fold_unary): Remove restrictions of removing
6995         intermediate pointer-conversions (P2)(P1)P0.
6996         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
6997         conversion to void pointer.
6998         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
6999
7000 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
7001
7002         PR debug/31510
7003         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
7004         emulated thread local variables.
7005
7006 2008-03-16  Richard Guenther  <rguenther@suse.de>
7007
7008         PR middle-end/35607
7009         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
7010         expand TREE_INVARIANT operations that are not gimple invariant.
7011
7012 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
7013
7014         * doc/extend.texi (Alignment): Say that the ABI controls
7015         the __alignof__ for non-strict-alignment targets rather
7016         than being a recommendation.
7017
7018 2008-03-15  Paul Brook  <paul@codesourcery.com>
7019
7020         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
7021         annotations.
7022         (arm_output_fn_unwind): Mark functions that can not be unwound.
7023
7024 2008-03-15  Paul Brook  <paul@codesourcery.com>
7025
7026         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
7027         extension instructions.
7028
7029 2008-03-15  Richard Guenther  <rguenther@suse.de>
7030
7031         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
7032         and fold constant aggregate refs.
7033         (fold_const_aggregate_ref): Handle string constants
7034         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
7035         (evaluate_stmt): Simplify now that ccp_fold folds constant
7036         aggregate refs.
7037
7038 2008-03-15  Paul Brook  <paul@codesourcery.com>
7039
7040         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
7041         (extzv): Use gen_extzv_t2.
7042         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
7043
7044 2008-03-15  Richard Guenther  <rguenther@suse.de>
7045
7046         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
7047         (fold_const_aggregate_ref): Likewise.
7048         (get_value): Return NULL if we don't have any values.
7049         (ccp_finalize): Set const_val to NULL after freeing it.
7050         * tree-flow.h (get_symbol_constant_value): Declare.
7051         (fold_const_aggregate_ref): Likewise.
7052         * tree-ssa-sccvn.c (try_to_simplify): Use them.
7053
7054 2008-03-15  Richard Guenther  <rguenther@suse.de>
7055
7056         PR middle-end/35593
7057         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
7058         to not produce negative array indices if not allowed.  Add
7059         parameter to indicate that.
7060         (maybe_fold_offset_to_component_ref): Allow negative array
7061         indices only for the first member of a structure.
7062         (maybe_fold_offset_to_reference): Allow negative array indices.
7063         (maybe_fold_stmt_addition): Likewise.
7064
7065 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
7066             Anatoly Sokolov <aesok@post.ru>
7067
7068         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
7069         (avr_arch): Add ARCH_AVR6.
7070         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
7071         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
7072         instead of fixed value 2.
7073         (print_operand_address): Use gs() asm specifier instead of pm().
7074         (avr_assemble_integer): (Ditto.).
7075         (avr_output_addr_vec_elt): (Ditto.).
7076         (print_operand): Handle "!" code.
7077         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
7078         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
7079         (AVR_HAVE_EIJMP_EICALL): Define.
7080         (AVR_3_BYTE_PC): Redefine.
7081         (AVR_2_BYTE_PC): (Ditto.).
7082         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
7083         (LINK_SPEC): Add atmega2560 and atmega2561.
7084         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
7085         (crtm2561.o).
7086         * config/avr/avr.md (call_insn): Use eicall instead of icall 
7087         for 3 byte PC devices.
7088         (call_value_insn): (Ditto.).
7089         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
7090         (indirect_jump): Use only for for 2 byte PC devices.
7091         (*tablejump): (Ditto.).
7092         (*indirect_jump_avr6): Add insn.
7093         (*tablejump_rjmp): Don't use for 3 byte PC devices.
7094         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
7095         instead of ijmp for 3 byte PC devices.
7096         (__tablejump2__): (Ditto.).
7097         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
7098         (MULITLIB_DIRNAMES): (Ditto.). 
7099         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
7100
7101 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
7102
7103         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
7104         "sse2_umulsidi3".  Use V1DI mode for operand 0.
7105         ("mmx_psadbw"): Use V1DI mode for operand 0.
7106         * config/i386/i386-modes.def (V1SI): New vector mode.
7107         * config/i386/i386.c (struct builtin_description)
7108         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
7109         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
7110         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
7111         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
7112         v1di_ftype_v8qi_v8qi type.
7113         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
7114
7115         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
7116         __builtin_ia32_pmuludq]: Fix the mode of return value.
7117
7118 2008-03-15  Richard Guenther  <rguenther@suse.de>
7119
7120         PR middle-end/35595
7121         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
7122         being a PHI_NODE.
7123
7124 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
7125         
7126         * doc/invoke.texi (Option Summary, Xtensa Options): Document
7127         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
7128         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
7129         unless TARGET_SERIALIZE_VOLATILE is enabled.
7130         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
7131         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
7132         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
7133
7134 2008-03-14  Richard Guenther  <rguenther@suse.de>
7135
7136         PR tree-optimization/34172
7137         * tree-flow.h (refs_may_alias_p): Declare.
7138         (get_single_def_stmt): Likewise.
7139         (get_single_def_stmt_from_phi): Likewise.
7140         (get_single_def_stmt_with_phi): Likewise.
7141         * tree-dfa.c (refs_may_alias_p): New function.
7142         (get_single_def_stmt): Likewise.
7143         (get_single_def_stmt_from_phi): Likewise.
7144         (get_single_def_stmt_with_phi): Likewise.
7145         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
7146         (vn_reference_lookup_1): New helper function.
7147         (vn_reference_lookup): Walk the virtual use-def chain to
7148         continue searching for a match if the def does not alias the
7149         reference we are looking for.
7150
7151 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
7152
7153         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
7154         archive and Perzl.  Update The Written Word listing.
7155
7156 2008-03-14  Richard Guenther  <rguenther@suse.de>
7157
7158         PR tree-optimization/34043
7159         PR tree-optimization/33989
7160         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
7161         when doing FRE.
7162         (bitmap_find_leader): Use extra argument to verify dominance
7163         relationship inside a basic-block.
7164         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
7165         (find_leader_in_sets): Adjust.
7166         (create_component_ref_by_pieces): Take extra argument for
7167         dominance check, handle lookup failures.
7168         (find_or_generate_expression): Likewise.
7169         (create_expression_by_pieces): Likewise.
7170         (insert_into_preds_of_block): Adjust.
7171         (create_value_expr_from): If asked for, verify all operands
7172         are in the blocks AVAIL_OUT set.
7173         (make_values_for_stmt): Check for SSA_NAMEs that are life
7174         over an abnormal edge.
7175         (compute_avail): Remove such check.
7176         (do_SCCVN_insertion): New function.
7177         (eliminate): If we do not find a leader suitable for replacement
7178         insert a replacement expression from SCCVN if available.
7179         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
7180         (struct vn_ssa_aux): Add needs_insertion flag.
7181         * tree-ssa-sccvn.c (may_insert): New global flag.
7182         (copy_reference_ops_from_ref): Value-number union member access
7183         based on its size, not type and member if insertion is allowed.
7184         (visit_reference_op_load): For a weak match from union type
7185         punning lookup a view-converted value and insert a SSA_NAME
7186         for that value if that is not found.
7187         (visit_use): Make dumps shorter.  Do not disallow value numbering
7188         SSA_NAMEs that are life over an abnormal edge to constants.
7189         (free_scc_vn): Release inserted SSA_NAMEs.
7190         (run_scc_vn): New flag to specify whether insertion is allowed.
7191         Process SSA_NAMEs in forward order.
7192         * tree-ssa-loop-im.c (for_each_index): Handle invariant
7193         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
7194         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
7195         pointer type to/from integral types that do not change the
7196         precision to regular conversions.
7197
7198 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
7199
7200         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7201         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7202         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
7203         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
7204         input arguments and the mode of return value.  Built-in functions
7205         that operate on whole 64-bit MMX register now use V1DI mode.
7206
7207 2008-03-13  Alon Dayan  <alond@il.ibm.com>
7208             Olga Golovanevsky  <olga@il.ibm.com>
7209
7210         PR tree-optimization/35041
7211         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
7212         to locate the right position in a statement.
7213
7214 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
7215
7216         PR target/34000
7217         PR target/35553
7218         * config/i386/xmmintrin.h:  Change all static inline functions to
7219         extern inline and add __gnu_inline__ attribute.
7220         * config/i386/bmintrin.h: Ditto.
7221         * config/i386/smmintrin.h: Ditto.
7222         * config/i386/tmmintrin.h: Ditto.
7223         * config/i386/mmintrin-common.h: Ditto.
7224         * config/i386/ammintrin.h: Ditto.
7225         * config/i386/emmintrin.h: Ditto.
7226         * config/i386/pmmintrin.h: Ditto.
7227         * config/i386/mmintrin.h: Ditto.
7228         * config/i386/mm3dnow.h: Ditto.
7229
7230 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
7231
7232         PR middle-end/35185
7233         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
7234         (lower_omp_2): New function.
7235         (lower_omp_1, lower_omp): Rewritten.
7236
7237 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
7238
7239         PR 35054
7240         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
7241         with the phrase "Microsoft Windows compilers".
7242         (Push/Pop Macro Pragmas): New subsection. Document
7243         #pragma push_macro and pragma pop_macro.
7244
7245 2008-03-12  Paul Brook  <paul@codesourcery.com>
7246
7247         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
7248
7249 2008-03-12  Paul Brook  <paul@codesourcery.com>
7250
7251         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
7252         (thumb2_alusi3_short): Exclude PLUS and MINUS.
7253         (thumb2_addsi_shortim): Rename ...
7254         (thumb2_addsi_short): ... to this.  Allow register operands.
7255         (thumb2_subsi_short): New pattern.
7256         (thumb2_one_cmplsi2_short,
7257         thumb2_negsi2_short): New patterns and peepholes.
7258
7259 2008-03-12  Paul Brook  <paul@codesourcery.com>
7260
7261         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
7262
7263 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
7264
7265         * config/i386/i386.md (int_cond): New code iterator.
7266         (fp_cond): Ditto.
7267         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
7268         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
7269         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
7270         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
7271         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
7272         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
7273         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
7274         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
7275
7276 2008-03-12  Paul Brook  <paul@codesourcery.com>
7277
7278         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
7279         instead of {arm,thumb}_compute_save_reg_mask.
7280         (output_return_instruction): Ditto.
7281         (thumb_unexpanded_epilogue): Ditto.
7282         (thumb1_expand_prologue): Ditto.
7283         (thumb1_output_function_prologue): Ditto.
7284         (arm_set_return_address): Ditto.
7285         (thumb_set_return_address): Ditto.
7286         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
7287         regs to achieve stack alignment.
7288         (thumb1_compute_save_reg_mask): Fix compiler warning.
7289         (arm_output_epilogue): Use offsets->saved_regs_mask.
7290         Adjust stack pointer by poping call clobered registers.
7291         (arm_expand_prologue): Use offsets->saved_regs_mask.
7292         Adjust stack pointer by pushing extra registers.
7293         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
7294
7295 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
7296
7297         PR tree-opt/35422
7298         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
7299         conversion to the operands of a multiplication.
7300
7301 2008-03-12  Richard Guenther  <rguenther@suse.de>
7302
7303         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
7304         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
7305         * timevar.def (TV_TREE_PHIPROP): Add.
7306         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
7307         pass description.  Use TV_TREE_PHIPROP.
7308         * tree-ssa-forwprop.c: Remove phiprop code.
7309
7310 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
7311
7312         PR middle-end/35549
7313         * omp-low.c (maybe_lookup_decl): Constify first argument.
7314         (use_pointer_for_field): Change last argument from bool to
7315         omp_context *.  Disallow shared copy-in/out in nested
7316         parallel if decl is shared in outer parallel too.
7317         (build_outer_var_ref, scan_sharing_clauses,
7318         lower_rec_input_clauses, lower_copyprivate_clauses,
7319         lower_send_clauses, lower_send_shared_vars): Adjust callers.
7320
7321 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
7322             Ira Rosen  <irar@il.ibm.com>
7323
7324         * tree-vectorizer.c (free_stmt_vec_info): New function.
7325         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
7326         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
7327         * tree-vectorizer.h (free_stmt_vec_info): Declare.
7328         * tree-vect-transform.c (vectorizable_conversion): Free
7329         vec_oprnds0 if it was allocated.
7330         (vect_permute_store_chain): Remove unused VECs.
7331         (vectorizable_store): Free VECs that are allocated in the..
7332         function.
7333         (vect_transform_strided_load, vectorizable_load): Likewise.
7334         (vect_remove_stores): Simplify the code.
7335         (vect_transform_loop): Move code to vect_remove_stores().
7336         Call vect_remove_stores() and free_stmt_vec_info().
7337
7338 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7339
7340         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
7341         TARGET_HPUX.  Revise comment.
7342         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
7343         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
7344         Use sr4 variant of `be' instruction when not generating PIC code.
7345         (attr_length_call): Adjust for above change.
7346
7347 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7348
7349         * ipa-reference.c (static_execute): Remove module_statics_const and
7350         associated setting code.
7351
7352 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
7353
7354         PR target/35540
7355         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
7356         predicate for operand 1.
7357         (paritysi2_cmp): Use register_operand predicate for operand 2.
7358         Use earlyclobber modifier for operand 1.  Remove support for
7359         memory operands.
7360         (paritydi2_cmp): Use register_operand predicate for operand 3.
7361         Use earlyclobber modifier for operand 1.  Remove support for
7362         memory operands.
7363
7364 2008-03-11  Paul Brook  <paul@codesourcery.com>
7365             Vladimir Prus  <vladimir@codesourcery.com>
7366
7367         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
7368         (arm_compute_save_reg0_reg12_mask): Always
7369         check if register 11 must be saved.  Always safe hard frame pointer
7370         when frame_pointer_needeed.
7371         (arm_compute_save_reg_mask): Save IP and PC
7372         only with apcs frames.
7373         (arm_output_epilogue): Adjust Thumb2 codepath to
7374         be also invoked and work for ARM non-apcs frames.
7375         (arm_expand_prologue): Don't bother saving IP
7376         for non-apcs frame, since it's not clobbered by
7377         prologue code.  Implement non-apcs frame
7378         layout.
7379
7380 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7381
7382         PR rtl-optimization/35281
7383         * expr.c (convert_move): Use a new pseudo for the intermediate
7384         from_mode->word_mode result.
7385
7386 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7387
7388         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
7389         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
7390         * toplev.c (compile_file): Don't call it.
7391
7392 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
7393
7394         PR middle-end/35526
7395         * expr.c (store_expr): Call emit_block_move if the mode
7396         of "temp" RTX is BLKmode.
7397
7398 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7399             Richard Guenther  <rguenther@suse.de>
7400
7401         PR tree-optimization/31358
7402         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
7403         the step with a NULL_TREE.
7404         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
7405         to sizetype if type is a pointer type.
7406         (add_candidate_1): Don't convert the base and step to
7407         the generic type if the orginal type is a pointer type.
7408         (add_iv_value_candidates): Use sizetype for the step
7409         if type is a pointer type.
7410         (cand_value_at): Likewise.
7411         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
7412         for pointer types.
7413         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
7414         Don't convert the tem affine to the type.
7415         (add_elt_to_tree): Use sizetype for the step if a pointer.
7416         Use POINTER_PLUS_EXPR for pointers.
7417         (aff_combination_to_tree): Use sizetype for the step if a
7418         pointer.
7419
7420 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
7421
7422         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
7423         Remove commutativity hint.
7424
7425 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
7426
7427         PR c/35438
7428         PR c/35439
7429         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
7430         errorneous type.  Check that v is a VAR_DECL.
7431
7432         PR middle-end/35099
7433         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
7434
7435 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
7436
7437         PR tree-optimization/35494
7438         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
7439         may be overriden at link and run time.
7440
7441 2008-03-10  Richard Guenther  <rguenther@suse.de>
7442
7443         PR tree-optimization/34677
7444         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
7445         (poolify_tree): Likewise.
7446         (modify_expr_template): Likewise.
7447         (poolify_modify_stmt): Likewise.
7448         (insert_fake_stores): Handle all component-ref style stores
7449         in addition to INDIRECT_REF.  Also handle complex types.
7450         Do not poolify the inserted load.
7451         (realify_fake_stores): Do not rebuild the tree but only
7452         make it a SSA_NAME copy.
7453         (init_pre): Remove initialzation of modify_expr_template.
7454         Do not allocate modify_expr_node_pool.
7455         (fini_pre): Do not free modify_expr_node_pool.
7456
7457 2008-03-10  Paul Brook  <paul@codesourcery.com>
7458
7459         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
7460         to avoid conflicts.
7461
7462 2008-03-10  Paul Brook  <paul@codesourcery.com>
7463             Mark Shinwell  <shinwell@codesourcery.com>
7464
7465         * config/arm/cortex-r4.md: New.
7466         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
7467         insn attributes.
7468         * config/arm/arm.md: Include cortex-r4.md.
7469         (insn): Add smmls, sdiv and udiv values.
7470         (generic_sched): Don't use generic scheduling for Cortex-R4.
7471         (arm_issue_rate): New function.
7472         (TARGET_SCHED_ISSUE_RATE): Define.
7473
7474 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
7475
7476         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
7477
7478 2008-03-10  Richard Guenther  <rguenther@suse.de>
7479
7480         * tree-ssa-pre.c (get_sccvn_value): Simplify.
7481         (compute_avail): Do not add stmt uses to AVAIL_OUT.
7482
7483 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
7484
7485         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
7486         Set default to true.
7487
7488 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7489
7490         * c.opt (Wsynth): Deprecate.
7491         * doc/invoke.texi (Option Summary, Warning Options): Document
7492         -Wno-format-contains-nul.
7493
7494 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
7495
7496         PR target/35496
7497         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
7498         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
7499
7500 2008-03-09  Ira Rosen  <irar@il.ibm.com>
7501
7502         * config/rs6000/rs6000.c (builtin_description): Rename vector
7503         left shift operations.
7504         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
7505         (altivec_vsl<VI_char>): Rename to ...
7506         (ashl<mode>3): ... new name.
7507         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
7508         gen_ashlv4si3.
7509         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
7510
7511 2008-03-08  Richard Guenther  <rguenther@suse.de>
7512
7513         * coverage.h (tree_coverage_counter_addr): Declare.
7514         * coverage.c (tree_coverage_counter_addr): New function.
7515         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
7516         before using again.
7517         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
7518         (tree_gen_one_value_profiler): Likewise.
7519         (tree_gen_ic_profiler): Likewise.
7520         (tree_gen_average_profiler): Likewise.
7521         (tree_gen_ior_profiler): Likewise.
7522
7523 2008-03-08  Richard Guenther  <rguenther@suse.de>
7524
7525         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
7526         (vn_binary_op_insert): Likewise.
7527         (vn_unary_op_lookup): Likewise.
7528         (vn_unary_op_insert): Likewise.
7529         (vn_nary_op_lookup): Declare.
7530         (vn_nary_op_insert): Likewise.
7531         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
7532         and binary hashes, use a single obstack for unary_op_pool
7533         and binary_op_pool.
7534         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
7535         a single struct vn_nary_op_s.  Store tree code length and
7536         a variable number of operands.
7537         (struct vn_reference_op_struct): Remove unused op2.
7538         (vn_reference_op_eq): Do not compare op2.
7539         (vn_reference_op_compute_hash): Do not compute hash of op2.
7540         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
7541         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
7542         with vn_nary_op_compute_hash.
7543         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
7544         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
7545         vn_nary_op_lookup.
7546         (vn_unary_op_insert, vn_binary_op_insert): Replace with
7547         vn_nary_op_insert.
7548         (visit_unary_op): Call nary functions.
7549         (visit_binary_op): Likewise.
7550         (process_scc): Adjust for struct vn_tables_s changes.
7551         (allocate_vn_table): Likewise.
7552         (free_vn_table): Likewise.
7553         * tree-vn.c (vn_add): Call nary functions.
7554         (vn_lookup): Likewise.
7555
7556 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
7557
7558         PR target/35498
7559         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
7560         wdst back after sync_compare_and_swapqhi_internal.
7561
7562 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
7563
7564         PR target/22152
7565         * config/i386/i386-modes.def (V1DI): New vector mode.
7566         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
7567         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
7568         (MMXMODE248): Ditto.
7569         (MMXMODE): Add V1DI mode.
7570         (mmxvecsize): Change DI mode to V1DI mode.
7571         ("mov<mode>): Use MMXMODEI8 mode iterator.
7572         ("*mov<mode>_internal_rex64"): Ditto.
7573         ("*mov<mode>_internal"): Ditto.
7574         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
7575         ("mmx_sub<mode>3"): Ditto.
7576         ("mmx_adddi3"): Remove insn pattern.
7577         ("mmx_subdi3"): Ditto.
7578         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
7579         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
7580         ("mmx_ashl<mode>3"): Ditto.
7581         ("mmx_lshrdi3"): Remove insn pattern.
7582         ("mmx_ashldi3"): Ditto.
7583         * config/i386/i386.c (classify_argument): Handle V1DImode.
7584         (function_arg_advance_32): Ditto.
7585         (function_arg_32): Ditto.
7586         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
7587         mmx_addv1di3 insn pattern.
7588         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
7589         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
7590         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
7591         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
7592         Remove definitions of built-in functions.
7593         (V1DI_type_node): New node.
7594         (v1di_ftype_v1di_int): Ditto.
7595         (v1di_ftype_v1di_v1di): Ditto.
7596         (v2si_ftype_v2si_si): Ditto.
7597         (v4hi_ftype_v4hi_di): Remove node.
7598         (v2si_ftype_v2si_di): Ditto.
7599         (ix86_init_mmx_sse_builtins): Handle V1DImode.
7600         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
7601         Redefine builtins using def_builtin_const with *_ftype_*_int node.
7602         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
7603         Add new builtins using def_builtin_const.
7604         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
7605         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
7606         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
7607         * config/i386/mmintrin.h (__v1di): New typedef.
7608         (_mm_add_si64): Cast arguments to __v1di type.
7609         (_mm_sub_si64): Ditto.
7610         (_mm_sll_pi16): Cast __count to __v4hi type.
7611         (_mm_sll_pi32): Cast __count to __v2si type.
7612         (_mm_sll_si64): Cast arguments to __v1di type.
7613         (_mm_srl_pi16): Cast __count to __v4hi type.
7614         (_mm_srl_pi32): Cast __count to __v2si type.
7615         (_mm_srl_si64): Cast arguments to __v1di type.
7616         (_mm_sra_pi16): Cast __count to __v4hi type.
7617         (_mm_sra_pi32): Cast __count to __v2si type.
7618         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
7619         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
7620         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
7621         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
7622         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
7623         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
7624         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
7625         (_mm_srai_pi32): Use __builtin_ia32_psradi.
7626         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
7627         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7628         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7629         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
7630
7631 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
7632
7633         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
7634
7635 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
7636
7637         PR target/35373
7638         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
7639         reg+const addressing for Altivec modes.  Don't generate reg+reg
7640         addressing for TFmode or TDmode quantities.
7641
7642 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
7643
7644         * c-common.c (vector_types_convertible_p): Call langhook
7645         instead of comptypes.
7646
7647 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7648
7649         PR tree-opt/35402
7650         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
7651         integral and scalar float variables which have a
7652         NULL DECL_INITIAL.
7653
7654 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
7655
7656         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
7657         dwarf_register_span hook when emitting unwind information for
7658         register-to-memory saves.
7659         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
7660         (rs6000_frame_related): Remove call to spe_synthesize_frame.
7661
7662 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
7663
7664         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
7665         for the same VAR_DECL.
7666
7667 2008-03-06  Tom Tromey  <tromey@redhat.com>
7668
7669         * treelang: Delete.
7670         * doc/standards.texi (Standards): Don't mention treelang.
7671         * doc/invoke.texi (Overall Options): Don't mention treelang.
7672         * doc/install.texi (Prerequisites): Don't mention bison or
7673         treelang.
7674         (Configuration): Don't mention treelang.
7675         (Building): Likewise.
7676         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
7677
7678 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
7679
7680         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
7681         word-extractions out of a multi-word object.
7682
7683 2008-03-06  Richard Guenther  <rguenther@suse.de>
7684
7685         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
7686         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
7687         result type and precision.
7688         * expr.c (get_inner_reference): Set unsignedp based on the result
7689         type of BIT_FIELD_REF.
7690         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
7691         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
7692         (try_instantiate_multiple_fields): Likewise.  Use the correct type
7693         for BIT_FIELD_REF.
7694         (sra_build_assignment): Likewise.
7695         (sra_build_elt_assignment): Likewise.
7696         (sra_explode_bitfield_assignment): Likewise.
7697         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
7698         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
7699         set BIT_FIELD_REF_UNSIGNED.
7700         (vectorizable_load): Likewise.
7701
7702 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
7703
7704         * cse.c (cse_extended_basic_block): Invalidate artificial defs
7705         at bb start.
7706
7707 2008-03-06  Richard Guenther  <rguenther@suse.de>
7708
7709         * alias.c (struct alias_set_entry): Move has_zero_child field
7710         to pack with alias_set.
7711
7712 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
7713
7714         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7715         32bit host.
7716
7717 2008-03-05  Ian Lance Taylor  <iant@google.com>
7718
7719         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
7720
7721 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
7722
7723         * fwprop.c (update_df): Support width and offset parameters of
7724         df_ref_create.
7725         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
7726         global_conflicts): Change DF_REF_EXTRACT to either
7727         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7728         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7729         * df-scan.c (df_ref_record, df_defs_record,
7730         df_ref_create_structure, df_def_record_1, df_uses_record,
7731         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
7732         df_bb_refs_collect, df_entry_block_defs_collect,
7733         df_exit_block_uses_collect): Support new width and offset fields.
7734         (ref_extract_pool): New storage pool.
7735         (df_free_ref): New function.
7736         (df_reg_chain_unlink, df_free_collection_rec,
7737         df_sort_and_compress_refs): Call df_free_ref.
7738         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
7739         of df_ref_extract.
7740         (df_ref_create_structure): Allocate df_ref_extract if offset and
7741         width fields are used.
7742         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
7743         (df_uses_record): Get offset and width from ZERO_EXTRACT 
7744         and SIGN_EXTRACT.
7745         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
7746         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7747         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7748         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
7749         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7750         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7751         (df_ref_extract): New structure.
7752         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
7753         (df_ref_create): Add width and offset parameters.
7754         
7755 2008-03-05  Richard Guenther  <rguenther@suse.de>
7756
7757         * tree-ssa-structalias.c (get_constraint_for_component_ref):
7758         Use ranges_overlap_p.
7759         (offset_overlaps_with_access): Rename
7760         to ranges_overlap_p and move ...
7761         * tree-flow-inline.h (ranges_overlap_p): ... here.
7762
7763         * tree.h (get_inner_reference, handled_component_p): Update
7764         comments.
7765
7766         * tree.h (record_component_aliases, get_alias_set,
7767         alias_sets_conflict_p, alias_sets_must_conflict_p,
7768         objects_must_conflict_p): Move declarations ...
7769         * alias.h (record_component_aliases, get_alias_set,
7770         alias_sets_conflict_p, alias_sets_must_conflict_p,
7771         objects_must_conflict_p): ... here.
7772         Include coretypes.h.
7773         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
7774
7775 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
7776
7777         * cfg.c: Include tree-flow.h.
7778         (remove_edge_raw): Call redirect_edge_var_map_clear.
7779         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
7780         * tree-flow-inline.h (redirect_edge_var_map_def): New.
7781         (redirect_edge_var_map_result): New.
7782         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
7783         PENDING_STMT use with redirect_edge_var_map_*.
7784         * tree-ssa.c (edge_var_maps): New definition.
7785         (redirect_edge_var_map_add): New.
7786         (redirect_edge_var_map_clear): New.
7787         (redirect_edge_var_map_dup): New.
7788         (redirect_edge_var_map_vector): New.
7789         (redirect_edge_var_map_destroy): New.
7790         (ssa_redirect_edge): Replace PENDING_STMT use with
7791         redirect_edge_var_map_*.
7792         (flush_pending_stmts): Same.
7793         (delete_tree_ssa): Destroy edge var map.
7794         * tree-flow.h (struct _edge_var_map): New.
7795         Define edge_var_map vector type.
7796         Declare redirect_edge_var_map_* prototypes.
7797         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
7798         * tree-cfg.c (reinstall_phi_args): Replace
7799         PENDING_STMT use with redirect_edge_var_map_*.
7800
7801 2008-03-05  Richard Guenther  <rguenther@suse.de>
7802
7803         PR tree-optimization/35472
7804         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
7805         whose single use_stmt has a overlapping set of loaded and
7806         stored symbols as that use_stmt might be a noop assignment then.
7807
7808 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
7809
7810         * gthr-rtems.h: Implement __gthread_mutex_destroy.
7811
7812 2008-03-05  Richard Guenther  <rguenther@suse.de>
7813
7814         PR c++/35336
7815         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
7816         should be constants.
7817         * tree-cfg.c (verify_expr): Verify it.
7818         * fold-const.c (fold_truthop): Remove code generating
7819         BIT_FIELD_REFs of structure bases.
7820         (fold_binary): Likewise.
7821         (fold_ternary): Position and size of BIT_FIELD_REFs are
7822         always host integers.
7823         (make_bit_field_ref): Remove.
7824         (optimize_bit_field_compare): Remove.
7825         (all_ones_mask_p): Remove.
7826
7827 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
7828
7829         PR gcc/33009
7830         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
7831         (split_block_and_df_analyze): New. Split basic block and rebuild
7832         dataflow.
7833         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
7834         SPLIT_BLOCK.
7835         (split_pattern_seq): Likewise.
7836         (erase_matching_seqs): Likewise.
7837         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
7838
7839 2008-03-04  Geoff Keating  <geoffk@apple.com>
7840
7841         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
7842         declaration and code.
7843         (tree_invalid_nonnegative_warnv_p): Likewise.
7844
7845 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
7846
7847         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
7848         examples.  Truncate option-names then causing overfull hbox.
7849
7850 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7851
7852         PR target/35222
7853         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
7854         on hpux10.
7855         * configure: Rebuilt.
7856
7857 2008-03-04  Rafael Espindola  <espindola@google.com>
7858
7859         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
7860         (tree_unary_nonnegative_warnv_p): New.
7861         (tree_binary_nonnegative_warnv_p): New.
7862         (tree_single_nonnegative_warnv_p): New.
7863         (tree_invalid_nonnegative_warnv_p): New.
7864         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
7865
7866 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7867
7868         PR 28322
7869         * opts.c (handle_option): Postpone 'unknown option' errors only for
7870         warning options.
7871
7872 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
7873
7874         PR target/35453
7875         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
7876         (_SIDD_XXX): This.
7877
7878 2008-03-04  Rafael Espindola  <espindola@google.com>
7879
7880         * fold-const.c (tree_unary_nonzero_warnv_p): New.
7881         (tree_binary_nonzero_warnv_p): New.
7882         (tree_single_nonzero_warnv_p): New.
7883         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
7884
7885 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
7886
7887         PR middle-end/35456
7888         * fold-const.c (fold_cond_expr_with_comparison): Prevent
7889         transformations for modes that have signed zeros.
7890         * ifcvt.c (noce_try_abs): Ditto.
7891
7892 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
7893
7894         * config/i386/i386.c (override_options): Force
7895         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
7896
7897 2008-03-04  Jan Hubicka  <jh@suse.cz>
7898
7899         PR c++/35262
7900         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
7901         in last commit.
7902
7903 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7904
7905         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
7906         label to probe the stack.
7907
7908 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7909
7910         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
7911         (__gthr_win32_mutex_destroy): Declare.
7912         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
7913         __gthr_win32_mutex_destroy.
7914         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
7915
7916 2008-03-03  Jan Hubicka  <jh@suse.cz>
7917
7918         PR c++/35262
7919         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
7920         aggressive on inlining cold calls.
7921
7922 2008-03-03  Richard Guenther  <rguenther@suse.de>
7923
7924         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
7925         struct copies into the expression table.
7926         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
7927         (try_to_simplify): Likewise.
7928         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
7929         integral and pointer arguments which do not change the
7930         precision to NOP_EXPRs.
7931         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
7932         VIEW_CONVERT_EXPR case.
7933
7934 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
7935
7936         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
7937         defined in a loop at depth 0 is invariant.
7938         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
7939         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
7940         be called at loop depth 0.
7941
7942 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
7943
7944         PR driver/35420
7945         * gcc.c (process_command): Update copyright notice dates.
7946         * gcov.c (print_version): Likewise.
7947         * gcov-dump.c (print_version): Likewise.
7948         * mips-tfile.c (main): Likewise.
7949         * mips-tdump.c (main): Likewise.
7950
7951 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7952
7953         PR 24924
7954         * c-common.c (flag_permissive): Delete.
7955         (constant_expression_warnings): Check flags first.
7956         (constant_expression_error): New.
7957         * c-common.h (flag_permissive): Delete.
7958         (constant_expression_error): Declare.
7959         * flags.h (flag_permissive): Declare. Update description.
7960         * diagnostic.c (pedwarn): Update.
7961         (permerror): New.
7962         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
7963         (permissive_error_kind): New.
7964         * toplev.c (flag_permissive): Define. Update description.
7965         * toplev.h (permissive_error_kind): Declare.
7966         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
7967         (pedwarn_c90): Use pedantic_warning_kind.
7968         * c-opts.c (c_common_post_options): flag_permissive does not affect
7969         flag_pedantic_errors.
7970
7971 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
7972
7973         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
7974         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
7975         __absvsi2, __absvDI2): Use unsigned arithmetic.
7976
7977 2008-03-02  Andi Kleen  <ak@suse.de>
7978             Richard Guenther  <rguenther@suse.de>
7979
7980         * struct-equiv.c: Remove file.
7981         * cfg_cleanup.c (condjump_equiv_p): Remove.
7982         * Makefile.in (OBJS-common): Remove struct-equiv.o.
7983         (struct-equiv.o): Remove rule.
7984         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
7985         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
7986         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
7987
7988 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7989
7990         * ifcvt.c (noce_process_if_block): Try to handle only the then
7991         block if the else block exists but isn't suitable.
7992
7993 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
7994
7995         PR gcc/35063
7996         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
7997         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
7998         regression from previous patch.
7999
8000 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
8001
8002         PR gcc/35063
8003         * gthr.h: Add __gthread_mutex_destroy as a function that must be
8004         implemented.
8005         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
8006         * gthr-single.h (__gthread_mutex_destroy): Likewise.
8007         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
8008         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
8009         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
8010         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
8011         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
8012         (__gthread_mutex_destroy_function): Rename to
8013         __gthread_mutex_destroy.
8014         * gthr-dce.h (__gthread_mutex_destroy): Call
8015         pthread_mutex_destroy.
8016         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
8017         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
8018         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
8019
8020 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8021
8022         * df-scan.c (df_ref_chain_change_bb): Simplify.
8023         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
8024         set_block_for_insn if there's any change.
8025         * df.h ((df_insn_change_bb): Fix prototype.
8026         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
8027         df_insn_change_bb, don't call set_block_for_insn.
8028         * emit-rtl.c (reorder_insns): Likewise.
8029         * haifa-sched.c (move_insn): Likewise.
8030
8031 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8032
8033         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
8034
8035 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8036
8037         * tree-flow-inline.h (next_readonly_imm_use): Return
8038         NULL_USE_OPERAND_P after the end.
8039
8040 2008-03-01  Richard Guenther  <rguenther@suse.de>
8041
8042         PR tree-optimization/35411
8043         * tree-sra.c (sra_build_assignment): Split conversion to
8044         final type to a separate statement if we are not assigning
8045         to a register.
8046
8047 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8048
8049         * fold-const.c (fold_convertible_p): Correct the logic to follow
8050         that in fold_convert().
8051
8052 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
8053
8054         PR c++/35315
8055         * tree-inline.c (build_duplicate_type): When we make a
8056         duplicate type, make it unique in the canonical types system.
8057
8058 2008-02-29  Tom Tromey  <tromey@redhat.com>
8059
8060         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
8061         input_file_stack_history, input_file_stack_restored): Remove.
8062         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
8063         * input.h (struct file_stack): Remove.
8064         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
8065         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
8066         Likewise.
8067         * diagnostic.h (struct diagnostic_context) <last_module>: Change
8068         type.
8069         (diagnostic_last_module_changed): Add 'map' argument.
8070         (diagnostic_set_last_function): Likewise.
8071         * diagnostic.c (undiagnostic_report_current_module): Iterate using
8072         line map, not input_file_stack.
8073         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
8074
8075 2008-02-29  Paul Brook  <paul@codesourcery.com>
8076
8077         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
8078
8079 2008-02-29  Paul Brook  <paul@codesourcery.com>
8080
8081         * config/arm/ieee754-df.S (muldf3): Use RET macros.
8082
8083 2008-02-29  Richard Guenther  <rguenther@suse.de>
8084
8085         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
8086         vn_lookup_or_add.
8087         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
8088         value for comparing for a store match.
8089         (simplify_unary_expression): Do nothing for SSA_NAMEs.
8090         (try_to_simplify): Do not do a full-blown reference lookup.
8091
8092 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
8093
8094         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
8095         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
8096
8097         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
8098
8099 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
8100
8101         * tree-loop-linear.c (try_interchange_loops): Compare memory access
8102         strides against cache sizes.
8103
8104 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
8105
8106         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
8107         constant to fpul.
8108
8109 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
8110
8111         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
8112         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
8113         is smaller than the original promoted value.
8114         (simplify_subreg): If OP is a SUBREG, try to preserve its
8115         SUBREG_PROMOTED_VAR_P information.
8116
8117 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
8118
8119         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
8120         (VN_INFO_GET): Allocate new objects on the obstack.
8121         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
8122         for rpo_numbers_temp, for consistency.
8123         (free_scc_vn): Free the obstack.
8124
8125 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
8126
8127         * doc/invoke.texi: Document -ftree-loop-distribution.
8128         * tree-loop-distribution.c: New.
8129         * tree-pass.h (pass_loop_distribution): New.
8130         * graphds.h (struct graph): Add htab_t indices.
8131         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
8132         * tree-vectorizer.c (rename_variables_in_loop): Extern.
8133         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
8134         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
8135         * tree-data-ref.c (debug_data_dependence_relations): New.
8136         (dump_data_dependence_relation): Also print data references.
8137         (free_data_ref): Extern.
8138         (same_access_functions): Moved...
8139         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
8140         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
8141         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
8142         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
8143         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
8144         (stmts_from_loop): Skip LABEL_EXPR.
8145         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
8146         New.
8147         (build_rdg): Initialize rdg->indices htab.
8148         (free_rdg, stores_from_loop, ref_base_address,
8149         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
8150         have_similar_memory_accesses_1, ref_base_address_1,
8151         remove_similar_memory_refs): New.
8152         * tree-data-ref.h: Depend on tree-chrec.h.
8153         (debug_data_dependence_relations, free_data_ref): Declared.
8154         (same_access_functions): ... here.
8155         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
8156         New.
8157         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
8158         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
8159         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
8160         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
8161         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
8162         rdg_vertex_for_stmt): Declared.
8163         (struct rdg_edge): Add level.
8164         (RDGE_LEVEL): New.
8165         (free_rdg, stores_from_loop, remove_similar_memory_refs,
8166         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
8167         Declared.
8168         (rdg_has_similar_memory_accesses): New.
8169         * tree-vect-analyze.c: Remove unused static decls.
8170         * lambda.h (dependence_level): New.
8171         * common.opt (ftree-loop-distribution): New.
8172         * tree-flow.h (mark_virtual_ops_in_bb, 
8173         slpeel_tree_duplicate_loop_to_edge_cfg,
8174         rename_variables_in_loop): Declared.
8175         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
8176         (OBJS-common): Add tree-loop-distribution.o.
8177         (tree-loop-distribution.o): New rule.
8178         * tree-cfg.c (mark_virtual_ops_in_bb): New.
8179         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
8180         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
8181
8182 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
8183
8184         PR target/33963
8185         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
8186         other than structures and unions.
8187
8188 2008-02-28  Richard Guenther  <rguenther@suse.de>
8189
8190         Revert:
8191         2008-02-26  Richard Guenther  <rguenther@suse.de>
8192
8193         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8194         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8195         (lookup_decl_from_uid): Declare.
8196         (remove_decl_from_map): Likewise.
8197         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8198         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8199         (decl_for_uid_map): New global hashtable mapping DECL_UID
8200         to the decl tree.
8201         (init_ttree): Allocate it.
8202         (insert_decl_to_uid_decl_map): New helper function.
8203         (make_node_stat): Insert new decls into the map.
8204         (copy_node_stat): Likewise.
8205         (lookup_decl_from_uid): New function.
8206         (remove_decl_from_map): Likewise.
8207         (print_decl_for_uid_map_statistics): New helper.
8208         (dump_tree_statistics): Call it.
8209
8210         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8211         (referenced_var_iterator): Adjust.
8212         (FOR_EACH_REFERENCED_VAR): Adjust.
8213         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8214         (num_referenced_vars): Adjust.
8215         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8216         (first_referenced_var): Remove.
8217         (end_referenced_vars_p): Likewise.
8218         (next_referenced_var): Likewise.
8219         (referenced_var_iterator_set): New helper function.
8220         * tree-dfa.c (referenced_var_lookup): Adjust.
8221         (referenced_var_check_and_insert): Likewise.
8222         (remove_referenced_var): Likewise.
8223         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8224         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8225         (verify_call_clobbering): Likewise.
8226         (verify_memory_partitions): Likewise.
8227         (init_tree_ssa): Allocate bitmap instead of hashtable for
8228         referenced_vars.
8229         (delete_tree_ssa): Adjust.
8230         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8231         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8232         (compute_tag_properties): Likewise.
8233         (set_initial_properties): Likewise.
8234         (find_partition_for): Likewise.
8235         (update_reference_counts): Likewise.
8236         (dump_may_aliases_for): Likewise.
8237         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8238         (add_call_clobber_ops): Likewise.
8239         (add_call_read_ops): Likewise.
8240         (get_asm_expr_operands): Likewise.
8241         * tree-into-ssa.c (dump_decl_set): Likewise.
8242         (update_ssa): Likewise.
8243         * tree-sra.c (scan_function): Likewise.
8244         (decide_instantiations): Likewise.
8245         (scalarize_parms): Likewise.
8246         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8247         (dsa_named_for): Likewise.
8248         * tree-ssa-structalias.c (update_alias_info): Likewise.
8249         (merge_smts_into): Likewise.
8250
8251 2008-02-27  David Daney  <ddaney@avtrex.com>
8252
8253         PR target/34409
8254         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
8255         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
8256         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
8257         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
8258         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
8259
8260 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
8261
8262         PR target/25477
8263         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
8264         (BUILT_IN_NEXTTOWARD): Remove.
8265         (BUILT_IN_NEXTTOWARDF): Ditto.
8266         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
8267         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
8268
8269 2008-02-27  Tom Tromey  <tromey@redhat.com>
8270
8271         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
8272         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
8273
8274 2008-02-27  Jan Beulich  <jbeulich@novell.com>
8275
8276         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
8277         update the respective field on newdecl.
8278
8279 2008-02-27  Revital Eres  <eres@il.ibm.com>
8280
8281         PR rtl-optimization/34999
8282         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
8283         crossing edges that ends with a call insn.
8284         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
8285         call insn and clear the EDGE_CROSSING flag of the crossing edge
8286         when fixing fallthru edges.
8287
8288 2008-02-27  Richard Guenther  <rguenther@suse.de>
8289
8290         PR middle-end/35390
8291         * fold-const.c (fold_unary): Return the correct argument,
8292         converted to the result type.
8293
8294 2008-02-27  Richard Guenther  <rguenther@suse.de>
8295
8296         PR middle-end/34971
8297         * expr.c (expand_expr_real_1): Assert on rotates that operate
8298         on partial modes.
8299         * fold-const.c (fold_binary): Use the types precision, not the
8300         bitsize of the mode if folding rotate expressions.  Build rotates
8301         only for full modes.
8302
8303 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
8304
8305         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
8306         and CPP_PRAGMA_EOL.
8307         * c-pragma.c (pragma_ns_name): New typedef.
8308         (registered_pp_pragmas): New variable.
8309         (c_pp_lookup_pragma): New function.
8310         (c_register_pragma_1): If flag_preprocess_only, do nothing
8311         for non-expanded pragmas, for expanded ones push pragma's
8312         namespace and name into registered_pp_pragmas vector.
8313         (c_invoke_pragma_handler): Register OpenMP pragmas even when
8314         flag_preprocess_only, don't register GCC pch_preprocess
8315         pragma if flag_preprocess_only.
8316         * c-opts.c (c_common_init): Call init_pragma even if
8317         flag_preprocess_only.
8318         * c-pragma.c (c_pp_lookup_pragma): New prototype.
8319         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
8320         cpp_register_pragma if flag_preprocess_only.
8321
8322 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8323
8324         PR c/28800
8325         * c-parser.c (c_parser_translation_unit): Warn for empty
8326         translation unit, not empty source file.
8327
8328 2008-02-26  Paul Brook  <paul@codesourcery.com>
8329
8330         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
8331         operand for Thumb-2.
8332         * config/arm/arm.h (reg_class): Add CORE_REGS.
8333         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
8334         (BASE_REG_CLASS): Use CORE_REGS.
8335         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
8336         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
8337         (REGNO_OK_FOR_INDEX_P): Exclude SP.
8338         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
8339         ARM_REGNO_OK_FOR_INDEX_P.
8340         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
8341         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
8342         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
8343         (ldm/stm peepholes): Ditto.
8344         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
8345         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
8346         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
8347         * config/arm/constraints.md: Enable "k" constraint on ARM.
8348
8349 2008-02-27  Ben Elliston  <bje@au.ibm.com>
8350
8351         * config/rs6000/rs6000.c: Annotate cache line size field in all
8352         instances of struct processor_costs.
8353
8354 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
8355
8356         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
8357         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
8358         jump_bypass): New counters.
8359         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
8360         * dce.c (gate_ud_dce): Same.
8361         (gate_fast_dce): Same.
8362         * dse.c (gate_dse1): New function.
8363         (gate_dse2): New function.
8364         (gate_dse): Merge results of new gate functions.
8365         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
8366         (gate_handle_jump_bypass): Add dbg_cnt.
8367         (gate_handle_gcse): Add dbg_cnt.
8368         * ifcvt.c (gate_handle_if_conversion): Same.
8369         (gate_handle_if_after_combine): Same.
8370         (gate_handle_if_after_reload): Same.
8371         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
8372
8373 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
8374
8375         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
8376         line sizes.
8377         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
8378
8379 2008-02-26  Jason Merrill  <jason@redhat.com>
8380
8381         PR c++/35315
8382         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
8383         alone if it's the naming decl for the type's main variant.
8384
8385 2008-02-26  Tom Tromey  <tromey@redhat.com>
8386
8387         * system.h (USE_MAPPED_LOCATION): Poison.
8388         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
8389         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
8390         (make_goto_expr_edges): Likewise.
8391         (remove_bb): Likewise.
8392         (execute_warn_function_return): Likewise.
8393         * basic-block.h (struct edge_def) <goto_locus>: Change type to
8394         location_t.
8395         * c-common.c (fname_decl): Remove old location code.
8396         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
8397         location code.
8398         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
8399         variant.
8400         (ASM_INPUT_SOURCE_LOCATION): Likewise.
8401         (gen_rtx_ASM_INPUT): Likewise.
8402         (gen_rtx_ASM_INPUT_loc): Likewise.
8403         (get_rtx_asm_OPERANDS): Remove.
8404         * cfglayout.c (insn_locators_alloc): Remove old location code.
8405         (set_curr_insn_source_location): Likewise.
8406         (curr_insn_locator): Likewise.
8407         * print-tree.c (print_node): Remove old location code.
8408         * tree-mudflap.c (mf_varname_tree): Remove old location code.
8409         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
8410         * cfgexpand.c (expand_gimple_cond_expr): Don't use
8411         location_from_locus.
8412         (construct_exit_block): Remove old location code.
8413         * emit-rtl.c (force_next_line_note): Remove old location code.
8414         * profile.c (branch_prob): Remove old location code.
8415         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
8416         LOC_LINE): Remove old-location variants.
8417         * langhooks.c (lhd_print_error_function): Remove old location
8418         code.
8419         * configure, config.in: Rebuilt.
8420         * configure.ac (--enable-mapped-location): Remove.
8421         * c-decl.c (c_init_decl_processing): Remove old location code.
8422         (finish_function): Likewise.
8423         * recog.c (decode_asm_operands): Remove old location code.
8424         * c-pch.c (c_common_read_pch): Remove old location code.
8425         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
8426         variants.
8427         * gimple-low.c (lower_function_body): Remove old location code.
8428         * toplev.c (unknown_location): Remove.
8429         (push_srcloc): Remove old-location variant.
8430         (process_options): Remove old location code.
8431         (lang_dependent_init): Likewise.
8432         * input.h (UNKNOWN_LOCATION): Move definition.
8433         (location_t): Undeprecate.
8434         (source_locus): Remove.
8435         (location_from_locus): Remove.
8436         (struct location_s): Remove.
8437         Remove all old-location code.
8438         (input_line, input_filename): Remove.
8439         * final.c (final_scan_insn): Remove old location code.
8440         * diagnostic.c (diagnostic_build_prefix): Remove
8441         USE_MAPPED_LOCATION test.
8442         * tree.h (gimple_stmt) <locus>: Now a location_t.
8443         (tree_exp) <locus>: Likewise.
8444         (DECL_IS_BUILTIN): Remove old-location variant.
8445         (annotate_with_file_line, annotate_with_locus): Likewise.
8446         (expr_locus, set_expr_locus): Update.
8447         * tree.c (build1_stat): Remove old location code.
8448         (last_annotated_node): Remove.
8449         (annotate_with_file_line): Remove old-location variant.
8450         (annotate_with_locus): Likewise.
8451         (expr_location): Remove old location code.
8452         (set_expr_location): Likewise.
8453         (expr_has_location): Likewise.
8454         (expr_locus): Likewise.
8455         (set_expr_locus): Likewise.
8456         (expr_filename): Don't use location_from_locus.
8457         (expr_lineno): Likewise.
8458         * rtl-error.c (location_for_asm): Remove old location code.
8459         * c-lex.c (cb_line_change): Remove old location code.
8460         (fe_file_change): Likewise.
8461         (cb_def_pragma): Likewise.
8462         (c_lex_with_flags): Likewise.
8463         * gengtype.c (do_typedef): Don't special-case location types.
8464         (define_location_structures): Remove.
8465         (main): Don't call define_location_structures.
8466         * tree-pretty-print.c (dump_implicit_edges): Remove old location
8467         code.
8468
8469 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8470
8471         PR 26264
8472         * builtins.def (BUILT_IN_STDARG_START): Remove.
8473         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
8474         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
8475         * tree-inline.c (inline_forbidden_p_1): Likewise.
8476         
8477 2008-02-26  Richard Guenther  <rguenther@suse.de>
8478
8479         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8480         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8481         (lookup_decl_from_uid): Declare.
8482         (remove_decl_from_map): Likewise.
8483         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8484         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8485         (decl_for_uid_map): New global hashtable mapping DECL_UID
8486         to the decl tree.
8487         (init_ttree): Allocate it.
8488         (insert_decl_to_uid_decl_map): New helper function.
8489         (make_node_stat): Insert new decls into the map.
8490         (copy_node_stat): Likewise.
8491         (lookup_decl_from_uid): New function.
8492         (remove_decl_from_map): Likewise.
8493         (print_decl_for_uid_map_statistics): New helper.
8494         (dump_tree_statistics): Call it.
8495
8496         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8497         (referenced_var_iterator): Adjust.
8498         (FOR_EACH_REFERENCED_VAR): Adjust.
8499         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8500         (num_referenced_vars): Adjust.
8501         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8502         (first_referenced_var): Remove.
8503         (end_referenced_vars_p): Likewise.
8504         (next_referenced_var): Likewise.
8505         (referenced_var_iterator_set): New helper function.
8506         * tree-dfa.c (referenced_var_lookup): Adjust.
8507         (referenced_var_check_and_insert): Likewise.
8508         (remove_referenced_var): Likewise.
8509         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8510         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8511         (verify_call_clobbering): Likewise.
8512         (verify_memory_partitions): Likewise.
8513         (init_tree_ssa): Allocate bitmap instead of hashtable for
8514         referenced_vars.
8515         (delete_tree_ssa): Adjust.
8516         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8517         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8518         (compute_tag_properties): Likewise.
8519         (set_initial_properties): Likewise.
8520         (find_partition_for): Likewise.
8521         (update_reference_counts): Likewise.
8522         (dump_may_aliases_for): Likewise.
8523         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8524         (add_call_clobber_ops): Likewise.
8525         (add_call_read_ops): Likewise.
8526         (get_asm_expr_operands): Likewise.
8527         * tree-into-ssa.c (dump_decl_set): Likewise.
8528         (update_ssa): Likewise.
8529         * tree-sra.c (scan_function): Likewise.
8530         (decide_instantiations): Likewise.
8531         (scalarize_parms): Likewise.
8532         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8533         (dsa_named_for): Likewise.
8534         * tree-ssa-structalias.c (update_alias_info): Likewise.
8535         (merge_smts_into): Likewise.
8536
8537 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8538
8539         PR 34351
8540         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
8541         * c-opts.c (c_common_handle_option): Wall enables
8542         Wvolatile-register-var.
8543         * common.opt: Move Wvolatile-register-var to...
8544         * c.opt: ...here.
8545         
8546 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8547
8548         * common.opt (Wlarger-than=): New.
8549         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
8550         -Wlarger-than=.
8551         * opts.c (common_handle_option): Handle -Wlarger-than=.
8552         * optc-gen.awk: Likewise.
8553         * opth-gen.awk: Likewise.
8554         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
8555         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8556         
8557 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8558
8559         * c-common.c (match_case_to_enum_1): Add appropriate
8560         OPT_W* parameter to warning.
8561         (c_do_switch_warnings): Likewise.
8562         * c-typeck.c (warning_init): Add one more parameter following
8563         'warning' function.
8564         (push_init_level): Update call to warning_init.
8565         (pop_init_level): Likewise.
8566         (add_pending_init): Likewise.
8567         (output_init_element: Likewise.
8568
8569 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8570
8571         PR 28322
8572         * toplev.c (toplev_main): If there are warnings or error, print
8573         errors for ignored options.
8574         * opts.c (ignored_options): New static variable.
8575         (postpone_unknown_option_error): New.
8576         (print_ignored_options): New.
8577         (handle_option): Postpone errors for unknown -Wno-* options.
8578         * opts.h (print_ignored_options): Declare.
8579         
8580 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
8581
8582         * config/mips/mips.md (loadgp_blockage, blockage): Change type
8583         to "ghost".
8584
8585 2008-02-25  Richard Guenther  <rguenther@suse.de>
8586
8587         Revert:
8588         2008-02-25  Richard Guenther  <rguenther@suse.de>
8589
8590         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8591         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8592         (lookup_decl_from_uid): Declare.
8593         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8594         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8595         (decl_for_uid_map): New global hashtable mapping DECL_UID
8596         to the decl tree.
8597         (init_ttree): Allocate it.
8598         (insert_decl_to_uid_decl_map): New helper function.
8599         (make_node_stat): Insert new decls into the map.
8600         (copy_node_stat): Likewise.
8601         (lookup_decl_from_uid): New function.
8602         (print_decl_for_uid_map_statistics): New helper.
8603         (dump_tree_statistics): Call it.
8604
8605         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8606         (referenced_var_iterator): Adjust.
8607         (FOR_EACH_REFERENCED_VAR): Adjust.
8608         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8609         (num_referenced_vars): Adjust.
8610         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8611         (first_referenced_var): Remove.
8612         (end_referenced_vars_p): Likewise.
8613         (next_referenced_var): Likewise.
8614         (referenced_var_iterator_set): New helper function.
8615         * tree-dfa.c (referenced_var_lookup): Adjust.
8616         (referenced_var_check_and_insert): Likewise.
8617         (remove_referenced_var): Likewise.
8618         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8619         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8620         (verify_call_clobbering): Likewise.
8621         (verify_memory_partitions): Likewise.
8622         (init_tree_ssa): Allocate bitmap instead of hashtable for
8623         referenced_vars.
8624         (delete_tree_ssa): Adjust.
8625         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8626         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8627         (compute_tag_properties): Likewise.
8628         (set_initial_properties): Likewise.
8629         (find_partition_for): Likewise.
8630         (update_reference_counts): Likewise.
8631         (dump_may_aliases_for): Likewise.
8632         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8633         (add_call_clobber_ops): Likewise.
8634         (add_call_read_ops): Likewise.
8635         (get_asm_expr_operands): Likewise.
8636         * tree-into-ssa.c (dump_decl_set): Likewise.
8637         (update_ssa): Likewise.
8638         * tree-sra.c (scan_function): Likewise.
8639         (decide_instantiations): Likewise.
8640         (scalarize_parms): Likewise.
8641         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8642         (dsa_named_for): Likewise.
8643         * tree-ssa-structalias.c (update_alias_info): Likewise.
8644         (merge_smts_into): Likewise.
8645
8646 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8647
8648         PR fortran/29549
8649         * doc/invoke.texi (-fcx-limited-range): Document new option.
8650         * toplev.c (process_options): Handle -fcx-fortran-rules.
8651         * common.opt: Add documentation for -fcx-fortran-rules.
8652
8653 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8654
8655         PR c/35162
8656         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
8657         actual behaviour and C99.
8658         
8659 2008-02-26  Ben Elliston  <bje@au.ibm.com>
8660
8661         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
8662         (ASM_CPU_POWER6_SPEC): Likewise.
8663         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
8664         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
8665         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
8666
8667 2008-02-25  Richard Guenther  <rguenther@suse.de>
8668
8669         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8670         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8671         (lookup_decl_from_uid): Declare.
8672         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8673         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8674         (decl_for_uid_map): New global hashtable mapping DECL_UID
8675         to the decl tree.
8676         (init_ttree): Allocate it.
8677         (insert_decl_to_uid_decl_map): New helper function.
8678         (make_node_stat): Insert new decls into the map.
8679         (copy_node_stat): Likewise.
8680         (lookup_decl_from_uid): New function.
8681         (print_decl_for_uid_map_statistics): New helper.
8682         (dump_tree_statistics): Call it.
8683
8684         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8685         (referenced_var_iterator): Adjust.
8686         (FOR_EACH_REFERENCED_VAR): Adjust.
8687         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8688         (num_referenced_vars): Adjust.
8689         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8690         (first_referenced_var): Remove.
8691         (end_referenced_vars_p): Likewise.
8692         (next_referenced_var): Likewise.
8693         (referenced_var_iterator_set): New helper function.
8694         * tree-dfa.c (referenced_var_lookup): Adjust.
8695         (referenced_var_check_and_insert): Likewise.
8696         (remove_referenced_var): Likewise.
8697         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8698         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8699         (verify_call_clobbering): Likewise.
8700         (verify_memory_partitions): Likewise.
8701         (init_tree_ssa): Allocate bitmap instead of hashtable for
8702         referenced_vars.
8703         (delete_tree_ssa): Adjust.
8704         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8705         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8706         (compute_tag_properties): Likewise.
8707         (set_initial_properties): Likewise.
8708         (find_partition_for): Likewise.
8709         (update_reference_counts): Likewise.
8710         (dump_may_aliases_for): Likewise.
8711         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8712         (add_call_clobber_ops): Likewise.
8713         (add_call_read_ops): Likewise.
8714         (get_asm_expr_operands): Likewise.
8715         * tree-into-ssa.c (dump_decl_set): Likewise.
8716         (update_ssa): Likewise.
8717         * tree-sra.c (scan_function): Likewise.
8718         (decide_instantiations): Likewise.
8719         (scalarize_parms): Likewise.
8720         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8721         (dsa_named_for): Likewise.
8722         * tree-ssa-structalias.c (update_alias_info): Likewise.
8723         (merge_smts_into): Likewise.
8724
8725 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
8726
8727         PR target/35258
8728         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
8729         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
8730         * alias.h (nonoverlapping_memrefs_p): Likewise.
8731
8732 2008-02-25  Jan Beulich  <jbeulich@novell.com>
8733
8734         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
8735         * config/i386/netware-libgcc.exp: Add __bswap?i2,
8736         __emultls_get_address, __emultls_register_common,
8737         __floatundi?f, and _Unwind_GetIPInfo.
8738         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
8739         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
8740         (gen_regparm_prefix): Likewise.
8741         (i386_nlm_encode_section_info): Sync with
8742         config/i386/winnt.c:i386_pe_encode_section_info().
8743         (i386_nlm_maybe_mangle_decl_assembler_name): New.
8744         i386_nlm_mangle_decl_assembler_name): New.
8745         (netware_override_options): New.
8746         * config/i386/netware.h (netware_override_options): Declare.
8747         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
8748         (i386_nlm_mangle_decl_assembler_name): Declare.
8749         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
8750
8751 2008-02-25  Ben Elliston  <bje@au.ibm.com>
8752
8753         PR other/32948
8754         * c-decl.c (grokdeclarator): Remove unused local variables
8755         `typedef_type' and `type_as_written'.
8756         * bb-reorder.c
8757         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
8758         unused local variable `has_hot_blocks'.
8759         (fix_crossing_conditional_branches): Remove unused local variable
8760         `prev_bb'.
8761         
8762 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
8763
8764         PR middle-end/19984
8765         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
8766         using DEF_C99_BUILTIN.
8767         (BUILT_IN_NANF): Ditto.
8768         (BUILT_IN_NANL): Ditto.
8769
8770 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
8771             Revital Eres  <eres@il.ibm.com>
8772
8773         * modulo-sched.c (calculate_must_precede_follow): Address TODO
8774         regarding the order of two dependent insns in the same row.
8775
8776 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
8777
8778         * stor-layout.c (layout_decl): Do not bump the alignment of a
8779         bit-field to more than byte alignment if it is packed.
8780
8781 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
8782
8783         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
8784         e300c2 and e300c3.
8785
8786 2008-02-24  Diego Novillo  <dnovillo@google.com>
8787
8788         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
8789
8790         PR 33738
8791         * tree-vrp.c (vrp_evaluate_conditional): With
8792         -Wtype-limits, emit a warning when comparing against a
8793         constant outside the natural range of OP0's type.
8794         * c.opt (Wtype-limits): Move ...
8795         * common.opt (Wtype-limits): ... here.
8796
8797 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
8798
8799         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
8800         * config/rs6000/e300c2c3.md: New file.
8801         * config/rs6000/rs6000.c (processor_costs): Add new costs for
8802         e300c2 and e300c3.
8803         (rs6000_override_options): Add e300c2 and e300c3 cases to
8804         processor_target_table. Do not allow usage of Altivec or Spe
8805         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
8806         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
8807         * config/rs6000/rs6000.h (processor_type): Add
8808         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
8809         (ASM_CPU_SPEC): Add e300c2 and e300c3.
8810         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
8811         and ppce300c3. Include e300c2c3.md.
8812
8813 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
8814
8815         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
8816         instead of TARGET_STRICT_ALIGN.
8817
8818 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
8819
8820         * explow.c (memory_address): Assert that the generated address is
8821         valid.
8822
8823 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8824
8825         PR target/25477
8826         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
8827         * config/darwin-ppc-ldouble-patch.def: New file.
8828         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
8829         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
8830         SUBTARGET_INIT_BUILTINS if defined.
8831         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
8832         New functions.
8833
8834 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8835
8836         PR rtl-opt/33512
8837         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
8838         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
8839
8840 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8841
8842         PR pch/35027
8843         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
8844         file" warning condtional on -Winvalid-PCH.
8845
8846 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
8847
8848         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
8849
8850 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
8851
8852         PR target/22076
8853         PR target/34256 
8854         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
8855         prevent reload from using MMX registers.
8856         (*mov<mode>_internal): Ditto.
8857         (*movv2sf_internal_rex64): Ditto.
8858         (*movv2sf_internal): Ditto.
8859
8860 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8861
8862         PR documentation/31569
8863         * doc/install.texi2html: Use makeinfo --no-number-sections.
8864
8865 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8866
8867         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
8868         ensure that we can address an entire entity > 8 bytes.  Don't
8869         generate reg+reg addressing for such data.
8870
8871 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8872
8873         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
8874         strings when optimizing for size, unless the target cares about
8875         alignment.
8876
8877 2008-02-22  Tom Tromey  <tromey@redhat.com>
8878
8879         * regclass.c (current_pass): Remove declaration.
8880
8881 2008-02-22  Anatoly Sokolov <aesok@post.ru>
8882
8883         * config/avr/libgcc.S (__RAMPZ__): Define.
8884         (__do_copy_data): Add for devices with 128KB code memory.
8885
8886 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8887
8888         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
8889         Use spe_abi.
8890         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
8891
8892 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
8893
8894         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
8895         GENNONACR_REGS.
8896
8897 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8898
8899         PR c/19999
8900         * c-typeck.c (build_binary_op): Warn about floating point
8901         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
8902
8903 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
8904
8905         PR target/34526
8906         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
8907         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
8908         add vrsave.
8909         (rs6000_override_options): Set altivec_abi as default, not override,
8910         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
8911         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
8912         is used; use new member spe_abi.
8913         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
8914         spe_abi and altivec_abi.
8915
8916 2008-02-22  Tomas Bily  <tbily@suse.cz>
8917
8918         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
8919
8920 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8921
8922         PR bootstrap/35273
8923         * config.build (build_file_translate): Set to `CMD //c' only if
8924         it works.
8925         * Makefile.in (build_file_translate): Improve comment.
8926
8927 2008-02-21  Jan Hubicka  <jh@suse.cz>
8928
8929         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
8930         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
8931         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
8932
8933 2008-02-21  Michael Matz  <matz@suse.de>
8934
8935         PR target/35264
8936         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
8937
8938 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
8939
8940         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
8941         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
8942         as insn constraint.
8943         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
8944         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
8945         SSE_VEC_FLOAT_MODE_P as insn constraint.
8946         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
8947         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
8948         sse4a_movntdf using MODEF mode iterator.
8949         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
8950         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
8951         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
8952         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
8953         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
8954         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
8955         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
8956
8957 2008-02-21  Richard Guenther  <rguenther@suse.de>
8958
8959         * tree.def (PAREN_EXPR): New tree code.
8960         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
8961         and PAREN_EXPR.
8962         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
8963         * expr.c (expand_expr_real_1): Likewise.
8964         * tree-inline.c (estimate_num_insns_1): Likewise.
8965         * tree-complex.c (expand_complex_move): Likewise.
8966         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
8967         as plain x.
8968
8969 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8970
8971         PR target/35225
8972         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
8973
8974 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8975
8976         PR target/35190
8977         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
8978
8979         * config/sh/sh.c (find_barrier): Don't go past
8980         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
8981
8982 2008-02-20  DJ Delorie  <dj@redhat.com>
8983
8984         * config/h8300/h8300.md (insv): Force source operand to be a register.
8985
8986         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
8987         as a jump, not as a plain insn.
8988         
8989 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
8990
8991         * doc/invoke.texi (Warning Options): Add new option
8992         -Wframe-larger-than=.
8993         (-Wframe-larger-than): Document.
8994
8995         * flags.h (warn_frame_larger_than, frame_larger_than_size):
8996         Add declarations for new option variables.
8997
8998         * final.c (final_start_function): Check the frame size
8999         before emission and issue a Wframe-larger-than warning.
9000
9001         * opts.c (warn_frame_larger_than, frame_larger_than_size):
9002         Add definitions for new option variables.
9003         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
9004
9005         * common.opt (Wframe-larger-than=): New option.
9006
9007 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
9008
9009         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
9010         (<sse>_div<mode>3): Ditto.
9011         (<sse>_vmdiv<mode>3): Ditto.
9012         (<sse>_vmsqrt<mode>2): Ditto.
9013         (*smax<mode>3): Ditto.
9014         (sse5_frcz<mode>2): Ditto.
9015         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
9016         as insn constraint.
9017
9018 2008-02-20  Richard Guenther  <rguenther@suse.de>
9019
9020         PR middle-end/35265
9021         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
9022         be happy with INTEGRAL_TYPE_P.
9023
9024 2008-02-20  Richard Guenther  <rguenther@suse.de>
9025
9026         * fold-const.c (split_tree): Associate floatig-point expressions
9027         if flag_associative_math is set.
9028
9029 2008-02-20  Richard Guenther  <rguenther@suse.de>
9030
9031         * tree.h (fold_real_zero_addition_p): Declare.
9032         * fold-const.c (fold_real_zero_addition_p): Export.
9033         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
9034         floating-point operations with zero and one.
9035
9036 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
9037
9038         * doc/install.texi: Correct references to CFLAGS, replacing them
9039         with BOOT_CFLAGS.  Document flags used during bootstrap for
9040         target libraries.
9041                                 
9042 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
9043
9044         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
9045         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
9046         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
9047         insn constraint.
9048         (smin<mode>3): Ditto from similar patterns.
9049         (smax<mode>3): Ditto.
9050         (*ieee_smin<mode>3): Ditto.
9051         (*ieee_smax<mode>3): Ditto.
9052         * config/i386/sse.md (sse): New mode attribute.
9053         (mov<mode>): Macroize expander from movv4sf and movv2df using
9054         SSEMODEF2P mode iterator.
9055         (<sse>_movnt<mode>): Ditto from similar patterns. Use
9056         SSE_VEC_FLOAT_MODE_P as insn constraint.
9057         (storent<mode>): Ditto.
9058         (storent<mode>): Macroize expander from storentsf and storentdf using
9059         MODEF mode iterator.
9060         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
9061         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
9062         (abs<mode>2): Ditto from similar patterns.
9063         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
9064         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
9065         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
9066         (<sse>_vmsqrt<mode>2): Ditto.
9067         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
9068         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
9069         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
9070         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
9071         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
9072         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
9073         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
9074         insn constraint.
9075         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
9076         iterator and SSE_FLOAT_MODE_P as insn constraint.
9077         (<sse>_ucomi): Ditto from similar patterns.
9078         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
9079         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
9080         SSE_VEC_FLOAT_MODE_P as insn constraint.
9081         (vcond<mode>): Ditto from similar patterns.
9082         (and<mode>3, *and<mode>3): Ditto.
9083         (<sse>_nand<mode>3): Ditto.
9084         (ior<mode>3, *ior<mode>3): Ditto.
9085         (xor<mode>3, *xor<mode>3): Ditto.
9086         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
9087         iterator and SSE_FLOAT_MODE_P as insn constraint.
9088         (*nand<mode>3): Ditto from similar patterns.
9089         (*ior<mode>3): Ditto.
9090         (*xor<mode>3): Ditto.
9091
9092 2008-02-20  Ira Rosen  <irar@il.ibm.com>
9093
9094         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
9095         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
9096         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
9097
9098 2008-02-19  Jan Hubicka  <jh@suse.cz>
9099
9100         * predict.c (tree_bb_level_predictions): Remove variable next
9101         mistakely introduced by previous commit.
9102
9103 2008-02-19  Jan Hubicka  <jh@suse.cz>
9104
9105         * predict.c (predict_paths_leading_to): Rewrite.
9106         (predict_paths_for_bb): New.
9107         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
9108
9109 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9110
9111         PR bootstrap/35218
9112         * Makefile.in (build_file_translate): New.
9113         (gcc-vers.texi): Use it for translating $(abs_srcdir).
9114         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
9115         * configure.ac (build_file_translate): Substitute it.
9116         * configure: Regenerate.
9117
9118 2008-02-19  Jan Hubicka  <jh@suse.cz>
9119
9120         PR rtl-optimization/34408
9121         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
9122         invalid sharing.
9123
9124 2008-02-19  Jan Hubicka  <jh@suse.cz>
9125
9126         PR middle-end/28779
9127         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
9128         call_expr.
9129
9130 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
9131
9132         PR Ada/35186
9133         * config/i386/i386-modes.def: Revert the last DI alignment
9134         change until Ada people can look into it.
9135
9136 2008-02-19  Nick Clifton  <nickc@redhat.com>
9137
9138         * opts.c (print_specific_help): Fix typo in --help text.
9139
9140 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
9141
9142         PR target/35239
9143         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
9144         32-bit inline asm without asm alternatives for host GCC < 3.0.
9145
9146 2008-02-19  Richard Guenther  <rguenther@suse.de>
9147
9148         PR tree-optimization/34989
9149         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
9150         Allow propagation to INDIRECT_REF if we can simplify only.
9151
9152 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9153
9154         * c-common.c (warn_for_collisions_1): Use appropriate option when
9155         warning.
9156
9157 2008-02-19  Nick Clifton  <nickc@redhat.com>
9158
9159         PR other/31349
9160         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
9161         (handle_options): Fix indentation.
9162         (print_filtered_help): If no language-specific options were
9163         displayed tell the user how to list all the options supported by
9164         the language's front-end.
9165         (print_specific_help): Fix indentation and remove duplicate line.
9166         (common_handle_option): Handle the -v option.
9167         For --help enable the display of undocumented options if the -v
9168         switch has been included on the command line.
9169         For --help= check for overlaps in the arguments between the option
9170         classes and the language names and issue a warning when they
9171         cannot be disambiguated.
9172         * c.opt (v): Pass on to the common option handler.
9173
9174 2008-02-19  Revital Eres  <eres@il.ibm.com> 
9175
9176         * modulo-sched.c (sms_schedule): Change dump message when
9177         create_ddg function fails.
9178         (try_scheduling_node_in_cycle): Rename row to cycle.
9179         (print_partial_schedule): Rename CYCLE to ROW.
9180
9181 2008-02-19  Christian Bruel  <christian.bruel@st.com>
9182             Zdenek Dvorak  <ook@ucw.cz>
9183
9184         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
9185
9186 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
9187
9188         PR target/33555
9189         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
9190         (*x86_movdicc_0_m1_se): Ditto.
9191
9192 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
9193
9194         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
9195         (CMPtype): Define as __gcc_CMPtype.
9196         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
9197         (CMPtype): Define as __gcc_CMPtype.
9198
9199 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
9200
9201         Support valgrind 3.3 for --enable-checking=valgrind.
9202         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
9203         here.
9204         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
9205         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
9206         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
9207         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
9208         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
9209         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
9210         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
9211         respectively.
9212         * ggc-zone.c: Similar.
9213         * ggc-page.c: Similar.
9214
9215 2008-02-19  Paul Brook  <paul@codesourcery.com>
9216
9217         PR target/35071
9218         * config/arm/ieee754-df.S: Fix do_it typo.
9219         * config/arm/ieee754-sf.S: Fix do_it typo.
9220
9221 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
9222
9223         PR target/35189
9224         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
9225         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
9226         (OPTION_MASK_ISA_SSE_SET): Likewise.
9227         (OPTION_MASK_ISA_SSE2_SET): Likewise.
9228         (OPTION_MASK_ISA_SSE3_SET): Likewise.
9229         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
9230         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
9231         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
9232         (OPTION_MASK_ISA_SSE4_SET): Likewise.
9233         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
9234         (OPTION_MASK_ISA_SSE5_SET): Likewise.
9235         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
9236         (OPTION_MASK_ISA_MMX_UNSET): Updated.
9237         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
9238         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
9239         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
9240         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
9241         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
9242         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
9243         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
9244         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
9245         (OPTION_MASK_ISA_SSE4): Removed.
9246         (ix86_handle_option): Turn on bits in ix86_isa_flags and
9247         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
9248         (override_options): Don't turn on implied SSE/MMX bits in
9249         ix86_isa_flags.
9250
9251 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
9252
9253         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
9254         32bit host.
9255
9256 2008-02-18  Joey Ye  <joey.ye@intel.com>
9257
9258         PR middle-end/34921
9259         * tree-nested.c (insert_field_into_struct): Set type alignment
9260         to field alignment if the former is less than the latter.
9261
9262 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
9263
9264         * BASE-VER: Set to 4.4.0.
9265
9266 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9267
9268         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
9269         * doc/cfg.texi: Likewise.
9270         * doc/extend.texi: Likewise.
9271         * doc/gty.texi: Likewise.
9272         * doc/invoke.texi: Likewise.
9273         * doc/loop.texi: Likewise.
9274         * doc/md.texi: Likewise.
9275         * doc/passes.texi: Likewise.
9276         * doc/rtl.texi: Likewise.
9277         * doc/sourcebuild.texi: Likewise.
9278         * doc/tm.texi: Likewise.
9279         * doc/tree-ssa.texi: Likewise.
9280
9281 2008-02-17  Richard Guenther  <rguenther@suse.de>
9282
9283         PR middle-end/35227
9284         * tree-complex.c (init_parameter_lattice_values): Handle parameters
9285         without default definition.
9286
9287 2008-02-17  Richard Guenther  <rguenther@suse.de>
9288
9289         PR tree-optimization/35231
9290         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
9291         if A | B != 1.
9292
9293 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
9294
9295         Revert:
9296         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
9297         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
9298         libgcc_cmp_return mode.
9299
9300 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9301
9302         PR c/28368
9303         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
9304
9305 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
9306
9307         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
9308         multilibs.
9309
9310 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9311
9312         * doc/c-tree.texi: Use `@.' where appropriate.
9313         * doc/extend.texi: Likewise.
9314         * doc/install.texi: Likewise.
9315         * doc/invoke.texi: Likewise.
9316         * doc/loop.texi: Likewise.
9317         * doc/makefile.texi: Likewise.
9318         * doc/md.texi: Likewise.
9319         * doc/passes.texi: Likewise.
9320         * doc/standards.texi: Likewise.
9321         * doc/tm.texi: Likewise.
9322
9323 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
9324
9325         PR middle-end/35196
9326         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
9327         in entry_bb.
9328         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
9329         rather than in entry_bb.
9330
9331 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9332
9333         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
9334         libgcc_cmp_return mode.
9335
9336 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
9337
9338         PR middle-end/35130
9339         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
9340         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
9341
9342 2008-02-15  Richard Guenther  <rguenther@suse.de>
9343             Zdenek Dvorak  <ook@ucw.cz>
9344
9345         PR tree-optimization/35164
9346         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
9347         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
9348         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
9349         Only propagate addresses which do not have abnormal SSA_NAMEs
9350         in their operands.
9351
9352 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
9353
9354         PR target/35088
9355         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
9356
9357 2008-02-15  Jan Hubicka  <jh@suse.cz>
9358
9359         PR middle-end/35149
9360         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
9361
9362 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9363
9364         PR middle-end/34621
9365         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
9366         when calculating alignment_pad.
9367
9368 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9369
9370         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
9371         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
9372         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
9373         and STACK_BOUNDARY define.
9374
9375 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
9376
9377         PR preprocessor/35061
9378         * c-pragma.c (handle_pragma_pop_macro): Check that
9379         pushed_macro_table has been allocated.
9380
9381 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
9382
9383         PR middle-end/35136
9384         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
9385         (force_gimple_operand): Likewise.
9386         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
9387         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
9388         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
9389         (find_interesting_uses_address): Check addressability and alignment
9390         of the base expression only after substituting bases of IVs into it.
9391
9392 2008-02-14  Michael Matz  <matz@suse.de>
9393
9394         PR target/34930
9395         * function.c (instantiate_virtual_regs_in_insn): Reload address
9396         before falling back to reloading the whole operand.
9397
9398 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
9399
9400         * config/s390/s390.c (s390_mainpool_start): Emit the pool
9401         before the first section switch note.
9402
9403 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9404
9405         * doc/bugreport.texi: Update copyright years.
9406         * doc/c-tree.texi: Likewise.
9407         * doc/cfg.texi: Likewise.
9408         * doc/cpp.texi: Likewise.
9409         * doc/cppinternals.texi: Likewise.
9410         * doc/fragments.texi: Likewise.
9411         * doc/frontends.texi: Likewise.
9412         * doc/gcc.texi: Likewise.
9413         * doc/gty.texi: Likewise.
9414         * doc/hostconfig.texi: Likewise.
9415         * doc/implement-c.texi: Likewise.
9416         * doc/libgcc.texi: Likewise.
9417         * doc/loop.texi: Likewise.
9418         * doc/makefile.texi: Likewise.
9419         * doc/options.texi: Likewise.
9420         * doc/passes.texi: Likewise.
9421         * doc/rtl.texi: Likewise.
9422         * doc/sourcebuild.texi: Likewise.
9423         * doc/standards.texi: Likewise.
9424         * doc/tree-ssa.texi: Likewise.
9425         * doc/trouble.texi: Likewise.
9426
9427         * doc/extend.texi: Use @: or add comma where appropriate.
9428         * doc/invoke.texi: Likewise.
9429         * doc/tm.texi: Likewise.
9430
9431 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
9432
9433         PR target/34393
9434         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
9435         to a reg.
9436
9437 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
9438
9439         * doc/md.texi (clz, ctz): Add reference.
9440         * doc/rtl.texi (clz, ctz): Likewise.
9441
9442 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9443
9444         PR other/35148
9445         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
9446         srcdir.
9447
9448 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
9449
9450         * config/s390/s390.c (struct constant_pool): New field
9451         emit_pool_after added.
9452         (s390_mainpool_start): Set the emit_pool_after flag according
9453         to the section switch notes.
9454         (s390_mainpool_finish): Consider emit_pool_after when emitting
9455         the literal pool at the end of the function.
9456         (s390_chunkify_start): Force literal pool splits at section
9457         switch notes.
9458
9459 2008-02-13  Michael Matz  <matz@suse.de>
9460
9461         PR debug/35065
9462         * var-tracking.c (clobber_variable_part): Correctly traverse the
9463         list.
9464
9465 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9466
9467         PR 29673
9468         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
9469         Add -fdump-ipa-inline.
9470         * tree-dump.c (dump_files): Remove tree-inlined dump.
9471         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
9472         
9473 2008-02-12  Richard Guenther  <rguenther@suse.de>
9474
9475         PR tree-optimization/35171
9476         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
9477         default defs.
9478
9479 2008-02-12  Richard Guenther  <rguenther@suse.de>
9480
9481         PR middle-end/35163
9482         * fold-const.c (fold_widened_comparison): Use get_unwidened in
9483         value-preserving mode.  Disallow final truncation.
9484
9485 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
9486
9487         PR middle-end/35136
9488         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
9489         code from here to...
9490         (force_gimple_operand): ...here.
9491
9492 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
9493
9494         PR c++/35144
9495         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
9496         non-compatible pointers.
9497         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
9498         different FIELD_DECLs, try harder by comparing field offsets, sizes
9499         and types.
9500
9501         PR inline-asm/35160
9502         * function.c (match_asm_constraints_1): Don't replace the same input
9503         multiple times.
9504
9505 2008-02-12  Anatoly Sokolov <aesok@post.ru>
9506
9507         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
9508         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
9509         (expand_epilogue): Restore RAMPZ register.
9510         * config/avr/avr.md (RAMPZ_ADDR): New constant.
9511
9512 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
9513
9514         * config/i386/cygwin.asm: (__alloca): Correct calling
9515         convention and alignment.
9516         (__chkstk): Force 8 byte stack alignment.
9517
9518 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
9519             Richard Guenther  <rguenther@suse.de>
9520
9521         PR tree-optimization/33992
9522         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
9523         the zero we compare against.
9524
9525 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
9526
9527         PR libfortran/35063
9528         * gthr-win32.h (__gthread_mutex_destroy_function): New function
9529         to CloseHandle after unlocking to prevent accumulation of handle
9530         count.
9531
9532 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9533
9534         PR middle_end/34150
9535         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
9536         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
9537         and update LABEL_NUSES during and after reload.
9538
9539 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
9540
9541         PR middle-end/34627
9542         * combine.c (simplify_if_then_else): Make sure the comparison is
9543         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
9544
9545 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
9546
9547         PR bootstrap/35051
9548         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
9549         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
9550         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
9551         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
9552         * tree.h (get_type_static_bounds): Likewise.
9553
9554 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9555
9556         * doc/invoke.texi (Option Summary, C++ Dialect Options)
9557         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9558         Make -Wfoo language annotations match what the compiler outputs.
9559
9560 2008-02-08  Sa Liu  <saliu@de.ibm.com>
9561
9562         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
9563         intrinsics spu_convts, spu_convtu, spu_convtf.
9564
9565 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
9566
9567         * doc/extend.texi (Function Attributes) <noinline>: Mention
9568         asm ("") as method to keep calls.
9569
9570 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9571
9572         PR other/32754
9573         * doc/options.texi (Options): Replace references to opts.sh with
9574         optc-gen.awk.
9575         * opts-common.c: Likewise.
9576         * optc-gen.awk: Likewise.
9577         
9578 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
9579
9580         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
9581
9582 2008-02-07  Richard Henderson  <rth@redhat.com>
9583
9584         PR rtl-opt/33410
9585         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
9586         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
9587         funny mode.
9588
9589 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
9590
9591         PR tree-optimization/35085
9592         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
9593         for operand entry oe2 in addition to operand entry oe3 in order to
9594         expose more opportunities for vectorizer sum reduction.
9595
9596 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9597
9598         PR other/35107
9599         * Makefile.in (LIBS): Remove $(GMPLIBS).
9600         (cc1-dummy, cc1): Add $(GMPLIBS).
9601
9602 2008-02-06  Jan Hubicka  <jh@suse.cz>
9603
9604         PR target/23322
9605         * i386.md (moddf_integer): Do not produce partial memory stalls for
9606         targets where it hurts.
9607
9608 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
9609
9610         PR target/35083
9611         * optabs.c (expand_float): Do not check for decimal modes when
9612         expanding unsigned integer through signed conversion.
9613
9614 2008-02-06  Nick Clifton  <nickc@redhat.com>
9615
9616         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
9617         inside the clobber with a match_operand and duplicated operand
9618         number in the constraint.
9619         (ineqbranchsi): Delete redundant comment.
9620
9621 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
9622
9623         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
9624         builtin_define ("__USE_INIT_FINI__").
9625         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
9626         -msx multilibs.
9627         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
9628
9629 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9630
9631         PR documentation/30330
9632         * doc/invoke.texi (C++ Dialect Options)
9633         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9634         For each warning option -Wfoo that allows -Wno-foo, ensure both
9635         -Wfoo and -Wno-foo are listed in the option index.  Fix index
9636         entry of -Wswitch-default, index -Wnormalized= including the
9637         `=', and -Wlarger-than-@var{len} including @var{len}.
9638
9639 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9640
9641         * config/i386/i386.md (floatunssisf2): Use
9642         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
9643         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
9644         Macroize expander using MODEF mode iterator.
9645
9646 2008-02-05  Diego Novillo  <dnovillo@google.com>
9647
9648         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
9649
9650         PR 33738
9651         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
9652
9653 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9654
9655         PR other/35070
9656         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
9657
9658 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
9659
9660         PR target/35084
9661         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
9662         to indicate if a message should be generated.
9663         (init_cumulative_args): Updated.
9664         (function_value_32): Likewise.
9665
9666 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
9667
9668         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
9669
9670 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9671
9672         PR target/35083
9673         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
9674         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
9675
9676 2008-02-04  Diego Novillo  <dnovillo@google.com>
9677
9678         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
9679
9680         PR 33738
9681         * tree-vrp.c (vrp_evaluate_conditional): With
9682         -Wtype-limits, emit a warning when comparing against a
9683         constant outside the natural range of OP0's type.
9684
9685 2008-02-04  Richard Guenther  <rguenther@suse.de>
9686
9687         PR middle-end/33631
9688         * expr.c (count_type_elements): Give for unions instead of
9689         guessing.
9690
9691 2008-02-04  Richard Guenther  <rguenther@suse.de>
9692
9693         PR middle-end/35043
9694         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
9695         to TYPE_DOMAINs base type instead of using bitsizetype here.
9696
9697 2008-02-03  Jason Merrill  <jason@redhat.com>
9698
9699         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
9700
9701 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9702
9703         PR other/29972
9704         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
9705         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
9706         (RS/6000 and PowerPC Options): Fix typos and markup.
9707         * doc/passes.texi (Tree-SSA passes): Likewise.
9708
9709 2008-02-02  Michael Matz  <matz@suse.de>
9710
9711         PR target/35045
9712         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
9713         from record_last_reg_set_info.
9714         (record_last_reg_set_info): Take an RTX argument, iterate over all
9715         constituent hardregs.
9716         (record_last_set_info, record_opr_changes): Change calls to
9717         new signature or to record_last_reg_set_info_regno.
9718
9719 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
9720
9721         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
9722
9723 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
9724
9725         PR rtl-optimization/34773
9726         * reg-notes.def (EQUAL): Mention significance of combination of
9727         REG_EQUAL and REG_RETVAL.
9728         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
9729         insn that has a REG_RETVAL.
9730
9731 2008-02-01  Roger Sayle  <roger@eyesopen.com>
9732
9733         PR bootstrap/33781
9734         * configure.ac (--enable-fixed-point): Disable unless explicitly
9735         requested on IRIX.
9736         * configure: Regenerate.
9737
9738 2008-02-01  Richard Guenther  <rguenther@suse.de>
9739
9740         PR other/35042
9741         * invoke.texi (-finline-limit): Remove no longer true parts
9742         of the documentation.  Note that there is no default value.
9743
9744 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
9745             Mark Mitchell  <mark@codesourcery.com>
9746             Ben Elliston  <bje@au.ibm.com>
9747
9748         PR c/29326
9749         * doc/extend.texi (Other Builtins): Document.
9750
9751 2008-01-31  Tom Browder <tom.browder@gmail.com>
9752
9753         * doc/c-tree.texi (Types): Fix grammar.
9754         (Expression trees): Ditto.
9755         * doc/passes.texi (Tree-SSA passes): Ditto.
9756         
9757         * doc/configterms.texi (Configure Terms): Fix typo.
9758         * doc/cpp.texi (Common Predefined Macros): Ditto.
9759         * doc/md.texi (Machine Constraints): Ditto.
9760         
9761         * doc/makefile.texi (Makefile): Add comma.
9762
9763 2008-01-31  Tom Browder  <tom.browder@gmail.com>
9764             Gerald Pfeifer  <gerald@pfeifer.com>
9765         
9766         * doc/sourcebuild.texi (Front End): Remove references to CVS
9767         and CVSROOT/modules.
9768         (Texinfo Manuals): Replace reference to CVS by one to SVN.
9769         (Back End): Remove reference to CVS.
9770
9771 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9772
9773         PR target/34900
9774         * config/mips/mips.c (gen_load_const_gp): New function, taking a
9775         comment from...
9776         (mips16_gp_pseudo_reg): ...here.
9777         * config/mips/mips.md (load_const_gp): Replace with...
9778         (load_const_gp_<mode>): ...this :P-based insn.
9779
9780 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9781
9782         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
9783         options. Minor fixes.
9784         (-std): Move reference to standards closer to where language
9785         standards are first mentioned.
9786         
9787 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9788
9789         PR rtl-optimization/34995
9790         * reload.c (alternative_allows_const_pool_ref): Take an rtx
9791         parameter and return a bool.  If the rtx parameter is nonnull,
9792         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
9793         (find_reloads): Update call accordingly.  Pass the new operand
9794         if it needed no address reloads, otherwise pass null.
9795
9796 2008-01-30  Richard Henderson  <rth@redhat.com>
9797
9798         PR c/34993
9799         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
9800         for unbounded arrays.
9801
9802 2008-01-30  Silvius Rus  <rus@google.com>
9803
9804         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
9805
9806 2008-01-30  Jan Hubicka  <jh@suse.cz>
9807
9808         PR target/34982
9809         * i386.c (init_cumulative_args): Use real function declaration when
9810         calling locally.
9811
9812 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
9813
9814         PR rtl-optimization/34998
9815         * global.c (build_insn_chain): Treat non-subreg_lowpart
9816         SUBREGs of pseudos as clobbering all the words covered by the
9817         SUBREG, not just all the bytes.
9818         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
9819         original df_ref rather than an extract parameter.
9820         (global_conflicts): Update call accordingly.
9821
9822 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
9823
9824         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
9825         the overflow check to make it easier to read.
9826         (__fixtfdi): Change the type of the ll member in union
9827         long_double to UDItype_x.
9828
9829 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
9830
9831         PR middle-end/34969
9832         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
9833         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
9834         * tree-inline.c (fold_marked_statements): Call
9835         cgraph_update_edges_for_call_stmt if folding a call statement.
9836         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
9837         debug_generic_stmt calls, reset it back afterwards.
9838
9839         PR c/35017
9840         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
9841         static decls.
9842         * c-typeck.c (build_external_ref): Don't pedwarn about
9843         static vars in current function's scope.
9844
9845 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
9846
9847         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
9848
9849 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
9850
9851         PR c/35002
9852         * ipa-struct-reorg.c: Fix spelling.
9853         * params.def: Ditto.
9854
9855 2008-01-29  Richard Guenther  <rguenther@suse.de>
9856
9857         PR middle-end/35006
9858         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
9859         field.
9860         * tree-inline.c (remap_type): Increment remapping_type_depth
9861         around remapping types.
9862         (copy_body_r): Only add referenced variables if they are referenced
9863         from code, not types.
9864
9865 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
9866
9867         PR c++/34055
9868         PR c++/34103
9869         PR c++/34219
9870         PR c++/34606
9871         PR c++/34753
9872         PR c++/34754
9873         PR c++/34755
9874         PR c++/34919
9875         PR c++/34961
9876         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
9877         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
9878
9879 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
9880
9881         PR target/34412
9882         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
9883         pointer for tiny stack.
9884
9885 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9886
9887         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
9888
9889 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9890
9891         * config/vx-common.h: Fix typo in comment.
9892
9893 2008-01-28  Ian Lance Taylor  <iant@google.com>
9894
9895         PR c++/34862
9896         PR c++/33407
9897         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
9898         coalesce pointers if they have different DECL_NO_TBAA_P values.
9899         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
9900         between variables with different DECL_NO_TBAA_P values.
9901
9902 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
9903
9904         PR 31535
9905         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
9906         are not legitimate small data references on SPE targets.
9907
9908 2008-01-28  David Daney  <ddaney@avtrex.com>
9909
9910         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
9911
9912 2008-01-28  David Daney  <ddaney@avtrex.com>
9913
9914         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
9915
9916 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
9917
9918         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
9919         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
9920         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
9921         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
9922         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
9923         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
9924         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
9925         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
9926
9927 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9928
9929         * basic-block.h (condjump_equiv_p): Fix comment.
9930
9931 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9932
9933         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
9934         print_generic_stmt_indented): Fix comment.
9935
9936 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9937
9938         * configure.ac (__stack_chk_fail): Add detecion for availability
9939         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
9940         * configure: Regenerate.
9941
9942 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
9943
9944         PR middle-end/34688
9945         * final.c (output_addr_const): Handle TRUNCATE.
9946
9947 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
9948
9949         PR target/34711
9950         * tree-ssa-loop-ivopts.c (comp_cost): New type.
9951         (zero_cost, infinite_cost): New constants.
9952         (struct cost_pair): Change type of cost to comp_cost.
9953         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
9954         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
9955         New functions.
9956         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
9957         split_address_cost, ptr_difference_cost, difference_cost,
9958         get_computation_cost_at, get_computation_cost,
9959         determine_use_iv_cost_generic, determine_use_iv_cost_address,
9960         determine_use_iv_cost_condition, determine_use_iv_costs,
9961         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
9962         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
9963         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
9964         Change type of cost to comp_cost.
9965         (determine_iv_cost): Increase cost of non-original ivs, instead
9966         of decreasing the cost of original ones.
9967         (get_address_cost): Indicate the complexity of the addressing mode 
9968         in comp_cost.
9969         (try_add_cand_for): Prefer using ivs not specific to some object.
9970         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
9971
9972 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
9973             Janis Johnson  <janis187@us.ibm.com>
9974
9975         PR target/34814
9976         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
9977         (TARGET_INSTANTIATE_DECLS): Likewise.
9978         * target.h (expand_to_rtl_hook): New target hook.
9979         (instantiate_decls): Likewise.
9980         * function.c (instantiate_decl): Make non-static.  Rename to...
9981         (instantiate_decl_rtl): ... this.
9982         (instantiate_expr): Use instantiate_decl_rtl.
9983         (instantiate_decls_1): Likewise.
9984         (instantiate_decls): Likewise.
9985         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
9986         * function.h (instantiate_decl_rtl): Add prototype.
9987         * cfgexpand.c (target.h): New include.
9988         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
9989         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
9990         (TARGET_INSTANTIATE_DECLS): Likewise.
9991         (TARGET_INITIALIZER): New target hooks added.
9992         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
9993         New prototype.
9994         * config/rs6000/rs6000.c (tree-flow.h): New include.
9995         (machine_function): Add sdmode_stack_slot field.
9996         (rs6000_alloc_sdmode_stack_slot): New function.
9997         (rs6000_instantiate_decls): Likewise.
9998         (rs6000_secondary_memory_needed_rtx): Likewise.
9999         (rs6000_check_sdmode): Likewise.
10000         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
10001         (TARGET_INSTANTIATE_DECLS): Likewise.
10002         (rs6000_hard_regno_mode_ok): Allow SDmode.
10003         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
10004         (rs6000_emit_move): Handle SDmode.
10005         (function_arg_advance): Likewise.
10006         (function_arg): Likewise.
10007         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
10008         SDmode var args for 32-bit compiles.
10009         (rs6000_secondary_reload_class): Handle SDmode.
10010         (rs6000_output_function_epilogue): Likewise.
10011         (rs6000_function_value): Simplify if statement.
10012         (rs6000_libcall_value): Likewise.
10013         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
10014         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
10015         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
10016         (movsd_hardfloat): New define_insn.
10017         (movsd_softfloat): Likewise.
10018         (movsd_store): Likewise.
10019         (movsd_load): Likewise.
10020         (extendsddd2): Likewise.
10021         (extendsdtd2): Likewise.
10022         (truncddsd2): Likewise.
10023         (movdd_hardfloat64): Fixup comment.
10024         (UNSPEC_MOVSD_LOAD): New constant.
10025         (UNSPEC_MOVSD_STORE): Likewise.
10026
10027 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
10028
10029         PR c++/34965
10030         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
10031         TRUTH_XOR_EXPR.
10032         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
10033         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
10034         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
10035         and TRUTH_XOR_EXPR.
10036
10037 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
10038
10039         PR target/34794
10040         * config.gcc: Separate AIX 5.3 from AIX 6.1.
10041         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
10042         __LONGDOUBLE128 too.
10043         * config/rs6000/aix61.h: New file.
10044
10045 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
10046
10047         PR rtl-optimization/34959
10048         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
10049         popcount and parity rtxes the same mode as their operand.
10050         Truncate or extend the result to the return value's mode
10051         if necessary.
10052
10053 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
10054
10055         PR target/34981
10056         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
10057         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
10058         to GOT_VERSION_REGNUM.
10059         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
10060         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
10061         * config/mips/mips.c (mips_emit_call_insn): New function.
10062         (mips_call_tls_get_addr): Call mips_expand_call directly.
10063         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
10064         emit_call_insn.
10065         (mips16_build_call_stub): Likewise.  Return the call insn or null.
10066         (mips_expand_call): Update the call to mips16_build_call_stub
10067         accordingly and a remove redundant condition.  Assert that MIPS16
10068         stubs do not use lazy binding.  Use mips_emit_call_insn and return
10069         the call insn.
10070         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
10071         TARGET_USE_GOT.
10072         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
10073         (mips_avoid_hazard): Remove hazard_set handling.
10074         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
10075         (UNSPEC_RESTORE_GP): ...this.
10076         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
10077         (FAKE_CALL_REGNO): Rename to...
10078         (GOT_VERSION_REGNUM): ...this.
10079         (type): Add "ghost" value.  Add an associated insn reservation.
10080         (hazard_set): Remove.
10081         (exception_receiver): Rename to...
10082         (restore_gp): ...this and update the unspec identifier accordingly.
10083         (exception_receiver, nonlocal_got_receiver): New expanders.
10084         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
10085         FAKE_CALL_REGNO.  Remove hazard_set attribute.
10086         (set_got_version, update_got_version): New patterns.
10087
10088 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
10089
10090         PR target/34970
10091         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
10092
10093 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
10094
10095         PR other/31955
10096         * doc/install.texi2html: Generate gcc-vers.texi.
10097
10098 2008-01-25  DJ Delorie  <dj@redhat.com>
10099
10100         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
10101
10102 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
10103
10104         * config/c4x: Remove directory.
10105         * config.gcc (crx-*, mt-*): Mark obsolete.
10106         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
10107         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
10108         sh-*-rtemscoff*): Remove cases.
10109         * defaults.h (C4X_FLOAT_FORMAT): Remove.
10110         * real.c (encode_c4x_single, decode_c4x_single,
10111         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
10112         c4x_extended_format): Remove.
10113         * real.h (c4x_single_format, c4x_extended_format): Remove.
10114         * doc/extend.texi (interrupt, naked): Remove mention of attributes
10115         on C4x.
10116         (Pragmas): Remove comment about c4x pragmas.
10117         * doc/install.texi (c4x): Remove target-specific instructions.
10118         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
10119         * doc/md.texi (Machine Constraints): Remove C4x documentation.
10120         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
10121         refer to C4x source files as examples.
10122         (C4X_FLOAT_FORMAT): Remove documentation.
10123
10124 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
10125
10126         * config/bfin/bfin.c (override_options): Reorder tests so that
10127         flag_pic gets enabled for -msep-data.
10128
10129 2008-01-25  Richard Guenther  <rguenther@suse.de>
10130
10131         PR middle-end/32244
10132         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
10133         to its bitfield precision if required.
10134
10135 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
10136
10137         PR middle-end/33880
10138         * tree-nested.c (walk_omp_for): New function.
10139         (convert_nonlocal_reference, convert_local_reference): Call
10140         walk_omp_for on OMP_FOR.
10141         (convert_call_expr): Call walk_body on OMP_FOR's
10142         OMP_FOR_PRE_INIT_BODY.
10143
10144 2008-01-25  Richard Guenther  <rguenther@suse.de>
10145
10146         PR tree-optimization/34966
10147         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
10148         default defs and PHI_NODEs we have to insert after the
10149         defining statement.
10150
10151 2008-01-24  Nick Clifton  <nickc@redhat.com>
10152
10153         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
10154         Provide a default definition.
10155         (LIBGCC2_UNITS_PER_WORD): Likewise.
10156
10157         * config/stormy16/stormy16.c: Include df.h for the prototype
10158         for df_regs_ever_live_p.
10159         (xstormy16_expand_builtin_va_start): Convert the stack offset
10160         into a component_ref and then use POINTER_PLUS_EXPR to add it
10161         to the incoming_virtual_args_rtx.
10162         (xstormy16_gimplify_va_arg_expr): Rename to
10163         xstormy16_gimplify_va_arg_expr.
10164         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
10165         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
10166         xstormy16_gimplify_va_arg_expr.
10167         Fix up some formatting issues.
10168
10169         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
10170         Move to predicates.md.
10171         (xs_hi_general_operand): Likewise.
10172         (xs_hi_nonmemory_operand): Likewise.
10173         * config/stormy16/predicates.md:
10174         (xstormy16_carry_plus_operand): New predicate.
10175         (xs_hi_general_operand): New predicate.
10176         (xs_hi_nonmemory_operand): New predicate.
10177         * config/stormy16/stormy16-protos.h:
10178         (xstormy16_carry_plus_operand): Delete prototype.
10179         (xs_hi_general_operand): Likewise.
10180         (xs_hi_nonmemory_operand): Likewise.
10181
10182         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
10183         modifiers as they are no longer needed and they can trigger
10184         reload spill failures.
10185
10186         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
10187         with a match_operand in order to help reload.
10188
10189         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
10190         constraint with 'e' for the 8th alternative as this version of
10191         the mov.w instruction only accepts the lower 8 registers.
10192
10193 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
10194
10195         PR target/34856
10196         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
10197         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
10198         vector elements.
10199
10200 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
10201
10202         PR middle-end/33333
10203         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
10204
10205 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
10206
10207         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
10208         New functions.
10209         (remove_structure): Update allocations list before removing structure.
10210         
10211 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
10212
10213         * ipa-struct-reorg.c (is_safe_cond_expr, 
10214         create_new_stmts_for_cond_expr): Use integer_zerop function,
10215         that recognize not only zero-pointer, but zero-integer too.
10216
10217 2008-01-25  Ben Elliston  <bje@au.ibm.com>
10218
10219         PR other/22232
10220         * fixproto: Escape "." in sed expression that strips leading "./".
10221
10222 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
10223
10224         PR driver/34904
10225         * gcc.c (SWITCH_OK): Removed.
10226         (SWITCH_LIVE): Changed to bit.
10227         (SWITCH_FALSE): Likewise.
10228         (SWITCH_IGNORE): Likewise.
10229         (switchstr): Change live_cond to unsigned int.
10230         (process_command): Replace SWITCH_OK with 0.
10231         (do_self_spec): Likewise.
10232         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
10233         (give_switch): Likewise.
10234         (used_arg): Likewise.
10235         (do_spec_1): Set the SWITCH_IGNORE bit.
10236         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
10237         bits.  Set the SWITCH_LIVE bit.
10238
10239 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
10240
10241         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
10242
10243 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
10244
10245         PR tree-optimization/34472
10246         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
10247         parameter to a "bool *" and set *DATA to false if there is
10248         an unsafe access.  Do not delete the structure here.
10249         (check_cond_exprs): Delete it here instead.
10250         (check_cond_exprs, exclude_cold_structs): Do not increase
10251         I when removing a structure.
10252
10253 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
10254
10255         PR target/34856
10256         * config/i386/i386.c (ix86_expand_vector_init): Consider only
10257         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
10258
10259 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
10260
10261         PR middle-end/34934
10262         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
10263         a fixed vector for stack.
10264
10265 2008-01-24  Ben Elliston  <bje@au.ibm.com>
10266
10267         PR c++/25701
10268         * doc/gcc.texi (Software development): Add a direntry for g++.
10269         
10270 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
10271
10272         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
10273         stale and straggling -fforce-addr comments above.
10274
10275         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
10276         define.
10277         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
10278         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
10279
10280 2008-01-23  Michael Matz  <matz@suse.de>
10281
10282         PR debug/34895
10283         * dwarf2out.c (force_type_die): Use modified_type_die instead of
10284         gen_type_die.
10285
10286 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
10287
10288         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
10289         malloc result type.
10290
10291 2008-01-23 Anatoly Sokolov <aesok@post.ru>
10292
10293         * config/avr/avr.c (avr_current_arch): New variable.
10294         (avr_arch_types): Add 'avr31' and 'avr51' entries.
10295         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
10296         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
10297         (avr_override_options): Init 'avr_current_arch'. 
10298         (base_arch_s): Move from here...
10299         * config/avr/avr.h (base_arch_s): ... here. Add new members 
10300         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
10301         'mega' to 'have_jmp_call'.
10302         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
10303         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
10304         macros.
10305         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
10306         architectures.
10307         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
10308         MULTILIB_MATCHES): (Ditto.).
10309
10310 2008-01-23  Richard Guenther  <rguenther@suse.de>
10311
10312         PR middle-end/31529
10313         * cgraphunit.c (cgraph_reset_node): Always mark the node
10314         not reachable if it is not queued already.
10315
10316 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
10317
10318         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
10319         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
10320         (cputype_selected): New static variable.
10321         (bfin_handle_option): Set it if -mcpu is used.
10322         (override_option): Select default set of workarounds if no cpu type
10323         selected on the command line.
10324         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
10325
10326         From  Michael Frysinger  <michael.frysinger@analog.com>
10327         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
10328         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
10329
10330         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
10331         for bf547, bf523, bf524, and bf526.
10332         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
10333         bf526.
10334         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
10335         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
10336         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
10337         __ADSPBF547__ and __ADSPBF54x__ for bf547.
10338         * doc/invoke.texi (Blackfin Options): Document that
10339         -mcpu now accept bf547, bf523, bf524, and bf526.
10340
10341 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
10342
10343         PR rtl-optimization/34628
10344         * combine.c (try_combine): Stop and undo after the first combination
10345         if an autoincrement side-effect on the first insn has effectively
10346         been lost.
10347
10348 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
10349
10350         PR target/34529
10351         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
10352         Offset addresses are not valid for Altivec or paired float modes.
10353
10354 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
10355
10356         PR c++/34607
10357         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
10358         if DECL_INITIAL (decl) is error_mark_node.
10359
10360         PR c++/34914
10361         * c-common.c (handle_vector_size_attribute): Only allow
10362         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
10363         the same way as pointer, array etc. types.
10364         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
10365
10366         PR c++/34917
10367         * tree.c (build_type_attribute_qual_variant): Call
10368         build_qualified_type if attributes are equal, but quals are not.
10369
10370 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10371
10372         PR 32102
10373         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
10374         * flags.h (warn_strict_aliasing): Remove.
10375         (warn_strict_overflow): Remove.
10376         * opts.c (warn_strict_aliasing): Remove.
10377         (warn_strict_overflow): Remove.
10378         * c-opts.c (c_common_handle_option): -Wall only sets
10379         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
10380         (c_common_post_options): Give default values to -Wstrict-aliasing
10381         and -Wstrict-overflow if they are uninitialized.
10382         * common.opt (Wstrict-aliasing): Specify Var and Init.
10383         (Wstrict-overflow): Likewise.
10384
10385 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
10386
10387         PR rtl-optimization/26854
10388         PR rtl-optimization/34400
10389         PR rtl-optimization/34884
10390         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
10391         DF_RD->gen.
10392         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
10393         (df_rd_bb_info.expanded_lr_out): Deleted
10394         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
10395         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
10396         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10397         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10398         Removed code to allocate, initialize or free expanded_lr_out.
10399         (df_rd_bb_local_compute_process_def): Restructured to make more
10400         understandable.
10401         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
10402         sets if the sets are being trimmed.
10403
10404 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
10405
10406         PR bootstrap/32287
10407         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
10408         (as_vers): Likewise.
10409         * configure: Regenerated.
10410
10411 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10412
10413         PR middle-end/33092
10414         * tree-pass.h (pass_build_alias): New pass.
10415         * tree-ssa-alias.c (gate_build_alias): New.
10416         (pass_build_alias): New.
10417         * passes.c (init_optimization_passes): Add pass_build_alias after
10418         pass_create_structure_vars.
10419
10420 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
10421
10422         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
10423         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
10424         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
10425         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
10426         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
10427         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
10428         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
10429         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
10430         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
10431         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
10432         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
10433         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
10434         * config/s390/s390.md (FP_ALL): New mode iterator.
10435         (_d): New mode attribute.
10436         ("*signbit<mode>2>"): Changed mode of first operand.
10437         ("isinf<mode>2"): Changed mode of first operand.
10438         ("*TDC_insn"): Adaptation for DFP modes.
10439
10440 2008-01-22  Ben Elliston  <bje@au.ibm.com>
10441
10442         * tree.c (check_qualified_type): Improve function description.
10443
10444 2008-01-21  Jason Merrill  <jason@redhat.com>
10445
10446         PR c++/34196
10447         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
10448         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
10449         if it is set.
10450
10451 2008-01-21  DJ Delorie  <dj@redhat.com>
10452
10453         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
10454         return zero.
10455
10456 2008-01-21  Richard Guenther  <rguenther@suse.de>
10457
10458         PR middle-end/34856
10459         * tree-cfg.c (verify_expr): Allow all invariant expressions
10460         instead of just constant class ones as reference argument.
10461         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
10462         like any other constant.
10463         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
10464
10465 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
10466
10467         * regmove.c (fixup_match_1): Update call crossed frequencies.
10468
10469 2008-01-21  Richard Guenther  <rguenther@suse.de>
10470
10471         PR c/34885
10472         * tree-inline.c (setup_one_parameter): Deal with mismatched
10473         types using a VIEW_CONVERT_EXPR.
10474
10475 2008-01-21  Alon Dayan  <alond@il.ibm.com>
10476             Olga Golovanevsky  <olga@il.ibm.com>
10477         
10478         PR tree-optimization/34701
10479         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
10480         when the structure size is not a power of 2.
10481
10482 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
10483
10484         * doc/install.texi: Add doc for --enable-checking=df.
10485         
10486 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10487
10488         PR rtl-optimization/34808
10489         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
10490
10491 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10492
10493         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
10494         input.
10495
10496 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
10497
10498         PR rtl-optimization/26854
10499         PR rtl-optimization/34400
10500         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
10501         DF_RD->gen.
10502         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
10503         (df_rd_bb_info.expanded_lr_out): New.
10504         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
10505         * loop_iv.c (iv_analysis_loop_init): Ditto.
10506         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10507         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10508         Added code to allocate, initialize or free expanded_lr_out.
10509         (df_rd_bb_local_compute_process_def): Restructured to make
10510         more understandable.
10511         (df_rd_confluence_n): Add code to do nothing with fake edges and
10512         code to no apply invalidate_by_call sets if the sets are being trimmed.
10513         (df_lr_local_finalize): Renamed to df_lr_finalize.
10514         (df_live_local_finalize): Renamed to df_live_finalize.
10515
10516 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10517
10518         PR target/34831
10519         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
10520         deciding whether to use reciprocal instructions.
10521
10522 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
10523
10524         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
10525         dwarf2out_note_section_used if cold_text_section is NULL.
10526
10527 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
10528
10529         PR gcov-profile/34610
10530         * tree-cfg.c (make_edges): Mark both outgoing edges from
10531         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
10532         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
10533         from OMP_FOR and OMP_CONTINUE outgoing edges.
10534
10535         * tree-profile.c (tree_profiling): Return early if
10536         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
10537         at the end.
10538         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
10539         from cfun to child_cfun.
10540         * function.h (struct function): Add after_tree_profile bit.
10541
10542 2008-01-19 Anatoly Sokolov <aesok@post.ru>
10543
10544         * config/avr/avr.S (_exit): Disable interrupt.
10545
10546 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
10547             Steven Bosscher  <stevenb.gcc@gmail.com>
10548
10549         PR rtl-optimization/26854
10550         PR rtl-optimization/34400
10551         * df-problems.c (df_live_scratch): New scratch bitmap.
10552         (df_live_alloc): Allocate df_live_scratch when doing df_live.
10553         (df_live_reset): Clear the proper bitmaps.
10554         (df_live_bb_local_compute): Only process the artificial defs once
10555         since the order is not important.
10556         (df_live_init): Init the df_live sets only with the variables
10557         found live by df_lr.
10558         (df_live_transfer_function): Use the df_lr sets to prune the
10559         df_live sets as they are being computed.  
10560         (df_live_free): Free df_live_scratch.
10561
10562 2008-01-18  Ian Lance Taylor  <iant@google.com>
10563
10564         * common.opt: Add fmerge-debug-strings.
10565         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
10566         flag_merge_debug_strings rather than flag_merge_constants.
10567         * doc/invoke.texi (Option Summary): Mention
10568         -fmerge-debug-strings.
10569         (Debugging Options): Document -fmerge-debug-strings.
10570
10571 2008-01-18  Ian Lance Taylor  <iant@google.com>
10572
10573         PR c++/33407
10574         * tree.h (DECL_IS_OPERATOR_NEW): Define.
10575         (struct tree_function_decl): Add new field operator_new_flag.
10576         * tree-inline.c (expand_call_inline): When inlining a call to
10577         operator new, force the return value to go into a variable, and
10578         set DECL_NO_TBAA_P on that variable.
10579         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
10580
10581 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
10582
10583         PR debug/34484
10584         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
10585         DWARF2_DEBUGGING_INFO.
10586         (dwarf2out_note_section_used): Ditto.  Add prototype.
10587         (have_multiple_function_sections, text_section_used,
10588         cold_text_section_used, *cold_text_sections): Move declarations
10589         before their uses.
10590
10591 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
10592
10593         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
10594         field and add signal_ra.
10595         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
10596         assignments to frame state pc.  Move end of stack check after
10597         MD_FALLBACK_FRAME_STATE_FOR.
10598         (uw_update_context_1): Use frame state signal_regs if set, instead
10599         of checking signal_frame flag.
10600         (uw_update_context): Use frame state signal_ra if set.
10601         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
10602         * config/xtensa/linux-unwind.h: New file.
10603
10604 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
10605
10606         * modulo-sched.c (get_sched_window): Fix comment typo.
10607
10608 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
10609
10610         PR tree-optimization/34648
10611         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
10612
10613 2008-01-17  Anatoly Sokolov <aesok@post.ru>
10614
10615         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
10616         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
10617
10618 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
10619
10620         PR rtl-optimization/34400
10621         * df-core.c (df_worklist_dataflow_overeager,
10622         df_worklist_dataflow_doublequeue): New functions.
10623         (df_worklist_dataflow): Two different worklist solvers.
10624         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
10625         New param.
10626
10627 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10628
10629         PR testsuite/34821
10630         * doc/invoke.texi: Document the dependence on pthread for fopenmp
10631         and ftree-parallelize-loops.
10632
10633 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
10634
10635         PR rtl-optimization/34826
10636         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
10637
10638 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
10639
10640         * global.c (find_reg): Mark the eh regs as used if necessary.
10641         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
10642         * ra.h (struct allocno): no_eh_reg field added.  Changed
10643         no_stack_reg type to bitfield.
10644
10645 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
10646
10647         * tree.c (substitute_in_expr): Add missing 'break'.
10648
10649 2008-01-17  Richard Guenther  <rguenther@suse.de>
10650
10651         PR tree-optimization/34825
10652         * tree-ssa-math-opts.c (is_division_by): Do not recognize
10653         x / x as division to handle.
10654
10655 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10656
10657         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
10658         "-pthread" is specified.
10659         * pa-hpux11.h (LIB_SPEC): Likewise.
10660
10661 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
10662             Peter Bergner  <bergner@vnet.ibm.com>
10663
10664         PR rtl-optimization/33796
10665         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
10666
10667 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10668
10669         PR libgfortran/34699
10670         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
10671         static links.
10672         * pa-hpux10.h (LINK_SPEC): Likewise.
10673         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
10674
10675 2008-01-16  Richard Guenther  <rguenther@suse.de>
10676
10677         PR middle-end/32628
10678         * fold-const.c (fold_convert_const_int_from_int): Do not
10679         set overflow if that occured only because of a sign extension
10680         change when converting from/to a sizetype with the same
10681         precision and signedness.
10682
10683 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10684
10685         PR debug/34249
10686         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
10687         location address to the correct place.  Update copyright year.
10688
10689 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10690
10691         * lambda-code.c (lambda_transform_legal_p): Handle the case of
10692         no dependences in the dependence_relations vector.
10693
10694 2008-01-16  Jan Hubicka  <jh@suse.cz>
10695
10696         PR rtl-optimization/31396
10697         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
10698         * cfg.c (dump_reg_info): Print it.
10699         * regs.h (struct reg_info_t): add freq_calls_crossed.
10700         (REG_FREQ_CALLS_CROSSED): New macro.
10701         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
10702         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
10703         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
10704         regmove_optimize): Update call crossed frequencies.
10705         * local-alloc.c (struct qty): Add freq_calls_crossed.
10706         (alloc_qty): Copute freq_calls_crossed.
10707         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
10708         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
10709         * ra.h (struct allocno): Add freq_calls_crossed.
10710
10711 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10712
10713         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
10714         libgomp when compiling with ftree-parallelize-loops.
10715         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
10716
10717 2008-01-16  Richard Guenther  <rguenther@suse.de>
10718
10719         PR tree-optimization/34769
10720         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
10721         * tree.c (int_cst_value): Instead make this function more
10722         permissive in what it accepts as valid input.  Document this
10723         function always sign-extends the value.
10724
10725 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
10726             Richard Guenther  <rguenther@suse.de>
10727
10728         PR c/34668
10729         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
10730         (gimple_fold_indirect_ref_rhs): ... this.
10731         (gimple_fold_indirect_ref): New function with foldings
10732         that preserve lvalueness.
10733         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
10734         * tree-flow.h (gimple_fold_indirect_ref): Declare.
10735         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
10736         to fold an INDIRECT_REF, fall back to the old use of
10737         fold_indirect_ref_1.
10738
10739 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10740
10741         * tree-data-ref.c (subscript_dependence_tester_1): Call 
10742         free_conflict_function.
10743         (compute_self_dependence): Same.
10744
10745 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10746
10747         PR debug/34249
10748         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
10749         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
10750         function global.
10751         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
10752         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
10753         for DWARF2_UNWIND_INFO targets.
10754
10755 2008-01-16  Richard Guenther  <rguenther@suse.de>
10756
10757         PR c/34768
10758         * c-typeck.c (common_pointer_type): Do not merge inconsistent
10759         type qualifiers for function types.
10760
10761 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
10762
10763         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
10764         loop_iterator li from previous commit.
10765
10766 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
10767
10768         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
10769
10770 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10771
10772         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
10773         (parallelize_loops): Don't parallelize irreducible components.
10774
10775 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10776
10777         PR c++/24924
10778         * c-opts (c_common_post_options): Do not enable CPP
10779         flag_pedantic_errors by default.
10780         
10781 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
10782
10783         PR rtl-optimization/31944
10784         * cse.c (remove_pseudo_from_table): New function.
10785         (merge_equiv_classes): Use above function to remove pseudo-registers.
10786         (invalidate): Likewise.
10787
10788 2008-01-13  Richard Guenther  <rguenther@suse.de>
10789
10790         PR middle-end/34601
10791         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
10792         instead of TYPE_MODE to deal with calls from expand_one_error_var.
10793
10794 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
10795
10796         * gcse.c (cprop_jump): Call validate_unshare_change instead of
10797         validate_change to unshare the source of the PC set.
10798
10799 2008-01-12  Jan Hubicka  <jh@suse.cz>
10800
10801         PR middle-end/32135
10802         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
10803         references above array bounds.  This might trigger bounds checks for
10804         pointers to arrays.
10805
10806 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10807
10808         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
10809         new_replaceable_dependencies.
10810
10811 2008-01-12  Doug Kwan  <dougkwan@google.com>
10812
10813         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
10814         instead of OPT_Wreturn_type in warning due to ignored return type
10815         qualifiers.
10816         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
10817         options included in -Wextra.
10818         * c.opt: New option -Wignored_qualifiers.
10819         * doc/invoke.texi (Warning Options, -Wextra): Add new option
10820         -Wignore_qualifiers.
10821         (-Wignored-qualifiers): Document.
10822         (-Wreturn-type): Remove description of functionality now handled
10823         by -Wignored-qualifiers.
10824
10825 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
10826
10827         PR ada/33788
10828         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
10829         NOP_EXPR if it is between integral types with the same precision.
10830
10831 2008-01-12  Jan Hubicka  <jh@suse.cz>
10832
10833         PR other/28023
10834         * invoke.texi (max-inline-recursive-depth): Fix default value.
10835
10836 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
10837
10838         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
10839         correct type.
10840
10841 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
10842         
10843         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
10844         
10845 2008-01-11  James E. Wilson  <wilson@specifix.com>
10846
10847         PR target/26015
10848         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
10849
10850 2008-01-11  Anatoly Sokolov <aesok@post.ru>
10851
10852         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
10853         save/restore frame pointer register and don't use 'call-prologues' 
10854         optimization in function with "OS_task" attribute.
10855
10856 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
10857
10858         PR middle-end/31309
10859         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
10860         when copying to memory.
10861
10862 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
10863
10864         PR rtl-optimization/30905
10865         * cfgcleanup.c: Include dce.h
10866         (crossjumps_occured): New global variable.
10867         (try_crossjump_bb): Exit loop after finding a fallthru edge.
10868         If something changed, set crossjumps_occured to true.
10869         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
10870         Don't add/remove fake edges to exit here...
10871         (cleanup_cfg): ...but do it here, when crossjumping.
10872         Run a fast DCE when successful crossjumps occured in the latest
10873         iteration of try_optimize_cfg.
10874
10875 2008-01-11  Richard Guenther  <rguenther@suse.de>
10876
10877         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
10878         (struct vn_unary_op_s): Likewise.
10879         (vn_reference_insert): Free old reference on hash collision.
10880
10881 2008-01-10  Raksit Ashok  <raksit@google.com>
10882
10883         PR rtl-optimization/27971
10884         * combine.c (find_split_point): Split PLUS expressions which are
10885         inside a MEM rtx, and whose first operand is complex.
10886
10887 2008-01-10  DJ Delorie  <dj@redhat.com>
10888
10889         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
10890         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
10891         (m32c_hard_regno_ok): Call the underlying function.
10892
10893 2008-01-10  Richard Guenther  <rguenther@suse.de>
10894
10895         PR middle-end/34683
10896         * tree-cfg.c (tree_merge_blocks): Do not go through the
10897         full-blown folding and stmt updating path if we just deal
10898         with virtual operands.
10899         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
10900         test for abnormal SSA_NAMEs.
10901
10902 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
10903
10904         PR middle-end/34641
10905         * reload.c (push_reload): Add assertions.  All constants from
10906         reg_equiv_constant should have been used for replacing the respective
10907         pseudo earlier.
10908         (find_reloads_address): Invoke find_reloads_address_part for
10909         constant taken from the reg_equiv_constant array.
10910
10911 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
10912
10913         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
10914         field (valnum) the first in the struct.  Replace bools with
10915         unit bit fields.
10916
10917 2008-01-10  Richard Guenther  <rguenther@suse.de>
10918
10919         PR tree-optimization/34651
10920         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
10921         types and ordering for masking and converting.
10922
10923 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
10924
10925         PR tree-optimization/34017
10926         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
10927         also for PHI_NODE expressions.
10928
10929 2008-01-09  Jan Hubicka  <jh@suse.cz>
10930
10931         PR tree-optimization/34708
10932         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
10933         based on number of case labels.
10934         (init_inline_once): Remove switch_cost.
10935         * tree-inline.h (eni_weights_d): Remove switch_cost.
10936
10937 2008-01-09  Richard Guenther  <rguenther@suse.de>
10938         Andrew Pinski  <andrew_pinski@playstation.sony.com>
10939
10940         PR middle-end/30132
10941         * gimplify.c (gimplify_cond_expr): Do not create an addressable
10942         temporary if an rvalue is ok or an lvalue is not required.
10943
10944 2008-01-09  Richard Guenther  <rguenther@suse.de>
10945
10946         PR middle-end/34458
10947         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
10948         adjust return type.
10949
10950 2008-01-09  Richard Guenther  <rguenther@suse.de>
10951
10952         PR middle-end/34679
10953         * tree.c (host_integerp): Check for sizetype only if the
10954         type is an integer type.
10955
10956 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
10957
10958         PR debug/26364
10959         * opts.c (decode_options): Disable inlining of functions called
10960         once if not in unit-at-a-time mode.
10961
10962 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
10963
10964         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
10965
10966 2008-01-08  Richard Guenther  <rguenther@suse.de>
10967
10968         PR middle-end/31863
10969         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
10970         out early if the result will be unused.
10971
10972 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
10973
10974         PR target/34709
10975         Revert:
10976
10977         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10978         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10979         for TARGET_RECIP.       
10980         
10981 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
10982         
10983         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
10984         for vectorization tuned.
10985         
10986 2008-01-08  Richard Guenther  <rguenther@suse.de>
10987
10988         PR tree-optimization/34683
10989         * tree-ssa-operands.c (operand_build_cmp): Export.
10990         * tree-ssa-operands.h (operand_build_cmp): Declare.
10991         * tree-vn.c (vuses_compare): Remove.
10992         (sort_vuses): Use operand_build_cmp.
10993         (sort_vuses_heap): Likewise.
10994         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
10995         to re-use old VEC if available.  Do not sort already sorted VUSEs.
10996         (vdefs_to_vec): Do not sort already sorted VDEFs.
10997
10998 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
10999
11000         PR middle-end/34694
11001         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
11002
11003 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
11004
11005         PR target/34702
11006         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
11007         limitations of reciprocal sequences on x86 targets.
11008
11009 2008-01-08  Richard Guenther  <rguenther@suse.de>
11010
11011         PR tree-optimization/34683
11012         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
11013
11014 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
11015
11016         PR target/34622
11017         * config/darwin.c (darwin_mergeable_string_section): Don't use
11018         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
11019
11020 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
11021
11022         PR target/34682
11023         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
11024         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
11025         predicates of op0 and op1 to register_operand.
11026         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
11027         expander using X87MODEF mode iterator.  Change predicates of
11028         op0 and op1 to register_operand.
11029         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
11030         corresponding patterns and macroize using MODEF macro.  Change
11031         predicates of op0 and op1 to register_operand and remove
11032         "m" constraint. Disparage "r" alternative with "!".
11033         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
11034         macroize using X87MODEF macro.  Change predicates of op0 and op1
11035         to register_operand and remove "m" constraint.  Disparage "r"
11036         alternative with "!".
11037         (absneg splitter with memory operands): Remove.
11038         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
11039         patterns and macroize using X87MODEF mode iterator.
11040         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
11041         Change predicate of op1 to register_operand.
11042         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
11043         for memory operands.
11044
11045 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
11046
11047         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
11048
11049 2008-01-07  Richard Guenther  <rguenther@suse.de>
11050
11051         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
11052         fields.
11053
11054 2008-01-07  Richard Guenther  <rguenther@suse.de>
11055
11056         PR tree-optimization/34683
11057         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
11058         VOPs of the needed size to save memory.  Use VEC_quick_push
11059         to save compile-time.
11060         (vdefs_to_vec): Likewise.
11061
11062 2008-01-07  Sa Liu  <saliu@de.ibm.com>
11063
11064         * config/spu/spu.md (divdf3): Genetate inline code for double
11065         division.  The implementation doesn't handle INF or NAN, therefore it
11066         only applies when -ffinite-math-only is given.
11067
11068 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
11069
11070         PR libstdc++/34680
11071         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
11072         * doc/cpp.texi ([Common Predefined Macros]): Document.
11073
11074 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
11075
11076         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
11077         order to use commutative addition instead of subtraction.
11078
11079 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11080             Mircea Namolaru  <namolaru@il.ibm.com>
11081             Vladimir Yanovsky  <yanov@il.ibm.com>
11082             Revital Eres  <eres@il.ibm.com>
11083
11084         PR tree-optimization/34263
11085         * tree-outof-ssa.c (process_single_block_loop_latch,
11086         contains_tree_r): New functions.
11087         (analyze_edges_for_bb): Call process_single_block_loop_latch
11088         function to empty single-basic-block latch block if possible.
11089
11090 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11091
11092         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
11093         for TARGET_RECIP.
11094         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
11095
11096 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
11097
11098         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
11099
11100 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
11101
11102         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
11103
11104 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
11105
11106         PR tree-optimization/34618
11107         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
11108         flag from T.
11109
11110 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11111
11112         PR target/34673
11113         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
11114         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
11115         Update copyright year.
11116
11117         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
11118         Update copyright year.
11119         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
11120         using NR fixup.
11121
11122 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
11123
11124         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
11125         edge does not point to current bb before changing need_assert.
11126
11127 2008-01-04  Richard Guenther  <rguenther@suse.de>
11128
11129         PR middle-end/34029
11130         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
11131         for verifying purposes if they are is_gimple_min_invariant.
11132
11133 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
11134
11135         PR tree-optimization/34448
11136         PR tree-optimization/34465
11137         * gimplify.c (gimplify_init_constructor): Add new parameter
11138         notify_temp_creation.  Use it.
11139         (gimplify_modify_expr_rhs): Take volatiles into account when
11140         optimizing constructors.
11141         Do not optimize constructors if gimplify_init_constructor will dump to
11142         memory.
11143         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
11144         * gcc.c-torture/compile/pr34448.c: New.
11145
11146 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
11147
11148         PR gcov-profile/34609
11149         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
11150         return_slot if result is TREE_ADDRESSABLE.
11151
11152 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
11153
11154         * config/mips/mips.md (sqrt_condition): Tweak comment.
11155         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
11156
11157 2008-01-03  Tom Tromey  <tromey@redhat.com>
11158
11159         PR c/34457
11160         * c-common.c (c_type_hash): Handle VLAs.
11161
11162 2008-01-03  Jan Hubicka  <jh@suse.cz>
11163
11164         PR tree-optimization/31081
11165         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
11166         0 when inlining and not inlining to first basic block.
11167         (remap_decl): When var is initialized to 0, don't set default_def.
11168         (expand_call_inline): Set entry_bb.
11169         * tree-inline.h (copy_body_data): Add entry_bb.
11170
11171 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
11172
11173         PR c++/34619
11174         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
11175         before returning.
11176
11177         PR tree-optimization/29484
11178         * tree-inline.c (inline_forbidden_p_2): New function.
11179         (inline_forbidden_p): Disallow inlining if some static var
11180         has an address of a local LABEL_DECL in its initializer.
11181         * doc/extend.texi (Labels as Values): Document &&foo behaviour
11182         vs. inlining.
11183
11184 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
11185
11186         PR tree-optimization/34635
11187         * tree-data-ref.c (add_other_self_distances): Make sure that the
11188         evolution step is constant.
11189
11190 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
11191
11192         PR middle-end/34608
11193         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
11194
11195 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
11196
11197         * tree-sra.c (scalarize_init): Insert the generate_element_init
11198         statements after the generate_element_zero statements.
11199
11200 2008-01-02  Richard Guenther  <rguenther@suse.de>
11201
11202         PR middle-end/34093
11203         PR middle-end/31976
11204         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
11205         for very large number of operands instead of ICEing.
11206
11207 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
11208
11209         PR target/34013
11210         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
11211         while stack probing.
11212
11213 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
11214
11215         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
11216         in C++0x mode.
11217
11218 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
11219
11220         PR libmudflap/26442
11221         * tree-mudflap.c (mx_register_decls): Guard warning by
11222         !DECL_ARTIFICIAL check.
11223
11224 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
11225
11226         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
11227         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
11228         sse5_perm<mode>): Fix constraints.