OSDN Git Service

* alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2
3         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
4         * df-scan.c (df_notes_rescan): Likewise.
5         * ggc-page.c (set_page_table_entry): Likewise.
6         * intl.c (gcc_gettext_width): Likewise.
7         * varasm.c (get_unnamed_section, get_noswitch_section,
8         get_section): Likewise.
9
10 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
11
12         * regrename.c (build_def_use): Don't copy RTX.
13
14 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
15
16         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
17         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
18         punctuation.  Use @ref instead of @xref.
19         (Function Names): Remove stray @display/@end display.
20         (C++ Attributes): Use @ref instead of @xref.
21         (Deprecated Features): Fix punctuation around @xref.
22         (Backwards Compatibility): Likewise.
23         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
24
25 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
26
27         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
28         constants for E500 double.
29
30 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31
32         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
33         element type of const_vector.
34
35 2008-06-28 Uros Bizjak  <ubizjak@gmail.com>
36
37         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
38         Remove FLAGS_REG clobber from expander pattern.
39         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
40         (anddi3, andsi3, andhi3, andqi3): Ditto.
41         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
42         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
43         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
44         (ashlsi3, ashlhi3, ashlqi3): Ditto.
45         (ashrsi3, ashrhi3, ashrqi3): Ditto.
46         (lshrsi3, lshrhi3, lshrqi3): Ditto.
47         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
48         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
49
50 2008-06-28  Richard Guenther  <rguenther@suse.de>
51
52         * tree-ssa-structalias.c (callused_id, var_callused,
53         callused_tree): Add.
54         (handle_pure_call): New function.
55         (find_func_aliases): Call it.
56         (find_what_p_points_to): Handle the call-used set.
57         (clobber_what_escaped): Likewise.
58         (compute_call_used_vars): New function.
59         (init_base_vars): Init the call-used variable.
60         (do_sd_constraint): Do not propagate the solution from CALLUSED
61         but use CALLUSED as a placeholder.
62         (solve_graph): Likewise.
63         * tree-flow-inline.h (gimple_call_used_vars): New function.
64         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
65         (compute_call_used_vars): Declare.
66         * tree-ssa-alias.c (set_initial_properties): Call
67         compute_call_used_vars.
68         (reset_alias_info): Clear call-used variables.
69         (add_call_clobber_ops): Assert we are not called for const/pure
70         functions.  Remove handling of them.
71         (add_call_read_ops): Handle pure functions by adding the
72         call-used set of variables as VUSEs.
73         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
74         (delete_tree_ssa): Free it.
75         * tree-dfa.c (remove_referenced_var): Clear the var from the
76         call-used bitmap.
77
78 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
79
80         * tree.c (build_varargs_function_type_list): New.
81         (build_function_type_list_1): New.
82         (build_function_type_list): Use build_function_type_list_1.
83         * tree.h (build_varargs_function_type_list): New.
84
85 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
86
87         PR target/34856
88         * config/spu/spu.c (spu_builtin_splats): Do not generate
89         invalid CONST_VECTOR expressions.
90         (spu_expand_vector_init): Likewise.
91
92 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
93
94         * optabs.c (libfunc_decls): New variable.
95         (libfunc_decl_hash, libfunc_decl_eq): New functions.
96         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
97         for the same function twice.
98
99 2008-06-27 Uros Bizjak  <ubizjak@gmail.com>
100
101         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
102         ix86_expand_binary_operator directly.
103         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
104         for operand 2.
105         (*ashrti3_1): Ditto.
106         (*lshrti3_1): Ditto.
107         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
108         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
109         using only one splitter.  Conditionaly execute splitter before or
110         after peephole2 pass.
111         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
112         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
113         Use only one alternative in asm template.
114         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
115         in asm template.
116         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
117         "J" operand constraint for operand 2.
118         (*ashldi3_cconly_rex64): Ditto.
119         (*ashrdi3_cmp_rex64): Ditto.
120         (*ashrdi3_cconly_rex64): Ditto.
121         (*lshrdi3_cmp_rex64): Ditto.
122         (*lshrdi3_cconly_rex64): Ditto.
123         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
124         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
125         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
126         gen_x86_shrd_1.
127
128 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
129
130         * gimplify.c (omp_is_private): Don't return true if decl is not
131         already private on #pragma omp for or #pragma omp parallel for.
132
133         PR debug/36617
134         * tree-cfg.c (struct move_stmt_d): Replace block field with
135         orig_block and new_block fields.
136         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
137         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
138         (move_block_to_fn): Replace vars_map and new_label_map arguments
139         with struct move_stmt_d pointer.
140         (replace_block_vars_by_duplicates): New function.
141         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
142         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
143         all subblocks of ORIG_BLOCK to the new function.  Call
144         replace_block_vars_by_duplicates.
145         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
146         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
147         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
148         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
149         (expand_omp): Temporarily set input_location to the location of
150         region's controlling stmt.
151         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
152         BIND_EXPR, push ctx->block_vars and gimplification vars into
153         the BIND_EXPR and its block's BLOCK_VARS instead of directly
154         into dest function.
155         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
156         there are any BLOCK_VARS.
157         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
158         OMP_PARALLEL or OMP_TASK stmt.
159         (lower_omp): Save and restore input_location around the lower_omp_1
160         call.
161
162 2008-06-27  Richard Guenther  <rguenther@suse.de>
163
164         PR tree-optimization/36400
165         PR tree-optimization/36373
166         PR tree-optimization/36344
167         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
168         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
169         (update_alias_info): Remove call clobbering code.
170         (make_constraint_to): New helper function.
171         (make_escape_constraint): Likewise.
172         (handle_rhs_call): Use it on all pointer containing arguments.
173         Also mark the static chain escaped.
174         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
175         instead of ANYTHING.
176         (make_constraint_from): New helper split out from ...
177         (make_constraint_from_anything): ... here.
178         (find_func_aliases): Add constraints for escape sites.
179         (intra_create_variable_infos): Make constraints from NONLOCAL
180         for parameters.
181         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
182         as ANYTHING.
183         (clobber_what_p_points_to): Remove.
184         (clobber_what_escaped): New function.
185         (init_base_vars): Init NONLOCAL and ESCAPED.
186         (do_sd_constraint): Do not propagate the solution from ESCAPED
187         but use ESCAPED as a placeholder.
188         (solve_graph): Likewise.
189         * tree-flow.h (clobber_what_p_points_to): Remove.
190         (clobber_what_escaped): Declare.
191         * tree-ssa-alias.c (set_initial_properties): Call it.
192         Remove code clobbering escaped pointers.
193
194 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
195
196         * function.c (allocate_struct_function): Only allocate a unique
197         funcdef_no if the decl is nonzero.
198
199 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
200
201         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
202         * config/mips/mips.c (mips_split_const_insns): New function.
203         * config/mips/mips.md (move_type): New attribute.
204         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
205         (dword_mode): New attribute.
206         (type): Avoid long line.  Map "move_type"s to "type"s,
207         choosing "multi" for doubleword moves if appropriate.
208         Swap MTC/MFC comments to match their declaration order.
209         (extended_mips16): Default to "yes" if "move_type" is "sll0",
210         "type" is "branch" or "jal" is "direct".
211         (length): Handle "extended_mips16" first.  Make the default
212         "0" for "ghost" instructions.  Set the length from "move_type".
213         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
214         of "type", with "sll0" for the register alternative.  Remove the
215         "extended_mips16" attribute.
216         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
217         of "type", with "shift_shift" for the register alternative.
218         Remove the "length" attribute.
219         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
220         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
221         of "type", with "andi" for the register alternative.
222         (*zero_extendqihi2): Likewise.
223         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
224         of "andi" instead of a "type" of "arith".
225         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
226         instead of "type".
227         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
228         (mov_<store>r, *mov<mode>_ra): Likewise.
229         (extendsidi2): Use "move_type" instead of "type", with "move"
230         for the register alternative.
231         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
232         of "type", with "signext" for the register alternative.
233         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
234         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
235         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
236         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
237         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
238         (unnamed branch insn): Likewise.
239         (*movdi_gp32_fp64): Fold into...
240         (*movdi_32bit): ...here.
241         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
242         (*movdf_hardfloat): ...this new pattern.
243         (*movdf_softfloat): Remove redundant FPR alternatives.
244         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
245         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
246         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
247         the "move" attribute.
248         (*movdi_32bit): Use "move_type" instead of "type" and remove the
249         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
250         and "store" for COP loads and stores.
251         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
252         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
253         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
254         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
255         (*movtf_mips16, *movv2sf): Likewise.
256         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
257         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
258         (mfhc1<mode>): Use "move_type" instead of "move".
259         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
260         (loadgp_blockage): Remove the "length" attribute.
261         (blockage, set_got_version, update_got_version): Likewise.
262         (call_internal): Remove the "extended_mips16" attribute.
263         (call_value_internal, call_value_multiple_internal): Likewise.
264         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
265         instead of "move".
266         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
267         the "length" attribute.
268
269 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
270
271         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
272         -Wcast-qual warnings.
273         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
274         handle_pragma_pop_macro): Likewise.
275         * collect2.c (resolve_lib_name): Likewise.
276         * config/arc/arc.c (arc_init): Likewise.
277         * config/arm/arm.c (neon_builtin_compare,
278         locate_neon_builtin_icode): Likewise.
279         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
280         * config/bfin/bfin.c (bfin_init_machine_status,
281         bfin_optimize_loop): Likewise.
282         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
283         * config/cris/cris.c (cris_init_expanders): Likewise.
284         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
285         * config/darwin.c (machopic_indirection_eq,
286         machopic_indirection_name, machopic_output_indirection): Likewise.
287         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
288         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
289         frv_optimize_membar): Likewise.
290         * config/i386/cygwin.h (mingw_scan,
291         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
292         * config/i386/cygwin1.c (mingw_scan): Likewise.
293         * config/i386/i386.c (machopic_output_stub): Likewise.
294         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
295         i386_pe_unique_section): Likewise.
296         * config/ia64/ia64.c (ia64_init_machine_status,
297         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
298         Likewise.
299         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
300         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
301         * config/m68k/m68k.c (m68k_handle_option,
302         m68k_sched_md_init_global): Likewise.
303         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
304         mcore_unique_section): Likewise.
305         * config/mips/mips.c (mips_block_move_straight,
306         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
307         Likewise.
308         * config/mmix/mmix.c (mmix_init_machine_status,
309         mmix_encode_section_info): Likewise.
310         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
311         * config/rs6000/rs6000.c (rs6000_init_machine_status,
312         print_operand_address, output_toc, redefine_groups,
313         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
314         * config/s390/s390.c (s390_init_machine_status): Likewise.
315         * config/score/score.c (score_block_move_straight,
316         score_block_move_loop_body): Likewise.
317         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
318         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
319         * emit-rtl.c (find_auto_inc): Likewise.
320         * gcc.c (translate_options, process_command): Likewise.
321         * reorg.c (dbr_schedule): Likewise.
322         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
323         * xcoffout.c (xcoffout_declare_function): Likewise.
324
325 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
326
327         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
328         ipa-pta working again.
329
330 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
331
332         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
333         genautomata.
334
335 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
336
337         * config.gcc (powerpc*-*-*): Add new core e500mc.
338         * config/rs6000/e500mc.md: New file.
339         * config/rs6000/rs6000.c (processor_costs): Add new costs for
340         e500mc.
341         (rs6000_override_options): Add e500mc case to
342         processor_target_table. Altivec and Spe options not allowed
343         with e500mc. Add isel instruction to e500mc by
344         default. Initialize rs6000_cost for e500mc.
345         (rs6000_issue_rate): Set issue rate for e500mc.
346         * config/rs6000/rs6000.h (processor_type): Add
347         PROCESSOR_PPCE500MC.
348         (ASM_CPU_SPEC): Add e500mc.
349         Set TARGET_ISEL to rs6000_isel.
350         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
351         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
352         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
353         Include e500mc.md.
354         * doc/invoke.texi: Add e500mc to list of cpus.
355
356 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
357
358         PR c/34867
359         * c-lex.c (lex_charconst): Initialize unsignedp.
360
361 2008-06-27  Olivier Hainque  <hainque@adacore.com>
362
363         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
364         documented assumptions.
365
366 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
367
368         * dwarf2out.c: Remove trailing white spaces.  Break long line
369         in comments.
370
371 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
372
373         * libfuncs.h (LTI_synchronize): New libfunc_index.
374         (synchronize_libfunc): Declare.
375         * builtins.c (expand_builtin_synchronize): Consider using
376         synchronize_libfunc before falling back on an asm blockage.
377         * config/mips/mips.c: Include libfuncs.h
378         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
379
380 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
381
382         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
383         parameter.  Copy stack_reg to r11 where appropriate.
384         (no_global_regs_above): Add gpr parameter.
385         (rs6000_stack_info): Only add padding for SPE save area if we
386         are saving SPE GPRs and CR.
387         (saveres_routine_syms): New variable.
388         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
389         Define.
390         (rs6000_savres_routine_sym): New function.
391         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
392         split out of...
393         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
394         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
395         Tweak FPR out-of-line saving.
396         (rs6000_make_savres_rtx): New function.
397         (rs6000_use_multiple_p): New function.
398         (rs6000_savres_strategy): New function.
399         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
400         out-of-line if appropriate.
401         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
402         if we are optimizing for size.
403         (GP_SAVE_INLINE): Define.
404         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
405         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
406         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
407         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
408         (*save_fpregs_<mode>): Add use of r11.
409         (*restore_gpregs_<mode>): New insn.
410         (*return_and_restore_gpregs_<mode>): New insn.
411         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
412         use r11.
413         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
414         (*restore_gpregs_spe): New insn.
415         (*return_and_restore_gpregs_spe): New insn.
416         * config/rs6000/predicates.md (save_world_operation): Fix check.
417
418 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
419
420         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
421         this point, so assert that.
422
423 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
424
425         * cfganal.c: Include vec.h and vecprim.h.
426         (compute_idf): Import from...
427         * tree-into-ssa (compute_idf): ...here.
428         * basic-block.h (compute_idf): Export.
429
430 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
431
432         * c-decl.c (merge_decls): Use !current_function_decl to check for
433         extern declaration of C99 inline function being at file scope.
434
435 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
436
437         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
438
439 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
440
441         * alias.c (record_alias_subset, init_alias_analysis): Fix
442         -Wc++-compat and/or -Wcast-qual warnings.
443         * attribs.c (lookup_attribute_spec): Likewise.
444         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
445         copy_bb, connect_traces,
446         find_rarely_executed_basic_blocks_and_cr): Likewise.
447         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
448         note_btr_set, migrate_btr_defs): Likewise.
449         * builtins.c (result_vector, expand_builtin_memcpy,
450         expand_builtin_mempcpy_args, expand_builtin_strncpy,
451         builtin_memset_read_str, expand_builtin_printf,
452         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
453         Likewise.
454         * caller-save.c (mark_set_regs): Likewise.
455         * calls.c (expand_call, emit_library_call_value_1): Likewise.
456         * cgraph.c (cgraph_edge): Likewise.
457         * combine.c (likely_spilled_retval_1): Likewise.
458         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
459         htab_counts_entry_del, get_coverage_counts): Likewise.
460         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
461         new_cselib_val): Likewise.
462         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
463         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
464         Likewise.
465         * df-core.c (df_compact_blocks): Likewise.
466         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
467         * df-scan.c (df_grow_reg_info, df_ref_create,
468         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
469         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
470         df_record_entry_block_defs, df_record_exit_block_uses,
471         df_bb_verify): Likewise.
472         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
473         DF_REF_EXTRACT_MODE_CONST): New.
474         * dominance.c (get_immediate_dominator, get_dominated_by,
475         nearest_common_dominator, root_of_dom_tree,
476         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
477         -Wc++-compat and/or -Wcast-qual warnings.
478         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
479         record_store, replace_read, check_mem_read_rtx, scan_insn,
480         dse_step1, dse_record_singleton_alias_set): Likewise.
481         * dwarf2asm.c (dw2_force_const_mem): Likewise.
482
483 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
484
485         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
486         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
487         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
488         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
489         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
490         add_ranges_num, add_ranges_by_labels, file_info_cmp,
491         file_name_acquire, output_file_names, add_const_value_attribute,
492         premark_used_types_helper, file_table_eq, file_table_hash,
493         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
494         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
495         -Wcast-qual warnings.
496         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
497         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
498         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
499         gen_reg_rtx, start_sequence, init_emit): Likewise.
500         * et-forest.c (et_new_occ, et_new_tree): Likewise.
501         * except.c (init_eh_for_function, gen_eh_region,
502         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
503         arh_to_landing_pad, arh_to_label, add_action_record,
504         add_call_site, switch_to_exception_section): Likewise.
505         * expmed.c (synth_mult): Likewise.
506         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
507         store_expr): Likewise.
508         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
509         Likewise.
510         * function.c (assign_stack_temp_for_type,
511         allocate_struct_function, match_asm_constraints_1): Likewise.
512         * gcov-io.c (gcov_allocate): Likewise.
513         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
514         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
515         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
516         record_one_set, insert_expr_in_table, insert_set_in_table,
517         dump_hash_table, compute_hash_table_work, alloc_hash_table,
518         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
519         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
520         -Wcast-qual warnings.
521
522 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
523
524         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
525         -Wcast-qual warnings.
526         * gcc.c (process_command): Likewise.
527         * genattrtab.c (oballoc): Use XOBNEW.
528         (oballocvec): Define.
529         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
530         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
531         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
532         -Wc++-compat and/or -Wcast-qual warnings.
533         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
534         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
535         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
536         gen_presence_absence_set, gen_automaton, gen_regexp_el,
537         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
538         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
539         add_excls, process_presence_absence_names,
540         process_presence_absence_patterns, add_presence_absence,
541         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
542         get_free_state, add_arc, get_free_automata_list_el,
543         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
544         transform_3, cache_presence, create_ainsns, create_automata,
545         create_state_ainsn_table, dfa_insn_code_enlarge,
546         output_trans_func, output_min_issue_delay_func,
547         output_dead_lock_func, output_reset_func,
548         output_get_cpu_unit_code_func, output_dfa_start_func,
549         expand_automata): Likewise.
550         * genextract.c (gen_insn): Likewise.
551         * gengtype-lex.l: Likewise.
552         * gengtype.c (read_input_list, adjust_field_type,
553         process_gc_options): Likewise.
554         * genoutput.c (note_constraint): Likewise.
555         * genpreds.c (mangle, add_constraint): Likewise.
556         * genrecog.c (process_define_predicate, new_decision,
557         add_to_sequence): Likewise.
558         * gensupport.c (record_insn_name): Likewise.
559
560 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
561
562         * config/i386/driver-i386.c (detect_caches_amd,
563         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
564         and/or -Wcast-qual warnings.
565         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
566         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
567         gt_pch_save): Likewise.
568         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
569         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
570         * global.c (compute_regsets): Likewise.
571         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
572         finish_graph_dump_file): Likewise.
573         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
574         unlink_bb_notes): Likewise.
575         * integrate.c (get_hard_reg_initial_val): Likewise.
576         * ipa-prop.c (ipa_push_func_to_list): Likewise.
577         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
578         * local-alloc.c (update_equiv_regs): Likewise.
579         * loop-invariant.c (check_invariant_table_size,
580         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
581         Likewise.
582         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
583         altered_reg_used, mark_altered): Likewise.
584         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
585         insert_var_expansion_initialization,
586         combine_var_copies_in_loop_exit, apply_opt_in_copies,
587         release_var_copies): Likewise.
588         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
589         analyze_matrix_decl, add_allocation_site, analyze_transpose,
590         analyze_accesses_for_phi_node, check_var_notmodified_p,
591         check_allocation_function, find_sites_in_func,
592         record_all_accesses_in_func, transform_access_sites,
593         transform_allocation_sites): Likewise.
594         * omp-low.c (new_omp_region, create_omp_child_function_name,
595         check_omp_nesting_restrictions, check_combined_parallel,
596         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
597         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
598         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
599         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
600         Likewise.
601         * opts-common.c (prune_options): Likewise.
602         * opts.c (add_input_filename, print_filtered_help,
603         get_option_state): Likewise.
604         * params.c (add_params): Likewise.
605         * passes.c (set_pass_for_id, next_pass_1,
606         do_per_function_toporder, pass_fini_dump_file): Likewise.
607         * postreload.c (reload_cse_simplify_operands): Likewise.
608         * predict.c (tree_predicted_by_p, tree_predict_edge,
609         clear_bb_predictions, combine_predictions_for_bb): Likewise.
610
611 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
612
613         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
614         warnings.
615         * recog.c (check_asm_operands, validate_change_1): Likewise.
616         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
617         subst_asm_stack_regs): Likewise.
618         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
619         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
620         * regmove.c (reg_is_remote_constant_p): Likewise.
621         * regrename.c (regrename_optimize, scan_rtx_reg,
622         kill_clobbered_value, kill_set_value, kill_autoinc_value):
623         Likewise.
624         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
625         regstat_compute_calls_crossed): Likewise.
626         * reload1.c (init_reload, new_insn_chain,
627         has_nonexceptional_receiver, reload, copy_reloads,
628         calculate_needs_all_insns, init_elim_table): Likewise.
629         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
630         * rtl.c (shallow_copy_rtx_stat): Likewise.
631         * rtlanal.c (parms_set): Likewise.
632         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
633         sbitmap_resize, sbitmap_vector_alloc): Likewise.
634         * sched-ebb.c (earliest_block_with_similiar_load,
635         add_deps_for_risky_insns): Likewise.
636         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
637         schedule_region): Likewise.
638         * see.c (eq_descriptor_pre_extension,
639         hash_descriptor_pre_extension, hash_del_pre_extension,
640         eq_descriptor_properties, hash_descriptor_properties,
641         hash_del_properties, see_seek_pre_extension_expr,
642         see_initialize_data_structures, see_print_register_properties,
643         see_print_pre_extension_expr, see_delete_merged_def_extension,
644         see_delete_unmerged_def_extension, see_emit_use_extension,
645         see_pre_delete_extension, see_map_extension, see_commit_changes,
646         see_analyze_merged_def_local_prop,
647         see_analyze_merged_def_local_prop,
648         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
649         see_set_prop_merged_def, see_set_prop_unmerged_def,
650         see_set_prop_unmerged_use, see_print_one_extension,
651         see_merge_one_use_extension, see_merge_one_def_extension,
652         see_store_reference_and_extension, see_update_uses_relevancy,
653         see_update_defs_relevancy): Likewise.
654         * statistics.c (hash_statistics_hash, hash_statistics_eq,
655         hash_statistics_free, curr_statistics_hash): Likewise.
656         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
657         expand_asm_operands, expand_return, case_bit_test_cmp,
658         expand_case): Likewise.
659         * stor-layout.c (start_record_layout): Likewise.
660         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
661         gt_pch_save_stringpool): Likewise.
662         * tree-data-ref.c (hash_stmt_vertex_info,
663         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
664         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
665
666 2008-06-25 Uros Bizjak  <ubizjak@gmail.com>
667
668         PR target/36627
669         * config/i386/i386.md : Change constraints of HImode and QImode
670         immediate operands from "i" to "n".  Change SImode "ni" constraint to
671         "i" and SImode "rmi" constraint to "g".  Remove all constraints
672         from const0_operand and const1_operand predicated operands.
673         (i): Change QImode and HImode attribute from "i" to "n".
674         (*subqi_2): Change HImode operands to QImode.
675         (*subqi_3): Ditto.
676
677 2008-06-25  Olivier Hainque  <hainque@adacore.com>
678
679         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
680         sed substitutions.
681
682 2008-06-25  Richard Guenther  <rguenther@suse.de>
683
684         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
685         not overflow the result type.
686
687 2008-06-25  Richard Guenther  <rguenther@suse.de>
688
689         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
690         (vn_lookup): Likewise.
691
692 2008-06-25  Richard Guenther  <rguenther@suse.de>
693
694         PR tree-optimization/35518
695         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
696         * tree-sra.c (instantiate_element): Use fold_build3 to build
697         BIT_FIELD_REFs.
698         (try_instantiate_multiple_fields): Likewise.
699
700 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
701
702         * config/rs6000/rs6000.md: Change all string instruction's clobber to
703         be early clobbers.
704
705 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
706
707         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
708         use_backchain_to_restore_sp to true
709         if the offset of the link register save area would go over the 32k - 1
710         offset limit of the load
711         instructions.
712
713 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
714
715         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
716         anchor for the type-punning blurb.  Cross-reference "Structures
717         unions enumerations and bit-fields implementation".  Provide a
718         cast-through-pointer example.  Make final sentence self-contained.
719         * doc/implement-c.texi (Structures unions enumerations and
720         bit-fields implementation): Cross-reference the type-punning blurb
721         in the -fstrict-aliasing documentation.
722
723 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
724
725         PR middle-end/36594
726         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
727         the memory instead of the memory itself for the save area.
728
729 2008-06-24  Olivier Hainque  <hainque@adacore.com>
730             Nicolas Roche  <roche@adacore.com>
731
732         * gengtype.c (srcdir_len): size_t instead of int.
733         (get_file_realbasename): New function.  For F a filename, the real
734         basename of F, with all the path components stripped.
735         (get_file_srcdir_relative_path): New function.  For F a filename, the
736         relative path to F from $(srcdir).
737         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
738         get_file_realbasename.  Adjust the head comment.
739         (get_prefix_langdir_index): New function. For F a filename, return the
740         lang_dir_names[] relative index of the language directory that is
741         a prefix in F.
742         (get_file_langdir): For F a filename, return the name of the language
743         directory where F is located.
744         (get_file_gtfilename): New function. The gt- output file name for an
745         input filename F.
746         (get_output_file_with_visibility): Replace in-line computations with
747         uses of get_file_gtfilename and get_prefix_langdir_index.
748         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
749
750 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
751
752         PR tree-optimization/36504
753         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
754         references without base address.
755
756 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
757
758         PR middle-end/36584
759         * calls.c (expand_call): Increase alignment for recursive functions.
760
761 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
762
763         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
764         (TARGET_FUNCTION_VALUE): New define.
765         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
766         * config/avr/avr.h (FUNCTION_VALUE): Remove.
767
768 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
769
770         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
771         (fmod<mode>3): Ditto.
772         (remainderxf3): Ditto.
773         (remainder<mode>3): Ditto.
774
775 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
776
777         PR target/36533
778         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
779         REG is a hard register.
780
781         PR tree-optimization/36508
782         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
783         499, don't check it at all in release compilers.
784
785 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
786
787         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
788         together with SSE_TARGET_MATH to disable insn pattern.
789         (*fop_<MODEF:mode>_2_i387): Ditto.
790         (*fop_<MODEF:mode>_3_i387): Ditto.
791
792 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
793
794         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
795         
796 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
797
798         PR middle-end/34906
799         * gimplify.c (gimplify_asm_expr): Check the return code of
800         parse_output_constraint call, set function return and is_inout
801         value if it failed.
802
803 2008-06-22  Ian Lance Taylor  <iant@google.com>
804
805         * c-lex.c (narrowest_unsigned_type): Change itk to int.
806         (narrowest_signed_type): Likewise.
807         * c-typeck.c (c_common_type): Change local variable mclass to enum
808         mode_class, twice.
809         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
810         tcc_comparison, not the tree code itself.
811         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
812         (c_expand_expr): Cast modifier to enum expand_modifier.
813         * c-common.h (C_RID_CODE): Add casts.
814         (C_SET_RID_CODE): Define.
815         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
816         (c_lex_one_token): Add cast to avoid warning.
817         (c_parser_objc_type_name): Rename local typename to type_name.
818         (check_no_duplicate_clause): Change code parameter to enum
819         omp_clause_code.
820         (c_parser_omp_var_list_parens): Change kind parameter to enum
821         omp_clause_code.
822         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
823         c_parser_omp_list_var_parens.
824         (c_parser_omp_threadprivate): Likewise.
825         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
826         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
827         * c-format.c (NO_FMT): Define.
828         (printf_length_specs): Use NO_FMT.
829         (asm_fprintf_length_specs): Likewise.
830         (gcc_diag_length_specs): Likewise.
831         (scanf_length_specs): Likewise.
832         (strfmon_length_specs): Likewise.
833         (gcc_gfc_length_specs): Likewise.
834         (printf_flag_specs): Change 0 to STD_C89.
835         (asm_fprintf_flag_specs): Likewise.
836         (gcc_diag_flag_specs): Likewise.
837         (gcc_cxxdiag_flag_specs): Likewise.
838         (scanf_flag_specs): Likewise.
839         (strftime_flag_specs): Likewise.
840         (strfmon_flag_specs): Likewise.
841         (print_char_table): Likewise.
842         (asm_fprintf_char_table): Likewise.
843         (gcc_diag_char_table): Likewise.
844         (gcc_tdiag_char_table): Likewise.
845         (gcc_cdiag_char_table): Likewise.
846         (gcc_cxxdiag_char_table): Likewise.
847         (gcc_gfc_char_table): Likewise.
848         (scan_char_table): Likewise.
849         (time_char_table): Likewis.
850         (monetary_char_table): Likewise.
851         * c-format.h (BADLEN): Likewise.
852
853 2008-06-21  Ian Lance Taylor  <iant@google.com>
854
855         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
856         Define END_OF_BASE_TREE_CODES around inclusion.
857         * tree.c (tree_code_type): New global array.
858         (tree_code_length, tree_code_name): Likewise.
859         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
860         $(lang_tree_files).
861         (all-tree.def, s-alltree): New targets.
862         (gencheck.h, s-gencheck): Remove.
863         (tree.o): Depend upon all-tree.def.
864         (build/gencheck.o): Remove gencheck.h dependency.
865         (mostlyclean): Don't remove gencheck.h.
866         * c-common.h (enum c_tree_code): Remove.
867         * c-lang.c (tree_code_type): Remove.
868         (tree_code_length, tree_code_name): Remove.
869         * gencheck.c (tree_codes): Include all-tree.def, rather than
870         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
871         after it is used.
872         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
873         than tree.def.
874         * cp/cp-tree.h (enum cplus_tree_code): Remove.
875         (operator_name_info): Size to MAX_TREE_CODES.
876         (assignment_operator_name_info): Likewise.
877         * cp/cp-lang.c (tree_code_type): Remove.
878         (tree_code_length, tree_code_name): Remove.
879         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
880         (assignment_operator_name_info): Likewise.
881         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
882         MAX_TREE_CODES.
883         * cp/mangle.c (write_expression): Likewise.
884         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
885         * fortran/f95-lang.c (tree_code_type): Remove.
886         (tree_code_length, tree_code_name): Remove.
887         * java/java-tree.h (enum java_tree_code): Remove.
888         * java/lang.c (tree_code_type): Remove.
889         (tree_code_length, tree_code_name): Remove.
890         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
891         * objc/objc-act.h (enum objc_tree_code): Remove.
892         * objc/objc-lang.c (tree_code_type): Remove.
893         (tree_code_length, tree_code_name): Remove.
894         * objcp/objcp-lang.c (tree_code_type): Remove.
895         (tree_code_length, tree_code_name): Remove.
896         * ada/ada-tree.h (enum gnat_tree_code): Remove.
897         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
898         * ada/misc.c (tree_code_type): Remove.
899         (tree_code_length, tree_code_name): Remove.
900
901 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
902
903         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
904         the grand_bitmap_obstack.
905
906 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
907
908         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
909         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
910         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
911         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
912         move_stmt_r, new_label_mapper): Likewise.
913         * tree-complex.c (cvc_lookup): Likewise.
914         * tree-dfa.c (create_function_ann): Likewise.
915         * tree-dump.c (dump_register): Likewise.
916         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
917         find_phi_replacement_condition): Likewise.
918         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
919         tree_function_versioning): Likewise.
920         * tree-into-ssa.c (cmp_dfsnum): Likewise.
921         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
922         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
923         get_nonlocal_debug_decl, convert_nonlocal_reference,
924         convert_nonlocal_omp_clauses, get_local_debug_decl,
925         convert_local_reference, convert_local_omp_clauses,
926         convert_nl_goto_reference, convert_nl_goto_receiver,
927         convert_tramp_reference, convert_call_expr): Likewise.
928         * tree-outof-ssa.c (contains_tree_r): Likewise.
929         * tree-parloops.c (reduction_phi, initialize_reductions,
930         eliminate_local_variables_1, add_field_for_reduction,
931         add_field_for_name, create_phi_for_local_result,
932         create_call_for_reduction_1, create_loads_for_reductions,
933         create_stores_for_reduction, create_loads_and_stores_for_name):
934         Likewise.
935         * tree-phinodes.c (allocate_phi_node): Likewise.
936         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
937         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
938         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
939         * tree-ssa-coalesce.c (compare_pairs): Likewise.
940         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
941         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
942         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
943         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. 
944         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
945         vn_nary_op_insert): Likewise.
946         * tree-ssa.c (redirect_edge_var_map_add,
947         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
948         * tree-vectorizer.c (vectorize_loops): Likewise.
949         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
950         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
951         tree_cons_stat, build1_stat, build_variant_type_copy,
952         decl_init_priority_lookup, decl_fini_priority_lookup,
953         decl_priority_info, decl_restrict_base_lookup,
954         decl_restrict_base_insert, decl_debug_expr_lookup,
955         decl_debug_expr_insert, decl_value_expr_lookup,
956         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
957         type_hash_add, get_file_function_name, tree_check_failed,
958         tree_not_check_failed, tree_range_check_failed,
959         omp_clause_range_check_failed, build_omp_clause,
960         build_vl_exp_stat): Likewise.
961         * value-prof.c (gimple_histogram_value,
962         gimple_duplicate_stmt_histograms): Likewise.
963         * var-tracking.c (attrs_list_insert, attrs_list_copy,
964         unshare_variable, variable_union_info_cmp_pos, variable_union,
965         dataflow_set_different_1, dataflow_set_different_2,
966         vt_find_locations, variable_was_changed, set_variable_part,
967         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
968         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
969         section_entry_hash, object_block_entry_eq,
970         object_block_entry_hash, create_block_symbol,
971         initialize_cold_section_name, default_function_rodata_section,
972         strip_reg_name, set_user_assembler_name, const_desc_eq,
973         build_constant_desc, output_constant_def, lookup_constant_def,
974         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
975         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
976         default_internal_label): Likewise.
977         * varray.c (varray_init, varray_grow): Likewise.
978         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
979
980 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
981
982         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
983         operators for "test" insn.  Macroize insn using SWI mode macro.
984         (*jcc_fused_2): Ditto.
985         (*jcc_fused_3): Macroize insn using SWI mode macro.
986         (*jcc_fused_4): Ditto.
987
988 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
989
990         * tree-ssa-pre.c: Fix typo in comment.
991         (init_antic, fini_antic): Add explicit funtions for
992         initializing and deinitializing ANTIC and AVAIL sets.
993         (create_expression_by_pieces): Fix typo in comment.
994         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
995         (execute_pre): Eventually dump details about ANTIC_IN.
996
997 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
998
999         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
1000         * gcc.c (translate_options, init_spec, store_arg, read_specs,
1001         add_to_obstack, file_at_path, find_a_file, execute,
1002         add_preprocessor_option, add_assembler_option, add_linker_option,
1003         process_command, insert_wrapper, do_option_spec, do_self_spec,
1004         spec_path, do_spec_1, is_directory, main, used_arg,
1005         getenv_spec_function): Likewise.
1006         * tlink.c (symbol_hash_lookup, file_hash_lookup,
1007         demangled_hash_lookup, symbol_push, file_push, frob_extension):
1008         Likewise.
1009
1010 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
1011
1012         * doc/rtl.texi: Updated subreg section.
1013
1014 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
1015
1016         PR c++/36523
1017         * cgraphunit.c (cgraph_process_new_functions): Don't clear
1018         node->needed and node->reachable.
1019         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
1020         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
1021         (expand_task_call): Don't call expand_task_copyfn.
1022         (expand_task_copyfn): Renamed to...
1023         (finalize_task_copyfn): ... this.
1024
1025 2008-06-19  Jan Hubicka  <jh@suse.cz>
1026
1027         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
1028         clobbering framepointer.
1029
1030 2008-06-19  Jan Hubicka  <jh@suse.cz>
1031
1032         * tree-optimize.c (execute_early_local_optimizations): Set
1033         cgraph_state only at first invocation.
1034
1035 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1036
1037         * system.h (-Wc++-compat): Activate as a warning, no an error.
1038
1039 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
1040
1041         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
1042         instead of "#" in insn asm template.
1043         (*jcc_fused_2): Ditto.
1044
1045 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
1046
1047         * config/i386/i386.h (ix86_tune_indices)
1048         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
1049         (TARGET_FUSE_CMP_AND_BRANCH): New define.
1050         * config/i386/i386.md (*jcc_fused_1): New insn pattern
1051         (*jcc_fused_2): Ditto.
1052         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
1053         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
1054         (print operand): Handle 'E' and 'e' code.
1055
1056 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
1057
1058         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
1059         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
1060         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1061
1062 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
1063
1064         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
1065         node->decl.
1066         (cgraph_expand_function): Use local copy of decl.
1067         (cgraph_expand_all_functions): Remove redundant initialization of
1068         order_pos.
1069         (cgraph_optimize): Reword internal_error message.
1070
1071 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
1072
1073         * arm-protos.h (arm_return_in_memory): Remove public
1074         arm_return_in_memory() prototype.
1075         * arm.c (arm_return_in_memory): Add static prototype, add target
1076         hook macro, change definition and comments.
1077         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
1078
1079 2008-06-19  Ben Elliston  <bje@au.ibm.com>
1080
1081         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
1082         real.c: Remove references to IEEE 754R.
1083         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
1084         * doc/libgcc.texi (Decimal float library routines): Likewise.
1085
1086 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1087
1088         * targhooks.h (struct gcc_target): New member unwind_word_mode.
1089         (default_unwind_word_mode): Add prototype.
1090         * targhooks.c (default_unwind_word_mode): New function.
1091         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
1092         instead of word_mode.
1093         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
1094         (TARGET_INITIALIZER): Use it.
1095
1096         * c-common.c (handle_mode_attribute): Support "unwind_word"
1097         mode attribute.
1098         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
1099
1100         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
1101         word_mode to access SjLj_Function_Context member "data".
1102         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
1103         conversion from targetm.eh_return_filter_mode () to
1104         targetm.unwind_word_mode () if they differ.
1105
1106         * builtin-types.def (BT_UNWINDWORD): New primitive type.
1107         (BT_FN_UNWINDWORD_PTR): New function type.
1108         (BT_FN_WORD_PTR): Remove.
1109         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
1110         * except.c (expand_builtin_extend_pointer): Convert pointer to
1111         targetm.unwind_word_mode () instead of word_mode.
1112
1113         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
1114         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
1115         (spu_unwind_word_mode): New function.
1116         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
1117         (TARGET_UNWIND_WORD_MODE): Define.
1118         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
1119
1120 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1121
1122         * config/spu/spu.c (reg_align): Remove.
1123         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
1124         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
1125         (spu_split_store): Likewise.
1126
1127 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
1128
1129         * gcc/tree-vn.c: Fix typo in comment.
1130
1131 2008-06-18  Jan Hubicka  <jh@suse.cz>
1132
1133         * cgraphunit.c (cgraph_optimize): Output debug info when doing
1134         toplevel reorder too.
1135
1136 2008-06-18  Jan Hubicka  <jh@suse.cz>
1137
1138         * c-opts.c (c_common_post_options): PCH is not compatible with
1139         no-unit-at-a-time.
1140         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
1141         -fno-toplevel-reorder by default now.
1142
1143 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1144
1145         PR documentation/30739
1146         * doc/install.texi (Prerequisites): Document dependency on awk.
1147
1148 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
1149             Ian Lance Taylor  <iant@google.com>
1150
1151         PR rtl-optimization/35604
1152         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
1153         only want to change jump destinations, not eventual label comparisons.
1154
1155 2008-06-16  Jan Hubicka  <jh@suse.cz>
1156
1157         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
1158         syntax errors.
1159         (cgraph_analyze_function): Likewise.
1160
1161 2008-06-16  Jan Hubicka  <jh@suse.cz>
1162
1163         * cgraph.h (cgraph_mark_if_needed): New function.
1164         * cgraphunit.c (cgraph_mark_if_needed): New function.
1165         * c-decl.c (duplicate_decl): Use it.
1166
1167 2008-06-16  Jan Hubicka  <jh@suse.cz>
1168
1169         * cgraph.c (cgraph_add_new_function): When in expansion state, do
1170         lowering.
1171
1172 2008-06-16  Jan Hubicka  <jh@suse.cz>
1173
1174         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
1175
1176 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
1177             Kazu Hirata  <kazu@codesourcery.com>
1178             Maxim Kuvyrkov  <maxim@codesourcery.com
1179
1180         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
1181         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
1182         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
1183         EXTRA_SPEC_FUNCTIONS.
1184         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
1185         (DRIVER_SELF_SPECS): Adjust.
1186         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
1187         * config/mips/st.h, config/mips/t-st: New.
1188         * config/mips/driver-native.c, config/mips/x-native: New.
1189         * doc/invoke.texi (MIPS): Document 'native' value for -march and
1190         -mtune options.
1191
1192 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
1193
1194         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
1195         from it.
1196         (ISA_HAS_FP_CONDMOVE): New macro.
1197         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
1198         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
1199         (ISA_HAS_NMADD3_NMSUB3): New macro.
1200         * config/mips/mips.c (mips_rtx_costs): Update.
1201         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
1202         compiling for ST Loongson 2E/2F.
1203         (madd<mode>): Rename to madd4<mode>.  Update.
1204         (madd3<mode>): New pattern.
1205         (msub<mode>): Rename to msub4<mode>.  Update.
1206         (msub3<mode>): New pattern.
1207         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
1208         (nmadd3<mode>): New pattern.
1209         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
1210         (nmadd3<mode>_fastmath): New pattern.
1211         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
1212         (nmsub3<mode>): New pattern.
1213         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
1214         (nmsub3<mode>_fastmath): New pattern.
1215         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
1216
1217 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
1218
1219         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
1220         (DF_REF_INSN_INFO): New.
1221         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
1222         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
1223         with a NULL DF_REF_INSN_INFO.
1224         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
1225         DF_INSN_SET.
1226         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
1227         DF_INSN_INFO_EQ_USES): New.
1228         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
1229         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
1230         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
1231         * df-core.c: Update comment for above changes.
1232         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
1233         DF_INSN_UID_* macros.
1234         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
1235         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
1236         insn rtx.  Update all callers.
1237         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
1238         df_ref_create_structure, df_insn_refs_collect): Likewise.
1239         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
1240         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
1241         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
1242         macros to access the insn refs.
1243         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
1244         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
1245         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
1246         for accessing the refs.
1247         (try_fwprop_subst): Likewise.
1248         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
1249         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
1250         for accessing the refs.
1251         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
1252         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
1253         to look at the insn refs.
1254         (record_uses): Likewise.
1255         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
1256         function anymore.
1257         (mark_artificial_uses): Don't mark_insn for artificial refs.
1258         (mark_reg_rependencies): Likewise.
1259
1260         * doc/rtl.texi: Remove documentation of ADDRESSOF.
1261
1262 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1263
1264         * configure: Regenerate.
1265
1266 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
1267
1268         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
1269         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
1270         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
1271
1272 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
1273
1274         * config/avr/avr.c (avr_mcu_t): Add attiny167.
1275         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
1276         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
1277
1278 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
1279
1280         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
1281         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
1282         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
1283
1284 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
1285
1286         * tree-ssa-sccvn.c: Fix format of comments.
1287
1288 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
1289
1290         * cgraph.c: Remove unneeded forward declarations of eq_node()
1291         and hash_node().
1292
1293 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
1294
1295         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
1296         REG_RETVAL notes.
1297         (see_update_relevancy): Likewise.
1298         * fwprop.c (try_fwprop_subst): Likewise.
1299         * rtlanal.c (noop_move_p): Likewise.
1300         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
1301         notes to non-existing libcall blocks.
1302         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
1303         Remove orig_set.
1304         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
1305         (dead_libcall_p): Remove.
1306         (delete_trivially_dead_insns): Don't use it.
1307         * web.c (union_defs): Remove comment about keeping nops.
1308         * gcse.c (hash_scan_insn): Don't take libcall pointers.
1309         (compute_hash_table_work): Don't track libcall notes.
1310         (do_local_cprop): Don't take libcall pointers.  Don't update
1311         libcall notes.
1312         (adjust_libcall_notes): Deleted.
1313         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
1314         ever have existed in the first place).
1315         (replace_store_insn): Don't try to remove libcall notes.
1316         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
1317         (resolve_reg_notes): Don't call them.
1318         (resolve_simple_move): Likewise.
1319         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
1320         Don't remove REG_RETVAL notes.
1321         * emit-rtl.c (try_split): Don't update libcall notes.
1322         (emit_copy_of_insn_after): Dito.
1323         * cselib.c (cselib_current_insn_in_libcall): Remove.
1324         (cselib_process_insn): Don't set/clear it.
1325         (new_elt_loc_list): Don't record it.
1326         (cselib_init): Don't initialize it.
1327         * cselib.c (struct elt_loc_list): Remove in_libcall field.
1328         * loop-invariant.c (find_invariant_insn): Don't look for libcall
1329         notes.
1330         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
1331         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
1332         (init_deps): Don't initialize it.
1333         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
1334         * combine.c (delete_noop_moves): Don't update libcall notes.
1335         (can_combine_p): Remove now pointless #if 0 block.
1336         (try_combine): Remove another obsolete #if 0 block.
1337         (distribute_notes): Don't distribute libcall notes.
1338         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
1339         * dce.c (libcall_dead_p): Remove.
1340         (delete_unmarked_insns): Don't handle libcall blocks.
1341         (preserve_libcall_for_dce): Remove.
1342         (prescan_insns_for_dce): Don't special-case libcall block insns.
1343         * reload1 (reload): Don't handle libcall notes. 
1344         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
1345         documentation.
1346
1347 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
1348
1349         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
1350         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
1351         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1352
1353 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
1354
1355         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
1356         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
1357         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
1358
1359 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1360
1361         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
1362
1363 2008-06-16  Ira Rosen  <irar@il.ibm.com>
1364
1365         PR tree-optimization/36493
1366         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
1367         the arguments list. Use VECTYPE to create vector pointer.
1368         (vectorizable_store): Fail if accesses through a pointer to vectype
1369         do not alias the original memory reference operands.
1370         Call vect_create_data_ref_ptr without the removed argument.
1371         (vectorizable_load): Likewise.
1372         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
1373         removed argument.
1374
1375 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
1376
1377         PR target/36336
1378         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 
1379         reg_equiv_constant.
1380
1381 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
1382
1383         * config/mips/loongson2ef.md: New file.
1384         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
1385         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
1386         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
1387         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
1388         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
1389         and loongson_2f.
1390         (loongson2ef.md): New include.
1391         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
1392         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
1393         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
1394         (loongson_gt_<mode>, loongson_extract_halfword)
1395         (loongson_insert_halfword_0, loongson_insert_halfword_2)
1396         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
1397         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
1398         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
1399         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
1400         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
1401         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
1402         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
1403         (vec_interleave_low<mode>): Define type attribute.
1404         * config/mips/mips.c (mips_ls2): New static variable.
1405         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
1406         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
1407         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
1408         Implement target scheduling hooks.
1409         (mips_multipass_dfa_lookahead): Update to handle tuning for
1410         Loongson 2E/2F.
1411         (mips_sched_init): Initialize data for Loongson scheduling.
1412         (mips_ls2_variable_issue): New static function.
1413         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
1414         Add sanity check.
1415         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
1416         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
1417         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
1418         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
1419         Handle ST Loongson 2E/2F cores.
1420         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
1421
1422 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1423
1424         * omp-low.c (extract_omp_for_data): Fix comment typo.
1425         * c.opt: Fix typo.
1426
1427 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1428
1429         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
1430         FIXME note about gcc/config.guess.
1431         * doc/options.texi (Option file format): Remove non-ASCII bytes.
1432         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
1433         * doc/cppopts.texi: Likewise.
1434         * doc/extend.texi: Likewise.
1435         * doc/gcc.texi: Likewise.
1436         * doc/gccint.texi: Likewise.
1437         * doc/gcov.texi: Likewise.
1438         * doc/gty.texi: Likewise.
1439         * doc/hostconfig.texi: Likewise.
1440         * doc/install.texi: Likewise.
1441         * doc/invoke.texi: Likewise.
1442         * doc/loop.texi: Likewise.
1443         * doc/makefile.texi: Likewise.
1444         * doc/md.texi: Likewise.
1445         * doc/passes.texi: Likewise.
1446         * doc/tm.texi: Likewise.
1447         * doc/tree-ssa.texi: Likewise.
1448         * doc/trouble.texi: Likewise.
1449
1450 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
1451             Nathan Sidwell  <nathan@codesourcery.com>
1452             Maxim Kuvyrkov  <maxim@codesourcery.com>
1453             Richard Sandiford  <rdsandiford@googlemail.com>
1454         
1455         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
1456         * config/mips/mips-protos.h (mips_expand_vector_init): New.
1457         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
1458         builtins.
1459         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
1460         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
1461         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
1462         V8QImode cases.
1463         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
1464         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
1465         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
1466         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
1467         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
1468         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
1469         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
1470         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
1471         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
1472         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
1473         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
1474         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
1475         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
1476         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
1477         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
1478         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
1479         (mips_builtins): Add Loongson builtins.
1480         (mips_loongson_2ef_bdesc): New.
1481         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
1482         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
1483         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
1484         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
1485         New.
1486         (mips_expand_vector_init): New.
1487         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
1488         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
1489         if appropriate.
1490         * config/mips/mips.md: Add unspec numbers for Loongson
1491         builtins.  Include loongson.md.
1492         (MOVE64): Include Loongson vector modes.
1493         (SPLITF): Include Loongson vector modes.
1494         (HALFMODE): Handle Loongson vector modes.
1495         * config/mips/loongson.md: New.
1496         * config/mips/loongson.h: New.
1497         * config.gcc: Add loongson.h header for mips*-*-* targets.
1498         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
1499
1500 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
1501
1502         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
1503         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
1504         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
1505         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
1506         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
1507         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
1508         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
1509         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
1510         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
1511         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
1512         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
1513         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
1514         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
1515         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
1516         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
1517         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
1518         Remove use_fixproto=yes.
1519         (ia64*-*-hpux*): Remove comment about using fixproto.
1520         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
1521
1522 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1523
1524         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
1525         library rebuilds.
1526         * configure: Regenerate.
1527
1528 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
1529
1530         PR middle-end/36520
1531         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
1532         before evaluating it.
1533
1534 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
1535
1536         PR c/36507
1537         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
1538         nested inline functions.
1539         (start_decl, start_function): Don't invert DECL_EXTERNAL
1540         for nested inline functions.
1541
1542 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
1543
1544         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
1545         splits that must be made for correctness.
1546
1547 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
1548
1549         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
1550         (AVAIL_NON_MIPS16): Likewise.
1551         (mips_builtin_description): Replace target_flags with a predicate.
1552         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
1553         (dspr2_32): New availability predicates.
1554         (MIPS_BUILTIN): New macro.
1555         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
1556         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
1557         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
1558         Replace the TARGET_FLAGS parameters with AVAIL parameters.
1559         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
1560         (mips_dsp_32only_bdesc): Merge into...
1561         (mips_builtins): ...this new array.
1562         (mips_bdesc_map, mips_bdesc_arrays): Delete.
1563         (mips_init_builtins): Update after above changes.
1564         (mips_expand_builtin_1): Merge into...
1565         (mips_expand_builtin): ...here and update after above changes.
1566
1567 2008-06-12  Paul Brook  <paul@codesourcery.com>
1568
1569         * longlong.h (__arm__): Define count_leading_zeros.
1570         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
1571         (clzsi2, clzdi2): New functions.
1572         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
1573         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
1574         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
1575         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
1576         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
1577         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
1578         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
1579         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
1580         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
1581         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
1582
1583 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
1584
1585         * config/m68k/m68k.c (m68k_tune_flags): New.
1586         (override_options): Compute m68k_tune_flags.
1587         (MULL_COST, MULW_COST): Update for various variants of CFV2.
1588         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
1589
1590 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
1591
1592         PR middle-end/36506
1593         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
1594
1595 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
1596
1597         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
1598         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
1599
1600 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
1601
1602         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
1603         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
1604
1605 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
1606
1607         PR middle-end/36506
1608         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
1609         reductions.
1610
1611 2008-06-12  Richard Guenther  <rguenther@suse.de>
1612
1613         PR tree-optimization/36345
1614         * tree-flow.h (struct ptr_info_def): Align escape_mask,
1615         add memory_tag_needed flag.
1616         (may_alias_p): Declare.
1617         * tree-ssa-alias.c (may_alias_p): Export.
1618         (set_initial_properties): Use memory_tag_needed flag.
1619         (update_reference_counts): Likewise.
1620         (reset_alias_info): Reset memory_tag_needed flag.
1621         (create_name_tags): Check memory_tag_needed flag.
1622         (dump_points_to_info_for): Dump it.
1623         * tree-ssa-structalias.c (struct variable_info): Remove
1624         directly_dereferenced flag.
1625         (new_var_info): Do not initialize it.
1626         (process_constraint_1): Do not set it.
1627         (update_alias_info): Set is_dereferenced flag.
1628         (set_uids_in_ptset): Use may_alias_p.
1629         (set_used_smts): Check memory_tag_needed flag.
1630         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
1631         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
1632         memory_tag_needed flag.
1633         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
1634         from broken design.
1635
1636 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
1637
1638         * config/i386/i386.c (ix86_compute_frame_layout): Disable
1639         red zone for w64 abi.
1640         (ix86_expand_prologue): Likewise.
1641         (ix86_force_to_memory): Likewise.
1642         (ix86_free_from_memory): Likewise.
1643
1644 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
1645
1646         PR target/36425
1647         * config/rs6000/rs6000.c (rs6000_override_options): Set
1648         rs6000_isel conditionally to the absence of comand line override.
1649         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
1650         Remove duplicate rs6000_isel setting.
1651         * config/rs6000/eabispe.h: Ditto.
1652
1653 2008-06-11  Richard Guenther  <rguenther@suse.de>
1654
1655         * alias.c (get_alias_set): Use the element alias-set for arrays.
1656         (record_component_aliases): For arrays and vectors do nothing.
1657         * c-common.c (strict_aliasing_warning): Handle the cases
1658         of alias set zero explicitly.
1659         * Makefile.in (dfp.o-warn): Add -Wno-error.
1660
1661 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
1662
1663         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
1664         tune_32 tune_64.
1665         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
1666         tune_32 tune_64 to supported_defaults.  Allow values not
1667         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
1668         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
1669         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
1670         with_cpu_64 to generic for 64-bit-supporting configurations, not
1671         with_cpu.  Remove FIXMEs.
1672         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
1673         --with-arch-64, --with-tune-32, --with-tune-64): Document.
1674         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
1675         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
1676         arch_32 and arch_64.
1677
1678 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
1679             Olivier Hainque  <hainque@adacore.com>
1680
1681         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
1682         Use DECL_SIZE_UNIT to retrieve the size of the field.
1683
1684 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
1685
1686         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
1687         with function calls after declarations.  Lay out
1688         neon_float_type_node before further use.
1689
1690 2008-06-11  Richard Guenther  <rguenther@suse.de>
1691
1692         * tree-flow.h (may_point_to_global_var): Declare.
1693         * tree-ssa-alias.c (may_point_to_global_var): New function.
1694         * tree-ssa-sink.c (is_hidden_global_store): Use it.
1695
1696 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
1697
1698         * configure.ac: Teach that fido supports .debug_line.
1699         * configure: Regenerate.
1700
1701 2008-06-10  Tom Tromey  <tromey@redhat.com>
1702
1703         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
1704         debug hook.
1705
1706 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
1707
1708         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
1709         (encode_decimal64, decode_decimal64, encode_decimal128,
1710         decode_decimal128): Reverse order of 32-bit parts of value if host
1711         and target endianness differ.
1712
1713 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
1714
1715         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
1716         Avoid division by 0.
1717         (tree_mod_pow2_value_transform): Likewise.
1718         (tree_ic_transform): Likewise.
1719         (tree_stringops_transform): Likewise.
1720         (tree_mod_subtract_transform): Likewise.
1721         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
1722         (copy_edges_for_bb): Likewise.
1723         (initialize_cfun): Likewise.
1724
1725 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
1726
1727         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
1728         nonmemory_operand. Add "N" operand constraint.
1729         (*btsi): Ditto.
1730         (*jcc_btdi_mask_rex64): New instruction and split pattern.
1731         (*jcc_btsi_mask): Ditto.
1732         (*jcc_btsi_mask_1): Ditto.
1733
1734 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
1735
1736         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
1737         TYPE_CANONICAL for copied element type.
1738
1739 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
1740
1741         PR target/36473
1742         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
1743         Add m_CORE2 and m_GENERIC.
1744         * config/i386/predicates.md (bt_comparison_operator): New predicate.
1745         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
1746         (*btsi): Ditto.
1747         (*jcc_btdi_rex64): New instruction and split pattern.
1748         (*jcc_btsi): Ditto.
1749         (*jcc_btsi_1): Ditto.
1750         (*btsq): Fix Intel asm dialect operand order.
1751         (*btrq): Ditto.
1752         (*btcq): Ditto.
1753
1754 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
1755
1756         PR middle-end/36447
1757         * simplify-rtx.c (simplify_subreg): Add check for shift count 
1758         greater than size.
1759
1760 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
1761
1762         * doc/md.texi: Synchronize with later constraints.md change.
1763         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
1764         with a C implementation.
1765         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
1766         MFLO handling.
1767         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
1768         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
1769         when moving to and from MD_REGNUM.
1770         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
1771         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
1772         Handle byte and halfword moves.
1773         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
1774         separately.
1775         * config/mips/constraints.md (h): Turn into NO_REGS.
1776         (l, x): Update documentation.
1777         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
1778         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
1779         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
1780         (HILO): New mode iterator.
1781         (MOVE128): Add TI.
1782         (any_div): New code iterator.
1783         (u): Extend code attribute to div and udiv.
1784         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
1785         d_operand in the splitters.  Remove redundant CONST_INT checks.
1786         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
1787         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
1788         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
1789         accordingly, using normal moves instead of unspecs to move LO into
1790         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
1791         (<u>mulsidi3): Handle expansion in C code.
1792         (<u>mulsidi3_32bit_internal): Rename to...
1793         (<u>mulsidi3_32bit): ...this.
1794         (<u>mulsidi3_32bit_r4000): Fix insn separator.
1795         (*<u>mulsidi3_64bit): Rename to...
1796         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
1797         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
1798         to set LO and HI to the multiplication result.  Use a normal move
1799         for MFLO and an unspec for MFHI.
1800         (*<u>mulsidi3_64bit_parts): Replace with...
1801         (<u>mulsidi3_64bit_hilo): ...this new instruction.
1802         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
1803         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
1804         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
1805         instead of HI.  Split the instruction into a separate multiplication
1806         and MFHI if !TARGET_FIX_R4000.
1807         (<su>muldi3_highpart): Likewise.
1808         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
1809         and the "=h" clobber.
1810         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
1811         (<u>mulditi3): New expander.
1812         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
1813         (madsi): Remove "=h" clobber.
1814         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
1815         Force the modulus result to be a GPR and split the instruction into
1816         a division followed by an MFHI after reload.
1817         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
1818         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
1819         the MIPS16 HIGH define_split.
1820         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
1821         of acc<->gpr moves to "multi".
1822         (*movdi_64bit): Replace the single "x" alternative with
1823         alternatives for moving into and out of "a".
1824         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
1825         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
1826         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
1827         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
1828         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
1829         (movti): New expander.
1830         (*movti, *movti_mips16): New insns.
1831         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
1832         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
1833         (mthi<GPR:mode>_<HILO:mode>): Likewise.
1834         * config/mips/predicates.md (fpr_operand): Delete.
1835         (d_operand): New predicate.
1836
1837 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
1838
1839         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
1840         failure on some Bourne shells.
1841         (x86_64-*-*): Ditto.
1842
1843 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
1844
1845         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
1846
1847 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
1848
1849         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
1850         (sparc-sun-solaris2*): Likewise.
1851
1852 2008-06-09  Arnaud Charlet  <charlet@adacore.com
1853
1854         * doc/install.texi: Update requirements to build the Ada compiler.
1855
1856 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
1857
1858         * df-scan.c (struct df_scan_problem_data): Remove the
1859         mw_link_pool alloc pool.
1860         (df_scan_free_internal): Don't free it.
1861         (df_scan_alloc): Don't allocate it.
1862         * df.h (struct df_link): Update comment.
1863
1864 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
1865
1866         * except.h: Correct checks for when SJLJ exceptions must be used.
1867
1868 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1869
1870         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
1871         default.
1872         
1873 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
1874
1875         PR tree-optimization/36218
1876         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
1877         configure for the build system.
1878         (BUILD_LDFLAGS): Define.
1879         * configure: Regenerate.
1880         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
1881
1882 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
1883
1884         PR target/36424
1885         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
1886         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
1887         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
1888
1889 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
1890
1891         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
1892
1893 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
1894
1895         * config.gcc (Obsolete configurations): Remove list of
1896         configurations.
1897         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
1898         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
1899         targets matched by those patterns.
1900         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
1901         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
1902         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
1903         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
1904         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
1905         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
1906         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
1907         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
1908         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
1909         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
1910         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
1911         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
1912         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
1913         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
1914         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
1915         Make code for Solaris 7 and greater unconditional for Solaris.
1916         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
1917         Remove --with-* handling.
1918         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
1919         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
1920         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
1921         LINK_OS_WINDISS_SPEC): Remove.
1922         * config/rs6000/sysv4.opt (mwindiss): Remove.
1923         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
1924         * configure: Regenerate.
1925         * doc/cpp.texi: Don't mention BeOS.
1926         * doc/extend.texi (interrupt): Don't mention MS1.
1927         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
1928         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
1929         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
1930         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
1931         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
1932         Remove.
1933         * doc/invoke.texi (MT Options): Remove.
1934         (-mwindiss): Remove.
1935         (CRIS Options): Remove cris-axis-aout references.
1936         (HPPA Options): Don't mention hppa1.1-*-pro.
1937         * doc/md.texi: (MorphoTech family): Remove.
1938         * libgcc2.c: Don't handle UWIN.
1939         * config/alpha/t-unicosmk: Remove.
1940         * config/alpha/unicosmk.h: Remove.
1941         * config/arm/kaos-arm.h: Remove.
1942         * config/arm/kaos-strongarm.h: Remove.
1943         * config/arm/strongarm-coff.h: Remove.
1944         * config/arm/strongarm-elf.h: Remove.
1945         * config/arm/strongarm-pe.h: Remove.
1946         * config/arm/t-strongarm-pe: Remove.
1947         * config/arm/t-xscale-coff: Remove.
1948         * config/arm/t-xscale-elf: Remove.
1949         * config/arm/xscale-coff.h: Remove.
1950         * config/arm/xscale-elf.h: Remove.
1951         * config/chorus.h: Remove.
1952         * config/cris/aout.h: Remove.
1953         * config/cris/aout.opt: Remove.
1954         * config/cris/t-aout: Remove.
1955         * config/i386/beos-elf.h: Remove.
1956         * config/i386/kaos-i386.h: Remove.
1957         * config/i386/ptx4-i.h: Remove.
1958         * config/i386/sco5.h: Remove.
1959         * config/i386/sco5.opt: Remove.
1960         * config/i386/sysv4-cpp.h: Remove.
1961         * config/i386/sysv5.h: Remove.
1962         * config/i386/t-beos: Remove.
1963         * config/i386/t-sco5: Remove.
1964         * config/i386/t-uwin: Remove.
1965         * config/i386/uwin.asm: Remove.
1966         * config/i386/uwin.h: Remove.
1967         * config/kaos.h: Remove.
1968         * config/mips/windiss.h: Remove.
1969         * config/mt: Remove directory.
1970         * config/pa/pa-osf.h: Remove.
1971         * config/pa/pa-pro-end.h: Remove.
1972         * config/pa/t-pro: Remove.
1973         * config/ptx4.h: Remove.
1974         * config/rs6000/beos.h: Remove.
1975         * config/rs6000/kaos-ppc.h: Remove.
1976         * config/rs6000/t-beos: Remove.
1977         * config/rs6000/windiss.h: Remove.
1978         * config/sh/kaos-sh.h: Remove.
1979         * config/sol2-6.h: Remove.
1980         * config/sparc/sol26-sld.h: Remove.
1981         * config/sparc/sysv4-only.h: Remove.
1982         * config/vax/bsd.h: Remove.
1983         * config/vax/t-memfuncs: Remove.
1984         * config/vax/ultrix.h: Remove.
1985         * config/vax/vaxv.h: Remove.
1986         * config/windiss.h: Remove.
1987
1988 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
1989
1990         PR rtl-optimization/36438
1991         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
1992         for vector shifts with constant scalar shift operands.
1993
1994 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
1995
1996         * doc/invoke.texi: Document -march=xlr.
1997         * config/mips/xlr.md: New file.
1998         * config/mips/mips.md: Include it.
1999         (cpu): Add "xlr".
2000         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
2001         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
2002         (mips_rtx_cost_data): Likewise.
2003
2004 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
2005
2006         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
2007         PRE_INC and PRE_DEC cases.
2008
2009 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
2010
2011         PR rtl-optimization/36419
2012         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
2013         the emitting jump insn.
2014
2015         PR target/36362
2016         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
2017         is not bool, boolify the whole *expr_p and convert to the desired type.
2018
2019 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
2020
2021         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
2022         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
2023         Add omp_private_outer_ref hook, add another argument to
2024         omp_clause_default_ctor hook.
2025         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
2026         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
2027         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
2028         hook_tree_tree_tree_tree_null.
2029         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
2030         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
2031         * hooks.c (hook_tree_tree_tree_tree_null): New function.
2032         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
2033         * tree.def (OMP_TASK): New tree code.
2034         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
2035         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
2036         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
2037         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
2038         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
2039         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
2040         OMP_CLAUSE_COLLAPSE_EXPR): Define.
2041         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
2042         (OMP_DIRECTIVE_P): Add OMP_TASK.
2043         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
2044         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
2045         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
2046         and OMP_CLAUSE_UNTIED entries.
2047         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
2048         num_ops to 2.
2049         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
2050         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
2051         * tree-pretty-print.c (dump_omp_clause): Handle
2052         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
2053         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
2054         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
2055         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
2056         warning about unsigned iterators.  Change decl/init/cond/incr
2057         arguments to TREE_VECs, check arguments for all collapsed loops.
2058         (c_finish_omp_taskwait): New function.
2059         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
2060         ws_clauses.
2061         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
2062         default_function_array_conversion on init.  Add par_clauses argument.
2063         If decl is present in parallel's lastprivate clause, change it to
2064         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
2065         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
2066         collapse count in clauses.
2067         (c_parser_omp_for, c_parser_omp_parallel): Adjust
2068         c_parser_omp_for_loop callers.
2069         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
2070         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
2071         (c_parser_omp_clause_name): Handle collapse and untied clauses.
2072         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
2073         functions.
2074         (c_parser_omp_clause_schedule): Handle schedule(auto).
2075         Include correct location in the error message.
2076         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
2077         and PRAGMA_OMP_CLAUSE_UNTIED.
2078         (OMP_TASK_CLAUSE_MASK): Define.
2079         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
2080         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
2081         * tree-nested.c (convert_nonlocal_omp_clauses,
2082         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
2083         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
2084         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
2085         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
2086         OMP_CLAUSE_DECL.
2087         (conver_nonlocal_reference, convert_local_reference,
2088         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
2089         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
2090         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
2091         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
2092         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
2093         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
2094         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
2095         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
2096         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
2097         OMP_CLAUSE_UNTIED.
2098         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
2099         * c-common.h (c_finish_omp_taskwait): New prototype.
2100         * gimple-low.c (lower_stmt): Handle OMP_TASK.
2101         * tree-parloops.c (create_parallel_loop): Create 1 entry
2102         vectors for OMP_FOR_{INIT,COND,INCR}.
2103         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
2104         (make_edges): Handle OMP_TASK.
2105         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
2106         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
2107         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
2108         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
2109         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
2110         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
2111         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
2112         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
2113         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
2114         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
2115         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
2116         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
2117         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
2118         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
2119         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
2120         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
2121         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
2122         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
2123         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
2124         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
2125         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
2126         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
2127         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
2128         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
2129         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
2130         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
2131         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
2132         original iterator is present in lastprivate clause or if
2133         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
2134         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
2135         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
2136         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
2137         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
2138         if it is set, lookup var in outer contexts too.  Handle
2139         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
2140         to be implicitly determined firstprivate for task regions.
2141         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
2142         if it is set, lookup var in outer contexts too.  Set
2143         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
2144         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
2145         OMP_CLAUSE_UNTIED.  Take region_type as last argument
2146         instead of in_parallel and in_combined_parallel.
2147         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
2148         Adjust callers.
2149         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
2150         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
2151         (new_omp_context): Set default_kind to
2152         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
2153         (omp_region_type): New enum.
2154         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
2155         fields, add region_type.
2156         (new_omp_context): Take region_type as argument instead of is_parallel
2157         and is_combined_parallel.
2158         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
2159         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
2160         ctx->is_combined_parallel checks.
2161         (gimplify_omp_task): New function.
2162         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
2163         OMP_CLAUSE_UNTIED.
2164         * omp-low.c (extract_omp_for_data): Use schedule(static)
2165         for schedule(auto).  Handle pointer and unsigned iterators.
2166         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
2167         Add loops argument.  Extract data for collapsed OMP_FOR loops.
2168         (expand_parallel_call): Assert sched_kind isn't auto,
2169         map runtime schedule to index 3.
2170         (struct omp_for_data_loop): New type.
2171         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
2172         Add loop, loops, collapse and iter_type fields.
2173         (workshare_safe_to_combine_p): Disallow combined for if
2174         iter_type is unsigned long long.  Don't combine collapse > 1 loops
2175         unless all bounds and steps are constant.  Adjust extract_omp_for_data
2176         caller.
2177         (expand_omp_for_generic): Handle pointer, unsigned and long long
2178         iterators.  Handle collapsed OMP_FOR loops.  Adjust
2179         for struct omp_for_data changes.  If libgomp function doesn't return
2180         boolean_type_node, add comparison of the return value with 0.
2181         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
2182         pointer, unsigned and long long iterators.  Adjust for struct
2183         omp_for_data changes.
2184         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
2185         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
2186         unsigned long long.  Allocate loops array, pass it to
2187         extract_omp_for_data.  For collapse > 1 loops use always
2188         expand_omp_for_generic.
2189         (omp_context): Add sfield_map and srecord_type fields.
2190         (is_task_ctx, lookup_sfield): New functions.
2191         (use_pointer_for_field): Use is_task_ctx helper.  Change first
2192         argument's type from const_tree to tree.  Clarify comment.
2193         In OMP_TASK disallow copy-in/out sharing.
2194         (build_sender_ref): Call lookup_sfield instead of lookup_field.
2195         (install_var_field): Add mask argument.  Populate both record_type
2196         and srecord_type if needed.
2197         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
2198         in srecord_type.
2199         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
2200         and DECL_FIELD_OFFSET.
2201         (scan_sharing_clauses): Adjust install_var_field callers.  For
2202         firstprivate clauses on explicit tasks allocate the var by value in
2203         record_type unconditionally, rather than by reference.
2204         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
2205         Use is_taskreg_ctx instead of is_parallel_ctx.
2206         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
2207         (create_omp_child_function_name): Add task_copy argument, use
2208         *_omp_cpyfn* names if it is true.
2209         (create_omp_child_function): Add task_copy argument, if true create
2210         *_omp_cpyfn* helper function.
2211         (scan_omp_parallel): Adjust create_omp_child_function callers.
2212         Rename parallel_nesting_level to taskreg_nesting_level.
2213         (scan_omp_task): New function.
2214         (lower_rec_input_clauses): Don't run constructors for firstprivate
2215         explicit task vars which are initialized by *_omp_cpyfn*.  
2216         Pass outer var ref to omp_clause_default_ctor hook if
2217         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
2218         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
2219         OMP_CLAUSE_REDUCTION_INIT.
2220         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
2221         avoid duplicate setting of fields.  Handle
2222         OMP_CLAUSE_PRIVATE_OUTER_REF.
2223         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
2224         copy-out if TREE_READONLY, only copy-in.
2225         (expand_task_copyfn): New function.
2226         (expand_task_call): New function.
2227         (struct omp_taskcopy_context): New type.
2228         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
2229         New functions.
2230         (lower_omp_parallel): Rename to...
2231         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
2232         Call create_task_copyfn if srecord_type is needed.  Adjust
2233         sender_decl type.
2234         (task_shared_vars): New variable.
2235         (check_omp_nesting_restrictions): Warn if work-sharing,
2236         barrier, master or ordered region is closely nested inside OMP_TASK.
2237         Add warnings for barrier if closely nested inside of work-sharing,
2238         ordered, or master region.
2239         (scan_omp_1): Call check_omp_nesting_restrictions even for
2240         GOMP_barrier calls.  Rename parallel_nesting_level to
2241         taskreg_nesting_level.  Handle OMP_TASK.
2242         (lower_lastprivate_clauses): Even if some lastprivate is found on a
2243         work-sharing construct, continue looking for them on parent parallel
2244         construct.
2245         (lower_omp_for_lastprivate): Add lastprivate clauses
2246         to the beginning of dlist rather than end.  Adjust for struct
2247         omp_for_data changes.
2248         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
2249         not after it.  Handle collapsed OMP_FOR loops, adjust for
2250         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
2251         (get_ws_args_for): Adjust extract_omp_for_data caller.
2252         (scan_omp_for): Handle collapsed OMP_FOR
2253         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
2254         (lower_omp_single_simple): If libgomp function doesn't return
2255         boolean_type_node, add comparison of the return value with 0.
2256         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
2257         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
2258         (parallel_nesting_level): Rename to...
2259         (taskreg_nesting_level): ... this.
2260         (is_taskreg_ctx): New function.
2261         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
2262         of is_parallel_ctx.
2263         (execute_lower_omp): Rename parallel_nesting_level to
2264         taskreg_nesting_level.
2265         (expand_omp_parallel): Rename to...
2266         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
2267         Call omp_task_call for OMP_TASK regions.
2268         (expand_omp): Adjust caller, handle OMP_TASK.
2269         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
2270
2271         * bitmap.c (bitmap_default_obstack_depth): New variable.
2272         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
2273         if argument is NULL and bitmap_default_obstack is already initialized.
2274         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
2275         at the end.
2276         * matrix-reorg.c (matrix_reorg): Likewise.
2277
2278 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
2279
2280         * config/i386/i386.md (*indirect_jump): Macroize using P
2281         mode iterator.  Remove !TARGET_64BIT from insn constraints.
2282         (*tablejump_1): Ditto.
2283         (*indirect_jump_rex64): Remove insn pattern.
2284         (*tablejump_1_rex64): Ditto.
2285         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
2286         and eh_return_si insn patterns.
2287
2288 2008-06-06  Richard Guenther  <rguenther@suse.de>
2289
2290         * tree-ssa-structalias.c (merge_smts_into): Remove.
2291         (find_what_p_points_to): Do not bother to compute the
2292         points-to set for pt_anything pointers.
2293         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
2294         for pt_anything pointers is ok.
2295
2296 2008-06-06  Jan Hubicka  <jh@suse.cz>
2297
2298         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
2299
2300 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2301
2302         * cgraph.c: Fix typos in comments.
2303         (cgraph_availability_names): Fix string typo.
2304         * fold-const.c: Fix typos in comments.
2305         (fold_binary): Fix typo in warning.
2306         * genautomata.c: Fix typos in comments.
2307         (check_presence_pattern_sets): Fix typo in local variable.
2308         (output_description): Fix typo in output.
2309         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
2310         * hwint.h: Likewise.
2311         * matrix-reorg.c (check_allocation_function): Likewise.
2312         * omega.c (smooth_weird_equations): Likewise.
2313         * auto-inc-dec.c: Fix typos in comments.
2314         * bb-reorder.c: Likewise.
2315         * builtins.c: Likewise.
2316         * c-common.c: Likewise.
2317         * c-cppbuiltin.c: Likewise.
2318         * c-parser.c: Likewise.
2319         * c-pretty-print.c: Likewise.
2320         * cfgcleanup.c: Likewise.
2321         * cfgexpand.c: Likewise.
2322         * cfghooks.c: Likewise.
2323         * cfglayout.c: Likewise.
2324         * cfgloopmanip.c: Likewise.
2325         * cgraphunit.c: Likewise.
2326         * coverage.c: Likewise.
2327         * dbxout.c: Likewise.
2328         * df-byte-scan.c: Likewise.
2329         * df-core.c: Likewise.
2330         * df-problems.c: Likewise.
2331         * df-scan.c: Likewise.
2332         * dfp.c: Likewise.
2333         * dominance.c: Likewise.
2334         * domwalk.c: Likewise.
2335         * dse.c: Likewise.
2336         * dwarf2out.c: Likewise.
2337         * emit-rtl.c: Likewise.
2338         * et-forest.c: Likewise.
2339         * function.c: Likewise.
2340         * function.h: Likewise.
2341         * gcc.c: Likewise.
2342         * gcov-io.c: Likewise.
2343         * gcov.c: Likewise.
2344         * gcse.c: Likewise.
2345         * genattrtab.c: Likewise.
2346         * ggc-page.c: Likewise.
2347         * gimplify.c: Likewise.
2348         * gthr-lynx.h: Likewise.
2349         * haifa-sched.c: Likewise.
2350         * ipa-cp.c: Likewise.
2351         * ipa-inline.c: Likewise.
2352         * ipa-prop.h: Likewise.
2353         * ipa-pure-const.c: Likewise.
2354         * ipa-struct-reorg.c: Likewise.
2355         * ipa-struct-reorg.h: Likewise.
2356         * ipa-type-escape.c: Likewise.
2357         * ipa.c: Likewise.
2358         * loop-doloop.c: Likewise.
2359         * mips-tfile.c: Likewise.
2360         * mkmap-flat.awk: Likewise.
2361         * mkmap-symver.awk: Likewise.
2362         * modulo-sched.c: Likewise.
2363         * omp-low.c: Likewise.
2364         * optabs.c: Likewise.
2365         * optabs.h: Likewise.
2366         * opts.c: Likewise.
2367         * passes.c: Likewise.
2368         * postreload-gcse.c: Likewise.
2369         * postreload.c: Likewise.
2370         * predict.c: Likewise.
2371         * pretty-print.h: Likewise.
2372         * profile.c: Likewise.
2373         * protoize.c: Likewise.
2374         * ra-conflict.c: Likewise.
2375         * real.c: Likewise.
2376         * recog.c: Likewise.
2377         * regclass.c: Likewise.
2378         * regs.h: Likewise.
2379         * reload.c: Likewise.
2380         * rtl-error.c: Likewise.
2381         * rtlanal.c: Likewise.
2382         * scan.h: Likewise.
2383         * sched-rgn.c: Likewise.
2384         * see.c: Likewise.
2385         * stmt.c: Likewise.
2386         * target.h: Likewise.
2387         * tree-dfa.c: Likewise.
2388         * tree-eh.c: Likewise.
2389         * tree-flow-inline.h: Likewise.
2390         * tree-inline.c: Likewise.
2391         * tree-into-ssa.c: Likewise.
2392         * tree-loop-distribution.c: Likewise.
2393         * tree-nested.c: Likewise.
2394         * tree-parloops.c: Likewise.
2395         * tree-pass.h: Likewise.
2396         * tree-pretty-print.c: Likewise.
2397         * tree-profile.c: Likewise.
2398         * tree-scalar-evolution.c: Likewise.
2399         * tree-sra.c: Likewise.
2400         * tree-ssa-alias-warnings.c: Likewise.
2401         * tree-ssa-ccp.c: Likewise.
2402         * tree-ssa-coalesce.c: Likewise.
2403         * tree-ssa-dom.c: Likewise.
2404         * tree-ssa-dse.c: Likewise.
2405         * tree-ssa-forwprop.c: Likewise.
2406         * tree-ssa-live.c: Likewise.
2407         * tree-ssa-live.h: Likewise.
2408         * tree-ssa-loop-im.c: Likewise.
2409         * tree-ssa-loop-ivopts.c: Likewise.
2410         * tree-ssa-loop-niter.c: Likewise.
2411         * tree-ssa-loop-prefetch.c: Likewise.
2412         * tree-ssa-phiopt.c: Likewise.
2413         * tree-ssa-phiprop.c: Likewise.
2414         * tree-ssa-sccvn.c: Likewise.
2415         * tree-ssa-ter.c: Likewise.
2416         * tree-ssa-threadupdate.c: Likewise.
2417         * tree-ssa.c: Likewise.
2418         * tree-vect-analyze.c: Likewise.
2419         * tree-vect-transform.c: Likewise.
2420         * tree-vectorizer.c: Likewise.
2421         * tree-vn.c: Likewise.
2422         * tree-vrp.c: Likewise.
2423         * tree.c: Likewise.
2424         * tree.def: Likewise.
2425         * tree.h: Likewise.
2426         * unwind-dw2-fde.c: Likewise.
2427         * unwind.inc: Likewise.
2428         * value-prof.c: Likewise.
2429         * vmsdbgout.c: Likewise.
2430
2431 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
2432
2433         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
2434         always place FP constants in the TOC for TARGET_POWERPC64.
2435         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
2436
2437 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
2438
2439         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
2440         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
2441         enable for TARGET_E500_DOUBLE.
2442         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
2443         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
2444         floating-point modes like integer modes for E500 double.
2445         (rs6000_legitimate_offset_address_p): Likewise.
2446         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
2447         addressing for DDmode for E500 double.
2448         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
2449         modes as using 64-bits of registers for E500 double.
2450         (spe_build_register_parallel): Do not handle DDmode or TDmode.
2451         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
2452         specially for E500 double.
2453         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
2454         TDmode for E500 double.
2455         (rs6000_gimplify_va_arg): Only handle SDmode in registers
2456         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
2457         (rs6000_split_multireg_move): Do not handle TDmode specially for
2458         E500 double.
2459         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
2460         using 64-bit registers for E500 double.
2461         (emit_frame_save): Do not handle DDmode specially for E500 double.
2462         (gen_frame_mem_offset): Likewise.
2463         (rs6000_function_value): Do not call spe_build_register_parallel
2464         for DDmode or TDmode.
2465         (rs6000_libcall_value): Likewise.
2466         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
2467         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
2468         for E500 double.
2469
2470 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
2471
2472         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
2473         in comments.
2474
2475 2008-06-04  Junjie Gu <jgu@tensilica.com>
2476
2477         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
2478         comparison for frame pointers.
2479
2480 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
2481
2482         PR target/27386
2483         * config/avr/avr.h (PUSH_ROUNDING): Remove.
2484
2485 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
2486
2487         PR target/30243
2488         * builtins.c (expand_builtin_signbit): Don't take lowpart when
2489         register is already smaller or equal to required mode. 
2490
2491 2008-06-04  Xinliang David Li  <davidxl@google.com>
2492
2493         * tree-call-cdce.c: New file. 
2494         (cond_dead_built_in_calls): New static variable.
2495         (input_domain): New struct.
2496         (check_pow): New function.
2497         (check_builtin_call): Ditto.
2498         (check_target_format): Ditto.
2499         (is_call_dce_candidate): Ditto.
2500         (gen_one_condition): Ditto.
2501         (gen_conditions_for_domain): Ditto.
2502         (get_domain): Ditto.
2503         (gen_conditions_for_pow_cst_base): Ditto.
2504         (gen_conditions_for_pow_int_base): Ditto.
2505         (gen_conditions_for_pow): Ditto.
2506         (get_no_error_domain): Ditto.
2507         (gen_shrink_wrap_conditions): Ditto.
2508         (shrink_wrap_one_built_in_call): Ditto.
2509         (shink_wrap_conditional_dead_built_in_calls): Ditto.
2510         (tree_call_cdce): Ditto.
2511         (gate_call_cdce): Ditto.
2512         (pass_call_cdce): New gimple pass.
2513         * passes.c: (init_optimization_passes): New pass.
2514         * tree-pass.h: New pass declaration.
2515         * opts.c (decode_options): New flag setting.
2516         * common.opt: Add -ftree-builtin-call-dce flag.
2517         * Makefile.in: Add new source file.
2518         * tempvar.def: New tv_id.
2519         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
2520
2521 2008-06-04  Richard Guenther  <rguenther@suse.de>
2522
2523         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
2524         (is_call_clobbered): Always check var_ann->call_clobbered.
2525         (mark_call_clobbered): Always set var_ann->call_clobbered.
2526         (clear_call_clobbered): Always clear var_ann->call_clobbered.
2527         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
2528         (reset_alias_info): Clear call clobbering info on MTAGs and
2529         globals as well.
2530         (set_pt_anything): Set pt_global_mem.
2531         (create_tag_raw): Adjust comment.
2532         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
2533
2534 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
2535             Maxim Kuvyrkov  <maxim@codesourcery.com>
2536
2537         * config/m68k/m68k.opt (mxgot): New option.
2538         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
2539         (m68k_output_addr_const_extra): New.
2540         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
2541         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
2542         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
2543         * doc/invoke.texi (M680x0 Options): Document -mxgot.
2544
2545 2008-06-04  Richard Guenther  <rguenther@suse.de>
2546
2547         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
2548         negative or non-representable offsets.
2549
2550 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
2551
2552         * config/i386/i386.c (ix86_gen_leave): New.
2553         (ix86_gen_pop1): Likewise.
2554         (ix86_gen_add3): Likewise.
2555         (ix86_gen_sub3): Likewise.
2556         (ix86_gen_sub3_carry): Likewise.
2557         (ix86_gen_one_cmpl2): Likewise.
2558         (ix86_gen_monitor): Likewise.
2559         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
2560         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
2561         ix86_gen_one_cmpl2 and ix86_gen_monitor.
2562         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
2563         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
2564         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
2565         (ix86_expand_epilogue): Updated.
2566         (print_operand): Handle integer register operand for 'z'.
2567         (ix86_expand_strlensi_unroll_1): Likewise.
2568         (ix86_expand_strlen): Likewise.
2569         (ix86_expand_builtin): Likewise.
2570         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
2571         mov{q}/mov{l} and add{q}/add{l}.
2572
2573 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
2574
2575         * config/i386/i386.md (P): New mode iterator.
2576         (SFmode push_operand splitter): Macroize DImode and SImode pushes
2577         using P mode iterator.
2578         (DFmode push_operand splitter): Ditto.
2579         (XFmode push_operand splitter): Ditto.
2580         (DFmode float_extend SFmode push_operand splitter): Ditto.
2581         (XFmode float_extend SFmode push_operand splitter): Do not generate
2582         SImode pushes for 64bit target.  Macroize Dimode and SImode
2583         pushes using P mode iterator.
2584         (XFmode float_extend DFmode push_operand splitter): Ditto.
2585
2586 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
2587
2588         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
2589         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
2590         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
2591         return type to int.
2592         (ix86_call_abi_override): Remove check for call_used_regs.
2593
2594 2008-06-03  Richard Guenther  <rguenther@suse.de>
2595
2596         * tree-ssa-structalias.c (find_func_aliases): Add constraints
2597         for the lhs of calls if the return type contains pointers.
2598
2599 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
2600
2601         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
2602         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
2603         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
2604         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
2605         of cfun and DEFAULT_ABI to deceide abi mode.
2606         (DEFAULT_ABI): New.
2607         (REG_PARM_STACK_SPACE): Removed.
2608         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
2609         (STACK_BOUNDARY): Use default target to deceide stack boundary.
2610         * config/i386/i386-protos.h (ix86_cfun_abi): New.
2611         (ix86_function_abi): Likewise.
2612         (ix86_function_type_abi): Likewise.
2613         (ix86_call_abi_override): Likewise.
2614         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
2615         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
2616         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
2617         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
2618         specific defines.
2619         (X86_64_REGPARM_MAX): New.
2620         (X86_64_SSE_REGPARM_MAX): New.
2621         (X64_REGPARM_MAX): New.
2622         (X64_SSE_REGPARM_MAX): New.
2623         (X86_32_REGPARM_MAX): New.
2624         (X86_32_SSE_REGPARM_MAX): New.
2625         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
2626         (ix86_function_regparm): Handle user calling abi.
2627         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
2628         by DEFAULT_ABI versus SYSV_ABI check.
2629         (ix86_reg_parm_stack_space): New.
2630         (ix86_function_type_abi): New.
2631         (ix86_call_abi_override): New.
2632         (ix86_function_abi): New.
2633         (ix86_cfun_abi): New.
2634         (init_cumulative_args): Call abi specific initialization.
2635         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
2636         (function_arg_64): Extend SSE_REGPARM_MAX check.
2637         (function_arg (): Remove TARGET_64BIT_MS_ABI.
2638         (ix86_pass_by_reference): Likewise.
2639         (ix86_function_value_regno_p): Likewise.
2640         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
2641         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
2642         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
2643         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
2644         (setup_incoming_varargs_64): Adjust regparm for call abi.
2645         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
2646         (ix86_va_start): Likewise.
2647         (ix86_gimplify_va_arg): Likewise.
2648         (ix86_expand_prologue): Likewise.
2649         (output_pic_addr_const): Likewise.
2650         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
2651         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
2652         (x86_output_mi_thunk): Likewise.
2653         (x86_function_profiler): Likewise.
2654         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
2655         (SYSV_ABI, MS_ABI): New constants.
2656         (DEFAULT_ABI): New.
2657         (init_regs): Add prototype of function in regclass.c file.
2658         (OVERRIDE_ABI_FORMAT): New.
2659         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
2660         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
2661         (OUTGOING_REG_PARM_STACK_SPACE): New.
2662         (ix86_reg_parm_stack_space): New prototype.
2663         (CUMULATIVE_ARGS): Add call_abi member.
2664         (machine_function): Add call_abi member.
2665         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
2666         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
2667
2668 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
2669
2670         PR target/34879
2671         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
2672         (avr_builtin_setjmp_frame_value): New function.
2673         * config/avr/avr.md (nonlocal_goto_receiver): Define.
2674         (nonlocal_goto): Define.
2675
2676 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
2677
2678         * config/mips/mips.c (mips_emit_loadgp): Return early if
2679         there is nothing do to, otherwise emit a blockage if
2680         !TARGET_EXPLICIT_RELOCS || crtl->profile.
2681         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
2682
2683 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2684
2685         * configure.ac: Drop unneeded backslash ending up in config.in.
2686         * acinclude.m4: Likewise.
2687         * config.in: Regenerate.
2688
2689 2008-05-26  Jan Hubicka  <jh@suse.cz>
2690
2691         * predict.c (maybe_hot_frequency_p): Break out of...
2692         (maybe_hot_bb_p): ... here.
2693         (maybe_hot_edge_p): New.
2694         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
2695         * basic-block.h (maybe_hot_edge_p): Declare.
2696
2697 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
2698
2699         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
2700         (*cmpfp_<mode>_cc): Ditto.
2701         (*fp_jcc_8<mode>_387): Ditto.
2702         (*fop_<MODEF:mode>_2_i387): Ditto.
2703         (*fop_<MODEF:mode>_3_i387): Ditto.
2704         (*fop_xf_2_i387): Ditto.
2705         (*fop_xf_3_i387): Ditto.
2706
2707 2008-06-02  Tomas Bily  <tbily@suse.cz>
2708
2709         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
2710
2711 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2712
2713         * config/mips/mips.c (mips_valid_offset_p): New function.
2714         (mips_valid_lo_sum_p): Likewise.
2715         (mips_classify_address): Use them.
2716         (mips_force_address): New function.
2717         (mips_legitimize_address): Use it.
2718         * config/mips/mips.md (MOVE128): New mode iterator.
2719         (movtf): Require TARGET_64BIT.  Remove empty strings.
2720         (*movtf_internal): Rename to...
2721         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
2722         of "R" and use {,fp}{load,store} attributes instead of "multi".
2723         Use a separate define_split.
2724         (*movtf_mips16): New pattern.
2725
2726 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2727
2728         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
2729         * config/mips/mips.c (mips_expand_before_return): New function.
2730         (mips_expand_epilogue): Call it.
2731         * config/mips/mips.md (return): Turn into a define_expand.
2732         (*return): New insn.
2733
2734 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2735
2736         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
2737         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
2738         functions.  Do not emit uses and clobbers of CONCATs; individually
2739         use and clobber their operands.
2740         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
2741         gen_clobber, emit_use and gen_use.
2742         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
2743         (expand_builtin_return): Likewise.
2744         * cfgbuild.c (count_basic_blocks): Likewise.
2745         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
2746         * explow.c (emit_stack_restore): Likewise.
2747         * expmed.c (extract_bit_field_1): Likewise.
2748         * expr.c (convert_move, emit_move_complex_parts): Likewise.
2749         (emit_move_multi_word, store_constructor): Likewise.
2750         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
2751         (thread_prologue_and_epilogue_insns): Likewise.
2752         * lower-subreg.c (resolve_simple_move): Likewise.
2753         * optabs.c (widen_operand, expand_binop): Likewise.
2754         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
2755         * reload.c (find_reloads): Likewise.
2756         * reload1.c (eliminate_regs_in_insn): Likewise.
2757         * stmt.c (expand_nl_goto_receiver): Likewise.
2758         * config/alpha/alpha.md (builtin_longjmp): Likewise.
2759         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
2760         * config/arm/arm.c (arm_load_pic_register): Likewise.
2761         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
2762         * config/arm/arm.md (untyped_return): Likewise.
2763         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
2764         * config/avr/avr.c (expand_prologue): Likewise.
2765         * config/bfin/bfin.c (do_unlink): Likewise.
2766         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
2767         * config/cris/cris.c (cris_expand_prologue): Likewise.
2768         * config/darwin.c (machopic_indirect_data_reference): Likewise.
2769         (machopic_legitimize_pic_address): Likewise.
2770         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
2771         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
2772         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
2773         (ix86_expand_convert_uns_didf_sse): Likewise.
2774         (ix86_expand_vector_init_general): Likewise.
2775         * config/ia64/ia64.md (eh_epilogue): Likewise.
2776         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
2777         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
2778         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
2779         (config/iq2000/iq2000.c): Likewise.
2780         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
2781         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
2782         (builtin_longjmp): Likewise.
2783         * config/mn10300/mn10300.md (call, call_value): Likewise.
2784         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
2785         * config/pdp11/pdp11.md (abshi2): Likewise.
2786         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
2787         * config/s390/s390.c (s390_emit_prologue): Likewise.
2788         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
2789         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
2790         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
2791         * config/sh/sh.c (prepare_move_operands): Likewise.
2792         (output_stack_adjust, sh_expand_epilogue): Likewise.
2793         (sh_set_return_address, sh_expand_t_scc): Likewise.
2794         * config/sparc/sparc.c (load_pic_register): Likewise.
2795         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
2796         * config/spu/spu.c (spu_expand_epilogue): Likewise.
2797         * config/v850/v850.c (expand_epilogue): Likewise.
2798
2799 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
2800
2801         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
2802         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
2803         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
2804         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
2805         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
2806         stack pointer register.
2807         (output_movhi): Remove code for interrupt specific writing to the 
2808         stack pointer register.
2809
2810 2008-05-31  Richard Guenther  <rguenther@suse.de>
2811
2812         PR tree-optimization/34244
2813         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
2814         (tree_expr_nonzero_warnv_p): Likewise.
2815         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
2816         ssa_name_nonnegative_p.
2817         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
2818         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
2819         not tree_expr_nonzero_warnv_p.
2820
2821         PR tree-optimization/36262
2822         Revert
2823         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
2824
2825         PR tree-optimization/34244
2826         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
2827         (record_numbers_of_iterations): New function.
2828         (execute_vrp): Cache the numbers of iterations of loops.
2829         * tree-scalar-evolution.c (scev_reset_except_niters):
2830         New function.
2831         (scev_reset): Use scev_reset_except_niters.
2832         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
2833
2834 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
2835
2836         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
2837         __WORKAROUND_RETS when appropriate.
2838
2839 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
2840
2841         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
2842         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
2843         mode iterator.
2844         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
2845         *fop_df_comm_sse insn patterns using MODEF mode iterator.
2846         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
2847         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
2848         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
2849         *fop_df_1_mixed insn patterns using MODEF mode iterator.
2850         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
2851         *fop_df_1_sse insn patterns using MODEF mode iterator.
2852         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
2853         *fop_df_1_i387 insn patterns using MODEF mode iterator.
2854         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
2855         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
2856         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
2857         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
2858         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
2859         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
2860         (*fop_xf_4_i387): Use <MODE> for mode attribute.
2861         (*fop_xf_5_i387): Ditto.
2862         (*fop_xf_6_i387): Ditto.
2863
2864 2008-05-30  Richard Guenther  <rguenther@suse.de>
2865
2866         * builtins.c (build_string_literal): Avoid generating
2867         a non-gimple_val result.
2868
2869 2008-05-30  DJ Delorie  <dj@redhat.com>
2870
2871         * exec-tool.in: Use an environment variable (private) instead of a
2872         file (shared) as a semaphore, so as to not break parallel builds.
2873
2874 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
2875
2876         * optabs.c (maybe_encapsulate_block): Remove.
2877         (emit_libcall_block): Adjust accordingly.
2878         * optabs.h (maybe_encapsulate_block): Remove prototype.
2879
2880         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
2881         Don't use maybe_encapsulate_block.
2882
2883 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
2884
2885         * config/rs6000/rs6000.c (rs6000_legitimize_address,
2886         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
2887         rtx is a SYMBOL_REF before calling get_pool_constant.
2888
2889 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2890
2891         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
2892
2893 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
2894
2895         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
2896         rather than OS names to choose INO_T_EQ definition.
2897         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
2898         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
2899
2900 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
2901
2902         PR target/36348
2903         * config/darwin-f.c: New.
2904         * config/t-darwin: Added rule to build darwin-f.o.
2905         * config.gcc: Defined new variable, fortran_target_objs.
2906         (*-*-darwin*): Set fortran_target_objs.
2907         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
2908         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
2909         * configure: Regenerated.
2910
2911 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
2912
2913         PR target/35771
2914         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
2915         canonical type if needed.
2916
2917 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2918
2919         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
2920
2921 2008-05-29  Richard Guenther  <rguenther@suse.de>
2922
2923         PR tree-optimization/36343
2924         PR tree-optimization/36346
2925         PR tree-optimization/36347
2926         * tree-flow.h (clobber_what_p_points_to): Declare.
2927         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
2928         pointed-to variable is dereferenced is irrelevant to whether
2929         the pointer can access the pointed-to variable.
2930         (clobber_what_p_points_to): New function.
2931         * tree-ssa-alias.c (set_initial_properties): Use it.
2932         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
2933         call clobber check for NMTs.
2934
2935 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
2936         
2937         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
2938         for printing gcov_type.
2939
2940 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
2941
2942         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
2943         and the eh region information.
2944         * value-prof.c (gimple_move_stmt_histograms): New function.
2945         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
2946
2947 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
2948
2949         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
2950
2951 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
2952
2953         * value-prof.c (tree_ic_transform): Print counts.
2954         * tree-profile.c (tree_gen_ic_func_profiler):
2955         Clear __gcov_indreict_call_callee variable to avoid misattribution
2956         of the profile.
2957
2958 2008-05-28  Rafael Espindola  <espindola@google.com>
2959
2960         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
2961         invalid sharing.
2962
2963 2008-05-28  Richard Guenther  <rguenther@suse.de>
2964
2965         PR tree-optimization/36339
2966         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
2967         and clobbering code out of the loop.
2968
2969 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2970
2971         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
2972         letters defined.
2973
2974         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
2975         s390_contiguous_bitmask_p, s390_symref_operand_p,
2976         s390_check_symref_alignment, s390_reload_larl_operand,
2977         s390_reload_symref_address): New functions.
2978         (s390_branch_condition_mnemonic): Support compare and branch
2979         instructions.
2980         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
2981         and 'W' constraints.
2982         (s390_secondary_reload): Add secondary reloads for unaligned
2983         symbol refs or symbol refs to floating point or QI/TI mode
2984         integer values.
2985         (legitimate_address_p): Accept symbol references as addresses.
2986         (s390_expand_insv): Use rotate and insert selected bits
2987         instruction for insv when building for z10.
2988         (print_operand_address): Handle symbol ref addresses.
2989         (print_operand): Output modifier 'c' added for signed byte values.
2990         (s390_encode_section_info): Mark symbol refs with
2991         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
2992
2993         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
2994         (length attribute): RRF, RRR have 4 byte length.
2995         (FPALL, INTALL): New mode iterators added.
2996         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
2997         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
2998         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
2999         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
3000         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
3001         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
3002         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
3003         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
3004         instructions.
3005         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
3006         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
3007         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
3008         reload<INTALL:mode><P:mode>_toreg_z10,
3009         reload<FPALL:mode><P:mode>_tomem_z10,
3010         reload<FPALL:mode><P:mode>_toreg_z10,
3011         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
3012         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
3013         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
3014         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
3015         definition.
3016         (movmem, clrmem, cmpmem): New splitters added.
3017
3018         * config/s390/predicates.md (larl_operand): Use
3019         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
3020         SYMBOL_REF_ALIGN1_P.
3021         (s390_signed_integer_comparison,
3022         s390_unsigned_integer_comparison): New predicates.
3023
3024         * config/s390/s390-protos.h (s390_check_symref_alignment,
3025         s390_contiguous_bitmask_p, s390_reload_larl_operand,
3026         s390_reload_symref_address,
3027         s390_compare_and_branch_condition_mask): Prototypes added.
3028
3029         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
3030         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
3031         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
3032
3033 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
3034
3035         * config/s390/s390.c (z10_cost): New cost function for z10.
3036         (s390_handle_arch_option, override_options): Support -march=z10 switch.
3037         (s390_issue_rate): Adjust issue rate for z10.
3038         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
3039         (processor_flags): Add PF_Z10.
3040         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
3041         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
3042         * gcc/config.gcc: Add z10.
3043
3044 2008-05-28  Richard Guenther  <rguenther@suse.de>
3045
3046         PR tree-optimization/36291
3047         * tree-flow. h (struct gimple_df): Remove var_anns member.
3048         * tree-flow-inline.h (gimple_var_anns): Remove.
3049         (var_ann): Simplify.
3050         * tree-dfa.c (create_var_ann): Simplify.
3051         (remove_referenced_var): Clear alias info from var_anns of globals.
3052         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
3053         (delete_tree_ssa): Clear alias info from var_anns of globals.
3054         Do not free var_anns.
3055         (var_ann_eq): Remove.
3056         (var_ann_hash): Likewise.
3057
3058 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
3059
3060         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
3061         and loongson2f entries.
3062         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
3063         * config/mips/mips.h (processor_type): Add Loongson-2E
3064         and Loongson-2F entries.
3065         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
3066         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
3067         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
3068         * doc/invoke.texi (MIPS Options): Document loongson2e
3069         and loongson2f processor names.
3070
3071 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
3072
3073         PR target/35767
3074         PR target/35771
3075         * config/i386/i386.c (ix86_function_arg_boundary): Use
3076         alignment of canonical type.
3077         (ix86_expand_vector_move): Check unaligned memory access for
3078         all SSE modes.
3079
3080 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
3081
3082         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
3083         Moved to the front of file.
3084
3085 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
3086             H.J. Lu  <hongjiu.lu@intel.com>
3087
3088         * dwarf2out.c (current_fde): New.
3089         (add_cfi): Use it.
3090         (lookup_cfa:): Likewise.
3091         (dwarf2out_end_epilogue): Likewise.
3092         (dwarf2out_note_section_used): Likewise.
3093
3094 2008-05-27  Michael Matz  <matz@suse.de>
3095
3096         PR c++/27975
3097         * c.opt (Wenum-compare): New warning option.
3098         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
3099
3100 2008-05-27  Michael Matz  <matz@suse.de>
3101
3102         PR middle-end/36326
3103         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
3104         non-BLKmode types.
3105         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
3106         into memory as tail calls.
3107
3108 2008-05-27  Richard Guenther  <rguenther@suse.de>
3109
3110         PR tree-optimization/36339
3111         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
3112         pointers cause all addressable variables to be call clobbered.
3113
3114 2008-05-27  Richard Guenther  <rguenther@suse.de>
3115
3116         PR tree-optimization/36245
3117         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
3118
3119 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
3120
3121         * config/s390/s390.md: Replace all occurences of the 'm'
3122         constraint with 'RT'.
3123
3124 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
3125
3126         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
3127         definitions added.
3128         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
3129         "*movdi_64".
3130         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
3131         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
3132         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
3133
3134 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
3135
3136         * reload.c: (find_reloads): Skip alternatives according to the
3137         "enabled" attribute. Constify the constraint variable.
3138         * recog.c (get_attr_enabled): Add default implementation.
3139         (extract_insn): Set the alternative_enabled_p array
3140         in the recog_data struct.
3141         (preprocess_constraints, constrain_operands): Skip
3142         alternatives according to the "enabled" attribute
3143         * recog.h (struct recog_data): New field alternative_enabled_p.
3144         (skip_alternative): New inline function.
3145         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
3146         (record_reg_classes): Skip alternative according to the
3147         "enabled" attribute.
3148
3149         * doc/md.texi: Add documention for the "enabled" attribute.
3150
3151 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
3152
3153         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
3154         * postreload.c (reload_cse_simplify_operands): Replace 'm'
3155         constraint with TARGET_MEM_CONSTRAINT.
3156         * recog.c (asm_operand_ok, preprocess_constraints,
3157         constrain_operands): Likewise.
3158         * regclass.c (record_reg_classes): Likewise.
3159         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
3160         * reload1.c (maybe_fix_stack_asms): Likewise.
3161         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
3162         * recog.h: Adjust comment.
3163         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
3164         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
3165         * doc/md.texi: Add a note to description of 'm' constraint.
3166         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
3167
3168 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
3169
3170         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
3171         that the bitfield is of integral type before testing its precision.
3172
3173 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
3174             Sa Liu  <saliu@de.ibm.com> 
3175
3176         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
3177         __modti3, __udivti3, __umodti3 and __udivmodti4.
3178         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
3179         that implement TImode mul and div functions.
3180         * config/spu/multi3.c: New. Implement __multi3.
3181         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
3182         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
3183         functions on SPU.
3184
3185 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
3186
3187         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
3188         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
3189         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
3190         tls_sysv_suffix): New mode and mode attribute iterators.
3191         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
3192         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
3193         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
3194         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
3195         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
3196         iterators.
3197
3198 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
3199
3200         PR tree-optimization/36329
3201         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
3202         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
3203         * cgraphbuild.c (initialize_inline_failed): Use the latter
3204         macro in lieu of the former.
3205         * ipa-inline.c (cgraph_mark_inline): Likewise.
3206         (cgraph_decide_inlining_of_small_function): Likewise.
3207         (cgraph_decide_inlining): Likewise.
3208         (cgraph_decide_inlining_incrementally): Likewise.
3209
3210 2008-05-26  Tristan Gingold  <gingold@adacore.com>
3211             Anatoly Sokolov  <aesok@post.ru>
3212
3213         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
3214         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
3215         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
3216         optimization for 'avr6' architecture.
3217
3218 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
3219
3220         PR target/34932
3221         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
3222
3223 2008-05-26  Richard Guenther  <rguenther@suse.de>
3224
3225         * tree-ssa-sccvn.c (expr_has_constants): Declare.
3226         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
3227
3228 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
3229
3230         PR middle-end/36253
3231         * caller-save.c (insert_restore): Verify alignment of spill space.
3232         (insert_save): Likewise.
3233         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
3234         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
3235         (STACK_SLOT_ALIGNMENT): Likewise.
3236         * function.c (LOCAL_ALIGNMENT): Removed.
3237         (get_stack_local_alignment): New.
3238         (assign_stack_local): Use it.  Set alignment on stack slot.
3239         (assign_stack_temp_for_type): Use get_stack_local_alignment.
3240         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
3241         (STACK_SLOT_ALIGNMENT): New.
3242         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
3243         stack slot in XFmode.
3244
3245         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
3246
3247 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
3248
3249         PR/36321
3250         * config/i386/i386.md (allocate_stack_worker_64): Make sure
3251         argument operand in rax isn't removed.
3252
3253 2008-05-26  Richard Guenther  <rguenther@suse.de>
3254
3255         PR middle-end/36300
3256         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
3257         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
3258
3259 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
3260
3261         PR bootstrap/36331
3262         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
3263
3264 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
3265
3266         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
3267         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
3268
3269 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3270
3271         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
3272         build a trampoline if we don't want one.
3273         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
3274         return zero for nested functions if we don't want a trampoline.
3275
3276 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
3277
3278         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
3279
3280 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
3281
3282         PR fortran/18428
3283         * c.opt: Removed undocumented option '-lang-fortran'.
3284         * c-common.h: Removed global variable 'lang_fortran'.
3285         * c-opts.c (c_common_handle_option): Removed code to handle
3286         option '-lang-fortran'. Updated includes.
3287         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
3288         definition of '__GFORTRAN__'.
3289         (define__GNUC__): Reimplemented to use BASEVER and
3290         cpp_define_formatted.
3291         (builtin_define_with_value_n): Removed.
3292         * c-incpath.h: Renamed to ...
3293         * incpath.h: ... this.
3294         * c-incpath.c: Renamed to ...
3295         * incpath.c: ... this. Updated includes.
3296         * fix-header.c: Updated includes.
3297         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
3298         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
3299         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
3300
3301 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3302
3303         * tree.h: Update the table of flags used on tree nodes.
3304         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
3305         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
3306         (FORCED_LABEL): Add access check.
3307         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
3308         (ASM_INPUT_P): Likewise.
3309         (ASM_VOLATILE_P): Likewise.
3310         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
3311         (OMP_SECTION_LAST): Access private_flag directly.
3312         (OMP_RETURN_NOWAIT): Likewise.
3313         (OMP_PARALLEL_COMBINED): Likewise.
3314         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
3315         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
3316         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
3317         deprecated_flag directly.
3318
3319 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
3320
3321         * final.c (frame_pointer_needed): Removed.
3322         * flags.h (frame_pointer_needed): Likewise.
3323
3324         * function.h (rtl_data): Add frame_pointer_needed.
3325         (frame_pointer_needed): New.
3326
3327 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
3328
3329         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
3330
3331 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
3332
3333         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
3334         SRC is a REG.
3335
3336 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
3337
3338         * c-common.c (strip_array_types): Move function to..
3339         * tree.c: ..here.
3340         (get_inner_array_type): Delete.
3341         * c-common.h (strip_array_types): Move declaration to..
3342         * tree.h: ..here.
3343         (get_inner_array_type): Delete.
3344         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
3345         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
3346         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
3347         * config/pa/pa.c (emit_move_sequence): Likewise.
3348
3349 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
3350
3351         * config/i386/i386.md (*sse_prologue_save_insn): Set length
3352         attribute to 34.
3353
3354 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
3355
3356         * function.c: Include target hook for nonlocal_goto frame value.
3357
3358 2008-05-24  Richard Guenther  <rguenther@suse.de>
3359
3360         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
3361         variable can be only accessed through a pointer or a union.
3362
3363 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3364
3365         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
3366         * doc/extend.texi: Likewise.
3367
3368 2008-05-23  DJ Delorie  <dj@redhat.com>
3369
3370         * config/m32c/jump.md (untyped_call): Add.
3371
3372         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
3373         for A24 to PSImode.
3374         (m32c_address_cost): Detail costs for indirect offsets.
3375
3376 2008-05-23  Rafael Espindola  <espindola@google.com>
3377
3378         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
3379         if a node is a SUBREG.
3380         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
3381         is a SUBREG.
3382
3383 2008-05-23  Paul Brook  <paul@codesourcery.com>
3384             Carlos O'Donell  <carlos@codesourcery.com>
3385
3386         * doc/extend.texi: Clarify use of __attribute__((naked)).
3387         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
3388         * target.h (gcc_target): Add allocate_stack_slots_for_args.
3389         * function.c (use_register_for_decl): Use
3390         targetm.calls.allocate_stack_slots_for_args.
3391         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
3392         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
3393         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
3394
3395 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3396
3397         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
3398
3399 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
3400
3401         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
3402         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
3403         is only rounded once.
3404
3405 2008-05-23  Richard Guenther  <rguenther@suse.de>
3406
3407         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
3408
3409 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
3410             Jakub Jelinek  <jakub@redhat.com>
3411
3412         PR target/36079
3413         * configure.ac: Handle --enable-cld.
3414         * configure: Regenerated.
3415         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
3416         * config/i386/i386.h (struct machine_function): Add needs_cld field.
3417         (ix86_current_function_needs_cld): New define.
3418         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
3419         (cld): New isns pattern.
3420         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
3421         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
3422         * config/i386/i386.opt (mcld): New option.
3423         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
3424         TARGET_CLD and ix86_current_function_needs_cld.
3425         (override_options): Use -mcld by default for 32-bit code if
3426         USE_IX86_CLD.
3427
3428         * doc/install.texi (Options specification): Document --enable-cld.
3429         * doc/invoke.texi (Machine Dependent Options)
3430         [i386 and x86-64 Options]: Add -mcld option.
3431         (Intel 386 and AMD x86-64 Options): Document -mcld option.
3432
3433 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
3434         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
3435         (return_in_memory_64): Likewise.
3436         (return_in_memory_ms_64): Likewise.
3437
3438 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3439
3440         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
3441         * builtins.c (fold_builtin_fpclassify): New.
3442         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
3443         * builtins.def (BUILT_IN_FPCLASSIFY): New.
3444         * c-common.c (handle_type_generic_attribute): Adjust to accept
3445         fixed arguments before an elipsis.
3446         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
3447         * doc/extend.texi: Document __builtin_fpclassify.
3448
3449 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
3450
3451         * omp-low.c (gate_expand_omp_ssa): Remove.
3452         (pass_expand_omp_ssa): Remove.
3453         (gate_expand_omp): Do not check for flag_openmp_ssa.
3454         * common.opt (-fopenmp-ssa): Remove.
3455         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
3456
3457 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
3458
3459         * config/sh/sh.opt (mfixed-range): New option.
3460         * config/sh/sh-protos.h (sh_fix_range): Declare.
3461         * config/sh/sh.c (sh_fix_range): New function.
3462         * config/sh/sh.h (sh_fixed_range_str): Declare.
3463         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
3464         is not empty.
3465         * doc/invoke.texi (SH Options): Document -mfixed-range.
3466
3467 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
3468
3469         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
3470         it before the redeclaration.
3471
3472 2008-05-22  Anatoly Sokolov <aesok@post.ru>
3473
3474         * config/avr/avr.c (get_sequence_length): Add new function.
3475         (expand_prologue, expand_epilogue): Remove duplicate code.
3476
3477 2008-05-22  Rafael Espindola  <espindola@google.com>
3478
3479         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
3480         sharing.
3481
3482 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
3483
3484         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
3485         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
3486
3487         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
3488         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
3489         (vect_update_misalignment_for_peel): Likewise.
3490         (vector_alignment_reachable_p): Likewise.
3491         * tree-vect-transform.c (vectorizable_load): Likewise.
3492         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
3493         (get_vectype_for_scalar_type): Pass mode of scalar_type
3494         to UNITS_PER_SIMD_WORD.
3495
3496         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
3497         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
3498         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
3499         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
3500         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
3501
3502 2008-05-22  Ira Rosen  <irar@il.ibm.com>
3503
3504         PR tree-optimization/36293
3505         * tree-vect-transform.c (vect_transform_strided_load): Don't check
3506         if the first load must be skipped because of a gap.
3507
3508 2008-05-22  Richard Guenther  <rguenther@suse.de>
3509
3510         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
3511         more cases of offset disambiguation that is possible if
3512         strict-aliasing rules apply.
3513         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
3514         for basic offset and type-based disambiguation.
3515
3516 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3517
3518         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
3519         ix86_expand_vector_set on V16QImode for SSE4.1.
3520
3521 2008-05-21  Tom Tromey  <tromey@redhat.com>
3522
3523         * c.opt (Wimport): Mark as undocumented.
3524         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
3525         -Wno-import.
3526         (Warning Options): Likewise.
3527         * doc/cppopts.texi: Don't mention -Wimport.
3528
3529 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
3530
3531         PR tree-optimization/36287
3532         PR tree-optimization/36286
3533         * lambda-code.c (build_access_matrix): Do not use the loop->num
3534         for computing the number of induction variables: use the loop depth
3535         instead.
3536
3537 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
3538
3539         PR/36280
3540         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
3541         option -f(no-)leading-underscore.
3542
3543 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3544
3545         * config/i386/i386.c (ix86_expand_vector_init_general): Use
3546         GET_MODE_NUNITS (mode).
3547
3548 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
3549
3550         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
3551         (-mmulhw): Add 464 to description.
3552         (-mdlmzb): Likewise.
3553         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
3554         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
3555         464fp entries.
3556         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
3557         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
3558         * config/rs6000/rs6000.md: Update comments for 464.
3559
3560 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
3561
3562         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
3563
3564 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3565
3566         * config/i386/sse.md (vec_extractv4sf): Removed.
3567         (vec_extractv2df): Likewise.
3568         (vec_extractv2di): Likewise.
3569         (vec_extractv4si): Likewise.
3570         (vec_extractv8hi): Likewise.
3571         (vec_extractv16qi): Likewise.
3572         (vec_extract<mode>): New.
3573
3574 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3575
3576         * config/i386/sse.md (vec_setv4sf): Removed.
3577         (vec_setv2df): Likewise.
3578         (vec_setv2di): Likewise.
3579         (vec_setv4si): Likewise.
3580         (vec_setv8hi): Likewise.
3581         (vec_setv16qi): Likewise.
3582         (vec_set<mode>): New.
3583
3584 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3585
3586         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
3587         goto for vec_concat and vec_interleave.
3588
3589 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3590
3591         * config/i386/sse.md (vec_initv4sf): Removed.
3592         (vec_initv2df): Likewise.
3593         (vec_initv2di): Likewise.
3594         (vec_initv4si): Likewise.
3595         (vec_initv8hi): Likewise.
3596         (vec_initv16qi): Likewise.
3597         (vec_init<mode>): New.
3598
3599 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
3600
3601         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
3602
3603 2008-05-21  Tom Tromey  <tromey@redhat.com>
3604
3605         * ggc-zone.c (lookup_page_table_if_allocated): New function.
3606         (zone_find_object_offset): Likewise.
3607         (gt_ggc_m_S): Likewise.
3608         (highest_bit): Likewise.
3609         * ggc-page.c (gt_ggc_m_S): New function.
3610         * stringpool.c (string_stack): Remove.
3611         (init_stringpool): Update.
3612         (ggc_alloc_string): Use ggc_alloc.
3613         (maybe_delete_ident): New function.
3614         (ggc_purge_stringpool): Likewise.
3615         (gt_ggc_m_S): Remove.
3616         * ggc-common.c (ggc_protect_identifiers): New global.
3617         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
3618         ggc_protect_identifiers.
3619         * ggc.h (ggc_protect_identifiers): Declare.
3620         (gt_ggc_m_S): Update.
3621         (ggc_purge_stringpool): Declare.
3622         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
3623         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
3624         special case.
3625         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
3626
3627 2008-05-21  David S. Miller  <davem@davemloft.net>
3628
3629         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
3630         tmake_file.
3631
3632 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
3633
3634         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
3635         once finished.
3636
3637 2008-05-20  David Daney  <ddaney@avtrex.com>
3638
3639         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
3640         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
3641         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3642         UNSPEC_UPDATE_GOT_VERSION): Renumber.
3643         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
3644         (atomic_hiqi_op): New define_code_iterator.
3645         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
3646         mips_expand_compare_and_swap_12.
3647         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
3648         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
3649         (sync_<optab><mode>, sync_old_<optab><mode>,
3650         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
3651         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
3652         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
3653         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
3654         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
3655         (test_and_set_12): New insn.
3656         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
3657         sync_new_<optab><mode>, sync_old_nand<mode>,
3658         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
3659         clobber to operand 0 for SI and DI mode insns.
3660         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
3661         mips_gen_fn_4): New typedefs.
3662         (mips_gen_fn_ptrs): Define new union type.
3663         (mips_expand_compare_and_swap_12): Remove declaration.
3664         (mips_expand_atomic_qihi): Declare function.
3665         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
3666         (mips_expand_atomic_qihi): ... this.  Use new generator function
3667         parameter.
3668         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
3669         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
3670         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
3671         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
3672         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
3673         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
3674         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
3675         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
3676         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
3677         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
3678         New macros.
3679
3680 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
3681
3682         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
3683         the missing break.
3684
3685 2008-05-20  Anatoly Sokolov <aesok@post.ru>
3686
3687         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
3688         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
3689         (avr_attribute_table): Add 'OS_main' function attribute.
3690         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
3691         functions with 'OS_main' attribute.
3692
3693 2008-05-20  Richard Guenther  <rguenther@suse.de>
3694
3695         PR tree-optimization/35204
3696         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
3697         helper, split out from ...
3698         (DFS): ... here.  Make the DFS walk non-recursive.
3699
3700 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
3701             Jan Sjodin  <jan.sjodin@amd.com>
3702
3703         PR tree-optimization/36181
3704         * tree-parloops.c (loop_has_vector_phi_nodes): New.
3705         (parallelize_loops): Don't parallelize when the loop has vector
3706         phi nodes.
3707
3708 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3709             Sebastian Pop  <sebastian.pop@amd.com>
3710
3711         * tree-loop-linear.c (gather_interchange_stats): Look in the access
3712         matrix, and never look at the tree representation of the memory
3713         accesses.
3714         (linear_transform_loops): Computes parameters and access matrices.
3715         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
3716         when fails.
3717         (access_matrix_get_index_for_parameter): New.
3718         * tree-data-ref.h (struct access_matrix): New.
3719         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
3720         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
3721         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
3722         am_vector_index_for_loop): New.
3723         (struct data_reference): Add field access_matrix.
3724         (DR_ACCESS_MATRIX): New.
3725         (compute_data_dependences_for_loop): Update declaration.
3726         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
3727         * lambda.h (lambda_vector_vec_p): Declared.
3728         * lambda-code.c: Depend on pointer-set.h.
3729         (lambda_collect_parameters_from_af, lambda_collect_parameters,
3730         av_for_af_base, av_for_af, build_access_matrix,
3731         lambda_compute_access_matrices): New.
3732         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
3733
3734 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
3735
3736         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
3737         $SOURCEDIR/include.
3738
3739 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3740             Sebastian Pop  <sebastian.pop@amd.com>
3741
3742         PR tree-optimization/36206
3743         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
3744         FOLD_CONVERSIONS.
3745         (instantiate_scev_1): Rename flags to fold_conversions.
3746         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
3747         outeside instantiation_loop.
3748         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
3749         (evolution_function_is_affine_or_constant_p): Removed.
3750         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
3751         instantiate_scev.
3752         (analyze_siv_subscript): Pass in the loop nest number.
3753         Call evolution_function_is_affine_in_loop instead of 
3754         evolution_function_is_affine_p.
3755         (analyze_overlapping_iterations): Pass in the loop nest number.
3756
3757 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3758             Sebastian Pop  <sebastian.pop@amd.com>
3759
3760         PR tree-optimization/36206
3761         * tree-chrec.h (chrec_fold_op): New.
3762         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
3763         and other trees.
3764
3765 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
3766
3767         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
3768         (DIRS_EQ): New.
3769         (remove_duplicates): Do not set inode on non-inode systems.
3770         Use DIRS_EQ.
3771
3772 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
3773
3774         * config.gcc (tm_file): Update comments about relative pathnames.
3775
3776 2008-05-20  Richard Guenther  <rguenther@suse.de>
3777
3778         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
3779         * tree-ssa-sccvn.c (process_scc): Likewise.
3780         * tree-ssa-sink.c (execute_sink_code): Likewise.
3781         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
3782         * tree-vrp.c (process_assert_insertions): Likewise.
3783         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
3784         (perform_tree_ssa_dce): Likewise.
3785         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
3786         (dump_dominator_optimization_stats): Likewise.
3787         * tree-vectorizer.c (vectorize_loops): Likewise.
3788
3789 2008-05-20  Richard Guenther  <rguenther@suse.de>
3790
3791         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
3792
3793 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
3794
3795         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
3796         (ix86_i386elf_return_in_memory): Likewise.
3797         (ix86_i386interix_return_in_memory): Likewise.
3798         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
3799         (SUBTARGET_RETURN_IN_MEMORY): New.
3800         * config/i386/i386elf.h: Likewise.
3801         * config/i386/ptx4-i.h: Likewise.
3802         * config/i386/sol2-10.h: Likewise.
3803         * config/i386/sysv4.h: Likewise.
3804         * config/i386/vx-common.h: Likewise.
3805         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
3806         * config/i386/i386.c (ix86_return_in_memory): Made static and
3807         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
3808         (ix86_i386elf_return_in_memory): Removed.
3809         (ix86_i386interix_return_in_memory): Removed.
3810         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
3811         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
3812
3813 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
3814
3815         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
3816
3817 2008-05-19  Xinliang David Li  <davidxl@google.com>
3818
3819         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
3820         * opts.c: Ditto.
3821         * common.opt: Ditto.
3822         * doc/invoke.texi: Ditto.
3823
3824 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
3825
3826         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
3827         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
3828
3829 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3830
3831         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
3832         sizes of operand array from 8/4 to 4/2.
3833         (ix86_expand_vector_init_general): Change size of operand array
3834         from 32 to 16.  Remove op0, op1 and half_mode.
3835
3836 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3837
3838         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
3839         (ix86_expand_vector_init_interleave): Likewise.
3840         (ix86_expand_vector_init_general): Use them.  Assert
3841         word_mode == SImode when n_words == 4.
3842
3843 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
3844
3845         * config/i386/i386.c (ix86_secondary_reload): New static function.
3846         (TARGET_SECONDARY_RELOAD): New define.
3847         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
3848         * config/i386/i386.md (reload_outqi): Remove.
3849
3850 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3851
3852         PR middle-end/35509
3853         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
3854         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
3855         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
3856         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
3857         (fold_builtin_1): Likewise.
3858         * builtins.def (BUILT_IN_ISINF_SIGN): New.
3859         c-common.c (check_builtin_function_arguments): Handle
3860         BUILT_IN_ISINF_SIGN.
3861         * doc/extend.texi: Document __builtin_isinf_sign.
3862         * fold-const.c (operand_equal_p): Handle COND_EXPR.
3863
3864 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
3865
3866         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
3867         EH cleanup at the end of the pass, search for those that have been
3868         turned into forwarder blocks and do the cleanup on their successor.
3869
3870 2008-05-18  Richard Guenther  <rguenther@suse.de>
3871
3872         * tree-cfg.c (verify_gimple_expr): Allow conversions from
3873         pointers to sizetype and vice versa.
3874
3875 2008-05-18 Xinliang David Li   <davidxl@google.com>
3876
3877         * gcc/tree-ssa-dce.c: Coding style fix.
3878         (check_pow): Documentation comment. 
3879         (check_log): Documenation comment. Coding style fix.
3880         (is_unnecessary_except_errno_call): Ditto.
3881         (gen_conditions_for_pow): Ditto.
3882         (gen_conditions_for_log): Ditto.
3883         (gen_shrink_wrap_conditions): Ditto.
3884         (shrink_wrap_one_built_in_calls): Ditto.
3885         * gcc/doc/invoke.texi: Better documentation string.
3886         * ChangeLog: Fix wrong change log entries from 
3887         May 17 checkin on function call DCE.
3888
3889 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
3890
3891         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
3892
3893 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
3894
3895         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
3896         * df-problems.c (simulation routines): Fixed block comment to
3897         properly say how to add forwards scanning functions.
3898         
3899 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
3900
3901         * tree-inline.c (setup_one_parameter): Remove dead code.
3902
3903 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
3904
3905         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
3906         a BIT_AND_EXPR only for an INTEGER_TYPE.
3907
3908 2008-05-17 Xinliang David Li   <davidxl@google.com>
3909
3910         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
3911         (check_pow, check_log, is_unnecessary_except_errno_call): New 
3912         functions to check for eliminating math functions that are pure 
3913         except for setting errno.
3914         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
3915         general condition expressions for shrink-wrapping pow/log calls.
3916         (gen_shrink_wrap_conditions): Ditto.
3917         (shrink_wrap_one_built_in_call): Ditto.
3918         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
3919         (mark_operand_necessary): If debugging, output if OP is necessary.
3920         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
3921         unnecessary.
3922         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
3923         opt level >= 2.
3924         * gcc/common.opt: New user flag -ftree-builtin-dce.
3925         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
3926
3927 2008-05-16  David S. Miller  <davem@davemloft.net>
3928
3929         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
3930         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
3931
3932 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
3933
3934         PR target/36246
3935         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
3936
3937 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3938
3939         * ifcvt.c (dead_or_predicable): Rename
3940         df_simulate_one_insn_backwards to df_simulate_one_insn.
3941         * recog.c (peephole2_optimize): Ditto.
3942         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
3943         Ditto.
3944         * df.h: Rename df_simulate_one_insn_backwards to
3945         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
3946         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
3947         scanning of defs and uses.
3948         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
3949         (df_simulate_one_insn_forwards): Removed.
3950
3951 2008-05-16  Doug Kwan  <dougkwan@google.com>
3952
3953         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
3954         QNaN & SNaN.
3955         (real_from_string): Handle NaNs and Inf as approriate.
3956
3957 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
3958
3959         * doc/gty.texi (Source Files Containing Type Information): Note
3960         that headers should appear first in the gtfiles list.
3961
3962 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3963
3964         * tree.def (COND_EXEC): Properly documented this code.
3965
3966 2008-05-16  Diego Novillo  <dnovillo@google.com>
3967
3968         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
3969         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
3970         the new field.
3971
3972 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3973
3974         * tree-ssa-dse (max_stmt_uid): Removed.
3975         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
3976         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
3977         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
3978         * function.h (cfun.last_stmt_uid): New field.
3979         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
3980         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
3981         New functions.
3982         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
3983         (create_stmt_ann): Initialize the ann->uid field.
3984         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
3985         with new calls.
3986         * tree-flow.h (renumber_gimple_stmt_uids): New function.
3987
3988 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
3989
3990         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
3991         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
3992         (init_empty_tree_cfg): Call it.
3993
3994 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3995
3996         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
3997         Update all users.
3998
3999 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
4000
4001         * doc/invoke.text (-fdump-tree-*-verbose): New option.
4002         * tree-dump.c (dump_options): New verbose option.
4003         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
4004         Add verbose dump.
4005         * tree-pass.h (TDF_VERBOSE): New dump flag.
4006         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
4007         (tree-flow.h): Added include.
4008         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
4009
4010 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
4011
4012         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
4013
4014         From Jie Zhang  <jie.zhang@analog.com>
4015         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
4016         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
4017         mcpu=bf561-none and mcpu=bf561-0.2.
4018         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
4019         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
4020         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
4021         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
4022         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
4023         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
4024         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
4025         option.
4026         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
4027         (cputype_selected): Remove.
4028         (bfin_handle_option): Don't use cputype_selected.
4029         (override_options): When no mcpu option, enable all workarounds.
4030         Don't use bfin_workarounds.
4031         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
4032         processor type.
4033         (DEFAULT_CPU_TYPE): Don't define.
4034
4035 2008-05-16  Richard Guenther  <rguenther@suse.de>
4036
4037         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
4038         on deletion of the last stmt.
4039
4040 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
4041
4042         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
4043         V8HImode for SSE2 and V16QImode for SSE4.1.
4044
4045 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
4046
4047         * cgraph.h (compute_inline_parameters): Made public.
4048         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
4049         variable_generate_summary, function_write_summary,
4050         variable_write_summary, variable_read_summary.  Added generate_summary,
4051         write_summary, read_summary.
4052         * cgraphunit.c (cgraph_process_new_functions): Changed call from
4053         pass_ipa_inline.function_generate_summary, to
4054         compute_inline_parameters. 
4055         * ipa-inline.c (compute_inline_parameters): Made public and added
4056         node parameter.
4057         (compute_inline_parameters_for_current): New function.
4058         (pass_inline_param): Now calls compute_inline_parameters_for_current.
4059         (inline_generate_summary): Removed parameter and made to loop over
4060         all cgraph nodes.
4061         (pass_ipa_inline): Updated for new IPA_PASS structure.
4062         * passes.c (execute_ipa_summary_passes): Now is called once per
4063         pass rather than once per node*pass.
4064         
4065 2008-05-15  Anatoly Sokolov <aesok@post.ru>
4066
4067         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
4068         avr_have_mul_p, avr_asm_only_p): Remove variables.
4069         (avr_override_options): Remove initialization of removed variables.
4070         (avr_file_start):  Convert removed variables to fields of 
4071         'struct base_arch_s *avr_current_arch'. 
4072         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
4073         (AVR_HAVE_MUL): (Ditto.).
4074         (AVR_HAVE_MOVW): (Ditto.).
4075         (AVR_HAVE_LPMX): (Ditto.). 
4076         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
4077         avr_asm_only_p): Remove declaration.
4078
4079 2008-05-15  Diego Novillo  <dnovillo@google.com>
4080
4081         * config/arm/arm.c (arm_return_in_memory): Fix return type.
4082         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
4083
4084 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
4085
4086         PR middle-end/36194
4087         * combine.c (check_conversion): Rename back to check_promoted_subreg.
4088         Don't call record_truncated_value from here.
4089         (record_truncated_value): Turn it into a for_each_rtx callback.
4090         (record_truncated_values): New function.
4091         (combine_instructions): Call note_uses with record_truncated_values.
4092         Change name of check_conversion to check_promoted_subreg. 
4093
4094 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
4095
4096         * doc/sourcebuild.texi: Document support for torture tests.
4097
4098 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
4099
4100         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
4101         to alternative 4 of operand 2.
4102
4103 2008-05-15  Richard Guenther  <rguenther@suse.de>
4104
4105         * tree-pass.h (current_pass): Declare.
4106         (get_pass_for_id): Likewise.
4107         * passes.c (passes_by_id, passes_by_id_size): New globals.
4108         (set_pass_for_id): New function.
4109         (get_pass_for_id): Likewise.
4110         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
4111         (execute_function_todo): Flush per function statistics.
4112         * toplev.c (compile_file): Init statistics.
4113         (general_init): Do early statistics initialization.
4114         (finalize): Finish statistics.
4115         * statistics.h (statistics_early_init): Declare.
4116         (statistics_init): Likewise.
4117         (statistics_fini): Likewise.
4118         (statistics_fini_pass): Likewise.
4119         (statistics_counter_event): Likewise.
4120         (statistics_histogram_event): Likewise.
4121         * statistics.c: New file.
4122         * Makefile.in (OBJS-common): Add statistics.o.
4123         (statistics.o): Add dependencies.
4124         * doc/invoke.texi (-fdump-statistics): Document.
4125
4126         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
4127         (insert): Likewise.
4128         (execute_pre): Use statistics_counter_event.
4129         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
4130         (substitute_and_fold): Increment it.  Use statistics_counter_event.
4131
4132 2008-05-15  Diego Novillo  <dnovillo@google.com>
4133
4134         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
4135
4136         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
4137         * tree-ssa-alias.c (new_type_alias): Remove references to
4138         sub-variables from comment.
4139         * tree-ssa-operands.c (swap_tree_operands): Likewise.
4140
4141 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
4142
4143         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
4144         attribute to 1 only for insertps alternative.
4145
4146 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
4147
4148         * config/bfin/bfin.md (loadbytes): New pattern.
4149         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
4150         (bfin_init_builtins): Initialize it.
4151         (bdesc_1arg): Add it.
4152
4153 2008-05-15  Sa Liu  <saliu@de.ibm.com>
4154
4155         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
4156         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
4157         * testsuite/lib/target-supports.exp: Add
4158         check_effective_target_fortran_integer_16.
4159
4160 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
4161
4162         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
4163         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
4164         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
4165         (TARGET_RETURN_IN_MEMORY): Define.
4166
4167 2008-05-15  Richard Guenther  <rguenther@suse.de>
4168
4169         PR middle-end/36244
4170         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
4171         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
4172         represent unmodifiable vars.
4173
4174 2008-05-15  Richard Guenther  <rguenther@suse.de>
4175
4176         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
4177         INDIRECT_REF and TARGET_MEM_REF.
4178         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
4179         TARGET_MEM_REF.
4180
4181 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
4182             H.J. Lu  <hongjiu.lu@intel.com>
4183
4184         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
4185         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
4186         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
4187         insn alternatives.  Add missing alternatives.
4188         (*vec_concatv2di_rex64_sse4_1): Likewise.
4189         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
4190         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
4191         Require TARGET_SSE.
4192
4193 2008-05-15  Richard Guenther  <rguenther@suse.de>
4194
4195         PR tree-optimization/36009
4196         PR tree-optimization/36204
4197         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
4198         (determine_invariantness_stmt): Record the loop a store is
4199         always executed in.
4200         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
4201         dependency.
4202
4203 2008-05-15  Richard Guenther  <rguenther@suse.de>
4204
4205         PR tree-optimization/34330
4206         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
4207         through the pointer will alias the SMT.
4208
4209 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
4210
4211         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
4212
4213 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
4214
4215         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
4216
4217 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
4218             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
4219
4220         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
4221         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
4222         (vashl_optab): New optab for vector/vector shifts.
4223         (vashr_optab): Ditto.
4224         (vlshr_optab): Ditto.
4225         (vrotl_optab): Ditto.
4226         (vrotr_optab): Ditto.
4227         (optab_subtype): New enum for optab_for_tree_code call.
4228         (optab_for_tree_code): Add enum optab_subtype argument.
4229
4230         * optabs.c (optab_for_tree_code): Take an additional argument to
4231         distinguish between a vector shift by a scalar and vector shift by
4232         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
4233         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
4234         vector shift by a vector.
4235         (expand_widen_pattern_expr): Pass additional argument to
4236         optab_for_tree_code.
4237
4238         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
4239         vrotl_optab, vrotr_optab.
4240
4241         * expr.c (expand_expr_real_1): Update calls to
4242         optab_for_tree_code to distinguish between vector shifted by a
4243         scalar and vector shifted by a vector.
4244         * tree-vectorizer.c (supportable_widening_operation): Ditto.
4245         (supportable_narrowing_operation): Ditto.
4246         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
4247         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
4248         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
4249         (vect_create_epilog_for_reduction): Ditto.
4250         (vectorizable_reduction): Ditto.
4251         (vectorizable_operation): Ditto.
4252         (vect_strided_store_supported): Ditto.
4253         (vect_strided_load_supported): Ditto.
4254         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
4255         * expmed.c (expand_shift): Ditto.
4256
4257         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
4258         scalar type.
4259         (ashr@var{m}3): Ditto.
4260         (vashl@var{m}3): Document new vector/vector shift standard name.
4261         (vashr@var{m}3): Ditto.
4262         (vlshr@var{m}3): Ditto.
4263         (vrotl@var{m}3): Ditto.
4264         (vrotr@var{m}3): Ditto.
4265
4266         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
4267         (PPERM_INVERT): Ditto.
4268         (PPERM_REVERSE): Ditto.
4269         (PPERM_REV_INV): Ditto.
4270         (PPERM_ZERO): Ditto.
4271         (PPERM_ONES): Ditto.
4272         (PPERM_SIGN): Ditto.
4273         (PPERM_INV_SIGN): Ditto.
4274         (PPERM_SRC1): Ditto.
4275         (PPERM_SRC2): Ditto.
4276
4277         * config/i386/sse.md (mulv2di3): Add SSE5 support.
4278         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
4279         allows a memory operand to be the value being added, and split it
4280         to improve vectorization.
4281         (sse5_pmacsdqh_mem): Ditto.
4282         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
4283         (sse5_mulv2div2di3_high): Ditto.
4284         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
4285         (vec_pack_trunc_v4si): Ditto.
4286         (vec_pack_trunc_v2di): Ditto.
4287         (sse5_pcmov_<mode>): Remove code that tried to use use
4288         andps/andnps instead of pcmov.
4289         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
4290         pmacsdqh instructions.
4291         (vec_widen_smult_lo_v4si): Ditto.
4292
4293         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
4294         (PPERM_INVERT): Ditto.
4295         (PPERM_REVERSE): Ditto.
4296         (PPERM_REV_INV): Ditto.
4297         (PPERM_ZERO): Ditto.
4298         (PPERM_ONES): Ditto.
4299         (PPERM_SIGN): Ditto.
4300         (PPERM_INV_SIGN): Ditto.
4301         (PPERM_SRC1): Ditto.
4302         (PPERM_SRC2): Ditto.
4303         (ix86_expand_sse_movcc): Move the SSE5 test after the if
4304         true/false tests.
4305         (ix86_expand_int_vcond): If SSE5 generate all possible integer
4306         comparisons.
4307         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
4308         says ignore whether the last reference is a memory operand.
4309
4310 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
4311             Paolo Bonzini <bonzini at gnu dot org>
4312
4313         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
4314         shift patterns.
4315
4316         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
4317         (vlshr<mode>3): Rename from vlshr<mode>3.
4318         (vashr<mode>3): Rename from vashr<mode>3.
4319         (mulv4sf3): Change the names of vector shift patterns.
4320         (mulv4si3): Ditto.
4321         (negv4sf2): Ditt.
4322
4323         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
4324         shift insns.
4325
4326         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
4327         (SI_SHLHI): Ditto.
4328         (SI_SHL): Ditto.
4329         (SI_SHLI): Ditto.
4330         (SI_ROTH): Ditto.
4331         (SI_ROTHI): Ditto.
4332         (SI_ROT): Ditto.
4333         (SI_ROTI): Ditto.
4334         (SPU_RL_0): Ditto.
4335         (SPU_RL_1): Ditto.
4336         (SPU_RL_2): Ditto.
4337         (SPU_RL_3): Ditto.
4338         (SPU_RL_4): Ditto.
4339         (SPU_RL_5): Ditto.
4340         (SPU_RL_6): Ditto.
4341         (SPU_RL_7): Ditto.
4342         (SPU_SL_0): Ditto.
4343         (SPU_SL_1): Ditto.
4344         (SPU_SL_2): Ditto.
4345         (SPU_SL_3): Ditto.
4346         (SPU_SL_4): Ditto.
4347         (SPU_SL_5): Ditto.
4348         (SPU_SL_6): Ditto.
4349         (SPU_SL_7): Ditto.
4350
4351         * config/spu/spu.md (v): New iterator macro to add v for vector types.
4352         (floatunssidf2_internal): Change vector/vector shift names.
4353         (floatunsdidf2_internal): Ditto.
4354         (mulv8hi3): Ditto.
4355         (ashrdi3): Ditto.
4356         (ashrti3): Ditto.
4357         (cgt_df): Ditto.
4358         (cgt_v2df): Ditto.
4359         (dftsv): Ditto.
4360         (vashl<mode>3): Rename from ashl<mode>3.
4361         (vashr<mode>3): Rename from ashr<mode>3.
4362         (vlshr<mode>3): Rename from lshr<mode>3.
4363         (vrotl<mode>3): Rename from rotl<mode>3.
4364
4365 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
4366
4367         PR target/36224
4368         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
4369         multiply gives the wrong value when doing widening multiplies.
4370         (vec_widen_smult_lo_v4si): Ditto.
4371
4372 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
4373
4374         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
4375         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
4376         emit_library_call_value. 
4377         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
4378         * tree.h (ECF_LIBCALL_BLOCK): Removed.
4379         * calls.c (initialize_argument_information, precompute_arguments, 
4380         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
4381         (precompute_arguments): Removed flags parameter.
4382         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
4383         
4384 2008-05-14  Richard Guenther  <rguenther@suse.de>
4385
4386         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
4387         Make sure to register the store if the use is a PHI_NODE.
4388
4389 2008-05-14  Olivier Hainque  <hainque@adacore.com>
4390
4391         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
4392         memory if the component is to be referenced in BLKmode according
4393         to get_inner_reference.
4394
4395 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
4396
4397         * calls.c (emit_library_call_value_1): Restore code clearing
4398         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
4399
4400 2008-05-14  Olivier Hainque  <hainque@adacore.com>
4401             Nicolas Roche  <roche@adacore.com>
4402
4403         * configure.ac: Add support for a "gcc_subdir" variable in
4404         config-lang.in, to denote a subdirectory where the language/GCC
4405         integration files are to be found.
4406         * configure: Regenerate.
4407
4408 2008-05-14  Ira Rosen  <irar@il.ibm.com>
4409
4410         PR tree-optimization/36098
4411         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
4412         value for the first load in the group in case of a gap.
4413         (vect_build_slp_tree): Check that there are no gaps in loads.
4414
4415 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
4416
4417         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
4418         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
4419         expand_copysign_bit, ): Change call to emit_no_conflict_block to
4420         emit_insn and remove unneeded code to construct extra args.
4421         (emit_no_conflict_block): Removed.
4422         * optabls.h: (emit_no_conflict_block): Removed.
4423         * cse.c (cse_extended_basic_block): Remove search for
4424         REG_NO_CONFLICT note.
4425         * global.c: Removed incorrect comment added in revision 117.
4426         * expr.c (convert_move): Change call to emit_no_conflict_block to
4427         emit_insn.
4428         * recog.c: Change comments so that they do not mention
4429         REG_NO_CONFLICT.
4430         * local_alloc.c (combine_regs): Removed last parameter.
4431         (no_conflict_p): Removed.
4432         (block_alloc): Removed note, no_conflict_combined_regno and set
4433         local vars. Removed all code to process REG_NO_CONFLICT blocks.
4434         (combine_regs): Removed already_dead and code to look for
4435         REG_NO_CONFLICT notes.
4436         * lower_subreg (remove_retval_note): Removed code to look for
4437         REG_NO_CONFLICT block.
4438         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
4439         (resolve_clobber): Remove code to process libcalls that have
4440         REG_NO_CONFLICT notes.
4441         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
4442         case.
4443         * combine.c (can_combine_p, distribute_notes):  Removed
4444         REG_NO_CONFLICT case.
4445         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
4446         to emit_insns.
4447         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
4448         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
4449         Ditto.
4450         * reg-notes.def (NO_CONFLICT): Removed.
4451
4452 2008-05-14  David S. Miller  <davem@davemloft.net>
4453
4454         * config/sparc/sparc.c (sparc_profile_hook): If
4455         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
4456         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
4457         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
4458
4459 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
4460
4461         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
4462
4463 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
4464
4465         PR target/36222
4466         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
4467         and op1 expansion before vector concat to have less live pseudos.
4468
4469 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
4470
4471         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
4472         ix86_expand_vector_set if supported.
4473
4474 2008-05-13  Diego Novillo  <dnovillo@google.com>
4475             Kenneth Zadeck  <zadeck@naturalbridge.com>
4476
4477         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
4478
4479         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
4480         phinodes_print_statistics, init_ssanames, fini_ssanames,
4481         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
4482         release_ssa_name, release_defs, replace_ssa_name_symbol,
4483         ssanames_print_statistics): Move ...
4484         * tree-flow.h: ... here.
4485         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
4486         Use FN instead of cfun.
4487         (make_ssa_name_fn): Rename from make_ssa_name.
4488         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
4489         * tree-flow-inline.h (make_ssa_name): Move from
4490         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
4491         * omp-low.c (expand_omp_parallel):
4492         * tree-flow-inline.h (redirect_edge_var_map_result):
4493         * tree-ssa.c (init_tree_ssa): Add argument FN.
4494         Use it instead of cfun.  Update all users.
4495
4496 2008-05-13  Tom Tromey  <tromey@redhat.com>
4497
4498         PR preprocessor/22168:
4499         * doc/cpp.texi (Top): Update menu.
4500         (Alternatives to Wrapper #ifndef): New node.
4501         (Other Directives): Document deprecation.
4502         (Obsolete Features): Remove menu.
4503         (Assertions): Merge node into Obsolete Features.
4504         (Obsolete once-only headers): Move earlier; rename to Alternatives
4505         to Wrapper #ifndef.
4506         * doc/cppopts.texi: Update.
4507         * c.opt (Wdeprecated): Enable for C and ObjC.
4508         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
4509         (C++ Dialect Options): Move -Wno-deprecated from here to...
4510         (Warning Options): ... here.
4511
4512 2008-05-13  Richard Guenther  <rguenther@suse.de>
4513
4514         PR middle-end/36227
4515         * fold-const.c (fold_sign_changed_comparison): Do not allow
4516         changes in pointer-ness.
4517
4518 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
4519
4520         PR target/24713
4521         * config/sh/sh.c (sh_expand_prologue): Don't clear
4522         RTX_FRAME_RELATED_P for push insns.
4523
4524 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
4525
4526         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
4527
4528 2008-05-12  Anatoly Sokolov <aesok@post.ru>
4529
4530         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
4531         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
4532         Use 'machine->is_leaf' instead of 'leaf_func_p'.
4533
4534 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
4535
4536         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
4537         (*vec_concatv4sf_sse): This.
4538         (*sse2_concatv2si): Renamed to ...
4539         (*vec_concatv2si_sse2): This.
4540         (*sse1_concatv2si): Renamed to ...
4541         (*vec_concatv2si_sse): This.
4542         (*vec_concatv2di_rex): Renamed to ...
4543         (*vec_concatv2di_rex64): This.
4544         (*vec_concatv2si_sse4_1): New.
4545         (*vec_concatv2di_rex64_sse4_1): Likewise.
4546
4547 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
4548
4549         PR rtl-optimization/36111
4550         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
4551         that was created for swappable operands.
4552
4553 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
4554
4555         PR ada/36001
4556         * Makefile.in: Substitute GNATMAKE and GNATBIND.
4557         * configure.ac: Add call to ACX_PROG_GNAT.
4558
4559 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
4560
4561         * optc-gen.awk: Fix comment typo.
4562
4563 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
4564
4565         * pretty-print.c (pp_integer_with_precision): Use
4566         HOST_LONG_LONG_FORMAT.
4567
4568 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
4569
4570         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
4571                 
4572 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
4573
4574         * config/i386/i386.c (bdesc_ptest): Removed.
4575         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
4576         (bdesc_args): Add __builtin_ia32_ptestz128,
4577         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
4578         (ix86_init_mmx_sse_builtins): Updated.
4579         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
4580         (ix86_expand_builtin): Updated.
4581
4582 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
4583
4584         * tree-cfg.c (valid_fixed_convert_types_p): New function.
4585         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
4586
4587 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
4588
4589         * value-prof.c (interesting_stringop_to_profile): Do not
4590         return early for BUILT_IN_MEMPCPY.
4591
4592 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
4593
4594         * calls.c (expand_call): Don't use callgraph to increase
4595         preferred_stack_boundary.
4596
4597         * cgraph.h (cgraph_rtl_info): Use unsigned on
4598         preferred_incoming_stack_boundary.
4599
4600         * final.c (rest_of_clean_state): Use unsigned on
4601         preferred_stack_boundary.
4602
4603 2008-05-09  Tom Tromey  <tromey@redhat.com>
4604
4605         PR preprocessor/22231:
4606         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
4607         proceeding.
4608
4609 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
4610
4611         PR tree-optimization/36129
4612         * tree-ssa-ccp.c: Include value-prof.h.
4613         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
4614         built-in function was folded to a constant.
4615         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
4616
4617 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
4618             Sebastian Pop  <sebastian.pop@amd.com>
4619
4620         * tree-scalar-evolution.c: Document instantiate_scev.
4621         (instantiate_parameters_1): Renamed instantiate_scev_1.
4622         Don't use the same loop for instantiation_loop and evolution_loop.
4623         (instantiate_scev): New.
4624         (instantiate_parameters): Moved...
4625         (resolve_mixers): Update call to instantiate_scev_1 to pass the
4626         same loop twice.  Maintains the semantics for this function.
4627         * tree-scalar-evolution.h (instantiate_scev): Declare.
4628         (instantiate_parameters): ...here.  Now static inline.
4629         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
4630         instead of resolve_mixers.
4631
4632 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
4633
4634         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
4635
4636 2008-05-09  Tomas Bily  <tbily@suse.cz>
4637
4638         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
4639         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
4640         * tree-ssa-structalias.c (get_constraint_for): Likewise.
4641         * c-common.c (c_common_truthvalue_conversion): Likewise.
4642         * tree-object-size.c (compute_object_offset): Likewise.
4643         * tree-inline.c (estimate_num_insns_1): Likewise.
4644         * varasm.c (const_hash_1, compare_constant, copy_constant)
4645         (compute_reloc_for_constant, output_addressed_constants)
4646         (initializer_constant_valid_p): Likewise.
4647         * c-omp.c (check_omp_for_incr_expr): Likewise.
4648         * gimplify.c (gimplify_expr): Likewise.
4649         * c-typeck.c (c_finish_return): Likewise.
4650         * tree-vectorizer.c (supportable_widening_operation)
4651         (supportable_narrowing_operation): Likewise.
4652         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
4653         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
4654         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
4655         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
4656         (descr_info_loc): Likewise.
4657         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
4658         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
4659         (fold_unary): Likewise.
4660         * builtins.c (get_pointer_alignment): Likewise.
4661         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
4662         (instantiate_parameters_1): Likewise.
4663         * tree.c (expr_align, stabilize_reference): Likewise.
4664         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
4665         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
4666         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
4667         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
4668         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
4669         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
4670         Likewise.
4671         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
4672         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
4673         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
4674         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
4675         (forward_propagate_comparison)
4676         (tree_ssa_forward_propagate_single_use_vars): Likewise.
4677         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
4678         * emit-rtl.c (component_ref_for_mem_expr)
4679         (set_mem_attributes_minus_bitpos): Likewise.
4680         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
4681         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
4682         Likewise.
4683         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
4684         (build_function_call, pointer_diff, build_compound_expr)
4685         (c_finish_return): Likewise.
4686         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
4687         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
4688         Likewise.
4689         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
4690         * expr.c (is_aligning_offset): Likewise.
4691         * tree-ssa-alias.c (is_escape_site): Likewise.
4692         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
4693         (check_all_va_list_escapes): Likewise.
4694         * tree-ssa-loop-ivopts.c (determine_base_object)
4695         (determine_common_wider_type): Likewise.
4696         * dojump.c (do_jump): Likewise.
4697         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
4698         * tree-gimple.c (is_gimple_cast): Likewise.
4699         * fold-const.c (decode_field_reference, )
4700         (fold_sign_changed_comparison, fold_unary, fold_comparison)
4701         (fold_binary): Likewise.
4702         * tree-ssa-alias-warnings.c (find_alias_site_helper)
4703         (already_warned_in_frontend_p): Likewise.
4704         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
4705         * tree.c (really_constant_p, get_unwidened): Likewise.
4706         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
4707         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
4708         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
4709         Likewise.
4710         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
4711         CONVERT_EXPR_P.
4712         (CONVERT_EXPR_P): Define.
4713         (CASE_CONVERT): Define.
4714         
4715 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
4716
4717         PR middle-end/36117
4718         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
4719         (delete_unmarked_insns): When deleting a call, call
4720         delete_unreachable_blocks.
4721         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
4722         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
4723
4724 2008-05-08  Richard Guenther  <rguenther@suse.de>
4725
4726         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
4727         (-ftree-salias): Likewise.
4728         (salias-max-implicit-fields): Remove param documentation.
4729         (salias-max-array-elements): Likewise.
4730         * tree-pass.h (pass_create_structure_vars): Remove.
4731         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
4732         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
4733         * tree-ssa-alias.c (create_structure_vars): Remove.
4734         (gate_structure_vars): Likewise.
4735         (pass_create_structure_vars): Likewise.
4736         (gate_build_alias): Likewise.
4737         (pass_build_alias): Adjust to run always and dump the function.
4738         * common.opt (ftree-salias): Hide.
4739         * passes.c (init_optimization_passes): Remove
4740         pass_create_structure_vars, adjust comment.
4741         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
4742         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
4743         * opts.c (decode_options): Do not set flag_tree_salias.
4744         (common_handle_option): Add OPT_ftree_salias to the backward
4745         compatibility section.
4746
4747 2008-05-08  Richard Guenther  <rguenther@suse.de>
4748
4749         * tree-flow-inline.h (var_can_have_subvars): Move ...
4750         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
4751         * tree-flow.h (var_can_have_subvars): Remove.
4752         (push_fields_onto_fieldstack): Remove.
4753         (sort_fieldstack): Likewise.
4754         (struct fieldoff): Move ...
4755         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
4756         alias_set and base_for_components fields.
4757         (sort_fieldstack): Make static.
4758         (push_fields_onto_fieldstack): Likewise.  Remove code that
4759         handles anything but RECORD_TYPEs.  Remove alias_set and
4760         base_for_components handling.
4761         (create_variable_info_for): Adjust.
4762
4763 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
4764
4765         * common.opt (Wframe-larger-than=): Shorten the help message
4766         to one line.
4767         * doc/invoke.texi (Wframe-larger-than=): Add more description.
4768
4769 2008-05-08  Rafael Espindola  <espindola@google.com>
4770
4771         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
4772         trap.
4773         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
4774         trap and that both operands are gimple values.
4775         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
4776         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
4777         is a fp operation.
4778
4779 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
4780
4781         * read-rtl.c (join_c_conditions): Return the first string if the
4782         two strings are equal.
4783
4784 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
4785
4786         * gensupport.h (pred_data): Add a "num_codes" field.
4787         (add_predicate_code): Declare.
4788         * gensupport.c (add_predicate_code): New function.
4789         (std_pred_table): Add an "allows_const_p" field.
4790         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
4791         Remove the (incomplete) list of such codes from the codes field.
4792         (init_predicate_table): Use add_predicate_code.  Add all
4793         RTX_CONST_OBJs if allows_const_p is true.
4794         * genrecog.c (process_define_predicate): Use add_predicate_code.
4795
4796 2008-05-08  David Daney  <ddaney@avtrex.com>
4797             Richard Sandiford  <rsandifo@nildram.co.uk>
4798         
4799         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
4800         special case of constant zero operands.
4801         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
4802         old and new values.  Special case constant zero values.
4803         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
4804         fails.
4805         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
4806         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
4807
4808 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
4809
4810         PR target/36090
4811         * simplify-rtx.c (simplify_plus_minus): Create CONST of
4812         similar RTX_CONST_OBJ before CONST_INT.
4813
4814 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
4815
4816         * stmt.c (expand_stack_restore): Change sa mode if needed.
4817
4818 2008-05-08  Richard Guenther  <rguenther@suse.de>
4819
4820         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
4821         return type to bool.
4822         (ix86_sol10_return_in_memory): Likewise.
4823         (ix86_i386elf_return_in_memory): Likewise.
4824         (ix86_i386interix_return_in_memory): Likewise.
4825         * config/i386/i386.c (ix86_return_in_memory): Likewise.
4826         (ix86_sol10_return_in_memory): Likewise.
4827         (ix86_i386elf_return_in_memory): Likewise.
4828         (ix86_i386interix_return_in_memory): Likewise.
4829
4830 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
4831
4832         PR bootstrap/36180
4833         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
4834         fndecl argument.
4835         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
4836         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
4837         declared in front.
4838
4839 2008-05-08  Richard Guenther  <rguenther@suse.de>
4840
4841         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
4842         * tree-data-ref.h (struct dr_alias): Remove subvars field.
4843         (DR_SUBVARS): Remove.
4844         * tree-dfa.c (dump_subvars_for): Remove.
4845         (debug_subvars_for): Likewise.
4846         (dump_variable): Do not dump subvars.
4847         (remove_referenced_var): Do not remove subvars.
4848         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
4849         (lookup_subvars_for_var): Remove.
4850         (get_subvars_for_var): Likewise.
4851         (get_subvars_at): Likewise.
4852         (get_first_overlapping_subvar): Likewise.
4853         (overlap_subvar): Likewise.
4854         * tree-flow.h (subvar_t): Remove.
4855         (struct var_ann_d): Remove subvars field.
4856         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
4857         argument.  Remove special handling of SFTs.
4858         (compute_tag_properties): Likewise.
4859         (set_initial_properties): Likewise.
4860         (compute_call_clobbered): Likewise.
4861         (count_mem_refs): Likewise.
4862         (compute_memory_partitions): Likewise.
4863         (compute_flow_insensitive_aliasing): Likewise.
4864         (setup_pointers_and_addressables): Likewise.
4865         (new_type_alias): Likewise.
4866         (struct used_part): Remove.
4867         (used_portions): Likewise.
4868         (struct used_part_map): Likewise.
4869         (used_part_map_eq): Likewise.
4870         (used_part_map_hash): Likewise.
4871         (free_used_part_map): Likewise.
4872         (up_lookup): Likewise.
4873         (up_insert): Likewise.
4874         (get_or_create_used_part_for): Likewise.
4875         (create_sft): Likewise.
4876         (create_overlap_variables_for): Likewise.
4877         (find_used_portions): Likewise.
4878         (create_structure_vars): Likewise.
4879         * tree.def (STRUCT_FIELD_TAG): Remove.
4880         * tree.h (MTAG_P): Adjust.
4881         (struct tree_memory_tag): Remove base_for_components and
4882         unpartitionable flags.
4883         (struct tree_struct_field_tag): Remove.
4884         (SFT_PARENT_VAR): Likewise.
4885         (SFT_OFFSET): Likewise.
4886         (SFT_SIZE): Likewise.
4887         (SFT_NONADDRESSABLE_P): Likewise.
4888         (SFT_ALIAS_SET): Likewise.
4889         (SFT_UNPARTITIONABLE_P): Likewise.
4890         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
4891         (union tree_node): Remove sft field.
4892         * alias.c (get_alias_set): Remove special handling of SFTs.
4893         * print-tree.c (print_node): Remove handling of SFTs.
4894         * tree-dump.c (dequeue_and_dump): Likewise.
4895         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
4896         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
4897         * tree-predcom.c (set_alias_info): Do not set subvars.
4898         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
4899         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
4900         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
4901         (add_vars_for_offset): Remove.
4902         (add_virtual_operand): Remove special handling of SFTs.
4903         (add_call_clobber_ops): Likewise.
4904         (add_call_read_ops): Likewise.
4905         (get_asm_expr_operands): Likewise.
4906         (get_modify_stmt_operands): Likewise.
4907         (get_expr_operands): Likewise.
4908         (add_to_addressable_set): Likewise.
4909         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
4910         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
4911         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
4912         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
4913         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
4914         (tree_node_structure): Likewise.
4915         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
4916         handling of SFTs.
4917         (find_what_p_points_to): Likewise.
4918
4919 2008-05-08  Sa Liu  <saliu@de.ibm.com>
4920
4921         * config/spu/spu.md: Fixed subti3 pattern.
4922
4923 2008-05-08  Richard Guenther  <rguenther@suse.de>
4924
4925         PR middle-end/36154
4926         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
4927         sure to create a representative for trailing arrays for PTA.
4928
4929 2008-05-08  Richard Guenther  <rguenther@suse.de>
4930
4931         PR middle-end/36172
4932         * fold-const.c (operand_equal_p): Two objects which types
4933         differ in pointerness are not equal.
4934
4935 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
4936
4937         * calls.c (compute_argument_block_size): Add argument tree fndecl.
4938         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
4939         (emit_library_call_value_1): Add new variable fndecl initialized by
4940         NULL_TREE. It should be the decl type of orgfun, but this information
4941         seems not to be available here, so it uses the default calling abi.
4942         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
4943         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
4944         by TARGET_RETURN_IN_MEMORY.
4945         * config/i386/i386-interix.h: Likewise.
4946         * config/i386/i386.h: Likewise.
4947         * config/i386/i386elf.h: Likewise.
4948         * config/i386/ptx4-i.h: Likewise.
4949         * config/i386/sol2-10.h: Likewise.
4950         * config/i386/sysv4.h: Likewise.
4951         * config/i386/vx-common.h: Likewise.
4952         * config/cris/cris.h: Removed #if 0 clause.
4953         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
4954         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
4955         argument.
4956         (ix86_sol10_return_in_memory): Likewise.
4957         (ix86_i386elf_return_in_memory): New.
4958         (ix86_i386interix_return_in_memory): New.
4959         * config/mt/mt-protos.h (mt_return_in_memory): New.
4960         * config/mt/mt.c: Likewise.
4961         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
4962         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
4963         * config/bfin/bfin.h: Likewise.
4964         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
4965         argument.
4966         * config/bfin/bfin.c: Likewise.
4967         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
4968         * config/alpha/unicosmk.h: Likewise.
4969         * config/i386/cygming.h: Likewise.
4970         * config/iq2000/iq2000.h: Likewise.
4971         * config/mips/mips.h: Likewise.
4972         * config/mn10300/mn10300.h: Likewise.
4973         * config/rs6000/rs6000.h: Likewise.
4974         * config/score/score.h: Likewise.
4975         * config/spu/spu.h: Likewise.
4976         * config/v850/v850.h: Likewise.
4977         * defaults.h: Likewise.
4978         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
4979         * expr.c (emit_block_move): Adjust use of
4980         OUTGOING_REG_PARM_STACK_SPACE.
4981         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
4982         OUTGOING_REG_PARM_STACK_SPACE.
4983         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
4984
4985 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
4986
4987         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
4988         on OMP_RETURN for OMP_FOR.
4989
4990         PR debug/35896
4991         * dwarf2out.c (dw_expand_expr, common_check): Removed.
4992         (fortran_common): New function.
4993         (gen_variable_die): Call fortran_common instead of common_check,
4994         adjust for it returning tree instead of rtx.  Formatting.
4995
4996 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
4997
4998         PR rtl/7335
4999         PR rtl/33826
5000         * see.c (see_copy_insn): Copy new pure const attributes for new call.
5001         * c-decl.c (merge_decls): Ditto.
5002         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
5003         to RTL_CONST_OR_PURE_CALL_P.
5004         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
5005         Initialized DECL_LOOPING_CONST_PURE.
5006         (process_call_operands): Set tree_side_effects properly.
5007         * tree.h (TREE_READONLY_DECL_P): Removed.
5008         (DECL_IS_PURE): Renamed to DECL_PURE_P.
5009         (DECL_LOOPING_OR_CONST_P): New macro.
5010         (struct tree_function_decl): Added looping_const_or_pure_p.
5011         (ECF_*) Renumbered.
5012         (ECF_LOOPING_OR_CONST_P): New macro.
5013         * rtlanal.c (pure_const_p): Removed.
5014         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
5015         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
5016         to RTL_CONST_CALL_P.
5017         * ipa-pure-const.c (pure_const_state_e): Added looping field.
5018         (check_decl, check_tree, check_call, scan_function): Initialize
5019         looping.
5020         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
5021         (static_execute): Set looping true for recursive functions.
5022         Undo setting state to IPA_NEITHER for recursive functions.
5023         * cse.c (cse_insn): 
5024         * ifcvt.c (noce_can_store_speculate_p): Changed
5025         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
5026         RTL_CONST_OR_PURE_CALL_P.
5027         * dse.c (scan_insn): Ditto.
5028         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
5029         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
5030         RTL_CONST_OR_PURE_CALL_P.
5031         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
5032         pure_call_p to RTL_CONST_CALL_P.
5033         * gimplify.c (gimplify_call_expr): Clear side effects for
5034         non-looping pure and constant calls.
5035         * calls.c (emit_call_1): Set rtl flags from ecf flags.
5036         (flags_from_decl_or_type): Set ecf flags from decl flags.
5037         (initialize_argument_information): Turn off
5038         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
5039         Change const to pure if callee_copies is true rather than just
5040         turning off const.
5041         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
5042         way of marking pure calls.
5043         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
5044         Remove hack that was supposed to fix pr7335 and remove old
5045         way of marking pure calls.
5046         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
5047         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
5048         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
5049         RTL_CONST_OR_PURE_CALL_P.
5050         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
5051         * loop-invariant.c (find_exits, find_invariant_bb): Changed
5052         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
5053         * sched-deps.c (schedule_analyze): Ditto.
5054         * rtl.h (struct rtx_def): Use call field, unchanging field, and
5055         return_val field of calls to represent pure and const function info.
5056         (CONST_OR_PURE_CALL_P): Deleted macro.
5057         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
5058         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
5059         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
5060         TREE_READONLY.
5061         * tree-optimize.c (execute_fixup_cfg): Added test for
5062         ECF_LOOPING_CONST_OR_PURE.
5063         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
5064         DECL_PURE_P.
5065         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
5066         effects for looping pure or const calls.
5067         (verify_gimple_expr): Added verification code. 
5068         * config/alpha/alpha.c (alpha_legitimize_address,
5069         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
5070         RTL_CONST_CALL_P.
5071         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
5072         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
5073         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
5074         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
5075         RTL_CONST_OR_PURE_CALL_P.
5076         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
5077         and const calls to be deleted.
5078
5079 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
5080
5081         PR target/35714
5082         * config/i386/mmx.md (mmx_subv2sf3): New expander.
5083         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
5084         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
5085         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
5086         to handle nonimmediate operands.
5087         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
5088         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
5089         to handle nonimmediate operands.
5090         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
5091         (mmx_pmulhrwv4hi3): New expander.  Use
5092         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5093         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
5094         (sse2_umulv1siv1di3): New expander.  Use
5095         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5096         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
5097         (mmx_eq<mode>3): New expander.  Use
5098         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5099         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
5100         (mmx_uavgv8qi3): New expander.  Use
5101         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5102         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
5103         (mmx_uavgv4hi3): New expander.  Use
5104         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5105
5106         * config/i386/sse.md
5107         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
5108         to handle nonimmediate operands.
5109         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
5110         to handle nonimmediate operands.
5111         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
5112         to handle nonimmediate operands.
5113         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
5114         to handle nonimmediate operands.
5115         (sse2_unpckhpd_exp): New expander.  Use
5116         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5117         (sse2_unpcklpd_exp): New expander.  Use
5118         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5119         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
5120         to handle nonimmediate operands.
5121         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
5122         to handle nonimmediate operands.
5123         (*sse2_<plusminus_insn><mode>3): Rename from
5124         sse2_<plusminus_insn><mode>3 insn pattern.
5125         (sse2_<plusminus_insn><mode>3): New expander.  Use
5126         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5127         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
5128         (sse2_umulv2siv2di3): New expander.  Use
5129         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5130         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
5131         (sse4_1_mulv2siv2di3): New expander.  Use
5132         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5133         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
5134         (sse2_pmaddwd): New expander.  Use
5135         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5136         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
5137         (sse2_eq<mode>3): New expander.  Use
5138         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5139         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
5140         (sse4_1_eqv2di3): New expander.  Use
5141         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5142         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
5143         (sse2_uavgv16qi3): New expander.  Use
5144         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5145         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
5146         (sse2_uavgv16qi3): New expander.  Use
5147         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5148         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
5149         (sse2_uavgv8hi3): New expander.  Use
5150         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5151         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
5152         (ssse3_pmulhrswv8hi3): New expander.  Use
5153         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5154         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
5155         (ssse3_pmulhrswv4hi3): New expander.  Use
5156         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5157
5158         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
5159         (<sse>_vmmul<mode>3): Ditto.
5160         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
5161         (divv2df3): Ditto.
5162         (ssse3_pmaddubsw128): Use register_operand for operand 1.
5163         (ssse3_pmaddubsw): Ditto.
5164
5165         * config/i386/i386.c (struct_builtin_description)
5166         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
5167         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
5168         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
5169         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
5170         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
5171         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
5172         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
5173         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
5174         (ix86_fixup_binary_operands): Assert that src1
5175         and src2 must have the same mode when swapped.
5176         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
5177         and ix86_binary_operator_ok.  Do not force operands in registers
5178         when optimizing.
5179
5180 2008-05-07  Jan Hubicka  <jh@suse.cz>
5181
5182         * cgraph.c (dump_cgraph_node): Update.
5183         * cgraph.h (cgraph_local_info): Break out inline summary.
5184         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
5185         hook.
5186         * ipa-inline (inline_summary): New accestor function.
5187         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
5188         cgraph_decide_inlining, compute_inline_parameters): Update.
5189         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
5190
5191 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
5192
5193         Cleanup ColdFire scheduling support and add V4 pipeline model.
5194
5195         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
5196         (define_attr cpu): Add cfv4 value.
5197         (define_attr type, define_attr type1): Merge into a single 'type'
5198         attribute.  Update all uses.
5199         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
5200         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
5201         Update all uses.
5202         (define_attr opx_mem, define_attr opy_mem): Remove.
5203         (define_attr op_mem): Clean up, update comment.
5204         (define_attr size): Use specific values instead of general int.
5205         (define_attr guess, define_attr split): Remove.  Update all uses.
5206         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
5207         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
5208         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
5209         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
5210         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
5211         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
5212         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
5213         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
5214         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
5215         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
5216         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
5217         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
5218         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
5219         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
5220         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
5221         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
5222         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
5223         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
5224         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
5225         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
5226         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
5227         Update or set attributes.
5228         (stack_tie): New fake instruction.
5229
5230         * config/m68k/m68k.h (TUNE_CFV4): New macro.
5231         (m68k_sched_attr_size): Update declaration.
5232         (m68k_sched_attr_type2): Remove.
5233         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
5234         Declare new bypass predicates.
5235
5236         * config/m68k/m68k.c (m68k_sched_issue_rate,
5237         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
5238         implementations.
5239         (TARGET_SCHED_ISSUE_RATE,
5240         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
5241         (override_options): Handle scheduling for ColdFire V4 core.
5242         (m68k_expand_prologue): Emit stack_tie.
5243         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
5244         'OP_TYPE_FPN'.  Update all uses.
5245         (sched_guess_p): Remove.
5246         (sched_address_type): Handle symbolic addresses.
5247         (sched_get_operand): New static function.
5248         (sched_operand_type): Merge into sched_attr_op_type.
5249         (sched_attr_op_type): Handle FP registers, handle quick constants,
5250         update.
5251         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
5252         (m68k_sched_attr_size): Update.  Move logic to ...
5253         (sched_get_attr_size_int): New static function.
5254         (sched_get_opxy_mem_type): New static function.
5255         (m68k_sched_attr_op_mem): Update.
5256         (m68k_sched_attr_type2): Remove.
5257         (sched_cfv4_bypass_data): New static variable.
5258         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
5259         (m68k_sched_issue_rate): Implement scheduler hook.
5260         (struct _sched_ib: enabled_p): New field.
5261         (m68k_sched_variable_issue): Update.  Handle V4.
5262         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
5263         sched_dump_class_func_t, sched_dump_split_class,
5264         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
5265         sched_dump_dfa_class, m68k_sched_dump): Remove.
5266         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
5267         hook.
5268         (m68k_sched_init_global): Remove statisctics dumping, introduce
5269         sanity check that all instructions have pipeline reservations.  Handle
5270         ColdFire V4 core.
5271         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
5272         Handle ColdFire V4 core.
5273         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
5274         New static functions.
5275         (m68k_sched_address_bypass_p): New bypass predicate.
5276         (sched_get_indexed_address_scale): New static function.
5277         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
5278
5279         * cf.md: Update comments.
5280         (define_attr type2): Remove.  Use 'type' attribute instead.
5281         Update all uses.
5282         (cf_ib): Rename to cfv123_ib.  Update all uses.
5283         (cf_oep): Rename to cfv123_oep.  Update all uses.
5284         (cf_chr): Rename to cfv123_chr.  Update all uses.
5285         (cf_mem): Rename to cfv123_mem.  Update all uses.
5286         (cf_mac): Move to more appropriate place.
5287         (cfv123_guess): New automaton and cpu_unit.
5288         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
5289         Update uses of 'size' attribute.  Handle before reload scheduling.
5290         (cfv123_guess): New dummy reservation for unhandled instructions.
5291         (cfv4_*): Pipeline description of ColdFire V4 core.
5292         (ignore): New reservation to handle 'ignore' type.
5293
5294 2008-05-07  Ian Lance Taylor  <iant@google.com>
5295
5296         PR middle-end/36013
5297         * gimplify.c (find_single_pointer_decl_1): Don't look through
5298         indirections.
5299         (find_single_pointer_decl): Adjust comments.
5300
5301 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
5302
5303         PR middle-end/36137
5304         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
5305         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
5306
5307         PR middle-end/36106
5308         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
5309         integral type rather than floating point, then VIEW_CONVERT_EXPR
5310         to the floating point type.
5311
5312 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
5313
5314         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
5315         TFmode op0 to register.
5316
5317 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
5318
5319         * c-decl.c (grokdeclarator): Comment typo.
5320
5321 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
5322
5323         * tree-flow.h: Remove prototype for computed_goto_p.
5324         * tree-cfg.c (computed_goto_p): Make static.
5325
5326 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
5327
5328         PR target/35657
5329         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
5330         (contains_aligned_value_p): This.  Handle _Decimal128.
5331         (ix86_function_arg_boundary): Only align _Decimal128 to its
5332         natural boundary and handle it properly.
5333
5334 2008-05-06  Martin Jambor  <mjambor@suse.cz>
5335
5336         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
5337         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
5338         (ipcp_method_set_orig_node): Removed.
5339         (ipcp_cval_get_cvalue_type): Removed.
5340         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
5341         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
5342         (ipcp_cval_set_cvalue_type): Removed.
5343         (ipcp_cval_get_cvalue): Removed.
5344         (ipcp_cval_set_cvalue): Removed.
5345         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
5346         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
5347         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
5348         (ipcp_cval_meet): Renamed to ipa_lattice_meet
5349         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
5350         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
5351         (ipcp_get_ith_lattice): Changed parameters.
5352         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
5353         (ipcp_lattice_from_jfunc): Changed parameters.
5354         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
5355         (ipcp_method_cval_print): Added temporary variable info.
5356         (ipcp_redirect): Removed already unused local variable caller.
5357         (ipcp_redirect): New temporary variable orig_callee_info
5358         (ipcp_redirect): Removed newly unused local variable callee.
5359         (ipcp_redirect): Removed (a bit confusing) local variable type.
5360         (ipcp_insert_stage): Added local variable info.
5361         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
5362         renamed too
5363         (ipcp_formal_create): Removed.
5364         (ipcp_method_cval_set): Removed.
5365         (ipcp_propagate_stage): Renamed lattice variables.
5366         (ipcp_method_cval_set_cvalue_type): Removed.
5367         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
5368         (ipcp_print_all_lattices): Changed printed strings to refer to 
5369         lattices rather than cvals.
5370         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
5371         (ipcp_propagate_const): Changed formal parameters.
5372         (build_const_val): Changed formal parameters.
5373         (ipcp_insert_stage): Removed useless variable cvalue
5374         (build_const_val): Changed formal parameters.
5375         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
5376         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
5377         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
5378         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
5379         (ipcp_print_func_profile_counts): Changed string from "method" to 
5380         "function"
5381         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
5382         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
5383         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
5384         (ipcp_structures_print): Renamed to ipcp_print_all_structures
5385         (ipcp_profile_print): Renamed to ipcp_print_profile_data
5386         (ipcp_lat_is_const): Changed parameters and made inline.
5387         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
5388         (ipcp_redirect): Renamed to ipcp_need_redirect_p
5389         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
5390         the predicate condition directly
5391         (ipcp_propagate_stage): Added local variable args. Removed local
5392         variable callee.  (Both are mere code simplifications.)
5393         (ipcp_method_dont_insert_const): Renamed to
5394         ipcp_node_not_modifiable_p.
5395         (ipcp_node_not_modifiable_p): Made inline.
5396         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
5397         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
5398         (ipcp_print_all_lattices): Removed variable cvalue
5399         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
5400         Updated comments.
5401
5402 2008-05-06  Olivier Hainque  <hainque@adacore.com>
5403
5404         * tree-sra.c (try_instantiate_multiple_fields): Early return
5405         if field has POINTER_TYPE.
5406
5407 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
5408
5409         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
5410         by using 'q' specifier for instruction.
5411         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
5412
5413 2008-05-06  Anatoly Sokolov <aesok@post.ru>
5414
5415         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
5416         Change mode of zero_extract from QImode to HImode.
5417         (sign bit tests peepholes): (Ditto.).
5418
5419 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
5420
5421         * config/i386/mmx.md: Remove double backslashes from asm templates.
5422         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
5423         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
5424         to handle nonimmediate operands.
5425         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
5426         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
5427         to handle nonimmediate operands.
5428         (*mmx_<code>v2sf3_finite): New insn pattern.
5429         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
5430         (mmx_<code>v2sf3): New expander.  Use
5431         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5432         (mmx_<plusminus_insn><mode>3): New expander.  Use
5433         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5434         (*mmx_<plusminus_insn><mode>3): New insn pattern.
5435         (mmx_add<mode>3): Removed.
5436         (mmx_ssadd<mode>3): Ditto.
5437         (mmx_usadd<mode>3): Ditto.
5438         (mmx_sub<mode>3): Ditto.
5439         (mmx_sssub<mode>3): Ditto.
5440         (mmx_ussub<mode>3): Ditto.
5441         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
5442         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
5443         to handle nonimmediate operands.
5444         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
5445         insn pattern.
5446         (mmx_smulv4hi3_highpart): New expander.  Use
5447         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5448         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
5449         insn pattern.
5450         (mmx_umulv4hi3_highpart): New expander.  Use
5451         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5452         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
5453         (mmx_<code>v4hi3): New expander.  Use
5454         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5455         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
5456         (mmx_<code>v8qi3): New expander.  Use
5457         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5458         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
5459         (mmx_<code><mode>3): New expander.  Use
5460         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5461
5462 2008-05-05  Jan Hubicka  <jh@suse.cz>
5463
5464         PR tree-optimization/36118
5465         * passes.c (pass_init_dump_file): Fix dump header.
5466
5467 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5468
5469         PR middle-end/36141
5470         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
5471         VCE for function decls.
5472
5473 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5474
5475         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
5476
5477 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5478
5479         * config/i386/i386.md (sat_plusminus): New.
5480         (plusminus_insn): Likewise.
5481         (plusminus_mnemonic): Likewise.
5482         (addsub): Removed.
5483         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
5484         (*<addsub><mode>3_cc_overflow): Renamed to ...
5485         (*<plusminus_insn><mode>3_cc_overflow): This.
5486         (*<addsub>si3_zext_cc_overflow): Renamed to ...
5487         (*<plusminus_insn>si3_zext_cc_overflow): This.
5488
5489         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
5490         (<plusminus_insn><mode>3): This.
5491         (*<addsub><mode>3): Renamed to ...
5492         (*<plusminus_insn><mode>3): This.
5493         (<sse>_vm<addsub><mode>3): Renamed to ...
5494         (<sse>_vm<plusminus_insn><mode>3): This.
5495         (sse3_h<addsub>v4sf3): Renamed to ...
5496         (sse3_h<plusminus_insn>v4sf3): This.
5497         (sse3_h<addsub>v2df3): Renamed to ...
5498         (sse3_h<plusminus_insn>v2df3): This.
5499         (<plusminus_insn><mode>3): New.
5500         (*<plusminus_insn><mode>3): Likewise.
5501         (sse2_<plusminus_insn><mode>3): Likewise.
5502         (add<mode>): Removed.
5503         (*add<mode>3): Likewise.
5504         (sse2_ssadd<mode>3): Likewise.
5505         (sse2_usadd<mode>3): Likewise.
5506         (sub<mode>3): Likewise.
5507         (*sub<mode>3): Likewise.
5508         (sse2_sssub<mode>3): Likewise.
5509         (sse2_ussub<mode>3): Likewise.
5510
5511 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
5512
5513         * gthr-single.h: Add in required interface elements as per gthr.h.
5514         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
5515         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
5516         Generalize UNUSED macro. 
5517         (__gthread_once): Add.
5518         (__gthread_key_create): Add.
5519         (__gthread_key_delete): Add.
5520         (__gthread_getspecific): Add.
5521         (__gthread_setspecific): Add.
5522         
5523 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
5524
5525         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
5526         the same size types for the indirect reference on the rhs, then
5527         create a VCE.
5528
5529 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
5530
5531         * config/i386/i386.md
5532         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
5533         one insn template instead of template series.
5534         (*xordi_1_rex64): Ditto.
5535         (*xordi_2_rex64): Ditto.
5536
5537 2008-05-05  Ira Rosen  <irar@il.ibm.com>
5538
5539         PR tree-optimization/36119
5540         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
5541         in case of SLP.
5542
5543 2008-06-04  Jan Hubicka  <jh@suse.cz>
5544
5545         tree-optimization/36100
5546         * tree-pass.h (pass_O0_always_inline): Declare.
5547         * ipa-inline.c (inline_transform): Remove dead code.
5548         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
5549         pass_O0_always_inline): New.
5550         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
5551
5552 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
5553
5554         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
5555         mnemonic in this_param move for TARGET_64BIT.
5556
5557 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
5558
5559         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
5560         (*strmovsi_rex_1): Ditto.
5561         (*strsetsi_1): Ditto.
5562         (*strsetsi_rex_1): Ditto.
5563
5564         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
5565         adddicc expanders using SWI mode iterator.
5566
5567 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
5568
5569         PR target/36121
5570         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
5571         argument handling.
5572
5573 2008-05-04  David S. Miller  <davem@davemloft.net>
5574
5575         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
5576         (sparc*-*-linux*): Use linux.h in tm_file.
5577         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
5578         compiler defaulting to 32-bit.
5579         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
5580         no longer needed.
5581         * config/sparc/linux.h: Remove definitions now obtained
5582         properly from linux.h
5583         * config/sparc/linux64.h: Likewise.
5584         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
5585         don't want this setting for 32-bit builds in a biarch compiler.
5586         * doc/install.texi: Add sparc-linux to list of targets
5587         supporting --enable-targets=all.
5588
5589 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
5590
5591         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
5592
5593 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
5594
5595         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
5596         after V4SI_FTYPE_V8HI.
5597         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
5598         case V4SI_FTYPE_V2DF.
5599
5600 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
5601
5602         * doc/invoke.texi (max-flow-memory-locations): Removed.
5603         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
5604         
5605 2008-05-03  Richard Guenther  <rguenther@suse.de>
5606
5607         PR middle-end/34973
5608         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
5609
5610 2008-05-02  David S. Miller  <davem@davemloft.net>
5611
5612         * config.gcc (need_64bit_hwint): Document libcpp dependency.
5613
5614 2008-05-02  Simon Baldwin <simonb@google.com>
5615
5616         PR bootstrap/36108
5617         * c-common.h (warn_array_subscript_range): Removed.
5618         * c-common.c (warn_array_subscript_range): Ditto.
5619         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
5620         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
5621
5622 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
5623
5624         * config/i386/i386.c (ix86_special_builtin_type): New.
5625         (bdesc_special_args): Likewise.
5626         (ix86_expand_special_args_builtin): Likewise.
5627         (ix86_init_mmx_sse_builtins): Updated.
5628         (ix86_expand_builtin): Updated.
5629         (ix86_expand_store_builtin): Removed.
5630         (ix86_expand_unop_builtin): Likewise.
5631
5632         * config/i386/mm3dnow.h (__v2sf): Moved to ...
5633         * config/i386/mmintrin.h (__v2sf): Here.
5634
5635         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
5636         const __v2sf.
5637         (_mm_loadl_pi): Likewise.
5638         (_mm_storeh_pi): Replace __v2si with __v2sf.
5639         (_mm_storel_pi): Likewise.
5640
5641         * doc/extend.texi: Correct __builtin_ia32_loadhps,
5642         __builtin_ia32_loadlps, __builtin_ia32_storehps,
5643         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
5644         __builtin_ia32_loadlpd.
5645
5646 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
5647
5648         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
5649         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
5650         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
5651         (ix86_init_mmx_sse_builtins): Updated.
5652         (ix86_expand_args_builtin): Likewise.
5653         (ix86_expand_builtin): Likewise.
5654         (ix86_expand_unop1_builtin): Renamed to ...
5655         (ix86_expand_unop_vec_merge_builtin): This.
5656
5657 2008-05-01  Jan Hubicka  <jh@suse.cz>
5658
5659         PR bootstrap/36100
5660         * ipa-inline.c (inline_generate_summary): Make static.
5661         (inline_transform): Do not call inlining at -O0; make static.
5662         * passes.c (execute_todo): Add sanity check.
5663         (execute_one_ipa_transform_pass): Execute proper flags.
5664
5665 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
5666
5667         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
5668         (DECL_NONADDRESSABLE_P): Likewise.
5669         * alias.c (record_component_aliases): Fix comment.
5670
5671 2008-05-01  Simon Baldwin <simonb@google.com>
5672
5673         * c-common.h (warn_array_subscript_range): New function.
5674         * c-common.c (warn_array_subscript_range): Ditto.
5675         * tree-vrp.c (check_array_ref): Corrected code to agree with
5676         comment, ignoring only arrays of size 0 or size 1.
5677         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
5678
5679 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5680
5681         * config/i386/i386.c (ix86_builtin_type): Replace
5682         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
5683         (bdesc_args): Updated.
5684         (ix86_init_mmx_sse_builtins): Likewise.
5685         (ix86_expand_args_builtin): Likewise.
5686
5687         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
5688         with __v1di.
5689
5690         * doc/extend.texi: Correct __builtin_ia32_palignr.
5691
5692 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5693
5694         PR target/36095
5695         * config/i386/i386.c (bdesc_crc32): Removed.
5696         (ix86_expand_crc32): Likewise.
5697         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
5698         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
5699         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
5700         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
5701         UINT_FTYPE_UINT_UCHAR.
5702         (bdesc_args): Updated. Add crc32 builtins.
5703         (ix86_init_mmx_sse_builtins): Updated.
5704         (ix86_expand_args_builtin): Updated to support subreg.
5705
5706         * doc/extend.texi: Correct __builtin_ia32_crc32di.
5707
5708 2008-05-01  Jan Hubicka  <jh@suse.cz>
5709
5710         * tree-pass.h (opt_pass): Add IPA_PASS.
5711         (varpool_node, cgraph_node): Forward declare.
5712         (ipa_opt_pass): Define.
5713         (pass_ipa_inline): Turn into ipa_opt_pass.
5714         (pass_apply_inline): Remove.
5715         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
5716         (apply_inline): Turn into ....
5717         (inline_transform): ... this one.
5718         (inline_generate_summary): New function.
5719         (pass_apply_inline): Remove.
5720         * function.h (ipa_opt_pass): Forward declare structure; typedef;
5721         vector.
5722         (struct function): Add ipa_transforms_to_apply.
5723         * passes.c (register_one_dump_file): Work on IPA_PASS.
5724         (init_optimization_passes): Remove pass_inline_parameters and
5725         pass_apply_inline.
5726         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
5727         (execute_one_pass) ... here; apply transforms when possible.
5728         (add_ipa_transform_pass, execute_ipa_summary_asses,
5729         execute_one_ipa_transform_pass): New.
5730         (execute_ipa_pass_list): Update for IPA_PASS type.
5731
5732 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5733
5734         * config/i386/i386.c (ix86_builtin_type): Add
5735         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
5736         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
5737         (bdesc_args): Add SSE4a builtins.
5738         (ix86_init_mmx_sse_builtins): Updated.
5739         (ix86_expand_args_builtin): Likewise.
5740         (ix86_expand_builtin): Likewise.
5741
5742 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5743
5744         * config/i386/i386.c (ix86_builtin_type): Add
5745         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
5746         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
5747         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
5748         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
5749         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
5750         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
5751         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
5752         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
5753         and DI_FTYPE_DI_DI_INT.
5754         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
5755         (ix86_init_mmx_sse_builtins): Updated.
5756         (ix86_expand_args_builtin): Likewise.
5757         (ix86_expand_builtin): Likewise.
5758         (ix86_expand_binop_imm_builtin): Removed.
5759
5760         * doc/extend.texi: Correct __builtin_ia32_palignr128.
5761
5762 2008-04-30  Richard Guenther  <rguenther@suse.de>
5763
5764         PR tree-optimization/32921
5765         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
5766
5767 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
5768
5769         * config/arm/arm.c (arm_unwind_emit): Use
5770         crtl->all_throwers_are_sibcalls instead of
5771         cfun->all_throwers_are_sibcalls.
5772         (arm_output_fn_unwind): Likewise.
5773         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
5774         instead of cfun->uses_pic_offset_table.
5775         (frv_expand_prologue): Likewise.
5776         (frv_frame_pointer_required): Likewise.
5777         (frv_expand_fdpic_call): Likewise.
5778         (frv_emit_movsi): Likewise.
5779         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
5780         cfun->returns_pcc_struct instead of
5781         current_function_returns_pcc_struct.
5782         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
5783         instead of cfun->calls_eh_return.
5784         (m32c_pushm_popm): Likewise.
5785         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
5786         "extern" declaration.
5787
5788 2008-04-30  Richard Guenther  <rguenther@suse.de>
5789
5790         PR tree-optimization/21636
5791         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
5792         constant address.
5793         (evaluate_stmt): Print the likely value.
5794         (ccp_visit_stmt): Avoid excessive vertical spacing.
5795
5796 2008-04-30  Rafael Espindola  <espindola@google.com>
5797
5798         * builtins.c (fold_call_expr): Return realret.
5799         * tree-ssa-threadedge.c
5800         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
5801         __builtin_object_size.
5802
5803 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
5804
5805         * gcc.c (wrapper_string): New variable.
5806         (insert_wrapper): New function.
5807         (execute): New option -wrapper.
5808         * doc/invoke.texi (Overall Options): New driver option -wrapper.
5809
5810 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
5811
5812         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
5813         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
5814         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
5815         from...
5816         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
5817         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
5818         config/rs6000/e500crtres64gprctr.asm,
5819         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
5820         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
5821         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
5822         config/rs6000/e500crtsav64gprctr.asm,
5823         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
5824         config/rs6000/e500crtsavg64gprctr.asm: New files.
5825         * config/rs6000/t-ppccomm: Add build rules for new files.
5826         (LIB2FUNCS_STATIC_EXTRA): Add new files.
5827         * config/rs6000/t-netbsd: Add build rules for new files.
5828         (LIB2FUNCS_STATIC_EXTRA): New variable.
5829         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
5830         (CRTSAVRES_DEFAULT_SPEC): Likewise.
5831         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
5832
5833 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
5834
5835         * config/i386/i386.c (ix86_builtin_type): Add
5836         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
5837         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
5838         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
5839         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
5840         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
5841         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
5842         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
5843         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
5844         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
5845         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
5846         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
5847         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
5848         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
5849         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
5850         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
5851         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
5852         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
5853         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
5854         V1DI_FTYPE_V2SI_V2SI.
5855         (bdesc_2arg): Moved to ...
5856         (bdesc_args): Here.
5857         (ix86_init_mmx_sse_builtins): Updated.
5858         (ix86_expand_args_builtin): Updated.  Take a pointer
5859         to const struct builtin_description.  Handle comparison
5860         builtin functions.
5861         (ix86_expand_sse_compare): Take a new argument for swapping operands.
5862         (ix86_expand_builtin): Updated.
5863
5864         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
5865         (ssse3_pmaddubsw128): This.
5866         (ssse3_pmaddubswv4hi3): Renamed to ...
5867         (ssse3_pmaddubsw): This.
5868
5869         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
5870         (__builtin_ia32_packssdw128): Likewise.
5871         (__builtin_ia32_packuswb128): Likewise.
5872         (__builtin_ia32_pmaddubsw): Likewise.
5873         (__builtin_ia32_pmaddubsw128): Likewise.
5874
5875 2008-04-30  Richard Guenther  <rguenther@suse.de>
5876
5877         PR tree-optimization/14847
5878         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
5879         (recognize_bits_test): Use it.
5880         (recognize_single_bit_test): Likewise.
5881
5882 2008-04-30  Martin Jambor  <mjambor@suse.cz>
5883
5884         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
5885         instead of setting number of formal parameters to zero.
5886         (ipcp_init_stage): Do not set the number of actual parameters to zero 
5887         either.
5888         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
5889         which are called with variable number of arguments.
5890         (ipcp_insert_stage): Explicitely skipping all nodes which are
5891         called with variable number of arguments.
5892         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
5893         number of parameters.
5894
5895         * ipa-prop.h (struct ipa_node_params): Added flag
5896         called_with_var_arguments
5897         (ipa_set_param_count): Added.  Changed sole setter to use it.
5898         (ipa_get_param_count): Added.  All readers of param_count
5899         converted to use it instead.
5900         (ipa_set_called_with_variable_arg): Added.
5901         (ipa_is_called_with_var_arguments): Added.
5902         (ipa_get_ith_param): Added.  All readers of param_decls converted
5903         to use it instead.
5904         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
5905         changed to use it. 
5906         (ipa_get_cs_argument_count): Added, all readers of argument_count
5907         changed to cal it.
5908         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
5909         to use it.
5910         
5911         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
5912         (struct ipcp_lattice): Renamed cval_type to type
5913         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
5914
5915         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
5916         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
5917         (ipcp_insert_stage): Changed the type of variable cvalue to tree
5918         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
5919         (build_const_val): Changed the type of parameter cvalue to tree
5920         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
5921         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
5922         
5923         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
5924         constant 
5925
5926         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
5927         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
5928         (ipa_add_method): Renamed to ipa_push_func_to_list
5929         (ipa_remove_method): Renamed to ipa_pop_func_from_list
5930         (ipa_callsite_param_count): Removed.
5931         (ipa_callsite_param_count_set): Removed.
5932         (ipa_callsite_param): Removed.
5933         (ipa_callsite_callee): Removed.
5934         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
5935         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
5936         (ipa_method_formal_count): Removed.
5937         (ipa_method_formal_count_set): Removed.
5938         (ipa_method_get_tree): Removed.
5939         (ipa_method_tree_map_create): Removed.
5940         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
5941         (ipa_create_param_decls_array): Creates the array itself
5942         (ipa_create_param_decls_array): Temporary variable info instead of 
5943         a few dereferences.
5944         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
5945         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
5946         (get_type): Removed.
5947         (ipa_jf_get_info_type): Removed.
5948         (ipa_node_create): Renamed to ipa_create_node_params
5949         (ipa_free): Renamed to ipa_free_all_node_params
5950         (ipa_nodes_create): Renamed to ipa_create_all_node_params
5951         (ipa_edges_create): Renamed to ipa_create_all_edge_args
5952         (ipa_edges_free): Renamed to ipa_free_all_edge_args
5953         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
5954         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
5955         ipa_free_all_edge_args
5956         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
5957         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
5958         (ipa_create_methodlist_node): Removed.
5959         (ipa_methodlist_method): Removed.
5960         (ipa_methodlist_method_set): Removed.
5961         (ipa_methodlist_next_method): Removed.
5962         (ipa_methodlist_next_method_set): Removed.
5963         (ipa_method_is_modified): Removed.
5964         (ipa_method_modify_create): Removed.
5965         (ipa_method_modify_init): Temporary variable info instead of a few 
5966         dereferences.
5967         (ipa_detect_param_modifications): Temporary variable info instead of 
5968         a few dereferences.
5969         (ipa_compute_jump_functions): Temporary variable info instead of 
5970         a few dereferences.
5971         (ipa_method_modify_set): Removed.
5972         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
5973         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
5974         than craph_node as the first parameter.
5975         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
5976         (ipa_method_modify_init): Removed.
5977         (ipa_compute_jump_functions): Added a temp variable instead of 
5978         repeatadly dereferencing the cgraph_edge.aux pointer
5979         (ipa_callsite_param_set_type): Removed.
5980         (ipa_compute_jump_functions): i renamed to index and moved to 
5981         an inner block
5982         (ipa_callsite_param_set_info_type_formal): Removed.
5983         (ipa_callsite_param_set_info_type): Removed.
5984         (ipa_callsite_param_map_create): Removed.
5985         (ipa_callsite_tree): Removed.
5986         (ipa_callsite_caller): Removed.
5987         (ipa_pop_func_from_list): return_method removed to return_func
5988
5989         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
5990         prefixed all values with IPA_. Changed all users.
5991         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
5992         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
5993         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
5994         (union parameter_info): Renamed to jump_func_value.
5995         (union jump_func_value): Renamed value to constant
5996         (struct ipa_jump_func): Renamed info_type to value
5997         (struct ipa_node): Renamed to ipa_node_params
5998         (struct ipa_node_params): Renamed ipa_arg_num to param_count
5999         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
6000         (struct ipa_node_params): Renamed ipa_mod to modified_flags
6001         (struct ipa_edge): Renamed to ipa_edge_args
6002         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
6003         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
6004         (struct ipa_methodlist): Renamed to ipa_func_list
6005         (struct ipa_func_list): method_p renamed to node, next_method
6006         renamed to next
6007         (ipa_methodlist_p): Removed, switched all users to struct pointer
6008         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
6009
6010 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
6011
6012         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
6013         (rs6000_emit_epilogue): Use backchain to restore only when we
6014         have a large frame.  Make use of frame pointer to restore if we
6015         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
6016
6017 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
6018
6019         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
6020         Add mode to zero_extract.
6021         (sign bit tests peepholes): (Ditto.).
6022
6023 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
6024
6025         * config/i386/i386.c (ix86_builtins): Replace Prescott New
6026         Instructions in comments with SSE3.
6027         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
6028         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
6029         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
6030         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
6031         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
6032         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
6033         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
6034         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
6035         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
6036         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
6037         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
6038         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
6039         (bdesc_sse_args): Renamed to ...
6040         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
6041         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
6042         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
6043         IX86_BUILTIN_FABSQ.
6044         (bdesc_1arg): Moved to ...
6045         (bdesc_args): Here.
6046         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
6047         Instructions in comments with SSE3.
6048         (ix86_expand_sse_operands_builtin): Renamed to ...
6049         (ix86_expand_args_builtin): This.  Updated.
6050         (ix86_expand_unop1_builtin): Update comments.
6051         (ix86_expand_builtin): Updated.
6052
6053 2008-04-29  Richard Guenther  <rguenther@suse.de>
6054
6055         PR tree-optimization/36078
6056         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
6057         Update virtual SSA form after cleaning up the CFG.
6058
6059 2008-04-29  Richard Guenther  <rguenther@suse.de>
6060
6061         PR middle-end/15255
6062         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
6063
6064 2008-04-29  Richard Guenther  <rguenther@suse.de>
6065
6066         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
6067         (compute_may_aliases): Do not call finalize_ref_all_pointers.
6068         (compute_flow_insensitive_aliasing): Do not treat
6069         PTR_IS_REF_ALL pointers special.
6070         (get_smt_for): Likewise.
6071         (may_alias_p): Re-structure.
6072         (is_escape_site): A ref-all pointer conversion is not an escape site.
6073         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
6074         PTR_IS_REF_ALL pointers special.
6075         * tree-ssa-structalias.h (struct alias_info): Remove
6076         ref_all_symbol_mem_tag field.
6077         (PTR_IS_REF_ALL): Remove.
6078
6079 2008-04-29  Richard Guenther  <rguenther@suse.de>
6080
6081         PR middle-end/36077
6082         * fold-const.c (extract_muldiv_1): In combining division constants
6083         make sure to never overflow.
6084
6085 2008-04-29  Nick Clifton  <nickc@redhat.com>
6086
6087         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
6088
6089 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6090
6091         PR bootstrap/35169
6092         * optc-gen.awk: Work around HP-UX/IA awk bug.
6093
6094 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
6095
6096         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
6097         2008-04-25 commit.
6098
6099 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
6100
6101         PR target/36073
6102         * config/i386/i386.md
6103         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
6104         Change operand 1 predicate to nonimmediate_operand.
6105
6106 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
6107
6108         PR debug/36060
6109         * dwarf2out.c (struct die_struct): Mark as chain_circular through
6110         die_sub field.
6111         * gengtype.c (walk_type, write_func_for_structure): Handle
6112         chain_circular.
6113         * doc/gty.texi: Document chain_circular.
6114
6115 2008-04-28  Richard Guenther  <rguenther@suse.de>
6116
6117         PR tree-optimization/36066
6118         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
6119         SCEV and loop.
6120
6121 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
6122
6123         PR target/36064
6124         * config/i386/i386.md
6125         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
6126         Use match_scratch instead of match_operand for operands 3 and 4.
6127
6128 2008-04-27  Richard Guenther  <rguenther@suse.de>
6129
6130         PR tree-optimization/18754
6131         PR tree-optimization/34223
6132         * tree-pass.h (pass_complete_unrolli): Declare.
6133         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
6134         loop size before and after unconditionally of UL_NO_GROWTH in effect.
6135         Rewrite loop into loop closed SSA form if it is not already.
6136         (tree_unroll_loops_completely): Re-structure to iterate over
6137         innermost loops with intermediate CFG cleanups.
6138         Unroll outermost loops only if requested or the code does not grow
6139         doing so.
6140         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
6141         loops are available.
6142         (tree_vectorize): Instead do so here.
6143         (tree_complete_unroll): Also unroll outermost loops.
6144         (tree_complete_unroll_inner): New function.
6145         (gate_tree_complete_unroll_inner): Likewise.
6146         (pass_complete_unrolli): New pass.
6147         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
6148         uses outside of the loop.
6149         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
6150         form if it is available.  
6151         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
6152         * passes.c (init_optimization_passes): Schedule complete inner
6153         loop unrolling pass before the first CCP pass after final inlining.
6154
6155 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
6156
6157         * targhooks.h (default_emutls_var_fields,
6158         default_emutls_var_init): Declare.
6159         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
6160         * target.h (struct gcc_target): Add struct emutls member.
6161         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
6162         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
6163         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
6164         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
6165         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
6166         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
6167         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
6168         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
6169         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
6170         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
6171         emit debug information.
6172         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
6173         * varasm.c: Include targhooks.h.
6174         (emutls_object_section, emutls_tmpl_section): New.
6175         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
6176         (EMUTLS_SEPARATOR): New.
6177         (prefix_name): New.
6178         (get_emutls_object_name): New.
6179         (default_emutls_var_fields): New, broken out of ...
6180         (get_emutls_object_type): ... here.  Adjust to use target hooks.
6181         (get_emutls_init_templ_addr): Adjust to use target hooks.
6182         (emutls_decl): Adjust to use target hooks.
6183         (emutls_finish): Likewise.
6184         (default_emutls_var_init): New, broken out of ...
6185         (assemble_variable): ... here.  Adjust to use target hooks.
6186         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
6187         SECCAT_EMUTLS_TMPL.
6188         * c-common.c (handle_section_attribute): Prevent overriding
6189         sections for emulated tls with special sections.
6190         * config/i386/i386.c (x86_64_elf_select_section): Add
6191         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
6192         (x86_64_elf_unique_section): Likewise.
6193         * config/vxworks.c: Include tree.h.
6194         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
6195         (vxworks_override_options): Set TLS scheme.
6196         * doc/tm.texi (Emulated TLS): New node.
6197
6198 2008-04-26  Simon Baldwin <simonb@google.com>
6199
6200         PR c/35652
6201         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
6202         with propagated string constants.
6203
6204 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
6205
6206         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
6207         constraint for operand 2 when operand 0 is memory operand.
6208         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
6209         operand 0 is memory operand.
6210         (fix_trunc<mode>_i387_with_temp): Ditto.
6211         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
6212         operand 2 when operand 1 is memory operand.
6213         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
6214         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
6215         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
6216         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
6217         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
6218         operands 2,3 and 4 when operand 1 is memory operand.
6219         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
6220         is memory operand.
6221         (fistdi2_floor_with_temp): Ditto.
6222         (fist<mode>2_floor_with_temp): Ditto.
6223         (fistdi2_ceil_with_temp): Ditto.
6224         (fist<mode>2_ceil_with_temp): Ditto.
6225         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
6226
6227 2008-04-26  David Daney  <ddaney@avtrex.com>
6228
6229         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
6230         unspec_volitile.
6231         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
6232         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
6233         UNSPEC_UPDATE_GOT_VERSION): Renumber.
6234         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
6235         (compare_and_swap_12): New insn.
6236         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
6237         * config/mips/mips.c (mips_force_binary): New function.
6238         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
6239         (mips_expand_compare_and_swap_12): New function.
6240         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
6241
6242 2008-04-25  Jan Hubicka  <jh@suse.cz>
6243
6244         PR testsuite/35843
6245         * cfgexpand.c (pass_expand): Turn into RTL pass.
6246         * passes.c (execute_one_pass): Do pass typechecking after execution.
6247         * tree-pass.h (pass_expand): Turn into RTL pass.
6248
6249         * function.h (struct rtl_data): Move here fields
6250         accesses_prior_frames, calls_eh_return, saves_all_registers,
6251         has_nonlocal_goto, has_asm_statement, is_thunk,
6252         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
6253         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
6254         arg_pointer_save_area_init from struct function; turn into bool.
6255         (struct function): Move
6256         calls_eh_return, saves_all_registers, has_nonlocal_goto,
6257         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
6258         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
6259         tail_call_emit, arg_pointer_save_area_init
6260         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
6261         (current_function_returns_struct, current_function_returns_pcc_struct,
6262         current_function_calls_setjmp, current_function_calls_alloca,
6263         current_function_accesses_prior_frames,
6264         current_function_calls_eh_return, current_function_is_thunk,
6265         current_function_stdarg, current_function_profile,
6266         current_function_limit_stack, current_function_uses_pic_offset_table,
6267         current_function_uses_const_pool, current_function_has_nonlocal_label,
6268         current_function_saves_all_registers,
6269         current_function_has_nonlocal_goto,
6270         current_function_has_asm_statement): Remove accesor macros.
6271         * ra-conflict.c (global_conflicts): Update.
6272         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
6273         (suitable_for_tail_call_opt_p): Update.
6274         * builtins.c (expand_builtin_return_addr): Update.
6275         (expand_builtin_setjmp_setup): Update.
6276         (expand_builtin_nonlocal_goto): Update.
6277         * final.c (final_start_function): Update.
6278         (profile_function): Update.
6279         (leaf_function_p): Update.
6280         (only_leaf_regs_used): Update.
6281         * df-scan.c (df_get_exit_block_use_set): Update.
6282         * dojump.c (clear_pending_stack_adjust): Update.
6283         * tree-stdarg.c (gate_optimize_stdarg): Update.
6284         * gimple-low.c (lower_function_body): Update.
6285         * global.c (compute_regsets): Update.
6286         (global_alloc): Update.
6287         * dwarf2out.c (dwarf2out_begin_prologue): Update.
6288         * expr.c (expand_assignment): Update.
6289         * dse.c (dse_step0): Update.
6290         (dse_step1): Update.
6291         * c-decl.c (store_parm_decls): Update.
6292         * local-alloc.c (combine_regs): Update.
6293         (find_free_reg): Update.
6294         * function.c (assign_parms_augmented_arg_list): Update.
6295         (assign_parm_find_data_types): Update.
6296         (assign_parms): Update.
6297         (allocate_struct_function): Update.
6298         (expand_function_start): Update.
6299         (expand_function_end): Update.
6300         (get_arg_pointer_save_area): Update.
6301         (thread_prologue_and_epilogue_insns): Update.
6302         (rest_of_match_asm_constraints): Update.
6303         * stor-layout.c (variable_size): Update.
6304         * gcse.c (gcse_main): Update.
6305         (bypass_jumps): Update.
6306         * gimplify.c (gimplify_function_tree): Update.
6307         * calls.c (emit_call_1): Update.
6308         (expand_call): Update.
6309         * bt-load.c (compute_defs_uses_and_gen): Update.
6310         * except.c (sjlj_assign_call_site_values): Update.
6311         (sjlj_emit_function_enter): Update.
6312         (can_throw_external): Update.
6313         (set_nothrow_function_flags): Update.
6314         (expand_builtin_unwind_init): Update.
6315         (expand_eh_return): Update.
6316         (convert_to_eh_region_ranges): Update.
6317         (output_function_exception_table): Update.
6318         * emit-rtl.c (gen_tmp_stack_mem): Update.
6319         * cfgexpand.c (expand_used_vars): Update.
6320         (tree_expand_cfg): Update.
6321         * cfgcleanup.c (rest_of_handle_jump): Update.
6322         * explow.c (allocate_dynamic_stack_space): Update.
6323         * varasm.c (assemble_start_function): Update.
6324         (force_const_mem): Update.
6325         (mark_constant_pool): Update.
6326         * tree-optimize.c (tree_rest_of_compilation): Update.
6327         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
6328         * tree-cfg.c (notice_special_calls): Update.
6329         (is_ctrl_altering_stmt): Update.
6330         (tree_can_make_abnormal_goto): Update.
6331         (tree_purge_dead_abnormal_call_edges): Update.
6332         * config/alpha/predicates.md: Update.
6333         * config/alpha/alpha.c (alpha_sa_mask): Update.
6334         (alpha_sa_size): Update.
6335         (alpha_does_function_need_gp): Update.
6336         (alpha_expand_prologue): Update.
6337         (alpha_start_function): Update.
6338         (alpha_output_function_end_prologue): Update.
6339         (alpha_expand_epilogue): Update.
6340         * config/frv/frv.c (frv_stack_info): Update.
6341         (frv_expand_epilogue): Update.
6342         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
6343         (s390_register_info): Update.
6344         (s390_frame_info): Update.
6345         (s390_init_frame_layout): Update.
6346         (s390_can_eliminate): Update.
6347         (save_gprs): Update.
6348         * config/spu/spu.c (spu_split_immediate): Update.
6349         (need_to_save_reg): Update.
6350         (spu_expand_prologue): Update.
6351         (spu_expand_epilogue): Update.
6352         * config/sparc/sparc.md: Update.
6353         * config/sparc/sparc.c (eligible_for_return_delay): Update.
6354         (sparc_tls_got): Update.
6355         (legitimize_pic_address): Update.
6356         (sparc_emit_call_insn): Update.
6357         (sparc_expand_prologue): Update.
6358         (output_return): Update.
6359         (print_operand): Update.
6360         (sparc_function_ok_for_sibcall): Update.
6361         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
6362         * config/m32r/m32r.md: Update.
6363         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
6364         (m32r_compute_frame_size): Update.
6365         (m32r_expand_prologue): Update.
6366         (m32r_expand_epilogue): Update.
6367         (m32r_legitimize_pic_address): Update.
6368         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
6369         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
6370         * config/i386/i386.c (ix86_frame_pointer_required): Update.
6371         (gen_push): Update.
6372         (ix86_save_reg): Update.
6373         (ix86_compute_frame_layout): Update.
6374         (ix86_expand_prologue): Update.
6375         (ix86_expand_epilogue): Update.
6376         * config/sh/sh.c (output_stack_adjust): Update.
6377         (calc_live_regs): Update.
6378         (sh5_schedule_saves): Update.
6379         (sh_expand_prologue): Update.
6380         (sh_expand_epilogue): Update.
6381         (sh_setup_incoming_varargs): Update.
6382         (sh_allocate_initial_value): Update.
6383         (sh_get_pr_initial_val): Update.
6384         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
6385         * config/sh/sh.md (label:): Update.
6386         * config/avr/avr.c (out_movhi_mr_r): Update.
6387         * config/crx/crx.h (enum): Update.
6388         * config/xtensa/xtensa.h (along): Update.
6389         * config/stormy16/stormy16.c Update.
6390         (xstormy16_compute_stack_layout): Update.
6391         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
6392         (fr30_expand_prologue): Update.
6393         * config/cris/cris.c (cris_conditional_register_usage): Update.
6394         (cris_reg_saved_in_regsave_area): Update.
6395         (cris_initial_frame_pointer_offset): Update.
6396         (cris_simple_epilogue): Update.
6397         (cris_expand_prologue): Update.
6398         (cris_expand_epilogue): Update.
6399         (cris_expand_pic_call_address): Update.
6400         (cris_asm_output_symbol_ref): Update.
6401         (cris_asm_output_label_ref): Update.
6402         * config/cris/cris.md Update.
6403         * config/iq2000/iq2000.c (compute_frame_size): Update.
6404         (iq2000_expand_epilogue): Update.
6405         * config/mt/mt.h (save_direction): Update.
6406         * config/mn10300/mn10300.c (mn10300_function_value): Update.
6407         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
6408         (ia64_secondary_reload_class): Update.
6409         * config/m68k/m68k.c (m68k_save_reg): Update.
6410         (m68k_expand_prologue): Update.
6411         (m68k_expand_epilogue): Update.
6412         (legitimize_pic_address): Update.
6413         * config/rs6000/rs6000.c (rs6000_got_register): Update.
6414         (first_reg_to_save): Update.
6415         (first_altivec_reg_to_save): Update.
6416         (compute_vrsave_mask): Update.
6417         (compute_save_world_info): Update.
6418         (rs6000_stack_info): Update.
6419         (spe_func_has_64bit_regs_p): Update.
6420         (rs6000_ra_ever_killed): Update.
6421         (rs6000_emit_eh_reg_restore): Update.
6422         (rs6000_emit_allocate_stack): Update.
6423         (rs6000_emit_prologue): Update.
6424         (rs6000_emit_epilogue): Update.
6425         (rs6000_output_function_epilogue): Update.
6426         (output_profile_hook): Update.
6427         (rs6000_elf_declare_function_name): Update.
6428         * config/rs6000/rs6000.h (rs6000_args): Update.
6429         * config/rs6000/rs6000.md: Update.
6430         * config/mcore/mcore.c (mcore_expand_prolog): Update.
6431         * config/arc/arc.c (arc_output_function_epilogue): Update.
6432         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
6433         * config/darwin.c (machopic_function_base_name): Update.
6434         * config/score/score3.c (score3_compute_frame_size): Update.
6435         (rpush): Update.
6436         (rpop): Update.
6437         (score3_epilogue): Update.
6438         * config/score/score7.c (score7_compute_frame_size): Update.
6439         (score7_prologue): Update.
6440         (score7_epilogue): Update.
6441         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
6442         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
6443         * config/arm/arm.c (use_return_insn): Update.
6444         (require_pic_register): Update.
6445         (arm_load_pic_register): Update.
6446         (arm_compute_save_reg0_reg12_mask): Update.
6447         (arm_compute_save_reg_mask): Update.
6448         (thumb1_compute_save_reg_mask): Update.
6449         (output_return_instruction): Update.
6450         (arm_output_function_prologue): Update.
6451         (arm_output_epilogue): Update.
6452         (arm_get_frame_offsets): Update.
6453         (arm_expand_prologue): Update.
6454         (thumb_pushpop): Update.
6455         (thumb_exit): Update.
6456         (thumb1_expand_prologue): Update.
6457         (thumb1_expand_epilogue): Update.
6458         (arm_unwind_emit): Update.
6459         (arm_output_fn_unwind): Update.
6460         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
6461         * config/arm/arm.md: Update.
6462         * config/pa/pa.md: Update.
6463         * config/pa/pa.c (legitimize_pic_address): Update.
6464         (compute_frame_size): Update.
6465         (hppa_expand_prologue): Update.
6466         (hppa_expand_epilogue): Update.
6467         (borx_reg_operand): Update.
6468         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
6469         (HARD_REGNO_RENAME_OK): Update.
6470         * config/mips/mips.c (mips_global_pointer): Update.
6471         (mips_save_reg_p): Update.
6472         (mips_compute_frame_info): Update.
6473         (mips_frame_pointer_required): Update.
6474         (mips_expand_prologue): Update.
6475         (mips_expand_epilogue): Update.
6476         (mips_can_use_return_insn): Update.
6477         (mips_reorg_process_insns): Update.
6478         * config/v850/v850.c (compute_register_save_size): Update.
6479         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
6480         * config/mmix/mmix.c (along): Update.
6481         (mmix_expand_epilogue): Update.
6482         * config/bfin/bfin.c (legitimize_pic_address): Update.
6483         (must_save_p): Update.
6484         (stack_frame_needed_p): Update.
6485         (add_to_reg): Update.
6486         (bfin_expand_prologue): Update.
6487         * stmt.c (expand_asm_operands): Update.
6488         * reload1.c (reload): Update.
6489         (init_elim_table): Update.
6490
6491 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
6492         
6493         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
6494         
6495 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
6496
6497         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
6498         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
6499         (mov<mode>): Removed.
6500         (*movv4sf_internal): Likewise.
6501         (*movv2df_internal): Likewise.
6502
6503 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
6504
6505         * config.gcc (crx-*-elf): Remove deprecation.
6506
6507 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
6508
6509         * config/i386/cygming-crtend.c (register_frame_ctor): Register
6510         __gcc_deregister_frame with atexit.
6511         (deregister_frame_dtor): Remove.
6512
6513 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
6514             Nathan Sidwell  <nathan@codesourcery.com>
6515
6516         * config/rs6000/rs6000.opt (mspe): Remove Var property.
6517         (misel): Likewise.
6518         * config/rs6000/rs6000.h (rs6000_spe): Declare.
6519         (rs6000_isel): Likewise.
6520         * config/rs6000/rs6000.c (rs6000_spe): New variable.
6521         (rs6000_isel): New variable.
6522         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
6523
6524 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
6525
6526         PR c++/35758
6527         * c-common.c (handle_vector_size_attribute): Call
6528         lang_hooks.types.reconstruct_complex_type instead of
6529         reconstruct_complex_type.
6530         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
6531         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
6532         * langhooks.h (struct lang_hooks_for_types): Add
6533         reconstruct_complex_type hook.
6534         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
6535         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
6536
6537 2008-04-24  Richard Guenther  <rguenther@suse.de>
6538
6539         * c-common.h (check_builtin_function_arguments): Declare.
6540         * c-common.c (validate_nargs): New function.
6541         (check_builtin_function_arguments): Likewise.
6542         * c-typeck.c (build_function_call): Call
6543         check_builtin_function_arguments.
6544         * builtins.c (fold_builtin_classify): Remove error reporting code.
6545         (fold_builtin_unordered_cmp): Likewise.
6546         (fold_builtin_1): Likewise.
6547         (fold_builtin_n): Likewise.
6548
6549 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
6550
6551         PR tree-optimization/36008
6552         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
6553         the original op1, rather than delta by step.
6554
6555 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
6556             Sebastian Pop  <sebastian.pop@amd.com>
6557
6558         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
6559         eliminate_local_variables_stmt, eliminate_local_variables,
6560         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
6561         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
6562         of code delimited by two edges in the CFG.
6563         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
6564         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
6565         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
6566         the case of parallelisation of reductions.
6567         (expr_invariant_in_region_p): New.
6568
6569         * tree-flow.h (gather_blocks_in_sese_region): Declared.
6570         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
6571
6572 2008-04-24  Ira Rosen  <irar@il.ibm.com>
6573             Richard Guenther  <rguenther@suse.de>
6574
6575         PR tree-optimization/36034
6576         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
6577         incapable of dealing with loads with gaps.
6578
6579 2008-04-24  Rafael Espindola  <espindola@google.com>
6580
6581         * tree-flow.h (vrp_evaluate_conditional): Change signature.
6582         * tree-ssa-propagate.c (fold_predicate_in): Update call to
6583         vrp_evaluate_conditional.
6584         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
6585         (vrp_evaluate_conditional): Split the cond argument.
6586         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
6587         (simplify_stmt_for_jump_threading): Update call to
6588         vrp_evaluate_conditional.
6589
6590 2008-04-24  Ira Rosen  <irar@il.ibm.com>
6591
6592         PR tree-optimization/35982
6593         * tree-vect-analyze.c (vect_check_interleaving): Check that the
6594         interleaved data-refs are of the same type.
6595
6596 2008-04-24  Danny Smith  <dannysmith@users.net>
6597
6598         * c-format.c (check_format_info_main): Use strncmp rather than a
6599         magic prefix to handle multichar length specs.
6600         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
6601         Don't prefix "I64" and "I32" with '\0'.
6602
6603 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
6604
6605         PR target/36015
6606         * config/i386/i386.c (init_cumulative_args): Don't pass anything
6607         in registers for -m32 only if stdarg_p (fntype).
6608
6609 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
6610
6611         PR rtl-optimization/36006
6612         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
6613         temp to op0 in order to avoid invalid rtx sharing.
6614
6615 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
6616
6617         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
6618         check TREE_INVARIANT.
6619         * tree-gimple.c (is_gimple_address): New.
6620         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
6621         * tree-gimple.h (is_gimple_address): New.
6622         * tree.h (decl_address_invariant_p): New.
6623         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
6624         (build_string): Likewise.
6625         (decl_address_invariant_p): New, from is_gimple_invariant_address.
6626         (tree_invariant_p_1): Likewise.
6627         (save_expr): Use it.
6628         (tree_invariant_p): New.
6629         (skip_simple_arithmetic): Use it.
6630         (stabilize_reference_1): Use it.
6631         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
6632         simplify.
6633         (build1_stat): Drop code to compute TREE_INVARIANT.
6634         (build2_stat): Drop code to compute TREE_INVARIANT.
6635         (build3_stat): Drop code to compute TREE_INVARIANT.
6636         (build4_stat): Drop code to compute TREE_INVARIANT.
6637         (build5_stat): Drop code to compute TREE_INVARIANT.
6638         (build7_stat): Drop code to compute TREE_INVARIANT.
6639         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
6640         * tree.h (struct tree_base): Remove invariant_flag.
6641         (TREE_INVARIANT): Remove.
6642         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
6643         (fold_builtin_expect): Check TREE_CONSTANT.
6644         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
6645         * c-tree.h (c_expr_to_decl): Drop third parameter.
6646         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
6647         (build_c_cast): Don't set TREE_INVARIANT.
6648         (pop_init_level): Don't set TREE_INVARIANT.
6649         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
6650         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
6651         TREE_CONSTANT.
6652         (gimplify_init_constructor): Don't set TREE_INVARIANT.
6653         (gimplify_addr_expr): Adjust comment.
6654         * tree-mudflap.c (mf_build_string):
6655         * print-tree.c (print_node): Don't print TREE_INVARIANT.
6656         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
6657         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
6658         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
6659         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
6660         * langhooks.h (struct lang_hooks): Drop third parameter from
6661         expr_to_decl.
6662
6663 2008-04-23  Richard Guenther  <rguenther@suse.de>
6664
6665         PR tree-optimization/27799
6666         PR tree-optimization/32921
6667         PR tree-optimization/32624
6668         * tree-ssa-structalias.c (merge_smts_into): Only merge the
6669         SMTs aliases and the tag itself into the solution.
6670         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
6671         merge the points-to solution back into the SMT aliases.
6672         (may_alias_p): Use alias_set_subset_of instead of
6673         aliases_conflict_p.  A pointer which points to
6674         memory with alias set zero may access any variable.
6675
6676 2008-04-23  Richard Guenther  <rguenther@suse.de>
6677
6678         * alias.c (alias_set_subset_of): Correctly handle asking
6679         if zero is a subset of an alias set with zero child.
6680         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
6681         (compute_flow_insensitive_aliasing): Correctly walk all
6682         pointers.  Do not unnecessarily union sets.
6683
6684 2008-04-23  Richard Guenther  <rguenther@suse.de>
6685
6686         PR middle-end/36021
6687         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
6688
6689 2008-04-22  Tomas Bily  <tbily@suse.cz>
6690
6691         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
6692         unreachable case.
6693         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
6694         NON_LVALUE_EXPR.
6695         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
6696         * tree-ssa-structalias.c (get_constraint_for): Likewise.
6697         * tree-inline.c (estimate_num_insns_1): Likewise.
6698         * varasm.c (const_hash_1, compare_constant, copy_constant)
6699         (compute_reloc_for_constant, output_addressed_constants): Likewise.
6700         * emit-rtl.c (component_ref_for_mem_expr)
6701         (set_mem_attributes_minus_bitpos): Likewise.
6702         * expr.c (highest_pow2_factor, expand_expr_real_1, )
6703         (is_aligning_offset): Likewise.
6704         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
6705         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
6706         * dojump.c (do_jump): Likewise.
6707         * builtins.c (get_pointer_alignment, get_memory_rtx)
6708         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
6709         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
6710
6711 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
6712
6713         PR rtl-optimization/36017
6714         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
6715         expanding the library call.
6716
6717 2008-04-22  Ian Lance Taylor  <iant@google.com>
6718
6719         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
6720         than size_in_bytes.
6721
6722 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
6723
6724         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
6725         of LR/CTR moves for Power6.
6726
6727 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
6728
6729         PR middle-end/36003
6730         * passes.c (init_optimization_passes): Remove
6731         pass_fast_rtl_byte_dce.
6732         
6733 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
6734
6735         PR target/29096
6736         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
6737         builtin functions to generate faster code.
6738         (_mm_cvtpu16_ps): Ditto.
6739         (_mm_cvtpi32x2_ps): Ditto.
6740
6741 2008-04-22  Nick Clifton  <nickc@redhat.com>
6742
6743         * common.opt (ftree-loop-distribution): Add Optimization
6744         attribute.
6745
6746         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
6747         (frv_expand_builtin_va_start): Likewise.
6748
6749         * config/arm/arm.c (thumb_find_work_register): Fix location of
6750         argument register count.
6751
6752 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
6753
6754         Support scheduling for ColdFire V1 and V3 microarchitecture.
6755         Improve scheduling of multiplication instructions.
6756
6757         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
6758         (mac): New instruction attribute.
6759         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
6760         (m68k_sched_mac): New variable.
6761         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
6762         Handle cfv1 and cfv3.
6763         (max_insn_size): New static variable.
6764         (struct _sched_ib): New type.
6765         (sched_ib): New static variable.
6766         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
6767         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
6768         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
6769         Update.
6770         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
6771         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
6772         new variables.  Update.
6773         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
6774         Add modeling of cfv3 instruction buffer.  Update.
6775         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
6776         * config/m68k/m68k.h (TUNE_CFV3): New macro.
6777         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
6778         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
6779         a particular reservation applies to.
6780         (type2): Reorganize attribute values.  Rename alu to alu_reg,
6781         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
6782         to mul_l and mul_w.
6783         (cf_ib_*): Simplify description of instruction buffer.
6784         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
6785         (cf_mem): Split into cf_mem1 and cf_mem2.
6786         (cf_v2_move_??): Rename to cfv12_alu_??.
6787         (cf_v2_move_l_??): Rename to cfv12_omove_??.
6788         (cf_v2_mul_??): Remove reservations.
6789         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
6790         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
6791         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
6792         appropriate place.
6793         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
6794         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
6795         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
6796         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
6797         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
6798         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
6799         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
6800         expansions of the above reservations for instructions of sizes
6801         1, 2 and 3 words.
6802
6803 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
6804
6805         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
6806
6807 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
6808
6809         * coverage.c: Include tree-pass.h.
6810         (coverage_counter_alloc): Print da_file_name to the dump file.
6811
6812 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
6813
6814         * sbitmap.c (sbitmap_range_empty_p): New function.
6815         * sbitmap.h (sbitmap_range_empty_p): New function.
6816         * bitmap.h: Now includes obstack.h.
6817
6818 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
6819             Kenneth Zadeck  <zadeck@naturalbridge.com>
6820
6821         * dbgcnt.def (ra_byte_scan): Added.
6822         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
6823         when the last hit happens for a counter.  
6824         * timevar.def (TV_DF_BYTE_LR): New variable.
6825         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
6826         * passes.c (pass_fast_rtl_byte_dce): New pass.
6827         * fwprop.c (update_df): Added mode to call df_ref_create.
6828         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
6829         DF_REF_EXTRACT_OFFSET.
6830         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
6831         DF_BYTE_LR_OUT, df_byte_lr): New macro.
6832         (df_mm): New enum.
6833         (df_ref_extract): Added mode field.
6834         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
6835         DF_REF_EXTRACT_OFFSET.
6836         (DF_REF_EXTRACT_MODE): New macro.
6837         (df_byte_lr_bb_info): New structure.
6838         (df_print_byte_regset, df_compute_accessed_bytes, 
6839         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
6840         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
6841         df_byte_lr_simulate_uses,
6842         df_byte_lr_simulate_artificial_refs_at_top,
6843         df_byte_lr_simulate_artificial_refs_at_end,
6844         df_compute_accessed_bytes): New function.
6845         (df_ref_create): Add parameter.
6846         (df_byte_lr_get_bb_info): New inline function.
6847         * df-scan.c (df_ref_record, df_uses_record,
6848         df_ref_create_structure): Added mode parameter.
6849         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
6850         df_defs_record, df_uses_record, df_get_conditional_uses,
6851         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
6852         df_entry_block_defs_collect, df_exit_block_uses_collect):
6853         Added mode parameter to calls to df_ref_record, df_uses_record,
6854         df_ref_create_structure.
6855         (df_ref_equal_p, df_ref_compare): Added test for modes.
6856         (df_ref_create_structure): Added code to set mode.  Renamed
6857         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
6858         DF_REF_EXTRACT_OFFSET.
6859         * df-core.c (df_print_byte_regset): New function.
6860         * df-byte-scan.c: New file.
6861         * df-problems.c (df_rd_transfer_function): Removed unnecessary
6862         calls to BITMAP_FREE.  
6863         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
6864         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
6865         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
6866         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
6867         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
6868         df_byte_lr_local_compute, df_byte_lr_init,
6869         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
6870         df_byte_lr_transfer_function, df_byte_lr_free, 
6871         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
6872         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
6873         df_byte_lr_simulate_uses,
6874         df_byte_lr_simulate_artificial_refs_at_top,
6875         df_byte_lr_simulate_artificial_refs_at_end): New function.
6876         * dce.c (byte_dce_process_block): New function.
6877         (dce_process_block): au is now passed in rather than computed
6878         locally.  Changed loops that look at artificial defs to not look
6879         for conditional or partial ones, because there never are any.  
6880         (fast_dce): Now is able to drive byte_dce_process_block or 
6881         dce_process_block depending on the kind of dce being done.
6882         (rest_of_handle_fast_dce): Add parameter to fast_dce.
6883         (rest_of_handle_fast_byte_dce): New function.
6884         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
6885         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
6886
6887 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
6888
6889         PR fortran/35019
6890         * gcc.h: Added fortran options that take arguments to
6891         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
6892         macros.
6893
6894 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
6895
6896         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
6897         scalarization if on the LHS and not a full access.
6898
6899 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6900
6901         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
6902
6903 2008-04-18  Rafael Espindola  <espindola@google.com>
6904
6905         * tree-vrp.c (find_case_label_index): Fix the binary search.
6906         (find_case_label_range): New.
6907         (vrp_visit_switch_stmt): Use find_case_label_range.
6908         (simplify_switch_using_ranges): Use find_case_label_range.
6909
6910 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
6911
6912         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
6913         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
6914
6915 2008-04-18  Tom Tromey  <tromey@redhat.com>
6916
6917         PR libcpp/15500:
6918         * doc/cpp.texi (Implementation-defined behavior): Mention
6919         -finput-charset.
6920
6921 2008-04-18  Ian Lance Taylor  <iant@google.com>
6922
6923         * fold-const.c (pointer_may_wrap_p): New static function.
6924         (fold_comparison): Add another test for pointer overflow.  Use
6925         pointer_may_wrap_p to disable some false positives.
6926
6927 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
6928           
6929         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
6930         (fname_as_string): Match updated cpp_interpret_string prototype.
6931         (fix_string_type): Support char16_t* and char32_t*.
6932         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
6933         derivative) nodes.  Register as builtin if C++0x.
6934         (c_parse_error): Support CPP_CHAR{16,32}.
6935         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
6936         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
6937         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
6938         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
6939         CTI_CHAR32_ARRAY_TYPE>: New elements.
6940         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
6941         char32_type_node, signed_char32_type_node, char16_array_type_node,
6942         char32_array_type_node): New defines.
6943         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
6944         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
6945         (lex_string): Support CPP_STRING{16,32}, match updated
6946         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
6947         (lex_charconst): Support CPP_CHAR{16,32}.
6948         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
6949         and CPP_STRING{16,32}.
6950
6951 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
6952
6953         PR bootstrap/35457
6954         * aclocal.m4: Regenerate.
6955         * configure: Regenerate.
6956
6957 2008-04-18  Jan Hubicka  <jh@suse.cz>
6958
6959         * except.c (dw2_size_of_call_site_table,
6960         sjlj_size_of_call_site_table): Use vector API for call_site_record.
6961
6962         * cgraphbuild.c (build_cgraph_edges): Update.
6963         * tree-pass.h: Update comment.
6964         * final.c (leaf_function_p): Update.
6965         (leaf_renumber_regs): Update.
6966         (rest_of_clean_state): Update.
6967         * omp-low.c (expand_omp_parallel): Update.
6968         * ipa-reference.c (analyze_function): Update.
6969         * reorg.c (find_end_label): Update.
6970         (optimize_skip): Update.
6971         (fill_simple_delay_slots): Update.
6972         (fill_simple_delay_slots): Update.
6973         (make_return_insns): Update.
6974         (dbr_schedule): Update.
6975         * gimple-low.c (record_vars_into): Update.
6976         * cfgbuild.c (make_edges): Update.
6977         * function.c (assign_stack_local): Update.
6978         (assign_parm_adjust_stack_rtl): Update.
6979         (locate_and_pad_parm): Update.
6980         (allocate_struct_function): Do not initialize stack_alignment_needed
6981         and preferred_stack_boundary here.
6982         (stack_protect_prologue): Update.
6983         (stack_protect_epilogue): Update.
6984         (expand_function_start): Initialize stack_alignment_needed,
6985         preferred_stack_boundary and max_jumptable_ents.
6986         (expand_function_end): Update.
6987         (free_after_compilation): Do not NULLify epilogue_delay_list.
6988         * function.h (struct rtl_data): Add stack_protect_guard,
6989         stack_alignment_needed,
6990         preferred_stack_boundary, epilogue_delay_list.
6991         (struct function): Remove value_histograms, stack_alignment_needed,
6992         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
6993         last_label_uid,
6994         unexpanded_var_list, stack_protect_guard.
6995         (current_function_epilogue_delay_list): Remove.
6996         * ipa-type-escape.c (analyze_function): Update.
6997         * gimplify.c (pop_gimplify_context): Update comment.
6998         * calls.c (expand_call): Update.
6999         (emit_library_call_value_1): Update.
7000         * except.c (set_nothrow_function_flags): Update.
7001         * cfgexpand.c (get_decl_align_unit): Update.
7002         (create_stack_guard): Update.
7003         (estimated_stack_frame_size): Update.
7004         (expand_used_vars): Update.
7005         (tree_expand_cfg): Free histogram earliers, init expansion variables.
7006         * explow.c (allocate_dynamic_stack_space): Update.
7007         * tree-ssa-live.c (remove_unused_locals): Update.
7008         * varasm.c (mark_constant_pool): Update.
7009         * tree-inline.c (remap_decls): Update.
7010         (initialize_cfun): Update.
7011         (declare_return_variable): Update.
7012         (inline_forbidden_p): Update.
7013         (expand_call_inline): Update.
7014         (declare_inline_vars): Update.
7015         (tree_function_versioning): Update.
7016         * tree-flow.h (value_histograms): New.
7017         (VALUE_HISTOGRAMS): New macro.
7018         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
7019         last_label_uid.
7020         * tree-cfg.c (set_bb_for_stmt): Update.
7021         (replace_by_duplicate_decl): Update.
7022         (move_block_to_fn): Update.
7023         (new_label_mapper): Update.
7024         (dump_function_to_file): Update.
7025         * ipa-struct-reorg.c (build_data_structure): Update.
7026         * cfgrtl.c (print_rtl_with_bb): Update.
7027         * reload1.c (reload): Update.
7028         (reload): Update.
7029         * config/i386/i386.c (setup_incoming_varargs_64,
7030         ix86_compute_frame_layout): Update.
7031         * config/arc/arc.c (arc_output_function_epilogue): Update.
7032
7033 2008-04-18  Marius Strobl <marius@FreeBSD.org>
7034
7035         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
7036         for FreeBSD as well.
7037         * gthr-posix95.h: Likewise.
7038
7039 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
7040
7041         PR rtl-optimization/35838
7042         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
7043         out the byte offset of the first subreg.
7044
7045 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
7046
7047         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
7048         to split_ti instead of three separate calls with single member arrays.
7049         (subti3 splitter): Ditto.
7050         (adddi3 splitter): Ditto with split_di.
7051         (subdi3 splitter): Ditto.
7052         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
7053         two separate calls with single member arrays.  Swap match_dup
7054         operands 1 and 2 to better fit into the array.
7055         (negdi2 splitter): Ditto with split_di.
7056         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
7057         two separate calls with single member arrays.  Swap match_dup operands
7058         6 and 7 to better fit into the array.
7059
7060 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
7061
7062         * config/i386/i386.c (sse_builtin_type): New.
7063         (bdesc_sse_args): Likewise.
7064         (bdesc_sse_3arg): Removed.
7065         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
7066         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
7067         IX86_BUILTIN_ROUNDPS.
7068         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
7069         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
7070         IX86_BUILTIN_ROUNDPS.
7071         (ix86_expand_sse_4_operands_builtin): Removed.
7072         (ix86_expand_sse_operands_builtin): New.
7073         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
7074         and CODE_FOR_sse4_1_roundps.
7075         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
7076         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
7077
7078 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
7079
7080         PR target/35907
7081         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
7082         regs before frame pop when needed.  If use_backchain_to_restore_sp
7083         then load backchain into a temp reg to restore vr and vrsave.  Add
7084         code to restore vr after frame pop if possible.
7085
7086 2008-04-17  Richard Guenther  <rguenther@suse.de>
7087
7088         * tree-vn.c (expressions_equal_p): Do not check type
7089         equality or compatibility before calling operand_equal_p.
7090         * fold-const.c (operand_equal_p): Check equivalence of
7091         integer constants before bailing out due to signedness or
7092         precision differences.
7093         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
7094         spurious differences in type qualification.  Ignore types
7095         for COMPONENT_REFs at all.
7096
7097 2008-04-17  Christian Bruel  <christian.bruel@st.com>
7098
7099         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
7100         msw_skip comparison.
7101         
7102 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
7103
7104         PR c/35739
7105         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
7106         reg type.
7107
7108         PR tree-optimization/35899
7109         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
7110         rather than TREE_OPERAND.
7111
7112 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
7113
7114         PR target/35944
7115         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
7116         temporary registers.  Change operand predicate to general_operand.
7117         (remainderxf3): Ditto.
7118
7119 2008-04-16  Richard Guenther  <rguenther@suse.de>
7120
7121         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
7122         * tree-affine.c (aff_combination_expand): Look through some
7123         conversions.
7124
7125 2008-04-15  Doug Kwan  <dougkwan@google.com>
7126
7127         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
7128         for hex printing.
7129         * tree-pretty-print.c (dump_generic_node): Ditto.
7130         * final.c (output_addr_const): Ditto.
7131         * dwarf2out.c (output_cfi): Ditto.
7132         * c-pretty-print.c (pp_c_integer_constant): Ditto.
7133         * print-rtl.c (print_rtx): Ditto.
7134         * print-tree.c (print_node_brief, print_node): Ditto.
7135         * c-common.c (match_case_to_enum_1): Ditto.
7136         * sched-vis.c (print_value): Ditto.
7137         * config/i386/i386.c (print_operand): Cast to long unsigned int
7138         for hex printing.
7139
7140 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
7141         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
7142         MS Windows VirtualProtect function.
7143
7144 2008-04-15  Jan Hubicka  <jh@suse.cz>
7145
7146         * gengtype.c (write_root): Param_is argument is OK.
7147         * expr.c (expand_expr_real_1): Update call of get_exception_*.
7148         * function.h: Include varray.h
7149         (rtl_eh): New stucture based on except.c one.
7150         (call_site_record): New forward declaration and vector type.
7151         * calls.c (emit_call_1): Do not call
7152         note_current_region_may_contain_throw.
7153         * except.c (eh_status): Remove cur_region, try_region since they are
7154         unused.
7155         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
7156         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
7157         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
7158         Remove call_site_data_used, call_site_data_size.
7159         Turn call_site_record into vector in function.h.
7160         (note_current_region_may_contain_throw): Remove.
7161         (get_exception_pointer, get_exception_filter): Do not take struct
7162         function argument; update.
7163         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
7164         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
7165         build_post_landing_pads, dw2_build_landing_pads,
7166         sjlj_assign_call_site_values, sjlj_mark_call_sites,
7167         sjlj_emit_function_enter, sjlj_emit_function_enter, 
7168         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
7169         sjlj_build_landing_pads, finish_eh_generation,
7170         remove_exception_handler_label, remove_eh_handler,
7171         maybe_remove_eh_handler, add_reachable_handler,
7172         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
7173         add_action_record, collect_one_action_chain, add_call_site,
7174         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
7175         sjlj_output_call_site_table, output_function_exception_table,
7176         * except.h (note_current_region_may_contain_throw): Remove
7177         (get_exception_pointer, get_exception_filter): Do not take struct
7178         function argument.
7179         * Makefile.in (GTFILES): Put varargs before struct function.
7180
7181 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
7182
7183         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
7184         punt for STRING_CST.
7185         (get_constraint_for): Deal with STRING_CST here instead.
7186
7187 2008-04-15  Richard Guenther  <rguenther@suse.de>
7188
7189         * tree-ssa-propagate.c (substitute_and_fold): Substitute
7190         statements in a basic-block with a backward walk.  Do not
7191         substitute into dead statements but instead remove those.
7192
7193 2008-04-15  Richard Guenther  <rguenther@suse.de>
7194
7195         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
7196         to zero, thus disable creation of SFTs.
7197
7198 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
7199
7200         * tree-predcom.c (suitable_reference_p): Return false if the
7201         reference can throw.
7202
7203 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
7204
7205         PR c/35751
7206         * c-decl.c (finish_decl): If extern or static var has variable
7207         size, set TREE_TYPE (decl) to error_mark_node.
7208
7209 2008-04-15  Rafael Espindola  <espindola@google.com>
7210
7211         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
7212         variable arg1.
7213
7214 2008-04-15  Richard Guenther  <rguenther@suse.de>
7215
7216         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
7217         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
7218         (visit_reference_op_load): Do walk vuse-vdef chains on
7219         vn_reference_lookup.
7220         (visit_reference_op_store): But do not here.
7221         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
7222         vn_reference_lookup.
7223         (vn_lookup_with_vuses): But do so here.
7224
7225 2008-04-14  Ian Lance Taylor  <iant@google.com>
7226
7227         * fold-const.c (fold_overflow_warning): Remove assertion.
7228
7229 2008-04-15  Ben Elliston  <bje@au.ibm.com>
7230
7231         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
7232         temp1 local variables.
7233
7234 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
7235
7236         PR target/35661
7237         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
7238         ".text.unlikely" section as executable.
7239
7240 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
7241
7242         * config/ia64/ia64.c (rtx_needs_barrier): Handle
7243         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
7244         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
7245         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
7246         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
7247         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
7248         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
7249
7250 2008-04-14  Ian Lance Taylor  <iant@google.com>
7251
7252         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
7253         * fold-const.c (fold_comparison): If appropriate, test
7254         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
7255         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
7256         reassociating a pointer type.
7257         * doc/invoke.texi (Optimize Options): Document that
7258         -fstrict-overflow applies to pointer wraparound.
7259
7260 2008-04-13  Jan Hubicka  <jh@suse.cz>
7261
7262         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
7263
7264 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
7265
7266         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
7267         we are going to "save the world".
7268
7269 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
7270
7271         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
7272         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
7273         operand 0 constraint, not "=".
7274
7275 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
7276
7277         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
7278
7279 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
7280
7281         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
7282         of size of positions_needed * CHAR_BIT.
7283
7284 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
7285
7286         PR middle-end/35897
7287         * dse.c (store_info): Change positions_needed to unsigned
7288         HOST_WIDE_INT.
7289         (lowpart_bitmask): New.
7290         (record_store): Cast to unsigned HOST_WIDE_INT for
7291         positions_needed.  Assert width <= size of positions_needed *
7292         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
7293         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
7294         lowpart_bitmask to set mask.
7295
7296 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
7297
7298         * config/bfin/constraints.md: New file.
7299         * config/bfin/bfin.md: Include it.
7300         (adddi3): Use satisfies_constraint functions instead of the old macros.
7301         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
7302         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
7303         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
7304         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
7305         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
7306         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
7307         EXTRA_CONSTRAINT): Delete.
7308         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
7309         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
7310         of the old macros.
7311         * config/bfin/bfin.c: Include "tm-constrs.h".
7312         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
7313         Use satisfies_constraint functions instead of the old macros.
7314         * doc/md.texi (Blackfin Constraints): Update file name reference.
7315
7316 2008-04-11  Richard Guenther  <rguenther@suse.de>
7317
7318         PR tree-optimization/35869
7319         * tree-vrp.c (execute_vrp): Move switch statement update after
7320         jump threading.  Schedule another cfg cleanup run.
7321
7322 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
7323
7324         PR c/35744
7325         * attribs.c (decl_attributes): Return early on errorneous node.
7326
7327 2008-04-10  Oleg Ryjkov  <olegr@google.com>
7328
7329         * tree.h (struct tree_base): Added a new flag default_def_flag.
7330         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
7331
7332 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
7333
7334         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
7335
7336 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7337
7338         PR target/35768
7339         * pa.md: Define mode iterator P.  Define mode attribute dwc.
7340         (dcacheflush): Update pattern to use iterator P and attribute dwc.
7341         (icacheflush): Likewise.
7342         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
7343         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
7344
7345 2008-04-11  Ben Elliston  <bje@au.ibm.com>
7346
7347         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
7348
7349 2008-04-10  Rafael Espindola  <espindola@google.com>
7350
7351         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
7352         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
7353         (extract_range_from_expr): The same.
7354
7355 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
7356
7357         * config/mips/mips.md (GPR2): New mode iterator.
7358         (seq): Add comment.
7359         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
7360         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
7361         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
7362         Rewrite these to take two modes, the mode of comparison and the
7363         mode of the destination.
7364         * config/mips/mips.c (mips_expand_scc): Instead of having
7365         paradoxical subreg as destination, expand "narrowing" scc if mode
7366         of comparison is SI and target is requested in DI mode.
7367         (mips_emit_int_order_test): Update comment.  Make mode of
7368         comparison match CMP0 rather than TARGET.  When creating inverse
7369         target use mode of TARGET.
7370
7371 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
7372
7373         * gcov-dump.c (tag_summary): Only print summaries for the first
7374         GCOV_COUNTERS_SUMMABLE counters.
7375
7376 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
7377
7378         * config/i386/i386.md (absneg): New code iterator.
7379         (absnegprefix): New code attribute.
7380         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
7381         patterns using absneg code iterator.
7382         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
7383         using absneg code iterator.
7384         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
7385         *neg<mode>2 patterns using absneg code iterator.
7386         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
7387         *negextendsfdf2 patterns using absneg code iterator.
7388         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
7389         *negextendsfxf2 patterns using absneg code iterator.
7390         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
7391         *negextendsfdf2 patterns using absneg code iterator.
7392         * config/i386/sse.md (<code><mode>2): Macroize expander from
7393         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
7394
7395 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
7396
7397         * config/s390/s390.h: Remove the remains of the recent search
7398         & replace action of current_function_outgoing_args_size.
7399
7400 2008-04-10  Ira Rosen  <irar@il.ibm.com>
7401
7402         PR tree-optimization/35821
7403         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
7404         NEW_STMT_LIST is not NULL.
7405
7406 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
7407
7408         PR libstdc++/35597
7409         * toplev.c (process_options): Remove -ffunction-sections debugging
7410         warning.
7411
7412 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
7413
7414         PR middle-end/PR28690
7415         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
7416         than gen_rtx_fmt_ee to perform more canonicalizations.
7417
7418 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7419
7420         PR driver/35665
7421         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
7422
7423 2008-04-09  Richard Guenther  <rguenther@suse.de>
7424
7425         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
7426         (dump_function_to_file): Dump function arguments with types.
7427
7428 2008-04-08  Richard Guenther  <rguenther@suse.de>
7429
7430         * fold-const.c (fold_widened_comparison): Do not allow
7431         sign-changes that change the result.
7432
7433 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
7434
7435         PR target/35839
7436         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
7437         kinds of indirect references.
7438
7439 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
7440
7441         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
7442         GNU Fortran language string.
7443
7444 2008-04-08  Rafael Espindola  <espindola@google.com>
7445
7446         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
7447         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
7448         * tree.h (tree_call_nonnegative_warnv_p): New.
7449
7450 2008-04-08  Jan Hubicka  <jh@suse.cz>
7451
7452         * function.c (free_after_compilation): Clear out regno_reg_rtx
7453         pointer.
7454
7455 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
7456
7457         Revert
7458         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
7459
7460         PR middle-end/PR28690
7461         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
7462         same precedence as REG_POINTER and MEM_POINTER operands.
7463
7464 2008-04-08  Richard Guenther  <rguenther@suse.de>
7465
7466         PR middle-end/35834
7467         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
7468         for adding index to base.
7469
7470 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
7471
7472         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
7473         (MINGW_ENABLE_EXECUTE_STACK): New.
7474         (IN_LIBGCC2): For libgcc include windows.h file for
7475         function declarations.
7476
7477 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
7478
7479         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
7480         and tem2 if tem1 is not a REG or MULT.
7481
7482 2008-04-08  Jan Hubicka  <jh@suse.cz>
7483
7484         * function.h (incomming_args): Break out of struct function.
7485         (function_subsections): Break out of struct function.
7486         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
7487         return_rtx and hard_reg_initial_vals from struct function.
7488         Kill inl_max_label_num.
7489         (current_function_pops_args, current_function_args_info,
7490         current_function_args_size, current_function_args_size,
7491         current_function_pretend_args_size,
7492         current_function_outgoing_args_size,
7493         current_function_internal_arg_pointer, current_function_return_rtx):
7494         Kill compatibility accestor macros.
7495         * builtins.c (expand_builtin_apply_args_1): Update.
7496         (expand_builtin_next_arg): Update.
7497         * df-scan.c (df_get_call_refs): Update.
7498         * dbxout.c (dbxout_function_end): Update.
7499         * dwarf2out.c (dwarf2out_switch_text_section): Update.
7500         (output_line_info): Update.
7501         (secname_for_decl): Update.
7502         (dwarf2out_var_location): Update.
7503         * function.c (free_after_compilation): Update.
7504         (assign_parm_find_stack_rtl): Update.
7505         (assign_parms): Update.
7506         (expand_dummy_function_end): Update.
7507         (expand_function_end): Update.
7508         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
7509         (expand_call): Update.
7510         (emit_library_call_value_1): Update.
7511         (store_one_arg): Update.
7512         * varasm.c (initialize_cold_section_name): Update.
7513         (unlikely_text_section): Update.
7514         (unlikely_text_section_p): Update.
7515         (assemble_start_function): Update.
7516         (assemble_end_function): Update.
7517         (default_section_type_flags): Update.
7518         (switch_to_section): Update.
7519         * integrate.c (set_decl_abstract_flags): Update.
7520         (get_hard_reg_initial_val): Update.
7521         (has_hard_reg_initial_val): Update.
7522         (allocate_initial_values): Update.
7523         * resource.c (init_resource_info): Update.
7524         * config/alpha/alpha.c (NUM_ARGS): Update.
7525         (direct_return): Update.
7526         (alpha_va_start): Update.
7527         (alpha_sa_size): Update.
7528         (alpha_initial_elimination_offset): Update.
7529         (alpha_expand_prologue): Update.
7530         (alpha_start_function): Update.
7531         (alpha_expand_epilogue): Update.
7532         (unicosmk_initial_elimination_offset):
7533         * config/alpha/alpha.md (call expander): Update.
7534         * config/s390/s390.c (s390_register_info): Update.
7535         (s390_register_info): Update.
7536         (s390_frame_info): Update.
7537         (s390_initial_elimination_offset): Update.
7538         (s390_build_builtin_va_list): Update.
7539         (s390_va_start): Update.
7540         * config/spu/spu.c (direct_return): Update.
7541         (spu_expand_prologue): Update.
7542         (spu_initial_elimination_offset): Update.
7543         (spu_build_builtin_va_list): Update.
7544         (spu_va_start): Update.
7545         * config/sparc/sparc.c (sparc_init_modes): Update.
7546         (sparc_compute_frame_size): Update.
7547         (function_value): Update.
7548         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
7549         * config/i386/i386.md (return expander): Update.
7550         * config/i386/i386.c (ix86_va_start): Update.
7551         (ix86_can_use_return_insn_p): Update.
7552         (ix86_compute_frame_layout): Update.
7553         (ix86_expand_epilogue): Update.
7554         * config/sh/sh.c (output_stack_adjust): Update.
7555         (calc_live_regs): Update.
7556         (sh_expand_prologue): Update.
7557         (sh_builtin_saveregs): Update.
7558         (sh_va_start): Update.
7559         (initial_elimination_offset): Update.
7560         (sh_allocate_initial_value): Update.
7561         (sh_function_ok_for_sibcall): Update.
7562         (sh_get_pr_initial_val): Update.
7563         * config/sh/sh.md (return expander): Update.
7564         * config/avr/avr.c (frame_pointer_required_p): UPdate.
7565         * config/crx/crx.c (crx_compute_frame): UPdate.
7566         (crx_initial_elimination_offset): UPdate.
7567         * config/xtensa/xtensa.c (compute_frame_size): Update
7568         (xtensa_builtin_saveregs): Update.
7569         (xtensa_va_start): Update.
7570         (order_regs_for_local_alloc): Update.
7571         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
7572         (xstormy16_expand_builtin_va_start): Update.
7573         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
7574         * config/m68hc11/m68hc11.md (return expanders): Update.
7575         * config/m68hc11/m68hc11.c (expand_prologue): Update.
7576         (expand_epilogue): Update.
7577         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
7578         (cris_simple_epilogue): Update.
7579         (cris_expand_prologue): Update.
7580         (cris_expand_epilogue): Update.
7581         * config/iq2000/iq2000.c (iq2000_va_start): Update.
7582         (compute_frame_size): Update.
7583         * config/mt/mt.c (mt_compute_frame_size): Update.
7584         * config/mn10300/mn10300.c (expand_prologue): Update.
7585         (expand_epilogue): Update.
7586         (initial_offset): Update.
7587         (mn10300_builtin_saveregs):
7588         * config/mn10300/mn10300.md (return expander): Update.
7589         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
7590         (ia64_initial_elimination_offset): Update.
7591         (ia64_initial_elimination_offset): Update.
7592         (ia64_expand_prologue): Update.
7593         * config/m68k/m68k.md (return expander): Update.
7594         * config/rs6000/rs6000.c (rs6000_va_start): Update.
7595         (rs6000_stack_info): Update.
7596         * config/mcore/mcore.c (layout_mcore_frame): Update.
7597         (mcore_expand_prolog): Update.
7598         * config/arc/arc.c (arc_compute_frame_size): Update.
7599         * config/score/score3.c (score3_compute_frame_size): Update.
7600         * config/score/score7.c (score7_compute_frame_size): Update.
7601         * config/arm/arm.c (use_return_insn): Update.
7602         (thumb_find_work_register): Update.
7603         (arm_compute_save_reg_mask): Update.
7604         (arm_output_function_prologue): Update.
7605         (arm_output_epilogue): Update.
7606         (arm_size_return_regs): Update.
7607         (arm_get_frame_offsets): Update.
7608         (arm_expand_prologue): Update.
7609         (thumb_exit): Update.
7610         (thumb_unexpanded_epilogue): Update.
7611         (thumb1_output_function_prologue): Update.
7612         * config/pa/pa.md (return expander): Update.
7613         * config/pa/pa.c (compute_frame_size): Update.
7614         (hppa_builtin_saveregs): Update.
7615         * config/mips/mips.c (mips_va_start): Update.
7616         (mips16_build_function_stub): Update.
7617         (mips_compute_frame_info): Update.
7618         (mips_restore_gp): Update.
7619         (mips_output_function_prologue): Update.
7620         (mips_expand_prologue): Update.
7621         * config/v850/v850.c (compute_frame_size): Update.
7622         (expand_prologue): * config/mmix/mmix.c (along): update.
7623         (mmix_initial_elimination_offset): update.
7624         (mmix_reorg): update.
7625         (mmix_use_simple_return): update.
7626         (mmix_expand_prologue): update.
7627         (mmix_expand_epilogue): Update.
7628         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
7629         (emit_link_insn): Update.
7630
7631 2008-04-08  Anatoly Sokolov <aesok@post.ru>
7632
7633         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
7634         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
7635         instructions.
7636         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
7637         atmega103 device.
7638
7639 2008-04-07  Jan Hubicka  <jh@suse.cz>
7640
7641         * function.h (rtl): Rename to x_rtl.
7642         (crtl): New define.
7643         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
7644         frame_offset, stack_check_probe_note, arg_pointer_save_area,
7645         used_temp_slots avail_temp_slots, temp_slot_level,
7646         nonlocal_goto_handler_labels): Update accesstors.
7647         (rtl): New global variable.
7648         (struct function): Move some fileds to rtl_data.
7649         (get_arg_pointer_save_area): Update prototype.
7650         * builtins.c (expand_builtin_setjmp_receiver): Update call of
7651         get_arg_pointer_save_area.
7652         * expr.c (init_expr): Update
7653         * function.c (get_frame_size): Update
7654         (assign_stack_local): Update
7655         (expand_function_end): Update.
7656         (get_art_pointer_save_area): Update
7657         * function.h 
7658         * emit-rtl.c (rtl): Declare.
7659         (regno_reg_rtx): Declare.
7660         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
7661         Update.
7662         (gen_reg_rtx): Update.
7663         * varasm.c (n_deferred_constatns): Update accestor.
7664         (init_varasm_status): Do not allocate varasm_status.
7665         (force_const_mem, get_pool_size, output_constant_pool): Update.
7666         * stmt.c (force_label_rtx): Do not use x_ prefixes.
7667         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
7668         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
7669         * sparc/sparc.h (INIT_EXPANDERS): Update.
7670         * ia64/ia64.h (INIT_EXPANDERS): Update.
7671
7672 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
7673
7674         * reload.c (push_secondary_reload): Add missing break to for loop.
7675
7676 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
7677
7678         PR middle-end/PR28690
7679         * rtlanal.c: Update copyright years.
7680         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
7681         as REG_POINTER and MEM_POINTER operands.
7682         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
7683         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
7684         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
7685         * gcse.c: Update copyright years.
7686         (pre_delete): Call gen_reg_rtx_and_attrs.
7687         (hoist_code): Likewise.
7688         (build_store_vectors): Likewise.
7689         (delete_store): Likewise.
7690         * loop-invariant.c (move_invariant_reg): Likewise.
7691         Update copyright years.
7692
7693 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
7694
7695         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
7696         control string instead of quoted.
7697
7698 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
7699
7700         * doc/rtl.texi: Rewrite of subreg section.
7701
7702 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
7703
7704         PR/35842
7705         * config/i386/i386.c (legitimize_pic_address): Add treating
7706         of dllimport SYM_REF's.
7707         (legitimize_dllimport_symbol): Add prototype.
7708
7709 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
7710
7711         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
7712         reference in constructor with non self-referential type.
7713
7714 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
7715
7716         Removal of Return with Depressed Stack Pointer support
7717         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
7718         (ECF_SP_DEPRESSED): Likewise.
7719         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
7720         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
7721         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
7722         (expand_call): Do not test ECF_SP_DEPRESSED.
7723         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
7724         * function.c (keep_stack_depressed): Delete.
7725         (handle_epilogue_set): Likewise.
7726         (update_epilogue_consts): Likewise.
7727         (emit_equiv_load): Likewise.
7728         (thread_prologue_and_epilogue_insns): Remove support for Return with
7729         Depressed Stack Pointer.
7730         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
7731
7732 2008-04-06  Richard Guenther  <rguenther@suse.de>
7733
7734         PR tree-optimization/35400
7735         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
7736         information from SSA_NAMEs.
7737
7738 2008-04-06  Anatoly Sokolov <aesok@post.ru>
7739
7740         * config/avr/avr.h (avr_mega_p): Remove declaration.
7741         (AVR_MEGA): Remove macro.
7742         * config/avr/avr.c (avr_mega_p): Remove variable.
7743         (avr_override_options): Remove inicializion of avr_mega_p.
7744         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
7745         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
7746         (avr_jump_mode): (Ditto.).
7747         (avr_output_progmem_section_asm_op): (Ditto.).
7748         (avr_asm_init_sections): (Ditto.).
7749         (avr_asm_init_sections): (Ditto.).
7750         (avr_rtx_costs): (Ditto.).
7751         * config/avr/avr.md: (Ditto.).
7752         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
7753         '__AVR_MEGA__'.
7754
7755 2008-04-06  Richard Guenther  <rguenther@suse.de>
7756
7757         PR tree-optimization/35842
7758         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
7759         is_gimple_invariant_address.
7760
7761 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7762
7763         * gcc.c (default_compilers): Sync Fortran extensions list with
7764         that in fortran/lang-specs.h.
7765         * doc/invoke.texi: Likewise.
7766         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
7767         * dwarf2out.c (gen_compile_unit_die): Likewise.
7768
7769 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
7770
7771         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
7772
7773 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
7774
7775         PR target/12329
7776         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
7777         attribute is used for nested functions.
7778
7779 2008-04-05  Jan Hubicka  <jh@suse.cz>
7780
7781         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
7782
7783         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
7784         letter argument.
7785         (dump_files): Update.
7786         (enable_rtl_dump_file): Do not accept letter argument.
7787         * tree-pass.h (dump_file_info): Remove letter argument.
7788         * toplev.c (decode_d_option): Update -da handling.
7789         * toplev.h (enable_rtl_dump_file): Update prototype.
7790         * passes.c (register_one_dump_file): Do not accept IPA argument; work
7791         it out based on pass type.
7792         (register_dump_files_1): Likewise.
7793         (init_optimization_passes): Update register_one_dump_file calls.
7794         (execute_one_pass): Sanity check that IPA passes are called at IPA
7795         level and RTL passes at RTL level.
7796         (execute_pass_list): IPA pass can not be after or subpass of
7797         GIMPLE/RTL pass.
7798         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
7799         disallov RTL subpasses of IPA subpasses.
7800
7801 2008-04-05  Ben Elliston  <bje@au.ibm.com>
7802
7803         * tree-cfg.c (need_fake_edge_p): Return false for calls to
7804         builtins that return exactly once and do not throw. Cache call to
7805         call_expr_flags.
7806
7807 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
7808
7809         PR rtl-optimization/34916
7810         PR middle-end/35519
7811         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
7812         between instruction pairs.
7813
7814 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
7815
7816         * doc/invoke.texi: Document -mbitops for SH.
7817         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
7818         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
7819         * config/sh/sh.c (print_operand): Add %t operand code.
7820         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
7821         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
7822         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
7823         (extendqihi2): Likewise.
7824         (movqi_i): Likewise.
7825         (insv): Use bset, bclr and bst instructions for SH2A if possible.
7826         (extv): Use bld instruction for SH2A if possible.
7827         (extzv): Likewise.
7828         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
7829         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
7830         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
7831         (bset.b, bclr.b): Define peepholes.
7832         * config/sh/sh.opt (mbitops): New option.
7833
7834 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
7835
7836         PR target/35620
7837         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
7838         and view convert expression.
7839
7840 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
7841
7842         PR target/35364
7843         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
7844
7845 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
7846
7847         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
7848
7849         * config/i386/cpuid.h (bit_AES): New.
7850         (bit_PCLMUL): Likewise.
7851
7852         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
7853         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
7854         SSE2 if AES or PCLMUL is enabled.
7855         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
7856         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
7857         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
7858         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
7859         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
7860         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
7861         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
7862         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
7863         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
7864         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
7865         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
7866         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
7867         __builtin_ia32_aeskeygenassist128 and
7868         __builtin_ia32_pclmulqdq128.
7869         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
7870         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
7871         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
7872
7873         * config/i386/i386.h (TARGET_AES): New.
7874         (TARGET_PCLMUL): Likewise.
7875         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
7876
7877         * config/i386/i386.md (UNSPEC_AESENC): New.
7878         (UNSPEC_AESENCLAST): Likewise.
7879         (UNSPEC_AESDEC): Likewise.
7880         (UNSPEC_AESDECLAST): Likewise.
7881         (UNSPEC_AESIMC): Likewise.
7882         (UNSPEC_AESKEYGENASSIST): Likewise.
7883         (UNSPEC_PCLMUL): Likewise.
7884
7885         * config/i386/i386.opt (maes): New.
7886         (mpclmul): Likewise.
7887
7888         * config/i386/sse.md (aesenc): New pattern.
7889         (aesenclast): Likewise.
7890         (aesdec): Likewise.
7891         (aesdeclast): Likewise.
7892         (aesimc): Likewise.
7893         (aeskeygenassist): Likewise.
7894         (pclmulqdq): Likewise.
7895
7896         * config/i386/wmmintrin.h: New.
7897
7898         * doc/extend.texi: Document AES and PCLMUL built-in function.
7899
7900         * doc/invoke.texi: Document -maes and -mpclmul.
7901
7902 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
7903
7904         * function.c (free_after_parsing): Replace with
7905         cxx_push_function_context from C++ front-end.
7906         (allocate_struct_function): Don't call langhook.
7907         * langhooks.h (struct lang_hooks_for_functions): Delete.
7908         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
7909         member "function".
7910         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
7911         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
7912         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
7913         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
7914         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
7915         remove LANG_HOOKS_FUNCTION_INITIALIZER.
7916         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
7917
7918         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
7919         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
7920         
7921 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
7922
7923         PR c/35440
7924         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
7925         for all types.
7926
7927 2008-04-04  Richard Guenther  <rguenther@suse.de>
7928
7929         PR middle-end/35823
7930         * fold-const.c (optimize_minmax_comparison): Use the correct
7931         type for the constant in the simplified comparison.
7932
7933 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
7934
7935         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
7936         Pass L2 size as "--param l2-cache-size" to the compiler.
7937         (decode_l2_cache): New function to decode L2 cache parameters using
7938         0x8000006 extended cpuid function.
7939         (detect_caches_amd): Determine parameters of L2 cache using
7940         decode_l2_caches function.
7941         (decode_caches_intel): Decode L2 cache parameters.
7942         (detect_caches_intel): Determine L2 cache parameters using
7943         decode_caches_intel and decode_l2_caches functions.
7944
7945 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
7946
7947         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
7948         secondary input reload for subword loads from the constant pool.
7949
7950 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
7951
7952         PR target/35713
7953         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
7954           constants of the appropriate size for runtime calculations.
7955
7956         PR c/35712
7957         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
7958           decimal-float literal constant zero.
7959
7960 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
7961
7962         PR c/35738
7963         * c-parser.c (c_parser_omp_atomic): Call
7964         default_function_array_conversion on the RHS.
7965
7966         PR middle-end/35818
7967         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
7968         call is_variable_sized if decl has incomplete type.
7969
7970 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
7971
7972         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
7973
7974 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
7975
7976         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
7977         iterators.
7978         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
7979         (sgt<u>): Merge sgt and sgtu into new expander.
7980         (sgt, sgtu): Remove expanders.
7981         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
7982         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
7983         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
7984         *sgtu_<mode>_mips16 into new pattern.
7985         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
7986         (sge<u>): Merge sge and sgeu into new expander.
7987         (sge, sgeu): Remove expanders.
7988         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
7989         new pattern.
7990         (*sge_<mode>, second *sge_<mode>): Remove patterns.
7991         (slt<u>): Merge slt and sltu into new expander.
7992         (slt, sltu): Remove expanders.
7993         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
7994         (*slt_<mode>, *sltu_<mode>): Remove patterns.
7995         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
7996         *sltu_<mode>_mips16 into new pattern.
7997         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
7998         (sle<u>): Merge sle and sleu into new expander.
7999         (sle, sleu): Remove expanders.
8000         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
8001         (*sle_<mode>, *sleu_<mode>): Remove patterns.
8002         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
8003         *sleu_<mode>_mips16 into new pattern.
8004         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
8005
8006 2008-04-03  Jan Hubicka  <jh@suse.cz>
8007
8008         PR tree-optimization/35795
8009         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
8010         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
8011         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
8012         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
8013         * score/score3.c (score3_output_mi_thunk): Likewise.
8014         * score/score7.c (score7_output_mi_thunk): Likewise.
8015         * mips/mips.c (mips_output_mi_thunk): Likewise.
8016
8017 2008-04-03  Richard Guenther  <rguenther@suse.de>
8018
8019         * tree-vrp.c (extract_range_from_unary_expr): Handle all
8020         conversions.  Simplify code.
8021
8022 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
8023
8024         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
8025
8026 2008-04-03  Tom Tromey  <tromey@redhat.com>
8027             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8028
8029         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
8030         * config/bfin/t-bfin-linux (generated_files): Add
8031         linux-sysroot-suffix.h.
8032         * doc/install.texi (Prerequisites): Require make 3.80.
8033         * doc/sourcebuild.texi (Front End Directory): Document new
8034         variable.
8035         * Makefile.in (generated_files): New variable.
8036         (ALL_HOST_OBJS): New variable.
8037         ($(ALL_HOST_OBJS)): New target.
8038
8039 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
8040
8041         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
8042         (remap_block): Call id->transform_lang_insert_block instead
8043         of langhook.
8044         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
8045         Set id.transform_lang_insert_block to NULL.
8046         (clone_body): Move to cp/optimize.c
8047         * tree-inline.h (struct copy_body_data): Change
8048         transform_lang_insert_block to function pointer.
8049         (copy_generic_body, copy_decl_no_change): Export.
8050         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
8051         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
8052         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
8053
8054         * c-tree.h (insert_block): Kill.
8055         * c-decl.c (insert_block): Kill.
8056
8057 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
8058
8059         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
8060         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
8061         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
8062         argument.
8063         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
8064         argument, call {push,pop}_function_context from here.
8065         * c-parser.c: Use c_{push,pop}_function_context.
8066
8067         * function.c (push_function_context_to): Move meat ...
8068         (push_function_context): ... here.  Simplify.
8069         * function.c (pop_function_context_from): Move meat ...
8070         (pop_function_context): ... here.  Simplify.
8071         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
8072         leave_nested).
8073         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
8074         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
8075         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
8076         * tree.h (push_function_context_to, pop_function_context_from): Remove.
8077
8078 2008-04-03  Ben Elliston  <bje@au.ibm.com>
8079
8080         * expmed.c (extract_force_align_mem_bit_field): Remove.
8081
8082 2008-04-03  Richard Guenther  <rguenther@suse.de>
8083
8084         PR middle-end/35800
8085         * expr.h (try_casesi): Adjust prototype.
8086         * expr.c (try_casesi): Take fallback label as extra parameter.
8087         Use that for gen_casesi if default_label is NULL.
8088         * stmt.c (expand_case): Pass fallback label to try_casesi,
8089         make sure to fill gaps with a fallback label if default_label
8090         is not present.
8091
8092 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
8093
8094         PR target/35801
8095         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
8096
8097 2008-04-03  Ben Elliston  <bje@au.ibm.com>
8098
8099         * expmed.c (extract_split_bit_field): Remove if (0) code.
8100         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
8101         (do_ds_constraint): Likewise.
8102
8103 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
8104
8105         * doc/cppopts.texi (-dU): Document.
8106         * c-common.h (flag_dump_macros): Update comment.
8107         * c-opts.c (handle_OPT_d): Handle -dU.
8108         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
8109         dump_queued_macros, cb_used_define, cb_used_undef): New.
8110         (init_pp_output): Handle -dU.
8111         (cb_line_change): Call dump_queued_macros.
8112         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
8113
8114 2008-04-02  Anatoly Sokolov <aesok@post.ru>
8115
8116         * config/avr/predicates.md (io_address_operand): New predicate. 
8117         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
8118         * config/avr/avr.c (avr_io_address_p): Remove function.
8119         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
8120         'avr_io_address_p' function.
8121         (out_movhi_r_mr): (Ditto.).
8122         (out_movqi_mr_r): (Ditto.).
8123         (out_movhi_mr_r): (Ditto.).
8124         (avr_address_cost): (Ditto.).
8125
8126 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
8127
8128         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
8129         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
8130         in 32bit mode when XMM registers are available to avoid store
8131         forwarding stalls.
8132         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
8133         corresponding post-reload splitters.
8134
8135 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
8136
8137         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
8138         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
8139         __builtin_ia32_roundss.
8140         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
8141         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
8142         __builtin_ia32_roundss.
8143         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
8144         IX86_BUILTIN_SHUFPD here.
8145
8146 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
8147
8148         * config/i386/i386.md (plogic): New.
8149         (plogicprefix): Likewise.
8150
8151         * config/i386/mmx.md (mmx_<code><mode>3): New.
8152         (mmx_and<mode>3): Removed.
8153         (mmx_ior<mode>3): Likewise.
8154         (mmx_xor<mode>3): Likewise.
8155
8156         * config/i386/sse.md (<code><mode>3): New.
8157         (*<code><mode>3): Likewise.
8158         (*<code><mode>3): Likewise.
8159         (<code><mode>3): Likewise.
8160         (*sse_<code><mode>3): Likewise.
8161         (*sse2_<code><mode>3): Likewise.
8162         (<code>tf3): Likewise.
8163         (*<code>tf3): Likewise.
8164         (and<mode>3): Likewise.
8165         (*and<mode>3): Likewise.
8166         (ior<mode>3): Removed.
8167         (*ior<mode>3): Likewise.
8168         (xor<mode>3): Likewise.
8169         (*xor<mode>3): Likewise.
8170         (*and<mode>3): Likewise.
8171         (*ior<mode>3): Likewise.
8172         (*xor<mode>3): Likewise.
8173         (and<mode>3): Likewise.
8174         (*sse_and<mode>3): Likewise.
8175         (*sse2_and<mode>3): Likewise.
8176         (andtf3): Likewise.
8177         (*andtf3): Likewise.
8178         (ior<mode>3): Likewise.
8179         (*sse_ior<mode>3): Likewise.
8180         (*sse2_ior<mode>3): Likewise.
8181         (iortf3): Likewise.
8182         (*iortf3): Likewise.
8183         (xor<mode>3): Likewise.
8184         (*sse_xor<mode>3): Likewise.
8185         (*sse2_xor<mode>3): Likewise.
8186         (xortf3): Likewise.
8187         (*xortf3): Likewise.
8188
8189 2008-04-02  Richard Guenther  <rguenther@suse.de>
8190
8191         PR tree-optimization/14495
8192         PR tree-optimization/34793
8193         * tree-vrp.c (struct switch_update): New structure.
8194         (to_remove_edges, to_update_switch_stmts): New VECs.
8195         (simplify_switch_using_ranges): New function.  Remove not taken
8196         case labels and edges.
8197         (simplify_stmt_using_ranges): Call it.
8198         (identify_jump_threads): Mark edges we have queued for removal
8199         so we don't thread them.
8200         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
8201         case label vector.
8202         * tree-cfg.c (group_case_labels): Deal with missing default label.
8203         (tree_verify_flow_info): Allow missing default label.
8204         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
8205         (emit_case_nodes): Likewise.
8206         (expand_case): Do not rely on the default label to be present.
8207         * expr.c (try_casesi): Deal with NULL default_label.
8208         (do_tablejump): Likewise.
8209
8210 2008-04-02  Richard Guenther  <rguenther@suse.de>
8211
8212         PR tree-optimization/14495
8213         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
8214         SWITCH_EXPR here ...
8215         (vrp_visit_switch_stmt): ... but here (new function).
8216         (find_case_label_index): New helper function.
8217         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
8218
8219 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
8220
8221         * fwprop.c: Fix ISO-C99ism.
8222
8223 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
8224
8225         PR bootstrap/35752
8226         * Makefile.in (objdir): Set it here.
8227         * configure.ac: Not here.  Find dynamic linker characteristics.
8228         * exec-tool.in: Use them.
8229         * aclocal.m4: Regenerate.
8230         * configure: Regenerate.
8231
8232 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
8233
8234         * expr.c (expand_var): Delete it.
8235         * expr.h (expand_var): Delete prototype.
8236         * function.c (expand_function_start): Use expand_decl instead.
8237         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
8238         langhook.
8239
8240 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
8241
8242         PR rtl-optimization/35542
8243         * fwprop.c (forward_propagate_and_simplify): Replace
8244         loc_reg_mentioned_in_p with reg_mentioned_p.
8245
8246 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
8247
8248         PR rtl-optimization/35281
8249         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
8250         (propagate_rtx_1): Handle PR_HANDLE_MEM.
8251         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
8252         (varying_mem_p): Move above propagate_rtx.
8253         (all_uses_available_at): Do not check MEMs.
8254
8255 2008-04-02  Rafael Espindola  <espindola@google.com>
8256
8257         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
8258         (register_edge_assert_for_2): Split the cond argument.
8259         (register_edge_assert_for_1): Adjust for the change in
8260         register_edge_assert_for_2.
8261         (register_edge_assert_for): Split the cond argument.
8262         (find_switch_asserts): Adjust for the change in
8263         register_edge_assert_for.
8264
8265 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
8266
8267         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
8268         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
8269         offsets for 64-bit mingw.
8270         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
8271         abi for x86_64-pc-mingw.
8272
8273 2008-04-02  Richard Guenther  <rguenther@suse.de>
8274
8275         * tree-vrp.c (extract_range_from_assert): Make sure to not
8276         produce range min/max with TREE_OVERFOW set.
8277         If merging a anti-range and a range keep the anti-range if
8278         the range covers all values of the type.
8279         (register_edge_assert_for_2): Only allow sign-changing
8280         conversions in detecting canonical range checks.  Also
8281         register an assert for the unsigned name if useful.
8282
8283         PR tree-optimization/35787
8284         * tree-vrp.c (vrp_val_max): New function.
8285         (vrp_val_min): Likewise.
8286         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
8287         (vrp_val_is_min): Likewise.
8288         (supports_overflow_infinity): Use vrp_val_{min,max}.
8289         (negative_overflow_infinity): Likewise.
8290         (positive_overflow_infinity): Likewise.
8291         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
8292         (is_positive_overflow_infinity): Likewise.
8293         (is_overflow_infinity): Likewise.
8294         (avoid_overflow_infinity): Use vrp_val_{min,max} and
8295         vrp_val_is_{min,max}.
8296         (set_and_canonicalize_value_range): Canonicalize anti-ranges
8297         to ranges if possible.  Avoid empty ranges.
8298
8299 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8300
8301         PR middle-end/35705
8302         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
8303         the expression is a function address.
8304
8305 2008-04-01  George Helffrich  <george@gcc.gnu.org>
8306
8307         PR fortran/35154, fortran/23057
8308         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
8309         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
8310         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
8311         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
8312         in common.
8313         (dbxout_syms): Check for COMMON-based symbol and wrap in
8314         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
8315         in bracket for efficiency.
8316
8317         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
8318         using DW_TAG_common_block + member offset.
8319         (add_pubname_string): New function.
8320         (dw_expand_expr): New function to find block name and offset for
8321         COMMON var.
8322         (common_check): New function to check whether symbol in Fortran COMMON.
8323         (gen_variable_die): If COMMON, use DW_TAG_common_block.
8324
8325 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
8326
8327         PR c/35436
8328         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
8329
8330 2008-04-02  Ben Elliston  <bje@au.ibm.com>
8331
8332         * config/v850/v850.md (casesi): Remove if (0) code.
8333         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
8334         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
8335
8336 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
8337
8338         * config/i386/i386.md (rex64suffix): New mode attribute.
8339         (floathi<mode>2): Disable expander for SSE math.
8340         (*floathi<mode>2_1): New insn insn_and_split pattern.
8341         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
8342         corresponding post-reload splitters.
8343         (*floathi<mode>2_i387): New macroized insn pattern.
8344         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
8345         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
8346         insn_and_split pattern.
8347         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
8348         New macroized instruction patterns and corresponding post-reload
8349         splitters.
8350         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
8351         and corresponding post-reload splitters.
8352         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
8353         New macroized instruction patterns.
8354         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
8355         macroized instruction patterns and corresponding post-reload splitters.
8356         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
8357         corresponding post-reload splitters.
8358         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
8359         New macroized instruction patterns.
8360         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
8361         corresponding post-reload splitters.
8362         (*floatsi<mode>2_i387): New macroized instruction patterns.
8363
8364 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
8365
8366         * config/i386/i386.md (smaxmin): New.
8367         (umaxmin): Likewise.
8368         (maxminiprefix): Likewise.
8369         (maxminfprefix): Likewise.
8370         (<code><mode>3): Likewise.
8371         (smin<mode>3): Removed.
8372         (smax<mode>3): Likewise.
8373
8374         * config/i386/mmx.md (mmx_<code>v2sf3): New.
8375         (mmx_<code>v4hi3): Likewise.
8376         (mmx_<code>v8qi3): Likewise.
8377         (mmx_smaxv2sf3): Removed.
8378         (mmx_sminv2sf3): Likewise.
8379         (mmx_umaxv8qi3): Likewise.
8380         (mmx_smaxv4hi3): Likewise.
8381         (mmx_uminv8qi3): Likewise.
8382         (mmx_sminv4hi3): Likewise.
8383
8384         * config/i386/sse.md (<addsub><mode>3): New.
8385         (*<addsub><mode>3): Likewise.
8386         (<sse>_vm<addsub><mode>3): Likewise.
8387         (<maxmin><mode>3): Likewise.
8388         (*<maxmin><mode>3_finite): Likewise.
8389         (*<maxmin><mode>3): Likewise.
8390         (<sse>_vm<maxmin><mode>3): Likewise.
8391         (sse3_h<addsub>v4sf3): Likewise.
8392         (sse3_h<addsub>v2df3): Likewise.
8393         (<maxmin>v16qi3): Likewise.
8394         (*<maxmin>v16qi3): Likewise.
8395         (<maxmin>v8hi3): Likewise.
8396         (*<maxmin>v8hi3): Likewise.
8397         (*sse4_1_<maxmin><mode>3): Likewise.
8398         (*sse4_1_<maxmin><mode>3): Likewise.
8399         (add<mode>3): Removed.
8400         (*add<mode>3): Likewise.
8401         (<sse>_vmadd<mode>3): Likewise.
8402         (sub<mode>3): Likewise.
8403         (*sub<mode>3): Likewise.
8404         (<sse>_vmsub<mode>3): Likewise.
8405         (smin<mode>3): Likewise.
8406         (*smin<mode>3_finite): Likewise.
8407         (*smin<mode>3): Likewise.
8408         (<sse>_vmsmin<mode>3): Likewise.
8409         (smax<mode>3): Likewise.
8410         (*smax<mode>3_finite): Likewise.
8411         (*smax<mode>3): Likewise.
8412         (<sse>_vmsmax<mode>3): Likewise.
8413         (sse3_haddv4sf3): Likewise.
8414         (sse3_haddv2df3): Likewise.
8415         (sse3_hsubv4sf3): Likewise.
8416         (sse3_hsubv2df3): Likewise.
8417         (umaxv16qi3): Likewise.
8418         (*umaxv16qi3): Likewise.
8419         (smaxv8hi3): Likewise.
8420         (*smaxv8hi3): Likewise.
8421         (*sse4_1_smax<mode>3): Likewise.
8422         (*sse4_1_umax<mode>3): Likewise.
8423         (uminv16qi3): Likewise.
8424         (*uminv16qi3): Likewise.
8425         (sminv8hi3): Likewise.
8426         (*sminv8hi3): Likewise.
8427         (*sse4_1_smin<mode>3): Likewise.
8428         (*sse4_1_umin<mode>3): Likewise.
8429
8430 2008-04-01  Rafael Espindola  <espindola@google.com>
8431
8432         * tree-cfg.c (verify_expr): remove in_phi.
8433         (verify_stmt): Don't call walk_tree with verify_expr. Use
8434         is_gimple_min_invariant instead of is_gimple_val.
8435
8436 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
8437
8438         * doc/include/gpl_v3.texi: Update for manpage generation.
8439         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
8440         gpl.texi.
8441         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
8442         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
8443         gpl_v3.texi instead of gpl.texi.
8444         (gpl.pod): New.
8445
8446 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
8447
8448         PR pch/13675
8449         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
8450
8451 2008-04-01  Rafael Espindola  <espindola@google.com>
8452
8453         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
8454         (extract_code_and_val_from_cond): Use
8455         extract_code_and_val_from_cond_with_ops.
8456
8457 2008-04-01  Jan Hubicka  <jh@suse.cz>
8458
8459         * function.c (free_after_compilation): Free epilogue_delay_list.
8460         (prepare_function_start): Assert that previous compilation was freed.
8461
8462 2008-04-01  Jan Hubicka  <jh@suse.cz>
8463             Jim Wilson  <wilson@tuliptree.org>
8464             Andreas Tobler <andreast@gcc.gnu.org>
8465
8466         PR middle-end/35781
8467         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
8468         rtl.emit instead cfun->emit.
8469         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
8470         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
8471
8472 2008-04-01  Ben Elliston  <bje@au.ibm.com>
8473
8474         * doc/c-tree.texi (Function Basics): Fix grammatical error.
8475
8476 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
8477
8478         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
8479         New options
8480         (fprofile-use): Add var flag_profile_use
8481         * coverage.c (coverage_begin_output): Do not open a gcno file for
8482         output only if -ftest-coverage is set.
8483         Do not add getpwd() to gcda file path.
8484         (build_gcov_info): Check the new flag
8485         flag_profile_datafile_relative_path.
8486         (coverage_init): Use profile_data_prefix.
8487         Read profile counter only if flag_profile_use is set.
8488         * opts.c (common_handle_option): New option fprofile-use=,
8489         fprofile-dir=, fprofile-generate=.
8490         * toplev.c (profile_data_prefix): New variable definition.
8491         * toplev.h (profile_data_prefix): New declaration.
8492         * doc/invoke.tex (Option Summary, Optimization Options):
8493         Add new options.
8494
8495 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
8496
8497         * varasm.c (output_constant_pool_1): In LABEL_REF check,
8498         use tmp consistently.
8499
8500         PR target/35695
8501         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
8502         * config/ia64/ia64.c (rtx_needs_barrier): Handle
8503         UNSPEC_FR_RECIP_APPROX_RES.
8504         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
8505
8506 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
8507
8508         PR c/35750
8509         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
8510
8511 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8512
8513         PR middle-end/30186
8514         * fold-const.c (fold_indirect_ref_1): Support accessing non first
8515         element of the vector via a pointer.
8516
8517 2008-03-31  Ian Lance Taylor  <iant@google.com>
8518
8519         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
8520
8521 2008-03-31  Jan Hubicka  <jh@suse.cz>
8522
8523         * builtins.c (expand_builtin_setjmp_receiver): Update call of
8524         get_arg_pointer_save_area.
8525         * expr.c (init_expr): Just clear out rtl.expr.
8526         * function.c (free_after_compilation): Clear out whole RTL structure.
8527         (get_func_frame_size): Merge into ...
8528         (get_frame_size): ... this one.
8529         (assign_stack_local_1): Merge into ...
8530         (assign_stack_local): ... this one.
8531         (expand_function_end): Update call of get_arg_pointer_save_area.
8532         (get_art_pointer_save_area): Remove cfun argument.
8533         * function.h (emit_status): regno_pointer_align does not need length
8534         attribute. Move x_regno_reg_rtx to ...
8535         (regno_reg_rtx): ... new global array.
8536         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
8537         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
8538         apply_args_value, forced_labels, stack_pointer_delta):
8539         Update accestors.
8540         (struct varasm_status): Move here from varasm.c
8541         (struct rtl_data): New. Move here some fields from struct function.
8542         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
8543         frame_offset, stack_check_probe_note, arg_pointer_save_area,
8544         used_temp_slots avail_temp_slots, temp_slot_level,
8545         nonlocal_goto_handler_labels): Update accesstors.
8546         (rtl): New global variable.
8547         (struct function): Move some fileds to rtl_data.
8548         (get_arg_pointer_save_area): Update prototype.
8549         * emit-rtl.c (rtl): Declare.
8550         (regno_reg_rtx): Declare.
8551         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
8552         Update.
8553         (gen_reg_rtx): Update.
8554         (init_virtual_regs): Do not tate emit_status argument.
8555         (init_emit): Do not allocate emit.
8556         * varasm.c (varasm_statuc): Move to function.h.
8557         (n_deferred_constatns): Update accestor.
8558         (init_varasm_status): Do not allocate varasm_status.
8559         (force_const_mem, get_pool_size, output_constant_pool): Update.
8560         * stmt.c (force_label_rtx): Do not use x_ prefixes.
8561         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
8562
8563 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
8564
8565         PR rtl-optimization/35729
8566         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
8567         references.
8568
8569 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
8570
8571         PR target/32000
8572         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
8573         load/store if memory is unaligned.
8574         (*movti_rex64): Likewise.
8575
8576         * config/i386/predicates.md (misaligned_operand): New.
8577
8578 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
8579
8580         PR tree-opt/35431
8581         * tree-ssa-phiopt.c (conditional_replacement): Return early for
8582         complex types.
8583
8584 2008-03-31  Jan Beulich  <jbeulich@novell.com>
8585
8586         * config/ia64/constraints.md: Add 'j' constraint.
8587         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
8588         (movdi_internal): Likewise.
8589
8590 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
8591
8592         PR c/35748
8593         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
8594
8595 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
8596
8597         PR target/35757
8598         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
8599         proper error message for the third argument on blendpd and
8600         blendps.
8601
8602         * config/i386/sse.md (blendbits): New.
8603         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
8604
8605 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
8606
8607         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
8608
8609 2008-03-30  Richard Guenther  <rguenther@suse.de>
8610
8611         PR middle-end/31023
8612         * fold-const.c (fold_sign_changed_comparison): Do leave
8613         conversions to base-types alone.
8614
8615 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8616
8617         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
8618         the link register if one altivec register is be saved.
8619
8620 2008-03-30  Ben Elliston  <bje@au.ibm.com>
8621
8622         * final.c (final_scan_insn): Remove if (0) code.
8623
8624 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
8625
8626         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
8627
8628 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
8629
8630         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
8631         of V4SFmode to ix86_binary_operator_ok.
8632
8633 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
8634
8635         * config/i386/i386.c (override_options): Initialize
8636         ix86_veclib_handler to ix86_veclibabi_svml when
8637         -mveclibabi=svml is used.
8638         (ix86_veclibabi_svml): New function for SVML ABI style
8639         vectorization support.
8640         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
8641
8642 2008-03-28  Rafael Espindola  <espindola@google.com>
8643
8644         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
8645         (tree_binary_nonnegative_warnv_p): Make it public.
8646         (tree_single_nonnegative_warnv_p): Make it public.
8647         (tree_invalid_nonnegative_warnv_p): Make it public.
8648         (tree_unary_nonzero_warnv_p): Make it public.
8649         (tree_binary_nonzero_warnv_p): Make it public
8650         (tree_single_nonzero_warnv_p): Make it public.
8651         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
8652         (extract_range_from_binary_expr): Split the expr argument.
8653         (extract_range_from_unary_expr): Split the expr argument.
8654         (extract_range_from_comparison): Split the expr argument.
8655         (extract_range_from_expr): Use the new aux functions.
8656         (vrp_evaluate_conditional_warnv): Use
8657         vrp_evaluate_conditional_warnv_with_ops.
8658         * tree.h (tree_unary_nonzero_warnv_p): Declare.
8659         (tree_binary_nonzero_warnv_p): Declare.
8660         (tree_single_nonzero_warnv_p): Declare.
8661         (tree_expr_nonzero_warnv_p): Declare.
8662         (tree_unary_nonnegative_warnv_p): Declare.
8663         (tree_binary_nonnegative_warnv_p): Declare.
8664         (tree_single_nonnegative_warnv_p): Declare.
8665         (tree_invalid_nonnegative_warnv_p): Declare.
8666
8667 2008-03-28  Richard Guenther  <rguenther@suse.de>
8668
8669         PR tree-optimization/30317
8670         PR tree-optimization/30911
8671         PR tree-optimization/34793
8672         * tree-vrp.c (set_and_canonicalize_value_range): New function.
8673         (struct assert_locus_d): New member EXPR.
8674         (register_new_assert_for): Add EXPR parameter to support
8675         ASSERT_EXPR <name, expr OP limit>.
8676         (register_edge_assert_for_1): Adjust callers.
8677         (find_assert_locations): Likewise.
8678         (process_assert_insertions_for): Build condition from expression.
8679         (extract_range_from_assert): Handle ASSERT_EXPRs
8680         of the form ASSERT_EXPR <name, expr OP limit>.
8681         (register_edge_assert_for_2): New helper registering
8682         asserts for comparisons.  Recognize range tests of the form
8683         (unsigned)i - CST1 OP CST2.
8684         (register_edge_assert_for_1): Use it.
8685         (register_edge_assert_for): Likewise.
8686         (needs_overflow_infinity): Integer sub-types
8687         do not need overflow infinities.
8688         (vrp_val_is_max): The extreme values of integer sub-types
8689         are those of the base type.
8690         (vrp_val_is_min): Likewise.
8691         * tree.def (ASSERT_EXPR): Document extra allowed conditional
8692         expressions.
8693
8694 2008-03-28  Nick Clifton  <nickc@redhat.com>
8695
8696         PR target/31110
8697         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
8698         Return GENERAL_REGS for stack adjustment reloads.
8699
8700 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8701
8702         PR target/31334
8703         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
8704         const_vector when all the vectors are constant.
8705
8706 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
8707
8708         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
8709         comparisons.
8710         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
8711         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
8712         (scc_sf): New.
8713         (s<code>_sf): Use new scc_sf attribute for opcode names.
8714
8715 2008-03-27  Tom Tromey  <tromey@redhat.com>
8716
8717         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
8718         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
8719         config/spu/t-spu-elf, config/i386/t-interix,
8720         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
8721         config/i386/x-darwin, config/i386/x-mingw32,
8722         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
8723         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
8724         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
8725         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
8726         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
8727         config/rs6000/x-darwin, config/rs6000/t-rs6000,
8728         config/score/t-score-elf, config/arm/t-strongarm-pe,
8729         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
8730         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
8731         Revert automatic dependency patch.
8732
8733 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8734
8735         PR target/35657
8736         * config/i386/i386.c (ix86_function_arg_boundary): Align
8737         decimal floating point to its natural boundary.
8738
8739 2008-03-27  Richard Guenther  <rguenther@suse.de>
8740
8741         PR middle-end/35716
8742         * fold-const.c (fold_comparison): Restrict distinct decl
8743         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
8744         solely rely on operand_equal_p.
8745
8746 2008-03-27  Richard Guenther  <rguenther@suse.de>
8747
8748         PR c/32511
8749         * c-common.c (handle_weak_attribute): Reject combination of
8750         weak and inline.
8751
8752 2008-03-27  Richard Guenther  <rguenther@suse.de>
8753
8754         PR tree-optimization/32810
8755         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
8756         conversions from DECL_INITIAL.
8757         (fold_const_aggregate_ref): Likewise from constructor elements.
8758
8759 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
8760
8761         * tree-affine.h (aff_combination_expand): Declare.
8762         (get_inner_reference_aff): Likewise.
8763         * tree-affine.c (aff_combination_expand): Split out from
8764         tree_to_aff_combination_expand.
8765         (get_inner_reference_aff): New function.
8766         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
8767         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
8768         (struct lim_aux_data): sm_done field removed.
8769         (mem_ref_loc_p, mem_ref_locs_p): New types.
8770         (struct mem_ref): Added id, stored, accesses_in_loop,
8771         indep_loop, dep_loop, indep_ref, dep_ref fields.
8772         Removed is_stored, locs and next fields.
8773         (memory_accesses): New variable.
8774         (movement_possibility): Do not allow moving statements
8775         that store to memory.
8776         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
8777         New functions.
8778         (determine_max_movement): For statements with memory references,
8779         find the outermost loop in that the reference is independent.
8780         (move_computations_stmt): Mark the virtual operands for renaming.
8781         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
8782         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
8783         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
8784         add_vop_ref_mapping, create_vop_ref_mapping_loop,
8785         create_vop_ref_mapping, analyze_memory_references,
8786         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
8787         get_all_locs_in_loop, ref_always_accessed_p,
8788         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
8789         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
8790         store_motion_loop, store_motion): New functions.
8791         (struct vop_to_refs_elt): New type.
8792         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
8793         memref_hash, memref_eq, hoist_memory_references): Rewritten.
8794         (schedule_sm): Replaced by...
8795         (execute_sm): ... this.
8796         (determine_lsm_ref, hoist_memory_references,
8797         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
8798         find_more_ref_vops, free_mem_ref, free_mem_refs,
8799         determine_lsm_loop, determine_lsm): Removed.
8800         (tree_ssa_lim_finalize): Free data structures used by store motion.
8801         (tree_ssa_lim): Call analyze_memory_references.  Use
8802         store_motion instead of determine_lsm.
8803
8804 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
8805
8806         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
8807         rename tmake_file to m68hc11/t-m68hc11.
8808         (mcore): Set inhibit_libc to true.
8809         * config.host (alpha*-dec-*vms*): Set extra_programs.
8810         (interix3*): Don't use host_xmake_file.
8811         * configure.ac: Let config.gcc override inhibit_libc.
8812         * configure: Regenerate.
8813
8814         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
8815         * config/t-openbsd-thread: Remove commented out lines.
8816         
8817         * config/x-interix: Remove.
8818
8819         * config/m68hc11/t-m68hc11-gas: Rename to...
8820         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
8821
8822         * config/mcore/t-mcore: Remove T_CFLAGS.
8823         * config/mcore/t-mcore-pe: Likewise.
8824
8825 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
8826
8827         * configure.ac: Replace custom __GNU_SOURCE test with
8828         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
8829         * aclocal.m4: Regenerate.
8830         * configure: Regenerate.
8831         * config.in: Regenerate.
8832
8833 2008-03-27  Richard Guenther  <rguenther@suse.de>
8834
8835         * fold-const.c (target.h): Include.
8836         (fold_comparison): Fold comparison of addresses of decls
8837         that bind locally or of constants.  Consolidate address folding code.
8838         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
8839         results from fold_binary_to_constant.
8840         (compare_values_warnv): Likewise.
8841
8842 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
8843
8844         PR middle-end/35429
8845         * fold-const.c (fold_truthop): Check for integeral types when folding
8846         a == 0 && b == 0 and a != 0 || b != 0 .
8847
8848 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
8849
8850         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
8851
8852 2008-03-26  Andreas Schwab  <schwab@suse.de>
8853
8854         * doc/invoke.texi: Fix use of @item vs. @itemx.
8855
8856 2008-03-26  Tom Tromey  <tromey@redhat.com>
8857
8858         * Makefile.in (build/gensupport.o, build/print-rtl.o,
8859         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
8860         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
8861         build/gencodes.o, build/genconditions.o, build/genconfig.o,
8862         build/genconstants.o, build/genemit.o, build/genextract.o,
8863         build/genflags.o, build/genmddeps.o, build/genopinit.o,
8864         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
8865         options.h.
8866
8867 2008-03-26  Richard Guenther  <rguenther@suse.de>
8868
8869         Revert
8870         2008-03-26  Richard Guenther  <rguenther@suse.de>
8871
8872         * fold-const.c (target.h): Include.
8873         (fold_comparison): Fold comparison of addresses of two decls
8874         that bind locally.  Consolidate address folding code.
8875
8876 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8877
8878         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
8879         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
8880         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
8881         dconstsqrt2, dconstthird, dconste and/or dconst10.
8882         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
8883         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
8884         dconstsqrt2, dconste): Delete.
8885         (init_emit_once): Likewise.  Simplify initializing dconstm1.
8886         Constify variable.
8887         * real.c (get_real_const): New.
8888         * real.h (dconst3, dconst10, dconstm2, dconstthird,
8889         dconstsqrt2, dconste): Delete.
8890         (real_value_const, get_real_const): New.
8891
8892 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
8893
8894         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
8895
8896         * config/i386/i386.c (ix86_function_arg_boundary): Check
8897         BIGGEST_ALIGNMENT instead of 128.
8898         (setup_incoming_varargs_64): Likewise.
8899
8900 2008-03-26  Tom Tromey  <tromey@redhat.com>
8901
8902         * Makefile.in (DEPFILES): Add missing '/'.
8903
8904 2008-03-26  Richard Guenther  <rguenther@suse.de>
8905
8906         * fold-const.c (target.h): Include.
8907         (fold_comparison): Fold comparison of addresses of two decls
8908         that bind locally.  Consolidate address folding code.
8909
8910 2008-03-26  Nick Clifton  <nickc@redhat.com>
8911
8912         PR target/31232
8913         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
8914         not allow INT+INT as a legitimate addressing mode.
8915
8916 2008-03-26  Richard Guenther  <rguenther@suse.de>
8917
8918         * tree-flow.h (widen_bitfield): Remove declaration.
8919         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
8920         (widen_bitfield): Remove function.
8921         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
8922         code.
8923
8924 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8925
8926         PR target/31558
8927         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
8928         error_mark_node's.
8929
8930 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
8931
8932         PR rtl-optimization/35232
8933         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
8934         (forget_old_reloads_1, forget_marked_reloads): Don't clear
8935         reg_reloaded_call_part_clobbered here.
8936         (reload_regs_reach_end_p): New function.
8937         (reload_reg_rtx_for_input): New variable.
8938         (reload_reg_rtx_for_output): Likewise.
8939         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
8940         when reassigning a pseudo register.  Load reloadreg from 
8941         reload_reg_rtx_for_input, moving the mode and register
8942         calculation to...
8943         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
8944         instead of the original when deciding whether an input reload
8945         would be a no-op or whether an output reload can be deleted.
8946         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
8947         when setting up new_spill_reg_store.  Load it from
8948         reload_reg_rtx_for_output, moving the mode and register
8949         calculation to...
8950         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
8951         instead of the original when deciding whether an output reload
8952         would be a no-op.  Do the same when modifying insn notes.
8953         Use rtx_equal_p instead of == to compare the registers.
8954         (inherit_piecemeal_p): Take a mode and two register numbers
8955         as argument.
8956         (emit_reload_insns): Clear new_spill_reg_store for every hard
8957         register in the reload register.  Remove spill registers
8958         from reg_reloaded_valid before considering whether to record
8959         inheritance information for them.  Use reload_reg_rtx_for_output
8960         instead of reg_rtx when recording output reloads.  Use
8961         reload_reg_rtx_for_input instead of reg_rtx when recording
8962         input reloads.  Set or clear reg_reloaded_call_part_clobbered
8963         at the same time as setting reg_reloaded_valid.
8964         (delete_output_reload): Add a new_reload_reg parameter and use it
8965         instead of rld[j].reg_rtx.
8966         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
8967         calls accordingly.
8968
8969 2008-03-25  Tom Tromey  <tromey@redhat.com>
8970
8971         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
8972         (build/genattr.o): Likewise.
8973         (build/genattrtab.o): Likewise.
8974         (build/gencodes.o): Likewise.
8975         (build/genconfig.o): Likewise.
8976         (build/genconstants.o): Likewise.
8977         (build/genemit.o): Likewise.
8978         (build/genextract.o): Likewise.
8979         (build/genflags.o): Likewise.
8980
8981 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
8982         
8983         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
8984         instead of size_int for integer types.
8985         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
8986         to match type of MINUS_EXPR.
8987         
8988 2008-03-25  Tom Tromey  <tromey@redhat.com>
8989
8990         * configure: Rebuilt.
8991         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
8992         Makefile.
8993
8994 2008-03-25  Tom Tromey  <tromey@redhat.com>
8995
8996         * config/x-solaris (host-solaris.o): Update.
8997         * config/x-linux (host-linux.o): Update.
8998         * config/x-hpux (host-hpux.o): Update.
8999         * config/x-darwin (host-darwin.o): Update.
9000         * config/v850/t-v850e (v850-c.o): Update.
9001         * config/v850/t-v850 (v850-c.o): Update.
9002         * config/t-vxworks (vxworks.o): Update.
9003         * config/t-sol2 (sol2-c.o, sol2.o): Update.
9004         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
9005         * config/spu/t-spu-elf (spu-c.o): Update.
9006         (spu.o): Remove.
9007         * config/sh/t-symbian (sh-c.o): Update.
9008         (symbian.o): Update.
9009         * config/sh/t-sh (sh-c.o): Update.
9010         * config/score/t-score-elf (score7.o, score3.o): Update.
9011         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
9012         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
9013         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
9014         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
9015         (rs6000.o): Remove.
9016         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
9017         * config/m32c/t-m32c (m32c-pragma.o): Update.
9018         * config/ia64/t-ia64 (ia64-c.o): Update.
9019         * config/i386/x-mingw32 (host-mingw32.o): Update.
9020         * config/i386/x-i386 (driver-i386.o): Update.
9021         * config/i386/x-darwin (host-i386-darwin.o): Update.
9022         * config/i386/x-cygwin (host-cygwin.o): Update.
9023         * config/i386/t-nwld (nwld.o): Update.
9024         * config/i386/t-netware (netware.o): Update.
9025         * config/i386/t-interix (winnt.o): Update.
9026         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
9027         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
9028         msformat-c.o): Update.
9029         * config/bfin/t-bfin-linux (generated_files): Add
9030         linux-sysroot-suffix.h.
9031         * config/arm/t-wince-pe (pe.o): Update.
9032         * config/arm/t-strongarm-pe (pe.o): Update.
9033         * config/arm/t-pe (pe.o): Update.
9034         * config/arm/t-arm (arm-c.o): Update.
9035         * doc/install.texi (Prerequisites): Require make 3.80.
9036         * Makefile.in: Remove .o targets.
9037         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
9038         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
9039         (simple_generated_h, simple_generated_c): Move earlier.
9040         (generated_files): New variable.
9041         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
9042         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
9043         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
9044         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
9045         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
9046         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
9047         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
9048         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
9049         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
9050         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
9051         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
9052         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
9053         (.c.o): Remove.
9054         (COMPILE.base, COMPILE): New variables.
9055         (%.o): New pattern rule.
9056         (ALL_HOST_OBJS): New variable.
9057         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
9058         (dummy-checksum.o, cc1-checksum.o): Remove.
9059         (DRIVER_SHLIB): New variable.
9060         (DRIVER_DEFINES): Use it.
9061         (gencondmd.c): Move out of build/.
9062         (s-conditions): Update.
9063         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
9064         (ALL_BUILD_OBJS): Likewise.
9065         (build/%.o): Use BUILDCOMPILE.
9066         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
9067         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
9068         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
9069         build/gencheck.o, build/gencodes.o, build/genconditions.o,
9070         build/genconfig.o, build/genconstants.o, build/genemit.o,
9071         build/genextract.o, build/genflags.o, build/genmddeps.o,
9072         build/genopinit.o, build/genoutput.o, build/genpeep.o,
9073         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
9074         build/gen-protos.o, build/scan.o, build/fix-header.o,
9075         build/scan-decls.o): Simplify.
9076         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
9077         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
9078         prefix.o, toplev.o): Reduce to variable setting.
9079         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
9080         ($(out_object_file), gcc-options.o): New targets.
9081         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
9082         * configure: Rebuilt.
9083         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
9084         * doc/sourcebuild.texi (Front End Directory): Document new variable.
9085
9086 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
9087
9088         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
9089         complain when we hit an error, return ERROR_MARK_NODE.
9090
9091 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
9092
9093         * config/sh/constraints.md (Pso, Psz): New constraints.
9094         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
9095         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
9096
9097 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
9098
9099         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
9100         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
9101
9102 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
9103
9104         * config/sh/sh.md (prefetch): Add condition for SH2A target.
9105         (prefetch_sh2a): New.   
9106
9107 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
9108             Naveen.H.S  <naveen.hs@kpitcummins.com>
9109
9110         * config/sh/constraints.md (I28): New constraint.
9111         * config/sh/sh.c (broken_move): Add support for movi20s.
9112         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
9113
9114 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
9115             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
9116             Naveen.H.S  <naveen.hs@kpitcummins.com>
9117
9118         * config/sh/sh.c (SH_ATTRIBUTES): Define.
9119         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
9120         (print_operand): Handle resbank in %@ operand code.
9121         (sh_encode_section_info): New.
9122         (push_regs): Add conditions for resbank.
9123         (sh_expand_epilogue): Likewise.
9124         (sh_insert_attributes): Likewise.
9125         (sh_attribute_table): Likewise.
9126         (sh_handle_resbank_handler_attribute): New.
9127         (sh2a_handle_function_vector_handler_attribute): New.
9128         (sh2a_is_function_vector_call): New.
9129         (sh2a_get_function_vector_number): New.
9130         (sh2a_function_vector_p): New.
9131         (sh_cfun_resbank_handler_p): New.
9132         * config/sh/sh.md (calli): Emit jsr/n if possible.
9133         (calli_tbr_rel): New.
9134         (calli_pcrel): Emit jsr/n if possible.
9135         (return_i): Emit rts/n if possible.
9136         (call_valuei_tbr_rel): New.
9137         (call_valuei_pcrel): Add condition for SH2A target.
9138         (call_value): Likewise.
9139         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
9140         (sh2a_get_function_vector_number): Likewise.
9141         (sh2a_is_function_vector_call): Likewise.
9142         * doc/extend.texi: Document TBR relative addressing of SH2A.
9143         (resbank): Add description for SH2A.
9144
9145 2008-03-24  Richard Guenther  <rguenther@suse.de>
9146
9147         PR c/22371
9148         * gimplify.c (gimplify_modify_expr): For frontend type-correct
9149         pointer assignments change conversions according to middle-end rules.
9150         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
9151         * configure.ac: Include type checking in yes.
9152         * configure: Regenerate.
9153
9154 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9155
9156         * diagnostic.c (diagnostic_count_diagnostic): Delete.
9157         (diagnostic_report_diagnostic): Update. Handle ICEs here.
9158         
9159 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
9160
9161         * gthr-vxworks.h (UNUSED): Define.
9162
9163 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
9164
9165         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
9166
9167 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
9168
9169         * doc/extend.texi (Function Attributes): Add missing comma in the
9170         example of the "alloc_size" attribute.
9171         
9172 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
9173
9174         Revert:
9175         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
9176
9177         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
9178         32bit host.
9179
9180         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
9181
9182         PR target/35496
9183         * stor-layout.c (update_alignment_for_field): Set minimum alignment
9184         of the underlying type of a MS bitfield layout to the natural
9185         alignment of the type.
9186
9187         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
9188
9189         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
9190         to their natural alignment to avoid store forwarding stalls.
9191
9192 2008-03-22  Richard Guenther  <rguenther@suse.de>
9193
9194         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
9195         For PHI nodes verify the address is invariant.
9196         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
9197         (get_symbol_constant_value): Use is_gimple_min_invariant.
9198         (maybe_fold_stmt_indirect): Likewise.
9199
9200 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
9201
9202         PR rtl-optimization/33927
9203         * Makefile.in (dse.o): Depend on $(TM_P_H).
9204         * expr.h (extract_low_bits): Declare.
9205         * expmed.c (extract_low_bits): New function.
9206         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
9207         * dse.c: Include tm_p.h.
9208         (find_shift_sequence): Remove the read_reg argument and return the
9209         read value.  Emit the instructions instead of returning them.
9210         Iterate on new_mode rather than calculating it each time.
9211         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
9212         source to NEW_MODE and extract_low_bits to convert the shifted
9213         value to READ_MODE.
9214         (replace_read): Allow the load and store to have different mode
9215         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
9216         or extraction instructions before trying the replacement.  Update
9217         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
9218
9219 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
9220
9221         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
9222         to their natural alignment to avoid store forwarding stalls.
9223
9224 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9225
9226         PR target/27946
9227         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
9228         encouraging but not allowing gprs for input;
9229         change the input constraint to !f#r.
9230         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
9231         gprs for output;
9232         change the output constraint to !f#r.
9233
9234 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
9235
9236         PR target/13958
9237         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
9238         corresponding post-reload splitters.
9239         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
9240         when x87 FP math is selected.
9241         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
9242         New function prototype.
9243         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
9244         unreachable function to ease macroization of insn patterns.
9245
9246 2008-03-21  Martin Jambor  <mjambor@suse.cz>
9247
9248         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
9249         reference dumps if ddr is NULL or dependence is unknown.
9250
9251 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9252
9253         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
9254         unsigned extension into account.
9255         (ATOMIC_COMPARE_AND_SWAP): Likewise.
9256         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
9257         Do computations on a scratch register.
9258
9259 2008-03-21  Richard Guenther  <rguenther@suse.de>
9260
9261         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
9262         Use is_gimple_min_invariant instead of TREE_INVARIANT.
9263         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
9264         * tree-ssa-dom.c (record_equality): Likewise.
9265         * tree-inline.c (copy_body_r): Likewise.
9266         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
9267         TREE_INVARIANT.
9268
9269 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9270
9271         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
9272         as 'delete_unused' argument.
9273
9274 2008-03-20  Richard Guenther  <rguenther@suse.de>
9275
9276         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
9277         special casing of constant qualifiers.
9278         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
9279         care about them in general.
9280         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
9281         regardless of their type.
9282         (fold_stmt_r): Forcefully fold *& if we end up with that.
9283
9284 2008-03-20  Paul Brook  <paul@codesourcery.com>
9285
9286         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
9287         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
9288         linker flags.
9289         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
9290         definition.
9291         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
9292         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
9293
9294 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
9295
9296         * common.opt (Wmudflap): New option.
9297         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
9298         (mx_register_decls): Likewise.
9299         (mudflap_finish_file): Likewise.
9300         * doc/invoke.texi: Document -Wno-mudflap.
9301
9302 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
9303
9304         * c-format.c (replace_format_name_to_system_name): New.
9305         (cmp_attribs): New.
9306         (convert_format_name_to_system_name): New.
9307         (decode_format_attr): Add use of convert_format_name_to_system_name.
9308         (format_types_orig): Add gnu_ prefix to names.
9309         (check_format_info_main): Special treating of \0 escaped names for
9310         supporting multi-character format specifiers as I32, I64.
9311         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
9312         (gnu_target_overrides_format_attributes): New.
9313         * c-format.h: Add structure target_ovr_attr to hold
9314         system specific formatter names.
9315         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
9316         msformat-c.o file to c_target_objs and cxx_target_objs.
9317         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
9318         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
9319         (TARGET_N_FORMAT_TYPES): New.
9320         * config/i386/msformat-c.c: New.
9321         * config/i386/t-cygming: Add build rule for msformat-c.o.
9322         * doc/extend.texi: Add new format names gnu_* and ms_* and
9323         further details.
9324         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
9325
9326 2008-03-20  Ira Rosen  <irar@il.ibm.com>
9327
9328         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
9329         optimizations turned on under -O3.
9330         (ftree-vectorize): Add that the flag is turned on with -O3.
9331
9332 2008-03-20  Ben Elliston  <bje@au.ibm.com>
9333
9334         * regmove.c (try_auto_increment): Fix spelling error in comment.
9335         * final.c (final_scan_insn): Likewise.
9336
9337 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
9338
9339         PR target/14552
9340         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
9341         allocator preferences for "y" and "r" class registers.
9342         ("*mov<mode>_internal"): Ditto.
9343         ("*movv2sf_internal_rex64"): Ditto.
9344         ("*movv2sf_internal"): Ditto.
9345
9346 2008-03-19  Michael Matz  <matz@suse.de>
9347
9348         PR middle-end/35616
9349         * calls.c (expand_call): Check overlap of arguments with call
9350         address for sibcalls.
9351
9352 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
9353
9354         PR target/35496
9355         * stor-layout.c (update_alignment_for_field): Set minimum alignment
9356         of the underlying type of a MS bitfield layout to the natural
9357         alignment of the type.
9358
9359 2008-03-19  Jan Hubicka  <jh@suse.cz>
9360
9361         PR other/35094
9362         * toplev.c (decode_d_option): Handle all CPP flags.
9363         * tree-vrp.c: Update tree_pass descriptors.
9364         * regrename.c: Update tree_pass descriptors.
9365         * fwprop.c: Update tree_pass descriptors.
9366         * doc/invoke.texi: Remove documentation of dropped -d? flags.
9367         * tree-into-ssa.c: Update tree_pass descriptors.
9368         * tree-dump.c: Update tree_pass descriptors.
9369         * tree-complex.c: Update tree_pass descriptors.
9370         * tree-dump.h: Update tree_pass descriptors.
9371         * see.c: Update tree_pass descriptors.
9372         * cgraphbuild.c: Update tree_pass descriptors.
9373         * tracer.c: Update tree_pass descriptors.
9374         * tree-loop-distribution.c: Update tree_pass descriptors.
9375         * cgraph.c: Update tree_pass descriptors.
9376         * postreload-gcse.c: Update tree_pass descriptors.
9377         * postreload.c: Update tree_pass descriptors.
9378         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
9379         * tree-tailcall.c: Update tree_pass descriptors.
9380         * tree-pass.h (tree_opt_pass): Rename to ...
9381         (opt_pass) ... this one; add "type" field and remove letter field.
9382         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
9383         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
9384         all_lowering_passes): Update declaration.
9385         * ipa-cp.c: Update tree_pass descriptors.
9386         * final.c: Update tree_pass descriptors.
9387         * omp-low.c: Update tree_pass descriptors.
9388         * tree-ssa-dse.c: Update tree_pass descriptors.
9389         * ipa-reference.c: Update tree_pass descriptors.
9390         * tree-ssa-uncprop.c: Update tree_pass descriptors.
9391         * auto-inc-dec.c: Update tree_pass descriptors.
9392         * reorg.c: Update tree_pass descriptors.
9393         * cgraphunit.c: Update tree_pass descriptors.
9394         * tree-ssa-copyrename.c: Update tree_pass descriptors.
9395         * tree-ssa-ccp.c: Update tree_pass descriptors.
9396         * df-core.c: Update tree_pass descriptors.
9397         * mode-switching.c: Update tree_pass descriptors.
9398         * tree-nomudflap.c: Update tree_pass descriptors.
9399         * modulo-sched.c: Update tree_pass descriptors.
9400         * ipa-pure-const.c: Update tree_pass descriptors.
9401         * cse.c: Update tree_pass descriptors.
9402         * web.c: Update tree_pass descriptors.
9403         * tree-stdarg.c: Update tree_pass descriptors.
9404         * tree-ssa-math-opts.c: Update tree_pass descriptors.
9405         * tree-ssa-dom.c: Update tree_pass descriptors.
9406         * tree-nrv.c: Update tree_pass descriptors.
9407         * tree-ssa-alias.c: Update tree_pass descriptors.
9408         * loop-init.c: Update tree_pass descriptors.
9409         * gimple-low.c: Update tree_pass descriptors.
9410         * ipa-inline.c: Update tree_pass descriptors.
9411         * tree-ssa-sink.c: Update tree_pass descriptors.
9412         * global.c: Update tree_pass descriptors.
9413         * ifcvt.c: Update tree_pass descriptors.
9414         * jump.c: Update tree_pass descriptors.
9415         * predict.c: Update tree_pass descriptors.
9416         * tree-ssa-loop.c: Update tree_pass descriptors.
9417         * recog.c: Update tree_pass descriptors.
9418         * dse.c: Update tree_pass descriptors.
9419         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
9420         * tree-eh.c: Update tree_pass descriptors.
9421         * regmove.c: Update tree_pass descriptors.
9422         * local-alloc.c
9423         * function.c: Update tree_pass descriptors.
9424         * tree-vectorizer.c: Update tree_pass descriptors.
9425         * gcse.c: Update tree_pass descriptors.
9426         * ipa-type-escape.c: Update tree_pass descriptors.
9427         * tree-if-conv.c: Update tree_pass descriptors.
9428         * init-regs.c: Update tree_pass descriptors.
9429         * ipa.c: Update tree_pass descriptors.
9430         * tree-ssa-phiopt.c: Update tree_pass descriptors.
9431         * rtl-factoring.c: Update tree_pass descriptors.
9432         * lower-subreg.c: Update tree_pass descriptors.
9433         * bt-load.c: Update tree_pass descriptors.
9434         * tree-dfa.c: Update tree_pass descriptors.
9435         * except.c: Update tree_pass descriptors.
9436         * emit-rtl.c: Update tree_pass descriptors.
9437         * cfgexpand.c: Update tree_pass descriptors.
9438         * tree-cfgcleanup.c: Update tree_pass descriptors.
9439         * cfgcleanup.c: Update tree_pass descriptors.
9440         * tree-ssa-pre.c: Update tree_pass descriptors.
9441         * tree-sra.c: Update tree_pass descriptors.
9442         * tree-mudflap.c: Update tree_pass descriptors.
9443         * tree-ssa-copy.c: Update tree_pass descriptors.
9444         * cfglayout.c: Update tree_pass descriptors.
9445         * tree-ssa-forwprop.c: Update tree_pass descriptors.
9446         * tree-ssa-dce.c: Update tree_pass descriptors.
9447         * tree-ssa.c: Update tree_pass descriptors.
9448         * regclass.c: Update tree_pass descriptors.
9449         * integrate.c: Update tree_pass descriptors.
9450         * tree-optimize.c: Update tree_pass descriptors.
9451         * tree-ssa-phiprop.c: Update tree_pass descriptors.
9452         * tree-object-size.c: Update tree_pass descriptors.
9453         * combine.c: Update tree_pass descriptors.
9454         * tree-outof-ssa.c: Update tree_pass descriptors.
9455         * bb-reorder.c: Update tree_pass descriptors.
9456         * stack-ptr-mod.c: Update tree_pass descriptors.
9457         * var-tracking.c: Update tree_pass descriptors.
9458         * tree-profile.c: Update tree_pass descriptors.
9459         * tree-vect-generic.c: Update tree_pass descriptors.
9460         * reg-stack.c: Update tree_pass descriptors.
9461         * sched-rgn.c: Update tree_pass descriptors.
9462         * tree-ssa-structalias.c: Update tree_pass descriptors.
9463         * tree-cfg.c: Update tree_pass descriptors.
9464         * passes.c (current_pass): Update declaration.
9465         (finish_optimization_passes): Update.
9466         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
9467         (register_one_dump_file, register_dump_files_1, next_pass_1):
9468         Update arguments.
9469         (init_optimization_passes): Update handling of new types.
9470         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
9471         * ipa-struct-reorg.c: Update tree_pass descriptors.
9472         * tree-ssa-reassoc.c: Update tree_pass descriptors.
9473         * combine-stack-adj.c: Update tree_pass descriptors.
9474         * cfgrtl.c: Update tree_pass descriptors.
9475         * dce.c: Update tree_pass descriptors.
9476         * tree-ssanames.c: Update tree_pass descriptors.
9477
9478 2008-03-19  Richard Guenther  <rguenther@suse.de>
9479
9480         PR middle-end/35609
9481         * tree-ssa.c (walk_data): New structure.
9482         (warn_uninitialized_var): If not always_executed warn with "maybe"
9483         instead of "is".
9484         (execute_early_warn_uninitialized): Compute post-dominators.
9485         Initialize always_executed before processing each basic block.
9486
9487 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
9488
9489         PR target/35504
9490         * config/i386/i386.c (x86_this_parameter): Calculate correct location
9491         of "this" pointer when "regparm = N" or "fastcall" is in effect.
9492
9493 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9494
9495         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
9496
9497 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
9498
9499         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
9500         is true.
9501         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
9502         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
9503         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
9504         target after ignore has been set, and move there also the commputation
9505         of subtarget and original_target.
9506         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
9507         (LANG_HOOKS_INITIALIZER): Remove it.
9508         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
9509
9510 2008-03-18  Richard Guenther  <rguenther@suse.de>
9511
9512         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
9513         found an expression with constants, note that in the VN for the lhs.
9514         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
9515         fold them to constants if possible.  Run cleanup_cfg if done so.
9516         (execute_pre): Return todo.
9517         (do_pre): Likewise.
9518         (execute_fre): Likewise.
9519         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
9520         of constants.
9521         (get_prop_source_stmt): Look through pointer conversions.
9522
9523 2008-03-18  Jan Hubicka  <jh@suse.cz>
9524
9525         * tree-pretty-print.c: Include predict.h.
9526         (dump_generic_node): Dump predictor.
9527         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
9528         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
9529         * gimple-low.c (lower_stmt): Likewise.
9530         * expr.c (expand_expr_real): Likewise.
9531         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
9532         them.
9533         (build_predict_expr, build_predict_expr): New.
9534         * predict.h (predictor_name, build_predict_expr): Update.
9535         * c-typeck.c (c_finish_bc_stmt): Add prediction.
9536         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
9537         * predict.def (PRED_CONTINUE): Update hitrate.
9538         * tree.def (PREDICT_EXPR): Define.
9539         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
9540         do not handle BIND_EXPR.
9541         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
9542         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
9543         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
9544         operands.
9545
9546 2008-03-18  Michael Matz  <matz@suse.de>
9547
9548         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
9549
9550 2008-03-18  Richard Guenther  <rguenther@suse.de>
9551
9552         * tree-gimple.h (is_gimple_invariant_address): Declare.
9553         (is_gimple_constant): Likewise.
9554         * tree-gimple.c (is_gimple_constant): New function.
9555         (is_gimple_invariant_address): Likewise.
9556         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
9557         and is_gimple_invariant_address.
9558         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
9559         previous change.
9560         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
9561         an addressable base.
9562
9563 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
9564
9565         PR middle-end/35611
9566         * gimplify.c (gimplify_expr): Gimplify second operand of
9567         OMP_ATOMIC_LOAD.
9568
9569 2008-03-17  Richard Guenther  <rguenther@suse.de>
9570
9571         PR tree-optimization/19637
9572         * fold-const.c (fold_unary): Remove restrictions of removing
9573         intermediate pointer-conversions (P2)(P1)P0.
9574         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
9575         conversion to void pointer.
9576         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
9577
9578 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
9579
9580         PR debug/31510
9581         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
9582         emulated thread local variables.
9583
9584 2008-03-16  Richard Guenther  <rguenther@suse.de>
9585
9586         PR middle-end/35607
9587         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
9588         expand TREE_INVARIANT operations that are not gimple invariant.
9589
9590 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
9591
9592         * doc/extend.texi (Alignment): Say that the ABI controls
9593         the __alignof__ for non-strict-alignment targets rather
9594         than being a recommendation.
9595
9596 2008-03-15  Paul Brook  <paul@codesourcery.com>
9597
9598         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
9599         annotations.
9600         (arm_output_fn_unwind): Mark functions that can not be unwound.
9601
9602 2008-03-15  Paul Brook  <paul@codesourcery.com>
9603
9604         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
9605         extension instructions.
9606
9607 2008-03-15  Richard Guenther  <rguenther@suse.de>
9608
9609         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
9610         and fold constant aggregate refs.
9611         (fold_const_aggregate_ref): Handle string constants
9612         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
9613         (evaluate_stmt): Simplify now that ccp_fold folds constant
9614         aggregate refs.
9615
9616 2008-03-15  Paul Brook  <paul@codesourcery.com>
9617
9618         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
9619         (extzv): Use gen_extzv_t2.
9620         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
9621
9622 2008-03-15  Richard Guenther  <rguenther@suse.de>
9623
9624         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
9625         (fold_const_aggregate_ref): Likewise.
9626         (get_value): Return NULL if we don't have any values.
9627         (ccp_finalize): Set const_val to NULL after freeing it.
9628         * tree-flow.h (get_symbol_constant_value): Declare.
9629         (fold_const_aggregate_ref): Likewise.
9630         * tree-ssa-sccvn.c (try_to_simplify): Use them.
9631
9632 2008-03-15  Richard Guenther  <rguenther@suse.de>
9633
9634         PR middle-end/35593
9635         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
9636         to not produce negative array indices if not allowed.  Add
9637         parameter to indicate that.
9638         (maybe_fold_offset_to_component_ref): Allow negative array
9639         indices only for the first member of a structure.
9640         (maybe_fold_offset_to_reference): Allow negative array indices.
9641         (maybe_fold_stmt_addition): Likewise.
9642
9643 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
9644             Anatoly Sokolov <aesok@post.ru>
9645
9646         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
9647         (avr_arch): Add ARCH_AVR6.
9648         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
9649         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
9650         instead of fixed value 2.
9651         (print_operand_address): Use gs() asm specifier instead of pm().
9652         (avr_assemble_integer): (Ditto.).
9653         (avr_output_addr_vec_elt): (Ditto.).
9654         (print_operand): Handle "!" code.
9655         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
9656         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
9657         (AVR_HAVE_EIJMP_EICALL): Define.
9658         (AVR_3_BYTE_PC): Redefine.
9659         (AVR_2_BYTE_PC): (Ditto.).
9660         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
9661         (LINK_SPEC): Add atmega2560 and atmega2561.
9662         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
9663         (crtm2561.o).
9664         * config/avr/avr.md (call_insn): Use eicall instead of icall 
9665         for 3 byte PC devices.
9666         (call_value_insn): (Ditto.).
9667         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
9668         (indirect_jump): Use only for for 2 byte PC devices.
9669         (*tablejump): (Ditto.).
9670         (*indirect_jump_avr6): Add insn.
9671         (*tablejump_rjmp): Don't use for 3 byte PC devices.
9672         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
9673         instead of ijmp for 3 byte PC devices.
9674         (__tablejump2__): (Ditto.).
9675         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
9676         (MULITLIB_DIRNAMES): (Ditto.). 
9677         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
9678
9679 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
9680
9681         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
9682         "sse2_umulsidi3".  Use V1DI mode for operand 0.
9683         ("mmx_psadbw"): Use V1DI mode for operand 0.
9684         * config/i386/i386-modes.def (V1SI): New vector mode.
9685         * config/i386/i386.c (struct builtin_description)
9686         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
9687         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
9688         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
9689         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
9690         v1di_ftype_v8qi_v8qi type.
9691         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
9692
9693         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
9694         __builtin_ia32_pmuludq]: Fix the mode of return value.
9695
9696 2008-03-15  Richard Guenther  <rguenther@suse.de>
9697
9698         PR middle-end/35595
9699         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
9700         being a PHI_NODE.
9701
9702 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
9703         
9704         * doc/invoke.texi (Option Summary, Xtensa Options): Document
9705         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
9706         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
9707         unless TARGET_SERIALIZE_VOLATILE is enabled.
9708         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
9709         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
9710         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
9711
9712 2008-03-14  Richard Guenther  <rguenther@suse.de>
9713
9714         PR tree-optimization/34172
9715         * tree-flow.h (refs_may_alias_p): Declare.
9716         (get_single_def_stmt): Likewise.
9717         (get_single_def_stmt_from_phi): Likewise.
9718         (get_single_def_stmt_with_phi): Likewise.
9719         * tree-dfa.c (refs_may_alias_p): New function.
9720         (get_single_def_stmt): Likewise.
9721         (get_single_def_stmt_from_phi): Likewise.
9722         (get_single_def_stmt_with_phi): Likewise.
9723         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
9724         (vn_reference_lookup_1): New helper function.
9725         (vn_reference_lookup): Walk the virtual use-def chain to
9726         continue searching for a match if the def does not alias the
9727         reference we are looking for.
9728
9729 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
9730
9731         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
9732         archive and Perzl.  Update The Written Word listing.
9733
9734 2008-03-14  Richard Guenther  <rguenther@suse.de>
9735
9736         PR tree-optimization/34043
9737         PR tree-optimization/33989
9738         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
9739         when doing FRE.
9740         (bitmap_find_leader): Use extra argument to verify dominance
9741         relationship inside a basic-block.
9742         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
9743         (find_leader_in_sets): Adjust.
9744         (create_component_ref_by_pieces): Take extra argument for
9745         dominance check, handle lookup failures.
9746         (find_or_generate_expression): Likewise.
9747         (create_expression_by_pieces): Likewise.
9748         (insert_into_preds_of_block): Adjust.
9749         (create_value_expr_from): If asked for, verify all operands
9750         are in the blocks AVAIL_OUT set.
9751         (make_values_for_stmt): Check for SSA_NAMEs that are life
9752         over an abnormal edge.
9753         (compute_avail): Remove such check.
9754         (do_SCCVN_insertion): New function.
9755         (eliminate): If we do not find a leader suitable for replacement
9756         insert a replacement expression from SCCVN if available.
9757         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
9758         (struct vn_ssa_aux): Add needs_insertion flag.
9759         * tree-ssa-sccvn.c (may_insert): New global flag.
9760         (copy_reference_ops_from_ref): Value-number union member access
9761         based on its size, not type and member if insertion is allowed.
9762         (visit_reference_op_load): For a weak match from union type
9763         punning lookup a view-converted value and insert a SSA_NAME
9764         for that value if that is not found.
9765         (visit_use): Make dumps shorter.  Do not disallow value numbering
9766         SSA_NAMEs that are life over an abnormal edge to constants.
9767         (free_scc_vn): Release inserted SSA_NAMEs.
9768         (run_scc_vn): New flag to specify whether insertion is allowed.
9769         Process SSA_NAMEs in forward order.
9770         * tree-ssa-loop-im.c (for_each_index): Handle invariant
9771         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
9772         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
9773         pointer type to/from integral types that do not change the
9774         precision to regular conversions.
9775
9776 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
9777
9778         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
9779         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
9780         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
9781         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
9782         input arguments and the mode of return value.  Built-in functions
9783         that operate on whole 64-bit MMX register now use V1DI mode.
9784
9785 2008-03-13  Alon Dayan  <alond@il.ibm.com>
9786             Olga Golovanevsky  <olga@il.ibm.com>
9787
9788         PR tree-optimization/35041
9789         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
9790         to locate the right position in a statement.
9791
9792 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
9793
9794         PR target/34000
9795         PR target/35553
9796         * config/i386/xmmintrin.h:  Change all static inline functions to
9797         extern inline and add __gnu_inline__ attribute.
9798         * config/i386/bmintrin.h: Ditto.
9799         * config/i386/smmintrin.h: Ditto.
9800         * config/i386/tmmintrin.h: Ditto.
9801         * config/i386/mmintrin-common.h: Ditto.
9802         * config/i386/ammintrin.h: Ditto.
9803         * config/i386/emmintrin.h: Ditto.
9804         * config/i386/pmmintrin.h: Ditto.
9805         * config/i386/mmintrin.h: Ditto.
9806         * config/i386/mm3dnow.h: Ditto.
9807
9808 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
9809
9810         PR middle-end/35185
9811         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
9812         (lower_omp_2): New function.
9813         (lower_omp_1, lower_omp): Rewritten.
9814
9815 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
9816
9817         PR 35054
9818         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
9819         with the phrase "Microsoft Windows compilers".
9820         (Push/Pop Macro Pragmas): New subsection. Document
9821         #pragma push_macro and pragma pop_macro.
9822
9823 2008-03-12  Paul Brook  <paul@codesourcery.com>
9824
9825         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
9826
9827 2008-03-12  Paul Brook  <paul@codesourcery.com>
9828
9829         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
9830         (thumb2_alusi3_short): Exclude PLUS and MINUS.
9831         (thumb2_addsi_shortim): Rename ...
9832         (thumb2_addsi_short): ... to this.  Allow register operands.
9833         (thumb2_subsi_short): New pattern.
9834         (thumb2_one_cmplsi2_short,
9835         thumb2_negsi2_short): New patterns and peepholes.
9836
9837 2008-03-12  Paul Brook  <paul@codesourcery.com>
9838
9839         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
9840
9841 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
9842
9843         * config/i386/i386.md (int_cond): New code iterator.
9844         (fp_cond): Ditto.
9845         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
9846         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
9847         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
9848         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
9849         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
9850         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
9851         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
9852         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
9853
9854 2008-03-12  Paul Brook  <paul@codesourcery.com>
9855
9856         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
9857         instead of {arm,thumb}_compute_save_reg_mask.
9858         (output_return_instruction): Ditto.
9859         (thumb_unexpanded_epilogue): Ditto.
9860         (thumb1_expand_prologue): Ditto.
9861         (thumb1_output_function_prologue): Ditto.
9862         (arm_set_return_address): Ditto.
9863         (thumb_set_return_address): Ditto.
9864         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
9865         regs to achieve stack alignment.
9866         (thumb1_compute_save_reg_mask): Fix compiler warning.
9867         (arm_output_epilogue): Use offsets->saved_regs_mask.
9868         Adjust stack pointer by poping call clobered registers.
9869         (arm_expand_prologue): Use offsets->saved_regs_mask.
9870         Adjust stack pointer by pushing extra registers.
9871         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
9872
9873 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
9874
9875         PR tree-opt/35422
9876         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
9877         conversion to the operands of a multiplication.
9878
9879 2008-03-12  Richard Guenther  <rguenther@suse.de>
9880
9881         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
9882         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
9883         * timevar.def (TV_TREE_PHIPROP): Add.
9884         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
9885         pass description.  Use TV_TREE_PHIPROP.
9886         * tree-ssa-forwprop.c: Remove phiprop code.
9887
9888 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
9889
9890         PR middle-end/35549
9891         * omp-low.c (maybe_lookup_decl): Constify first argument.
9892         (use_pointer_for_field): Change last argument from bool to
9893         omp_context *.  Disallow shared copy-in/out in nested
9894         parallel if decl is shared in outer parallel too.
9895         (build_outer_var_ref, scan_sharing_clauses,
9896         lower_rec_input_clauses, lower_copyprivate_clauses,
9897         lower_send_clauses, lower_send_shared_vars): Adjust callers.
9898
9899 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
9900             Ira Rosen  <irar@il.ibm.com>
9901
9902         * tree-vectorizer.c (free_stmt_vec_info): New function.
9903         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
9904         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
9905         * tree-vectorizer.h (free_stmt_vec_info): Declare.
9906         * tree-vect-transform.c (vectorizable_conversion): Free
9907         vec_oprnds0 if it was allocated.
9908         (vect_permute_store_chain): Remove unused VECs.
9909         (vectorizable_store): Free VECs that are allocated in the..
9910         function.
9911         (vect_transform_strided_load, vectorizable_load): Likewise.
9912         (vect_remove_stores): Simplify the code.
9913         (vect_transform_loop): Move code to vect_remove_stores().
9914         Call vect_remove_stores() and free_stmt_vec_info().
9915
9916 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9917
9918         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
9919         TARGET_HPUX.  Revise comment.
9920         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
9921         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
9922         Use sr4 variant of `be' instruction when not generating PIC code.
9923         (attr_length_call): Adjust for above change.
9924
9925 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9926
9927         * ipa-reference.c (static_execute): Remove module_statics_const and
9928         associated setting code.
9929
9930 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
9931
9932         PR target/35540
9933         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
9934         predicate for operand 1.
9935         (paritysi2_cmp): Use register_operand predicate for operand 2.
9936         Use earlyclobber modifier for operand 1.  Remove support for
9937         memory operands.
9938         (paritydi2_cmp): Use register_operand predicate for operand 3.
9939         Use earlyclobber modifier for operand 1.  Remove support for
9940         memory operands.
9941
9942 2008-03-11  Paul Brook  <paul@codesourcery.com>
9943             Vladimir Prus  <vladimir@codesourcery.com>
9944
9945         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
9946         (arm_compute_save_reg0_reg12_mask): Always
9947         check if register 11 must be saved.  Always safe hard frame pointer
9948         when frame_pointer_needeed.
9949         (arm_compute_save_reg_mask): Save IP and PC
9950         only with apcs frames.
9951         (arm_output_epilogue): Adjust Thumb2 codepath to
9952         be also invoked and work for ARM non-apcs frames.
9953         (arm_expand_prologue): Don't bother saving IP
9954         for non-apcs frame, since it's not clobbered by
9955         prologue code.  Implement non-apcs frame
9956         layout.
9957
9958 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
9959
9960         PR rtl-optimization/35281
9961         * expr.c (convert_move): Use a new pseudo for the intermediate
9962         from_mode->word_mode result.
9963
9964 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
9965
9966         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
9967         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
9968         * toplev.c (compile_file): Don't call it.
9969
9970 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
9971
9972         PR middle-end/35526
9973         * expr.c (store_expr): Call emit_block_move if the mode
9974         of "temp" RTX is BLKmode.
9975
9976 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9977             Richard Guenther  <rguenther@suse.de>
9978
9979         PR tree-optimization/31358
9980         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
9981         the step with a NULL_TREE.
9982         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
9983         to sizetype if type is a pointer type.
9984         (add_candidate_1): Don't convert the base and step to
9985         the generic type if the orginal type is a pointer type.
9986         (add_iv_value_candidates): Use sizetype for the step
9987         if type is a pointer type.
9988         (cand_value_at): Likewise.
9989         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
9990         for pointer types.
9991         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
9992         Don't convert the tem affine to the type.
9993         (add_elt_to_tree): Use sizetype for the step if a pointer.
9994         Use POINTER_PLUS_EXPR for pointers.
9995         (aff_combination_to_tree): Use sizetype for the step if a
9996         pointer.
9997
9998 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
9999
10000         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
10001         Remove commutativity hint.
10002
10003 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
10004
10005         PR c/35438
10006         PR c/35439
10007         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
10008         errorneous type.  Check that v is a VAR_DECL.
10009
10010         PR middle-end/35099
10011         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
10012
10013 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
10014
10015         PR tree-optimization/35494
10016         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
10017         may be overriden at link and run time.
10018
10019 2008-03-10  Richard Guenther  <rguenther@suse.de>
10020
10021         PR tree-optimization/34677
10022         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
10023         (poolify_tree): Likewise.
10024         (modify_expr_template): Likewise.
10025         (poolify_modify_stmt): Likewise.
10026         (insert_fake_stores): Handle all component-ref style stores
10027         in addition to INDIRECT_REF.  Also handle complex types.
10028         Do not poolify the inserted load.
10029         (realify_fake_stores): Do not rebuild the tree but only
10030         make it a SSA_NAME copy.
10031         (init_pre): Remove initialzation of modify_expr_template.
10032         Do not allocate modify_expr_node_pool.
10033         (fini_pre): Do not free modify_expr_node_pool.
10034
10035 2008-03-10  Paul Brook  <paul@codesourcery.com>
10036
10037         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
10038         to avoid conflicts.
10039
10040 2008-03-10  Paul Brook  <paul@codesourcery.com>
10041             Mark Shinwell  <shinwell@codesourcery.com>
10042
10043         * config/arm/cortex-r4.md: New.
10044         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
10045         insn attributes.
10046         * config/arm/arm.md: Include cortex-r4.md.
10047         (insn): Add smmls, sdiv and udiv values.
10048         (generic_sched): Don't use generic scheduling for Cortex-R4.
10049         (arm_issue_rate): New function.
10050         (TARGET_SCHED_ISSUE_RATE): Define.
10051
10052 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
10053
10054         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
10055
10056 2008-03-10  Richard Guenther  <rguenther@suse.de>
10057
10058         * tree-ssa-pre.c (get_sccvn_value): Simplify.
10059         (compute_avail): Do not add stmt uses to AVAIL_OUT.
10060
10061 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
10062
10063         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
10064         Set default to true.
10065
10066 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10067
10068         * c.opt (Wsynth): Deprecate.
10069         * doc/invoke.texi (Option Summary, Warning Options): Document
10070         -Wno-format-contains-nul.
10071
10072 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
10073
10074         PR target/35496
10075         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
10076         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
10077
10078 2008-03-09  Ira Rosen  <irar@il.ibm.com>
10079
10080         * config/rs6000/rs6000.c (builtin_description): Rename vector
10081         left shift operations.
10082         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
10083         (altivec_vsl<VI_char>): Rename to ...
10084         (ashl<mode>3): ... new name.
10085         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
10086         gen_ashlv4si3.
10087         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
10088
10089 2008-03-08  Richard Guenther  <rguenther@suse.de>
10090
10091         * coverage.h (tree_coverage_counter_addr): Declare.
10092         * coverage.c (tree_coverage_counter_addr): New function.
10093         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
10094         before using again.
10095         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
10096         (tree_gen_one_value_profiler): Likewise.
10097         (tree_gen_ic_profiler): Likewise.
10098         (tree_gen_average_profiler): Likewise.
10099         (tree_gen_ior_profiler): Likewise.
10100
10101 2008-03-08  Richard Guenther  <rguenther@suse.de>
10102
10103         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
10104         (vn_binary_op_insert): Likewise.
10105         (vn_unary_op_lookup): Likewise.
10106         (vn_unary_op_insert): Likewise.
10107         (vn_nary_op_lookup): Declare.
10108         (vn_nary_op_insert): Likewise.
10109         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
10110         and binary hashes, use a single obstack for unary_op_pool
10111         and binary_op_pool.
10112         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
10113         a single struct vn_nary_op_s.  Store tree code length and
10114         a variable number of operands.
10115         (struct vn_reference_op_struct): Remove unused op2.
10116         (vn_reference_op_eq): Do not compare op2.
10117         (vn_reference_op_compute_hash): Do not compute hash of op2.
10118         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
10119         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
10120         with vn_nary_op_compute_hash.
10121         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
10122         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
10123         vn_nary_op_lookup.
10124         (vn_unary_op_insert, vn_binary_op_insert): Replace with
10125         vn_nary_op_insert.
10126         (visit_unary_op): Call nary functions.
10127         (visit_binary_op): Likewise.
10128         (process_scc): Adjust for struct vn_tables_s changes.
10129         (allocate_vn_table): Likewise.
10130         (free_vn_table): Likewise.
10131         * tree-vn.c (vn_add): Call nary functions.
10132         (vn_lookup): Likewise.
10133
10134 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
10135
10136         PR target/35498
10137         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
10138         wdst back after sync_compare_and_swapqhi_internal.
10139
10140 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
10141
10142         PR target/22152
10143         * config/i386/i386-modes.def (V1DI): New vector mode.
10144         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
10145         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
10146         (MMXMODE248): Ditto.
10147         (MMXMODE): Add V1DI mode.
10148         (mmxvecsize): Change DI mode to V1DI mode.
10149         ("mov<mode>): Use MMXMODEI8 mode iterator.
10150         ("*mov<mode>_internal_rex64"): Ditto.
10151         ("*mov<mode>_internal"): Ditto.
10152         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
10153         ("mmx_sub<mode>3"): Ditto.
10154         ("mmx_adddi3"): Remove insn pattern.
10155         ("mmx_subdi3"): Ditto.
10156         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
10157         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
10158         ("mmx_ashl<mode>3"): Ditto.
10159         ("mmx_lshrdi3"): Remove insn pattern.
10160         ("mmx_ashldi3"): Ditto.
10161         * config/i386/i386.c (classify_argument): Handle V1DImode.
10162         (function_arg_advance_32): Ditto.
10163         (function_arg_32): Ditto.
10164         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
10165         mmx_addv1di3 insn pattern.
10166         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
10167         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
10168         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
10169         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
10170         Remove definitions of built-in functions.
10171         (V1DI_type_node): New node.
10172         (v1di_ftype_v1di_int): Ditto.
10173         (v1di_ftype_v1di_v1di): Ditto.
10174         (v2si_ftype_v2si_si): Ditto.
10175         (v4hi_ftype_v4hi_di): Remove node.
10176         (v2si_ftype_v2si_di): Ditto.
10177         (ix86_init_mmx_sse_builtins): Handle V1DImode.
10178         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
10179         Redefine builtins using def_builtin_const with *_ftype_*_int node.
10180         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
10181         Add new builtins using def_builtin_const.
10182         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
10183         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
10184         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
10185         * config/i386/mmintrin.h (__v1di): New typedef.
10186         (_mm_add_si64): Cast arguments to __v1di type.
10187         (_mm_sub_si64): Ditto.
10188         (_mm_sll_pi16): Cast __count to __v4hi type.
10189         (_mm_sll_pi32): Cast __count to __v2si type.
10190         (_mm_sll_si64): Cast arguments to __v1di type.
10191         (_mm_srl_pi16): Cast __count to __v4hi type.
10192         (_mm_srl_pi32): Cast __count to __v2si type.
10193         (_mm_srl_si64): Cast arguments to __v1di type.
10194         (_mm_sra_pi16): Cast __count to __v4hi type.
10195         (_mm_sra_pi32): Cast __count to __v2si type.
10196         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
10197         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
10198         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
10199         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
10200         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
10201         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
10202         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
10203         (_mm_srai_pi32): Use __builtin_ia32_psradi.
10204         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
10205         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
10206         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
10207         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
10208
10209 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
10210
10211         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
10212
10213 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
10214
10215         PR target/35373
10216         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
10217         reg+const addressing for Altivec modes.  Don't generate reg+reg
10218         addressing for TFmode or TDmode quantities.
10219
10220 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
10221
10222         * c-common.c (vector_types_convertible_p): Call langhook
10223         instead of comptypes.
10224
10225 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10226
10227         PR tree-opt/35402
10228         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
10229         integral and scalar float variables which have a
10230         NULL DECL_INITIAL.
10231
10232 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
10233
10234         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
10235         dwarf_register_span hook when emitting unwind information for
10236         register-to-memory saves.
10237         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
10238         (rs6000_frame_related): Remove call to spe_synthesize_frame.
10239
10240 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
10241
10242         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
10243         for the same VAR_DECL.
10244
10245 2008-03-06  Tom Tromey  <tromey@redhat.com>
10246
10247         * treelang: Delete.
10248         * doc/standards.texi (Standards): Don't mention treelang.
10249         * doc/invoke.texi (Overall Options): Don't mention treelang.
10250         * doc/install.texi (Prerequisites): Don't mention bison or
10251         treelang.
10252         (Configuration): Don't mention treelang.
10253         (Building): Likewise.
10254         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
10255
10256 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
10257
10258         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
10259         word-extractions out of a multi-word object.
10260
10261 2008-03-06  Richard Guenther  <rguenther@suse.de>
10262
10263         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
10264         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
10265         result type and precision.
10266         * expr.c (get_inner_reference): Set unsignedp based on the result
10267         type of BIT_FIELD_REF.
10268         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
10269         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
10270         (try_instantiate_multiple_fields): Likewise.  Use the correct type
10271         for BIT_FIELD_REF.
10272         (sra_build_assignment): Likewise.
10273         (sra_build_elt_assignment): Likewise.
10274         (sra_explode_bitfield_assignment): Likewise.
10275         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
10276         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
10277         set BIT_FIELD_REF_UNSIGNED.
10278         (vectorizable_load): Likewise.
10279
10280 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
10281
10282         * cse.c (cse_extended_basic_block): Invalidate artificial defs
10283         at bb start.
10284
10285 2008-03-06  Richard Guenther  <rguenther@suse.de>
10286
10287         * alias.c (struct alias_set_entry): Move has_zero_child field
10288         to pack with alias_set.
10289
10290 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
10291
10292         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
10293         32bit host.
10294
10295 2008-03-05  Ian Lance Taylor  <iant@google.com>
10296
10297         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
10298
10299 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
10300
10301         * fwprop.c (update_df): Support width and offset parameters of
10302         df_ref_create.
10303         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
10304         global_conflicts): Change DF_REF_EXTRACT to either
10305         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
10306         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
10307         * df-scan.c (df_ref_record, df_defs_record,
10308         df_ref_create_structure, df_def_record_1, df_uses_record,
10309         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
10310         df_bb_refs_collect, df_entry_block_defs_collect,
10311         df_exit_block_uses_collect): Support new width and offset fields.
10312         (ref_extract_pool): New storage pool.
10313         (df_free_ref): New function.
10314         (df_reg_chain_unlink, df_free_collection_rec,
10315         df_sort_and_compress_refs): Call df_free_ref.
10316         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
10317         of df_ref_extract.
10318         (df_ref_create_structure): Allocate df_ref_extract if offset and
10319         width fields are used.
10320         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
10321         (df_uses_record): Get offset and width from ZERO_EXTRACT 
10322         and SIGN_EXTRACT.
10323         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
10324         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
10325         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
10326         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
10327         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
10328         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
10329         (df_ref_extract): New structure.
10330         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
10331         (df_ref_create): Add width and offset parameters.
10332         
10333 2008-03-05  Richard Guenther  <rguenther@suse.de>
10334
10335         * tree-ssa-structalias.c (get_constraint_for_component_ref):
10336         Use ranges_overlap_p.
10337         (offset_overlaps_with_access): Rename
10338         to ranges_overlap_p and move ...
10339         * tree-flow-inline.h (ranges_overlap_p): ... here.
10340
10341         * tree.h (get_inner_reference, handled_component_p): Update
10342         comments.
10343
10344         * tree.h (record_component_aliases, get_alias_set,
10345         alias_sets_conflict_p, alias_sets_must_conflict_p,
10346         objects_must_conflict_p): Move declarations ...
10347         * alias.h (record_component_aliases, get_alias_set,
10348         alias_sets_conflict_p, alias_sets_must_conflict_p,
10349         objects_must_conflict_p): ... here.
10350         Include coretypes.h.
10351         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
10352
10353 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
10354
10355         * cfg.c: Include tree-flow.h.
10356         (remove_edge_raw): Call redirect_edge_var_map_clear.
10357         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
10358         * tree-flow-inline.h (redirect_edge_var_map_def): New.
10359         (redirect_edge_var_map_result): New.
10360         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
10361         PENDING_STMT use with redirect_edge_var_map_*.
10362         * tree-ssa.c (edge_var_maps): New definition.
10363         (redirect_edge_var_map_add): New.
10364         (redirect_edge_var_map_clear): New.
10365         (redirect_edge_var_map_dup): New.
10366         (redirect_edge_var_map_vector): New.
10367         (redirect_edge_var_map_destroy): New.
10368         (ssa_redirect_edge): Replace PENDING_STMT use with
10369         redirect_edge_var_map_*.
10370         (flush_pending_stmts): Same.
10371         (delete_tree_ssa): Destroy edge var map.
10372         * tree-flow.h (struct _edge_var_map): New.
10373         Define edge_var_map vector type.
10374         Declare redirect_edge_var_map_* prototypes.
10375         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
10376         * tree-cfg.c (reinstall_phi_args): Replace
10377         PENDING_STMT use with redirect_edge_var_map_*.
10378
10379 2008-03-05  Richard Guenther  <rguenther@suse.de>
10380
10381         PR tree-optimization/35472
10382         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
10383         whose single use_stmt has a overlapping set of loaded and
10384         stored symbols as that use_stmt might be a noop assignment then.
10385
10386 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
10387
10388         * gthr-rtems.h: Implement __gthread_mutex_destroy.
10389
10390 2008-03-05  Richard Guenther  <rguenther@suse.de>
10391
10392         PR c++/35336
10393         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
10394         should be constants.
10395         * tree-cfg.c (verify_expr): Verify it.
10396         * fold-const.c (fold_truthop): Remove code generating
10397         BIT_FIELD_REFs of structure bases.
10398         (fold_binary): Likewise.
10399         (fold_ternary): Position and size of BIT_FIELD_REFs are
10400         always host integers.
10401         (make_bit_field_ref): Remove.
10402         (optimize_bit_field_compare): Remove.
10403         (all_ones_mask_p): Remove.
10404
10405 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
10406
10407         PR gcc/33009
10408         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
10409         (split_block_and_df_analyze): New. Split basic block and rebuild
10410         dataflow.
10411         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
10412         SPLIT_BLOCK.
10413         (split_pattern_seq): Likewise.
10414         (erase_matching_seqs): Likewise.
10415         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
10416
10417 2008-03-04  Geoff Keating  <geoffk@apple.com>
10418
10419         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
10420         declaration and code.
10421         (tree_invalid_nonnegative_warnv_p): Likewise.
10422
10423 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
10424
10425         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
10426         examples.  Truncate option-names then causing overfull hbox.
10427
10428 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10429
10430         PR target/35222
10431         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
10432         on hpux10.
10433         * configure: Rebuilt.
10434
10435 2008-03-04  Rafael Espindola  <espindola@google.com>
10436
10437         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
10438         (tree_unary_nonnegative_warnv_p): New.
10439         (tree_binary_nonnegative_warnv_p): New.
10440         (tree_single_nonnegative_warnv_p): New.
10441         (tree_invalid_nonnegative_warnv_p): New.
10442         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
10443
10444 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10445
10446         PR 28322
10447         * opts.c (handle_option): Postpone 'unknown option' errors only for
10448         warning options.
10449
10450 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
10451
10452         PR target/35453
10453         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
10454         (_SIDD_XXX): This.
10455
10456 2008-03-04  Rafael Espindola  <espindola@google.com>
10457
10458         * fold-const.c (tree_unary_nonzero_warnv_p): New.
10459         (tree_binary_nonzero_warnv_p): New.
10460         (tree_single_nonzero_warnv_p): New.
10461         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
10462
10463 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
10464
10465         PR middle-end/35456
10466         * fold-const.c (fold_cond_expr_with_comparison): Prevent
10467         transformations for modes that have signed zeros.
10468         * ifcvt.c (noce_try_abs): Ditto.
10469
10470 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
10471
10472         * config/i386/i386.c (override_options): Force
10473         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
10474
10475 2008-03-04  Jan Hubicka  <jh@suse.cz>
10476
10477         PR c++/35262
10478         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
10479         in last commit.
10480
10481 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
10482
10483         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
10484         label to probe the stack.
10485
10486 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
10487
10488         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
10489         (__gthr_win32_mutex_destroy): Declare.
10490         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
10491         __gthr_win32_mutex_destroy.
10492         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
10493
10494 2008-03-03  Jan Hubicka  <jh@suse.cz>
10495
10496         PR c++/35262
10497         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
10498         aggressive on inlining cold calls.
10499
10500 2008-03-03  Richard Guenther  <rguenther@suse.de>
10501
10502         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
10503         struct copies into the expression table.
10504         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
10505         (try_to_simplify): Likewise.
10506         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
10507         integral and pointer arguments which do not change the
10508         precision to NOP_EXPRs.
10509         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
10510         VIEW_CONVERT_EXPR case.
10511
10512 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
10513
10514         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
10515         defined in a loop at depth 0 is invariant.
10516         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
10517         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
10518         be called at loop depth 0.
10519
10520 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
10521
10522         PR driver/35420
10523         * gcc.c (process_command): Update copyright notice dates.
10524         * gcov.c (print_version): Likewise.
10525         * gcov-dump.c (print_version): Likewise.
10526         * mips-tfile.c (main): Likewise.
10527         * mips-tdump.c (main): Likewise.
10528
10529 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10530
10531         PR 24924
10532         * c-common.c (flag_permissive): Delete.
10533         (constant_expression_warnings): Check flags first.
10534         (constant_expression_error): New.
10535         * c-common.h (flag_permissive): Delete.
10536         (constant_expression_error): Declare.
10537         * flags.h (flag_permissive): Declare. Update description.
10538         * diagnostic.c (pedwarn): Update.
10539         (permerror): New.
10540         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
10541         (permissive_error_kind): New.
10542         * toplev.c (flag_permissive): Define. Update description.
10543         * toplev.h (permissive_error_kind): Declare.
10544         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
10545         (pedwarn_c90): Use pedantic_warning_kind.
10546         * c-opts.c (c_common_post_options): flag_permissive does not affect
10547         flag_pedantic_errors.
10548
10549 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
10550
10551         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
10552         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
10553         __absvsi2, __absvDI2): Use unsigned arithmetic.
10554
10555 2008-03-02  Andi Kleen  <ak@suse.de>
10556             Richard Guenther  <rguenther@suse.de>
10557
10558         * struct-equiv.c: Remove file.
10559         * cfg_cleanup.c (condjump_equiv_p): Remove.
10560         * Makefile.in (OBJS-common): Remove struct-equiv.o.
10561         (struct-equiv.o): Remove rule.
10562         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
10563         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
10564         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
10565
10566 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10567
10568         * ifcvt.c (noce_process_if_block): Try to handle only the then
10569         block if the else block exists but isn't suitable.
10570
10571 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
10572
10573         PR gcc/35063
10574         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
10575         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
10576         regression from previous patch.
10577
10578 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
10579
10580         PR gcc/35063
10581         * gthr.h: Add __gthread_mutex_destroy as a function that must be
10582         implemented.
10583         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
10584         * gthr-single.h (__gthread_mutex_destroy): Likewise.
10585         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
10586         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
10587         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
10588         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
10589         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
10590         (__gthread_mutex_destroy_function): Rename to
10591         __gthread_mutex_destroy.
10592         * gthr-dce.h (__gthread_mutex_destroy): Call
10593         pthread_mutex_destroy.
10594         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
10595         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
10596         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
10597
10598 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10599
10600         * df-scan.c (df_ref_chain_change_bb): Simplify.
10601         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
10602         set_block_for_insn if there's any change.
10603         * df.h ((df_insn_change_bb): Fix prototype.
10604         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
10605         df_insn_change_bb, don't call set_block_for_insn.
10606         * emit-rtl.c (reorder_insns): Likewise.
10607         * haifa-sched.c (move_insn): Likewise.
10608
10609 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10610
10611         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
10612
10613 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10614
10615         * tree-flow-inline.h (next_readonly_imm_use): Return
10616         NULL_USE_OPERAND_P after the end.
10617
10618 2008-03-01  Richard Guenther  <rguenther@suse.de>
10619
10620         PR tree-optimization/35411
10621         * tree-sra.c (sra_build_assignment): Split conversion to
10622         final type to a separate statement if we are not assigning
10623         to a register.
10624
10625 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
10626
10627         * fold-const.c (fold_convertible_p): Correct the logic to follow
10628         that in fold_convert().
10629
10630 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
10631
10632         PR c++/35315
10633         * tree-inline.c (build_duplicate_type): When we make a
10634         duplicate type, make it unique in the canonical types system.
10635
10636 2008-02-29  Tom Tromey  <tromey@redhat.com>
10637
10638         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
10639         input_file_stack_history, input_file_stack_restored): Remove.
10640         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
10641         * input.h (struct file_stack): Remove.
10642         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
10643         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
10644         Likewise.
10645         * diagnostic.h (struct diagnostic_context) <last_module>: Change
10646         type.
10647         (diagnostic_last_module_changed): Add 'map' argument.
10648         (diagnostic_set_last_function): Likewise.
10649         * diagnostic.c (undiagnostic_report_current_module): Iterate using
10650         line map, not input_file_stack.
10651         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
10652
10653 2008-02-29  Paul Brook  <paul@codesourcery.com>
10654
10655         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
10656
10657 2008-02-29  Paul Brook  <paul@codesourcery.com>
10658
10659         * config/arm/ieee754-df.S (muldf3): Use RET macros.
10660
10661 2008-02-29  Richard Guenther  <rguenther@suse.de>
10662
10663         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
10664         vn_lookup_or_add.
10665         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
10666         value for comparing for a store match.
10667         (simplify_unary_expression): Do nothing for SSA_NAMEs.
10668         (try_to_simplify): Do not do a full-blown reference lookup.
10669
10670 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
10671
10672         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
10673         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
10674
10675         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
10676
10677 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
10678
10679         * tree-loop-linear.c (try_interchange_loops): Compare memory access
10680         strides against cache sizes.
10681
10682 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
10683
10684         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
10685         constant to fpul.
10686
10687 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
10688
10689         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
10690         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
10691         is smaller than the original promoted value.
10692         (simplify_subreg): If OP is a SUBREG, try to preserve its
10693         SUBREG_PROMOTED_VAR_P information.
10694
10695 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
10696
10697         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
10698         (VN_INFO_GET): Allocate new objects on the obstack.
10699         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
10700         for rpo_numbers_temp, for consistency.
10701         (free_scc_vn): Free the obstack.
10702
10703 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
10704
10705         * doc/invoke.texi: Document -ftree-loop-distribution.
10706         * tree-loop-distribution.c: New.
10707         * tree-pass.h (pass_loop_distribution): New.
10708         * graphds.h (struct graph): Add htab_t indices.
10709         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
10710         * tree-vectorizer.c (rename_variables_in_loop): Extern.
10711         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
10712         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
10713         * tree-data-ref.c (debug_data_dependence_relations): New.
10714         (dump_data_dependence_relation): Also print data references.
10715         (free_data_ref): Extern.
10716         (same_access_functions): Moved...
10717         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
10718         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
10719         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
10720         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
10721         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
10722         (stmts_from_loop): Skip LABEL_EXPR.
10723         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
10724         New.
10725         (build_rdg): Initialize rdg->indices htab.
10726         (free_rdg, stores_from_loop, ref_base_address,
10727         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
10728         have_similar_memory_accesses_1, ref_base_address_1,
10729         remove_similar_memory_refs): New.
10730         * tree-data-ref.h: Depend on tree-chrec.h.
10731         (debug_data_dependence_relations, free_data_ref): Declared.
10732         (same_access_functions): ... here.
10733         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
10734         New.
10735         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
10736         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
10737         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
10738         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
10739         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
10740         rdg_vertex_for_stmt): Declared.
10741         (struct rdg_edge): Add level.
10742         (RDGE_LEVEL): New.
10743         (free_rdg, stores_from_loop, remove_similar_memory_refs,
10744         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
10745         Declared.
10746         (rdg_has_similar_memory_accesses): New.
10747         * tree-vect-analyze.c: Remove unused static decls.
10748         * lambda.h (dependence_level): New.
10749         * common.opt (ftree-loop-distribution): New.
10750         * tree-flow.h (mark_virtual_ops_in_bb, 
10751         slpeel_tree_duplicate_loop_to_edge_cfg,
10752         rename_variables_in_loop): Declared.
10753         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
10754         (OBJS-common): Add tree-loop-distribution.o.
10755         (tree-loop-distribution.o): New rule.
10756         * tree-cfg.c (mark_virtual_ops_in_bb): New.
10757         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
10758         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
10759
10760 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
10761
10762         PR target/33963
10763         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
10764         other than structures and unions.
10765
10766 2008-02-28  Richard Guenther  <rguenther@suse.de>
10767
10768         Revert:
10769         2008-02-26  Richard Guenther  <rguenther@suse.de>
10770
10771         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10772         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10773         (lookup_decl_from_uid): Declare.
10774         (remove_decl_from_map): Likewise.
10775         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10776         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10777         (decl_for_uid_map): New global hashtable mapping DECL_UID
10778         to the decl tree.
10779         (init_ttree): Allocate it.
10780         (insert_decl_to_uid_decl_map): New helper function.
10781         (make_node_stat): Insert new decls into the map.
10782         (copy_node_stat): Likewise.
10783         (lookup_decl_from_uid): New function.
10784         (remove_decl_from_map): Likewise.
10785         (print_decl_for_uid_map_statistics): New helper.
10786         (dump_tree_statistics): Call it.
10787
10788         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10789         (referenced_var_iterator): Adjust.
10790         (FOR_EACH_REFERENCED_VAR): Adjust.
10791         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10792         (num_referenced_vars): Adjust.
10793         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10794         (first_referenced_var): Remove.
10795         (end_referenced_vars_p): Likewise.
10796         (next_referenced_var): Likewise.
10797         (referenced_var_iterator_set): New helper function.
10798         * tree-dfa.c (referenced_var_lookup): Adjust.
10799         (referenced_var_check_and_insert): Likewise.
10800         (remove_referenced_var): Likewise.
10801         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10802         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10803         (verify_call_clobbering): Likewise.
10804         (verify_memory_partitions): Likewise.
10805         (init_tree_ssa): Allocate bitmap instead of hashtable for
10806         referenced_vars.
10807         (delete_tree_ssa): Adjust.
10808         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10809         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10810         (compute_tag_properties): Likewise.
10811         (set_initial_properties): Likewise.
10812         (find_partition_for): Likewise.
10813         (update_reference_counts): Likewise.
10814         (dump_may_aliases_for): Likewise.
10815         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10816         (add_call_clobber_ops): Likewise.
10817         (add_call_read_ops): Likewise.
10818         (get_asm_expr_operands): Likewise.
10819         * tree-into-ssa.c (dump_decl_set): Likewise.
10820         (update_ssa): Likewise.
10821         * tree-sra.c (scan_function): Likewise.
10822         (decide_instantiations): Likewise.
10823         (scalarize_parms): Likewise.
10824         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10825         (dsa_named_for): Likewise.
10826         * tree-ssa-structalias.c (update_alias_info): Likewise.
10827         (merge_smts_into): Likewise.
10828
10829 2008-02-27  David Daney  <ddaney@avtrex.com>
10830
10831         PR target/34409
10832         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
10833         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
10834         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
10835         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
10836         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
10837
10838 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
10839
10840         PR target/25477
10841         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
10842         (BUILT_IN_NEXTTOWARD): Remove.
10843         (BUILT_IN_NEXTTOWARDF): Ditto.
10844         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
10845         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
10846
10847 2008-02-27  Tom Tromey  <tromey@redhat.com>
10848
10849         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
10850         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
10851
10852 2008-02-27  Jan Beulich  <jbeulich@novell.com>
10853
10854         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
10855         update the respective field on newdecl.
10856
10857 2008-02-27  Revital Eres  <eres@il.ibm.com>
10858
10859         PR rtl-optimization/34999
10860         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
10861         crossing edges that ends with a call insn.
10862         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
10863         call insn and clear the EDGE_CROSSING flag of the crossing edge
10864         when fixing fallthru edges.
10865
10866 2008-02-27  Richard Guenther  <rguenther@suse.de>
10867
10868         PR middle-end/35390
10869         * fold-const.c (fold_unary): Return the correct argument,
10870         converted to the result type.
10871
10872 2008-02-27  Richard Guenther  <rguenther@suse.de>
10873
10874         PR middle-end/34971
10875         * expr.c (expand_expr_real_1): Assert on rotates that operate
10876         on partial modes.
10877         * fold-const.c (fold_binary): Use the types precision, not the
10878         bitsize of the mode if folding rotate expressions.  Build rotates
10879         only for full modes.
10880
10881 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
10882
10883         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
10884         and CPP_PRAGMA_EOL.
10885         * c-pragma.c (pragma_ns_name): New typedef.
10886         (registered_pp_pragmas): New variable.
10887         (c_pp_lookup_pragma): New function.
10888         (c_register_pragma_1): If flag_preprocess_only, do nothing
10889         for non-expanded pragmas, for expanded ones push pragma's
10890         namespace and name into registered_pp_pragmas vector.
10891         (c_invoke_pragma_handler): Register OpenMP pragmas even when
10892         flag_preprocess_only, don't register GCC pch_preprocess
10893         pragma if flag_preprocess_only.
10894         * c-opts.c (c_common_init): Call init_pragma even if
10895         flag_preprocess_only.
10896         * c-pragma.c (c_pp_lookup_pragma): New prototype.
10897         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
10898         cpp_register_pragma if flag_preprocess_only.
10899
10900 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10901
10902         PR c/28800
10903         * c-parser.c (c_parser_translation_unit): Warn for empty
10904         translation unit, not empty source file.
10905
10906 2008-02-26  Paul Brook  <paul@codesourcery.com>
10907
10908         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
10909         operand for Thumb-2.
10910         * config/arm/arm.h (reg_class): Add CORE_REGS.
10911         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
10912         (BASE_REG_CLASS): Use CORE_REGS.
10913         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
10914         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
10915         (REGNO_OK_FOR_INDEX_P): Exclude SP.
10916         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
10917         ARM_REGNO_OK_FOR_INDEX_P.
10918         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
10919         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
10920         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
10921         (ldm/stm peepholes): Ditto.
10922         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
10923         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
10924         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
10925         * config/arm/constraints.md: Enable "k" constraint on ARM.
10926
10927 2008-02-27  Ben Elliston  <bje@au.ibm.com>
10928
10929         * config/rs6000/rs6000.c: Annotate cache line size field in all
10930         instances of struct processor_costs.
10931
10932 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
10933
10934         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
10935         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
10936         jump_bypass): New counters.
10937         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
10938         * dce.c (gate_ud_dce): Same.
10939         (gate_fast_dce): Same.
10940         * dse.c (gate_dse1): New function.
10941         (gate_dse2): New function.
10942         (gate_dse): Merge results of new gate functions.
10943         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
10944         (gate_handle_jump_bypass): Add dbg_cnt.
10945         (gate_handle_gcse): Add dbg_cnt.
10946         * ifcvt.c (gate_handle_if_conversion): Same.
10947         (gate_handle_if_after_combine): Same.
10948         (gate_handle_if_after_reload): Same.
10949         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
10950
10951 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
10952
10953         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
10954         line sizes.
10955         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
10956
10957 2008-02-26  Jason Merrill  <jason@redhat.com>
10958
10959         PR c++/35315
10960         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
10961         alone if it's the naming decl for the type's main variant.
10962
10963 2008-02-26  Tom Tromey  <tromey@redhat.com>
10964
10965         * system.h (USE_MAPPED_LOCATION): Poison.
10966         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
10967         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
10968         (make_goto_expr_edges): Likewise.
10969         (remove_bb): Likewise.
10970         (execute_warn_function_return): Likewise.
10971         * basic-block.h (struct edge_def) <goto_locus>: Change type to
10972         location_t.
10973         * c-common.c (fname_decl): Remove old location code.
10974         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
10975         location code.
10976         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
10977         variant.
10978         (ASM_INPUT_SOURCE_LOCATION): Likewise.
10979         (gen_rtx_ASM_INPUT): Likewise.
10980         (gen_rtx_ASM_INPUT_loc): Likewise.
10981         (get_rtx_asm_OPERANDS): Remove.
10982         * cfglayout.c (insn_locators_alloc): Remove old location code.
10983         (set_curr_insn_source_location): Likewise.
10984         (curr_insn_locator): Likewise.
10985         * print-tree.c (print_node): Remove old location code.
10986         * tree-mudflap.c (mf_varname_tree): Remove old location code.
10987         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
10988         * cfgexpand.c (expand_gimple_cond_expr): Don't use
10989         location_from_locus.
10990         (construct_exit_block): Remove old location code.
10991         * emit-rtl.c (force_next_line_note): Remove old location code.
10992         * profile.c (branch_prob): Remove old location code.
10993         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
10994         LOC_LINE): Remove old-location variants.
10995         * langhooks.c (lhd_print_error_function): Remove old location
10996         code.
10997         * configure, config.in: Rebuilt.
10998         * configure.ac (--enable-mapped-location): Remove.
10999         * c-decl.c (c_init_decl_processing): Remove old location code.
11000         (finish_function): Likewise.
11001         * recog.c (decode_asm_operands): Remove old location code.
11002         * c-pch.c (c_common_read_pch): Remove old location code.
11003         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
11004         variants.
11005         * gimple-low.c (lower_function_body): Remove old location code.
11006         * toplev.c (unknown_location): Remove.
11007         (push_srcloc): Remove old-location variant.
11008         (process_options): Remove old location code.
11009         (lang_dependent_init): Likewise.
11010         * input.h (UNKNOWN_LOCATION): Move definition.
11011         (location_t): Undeprecate.
11012         (source_locus): Remove.
11013         (location_from_locus): Remove.
11014         (struct location_s): Remove.
11015         Remove all old-location code.
11016         (input_line, input_filename): Remove.
11017         * final.c (final_scan_insn): Remove old location code.
11018         * diagnostic.c (diagnostic_build_prefix): Remove
11019         USE_MAPPED_LOCATION test.
11020         * tree.h (gimple_stmt) <locus>: Now a location_t.
11021         (tree_exp) <locus>: Likewise.
11022         (DECL_IS_BUILTIN): Remove old-location variant.
11023         (annotate_with_file_line, annotate_with_locus): Likewise.
11024         (expr_locus, set_expr_locus): Update.
11025         * tree.c (build1_stat): Remove old location code.
11026         (last_annotated_node): Remove.
11027         (annotate_with_file_line): Remove old-location variant.
11028         (annotate_with_locus): Likewise.
11029         (expr_location): Remove old location code.
11030         (set_expr_location): Likewise.
11031         (expr_has_location): Likewise.
11032         (expr_locus): Likewise.
11033         (set_expr_locus): Likewise.
11034         (expr_filename): Don't use location_from_locus.
11035         (expr_lineno): Likewise.
11036         * rtl-error.c (location_for_asm): Remove old location code.
11037         * c-lex.c (cb_line_change): Remove old location code.
11038         (fe_file_change): Likewise.
11039         (cb_def_pragma): Likewise.
11040         (c_lex_with_flags): Likewise.
11041         * gengtype.c (do_typedef): Don't special-case location types.
11042         (define_location_structures): Remove.
11043         (main): Don't call define_location_structures.
11044         * tree-pretty-print.c (dump_implicit_edges): Remove old location
11045         code.
11046
11047 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11048
11049         PR 26264
11050         * builtins.def (BUILT_IN_STDARG_START): Remove.
11051         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
11052         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
11053         * tree-inline.c (inline_forbidden_p_1): Likewise.
11054         
11055 2008-02-26  Richard Guenther  <rguenther@suse.de>
11056
11057         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
11058         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
11059         (lookup_decl_from_uid): Declare.
11060         (remove_decl_from_map): Likewise.
11061         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
11062         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
11063         (decl_for_uid_map): New global hashtable mapping DECL_UID
11064         to the decl tree.
11065         (init_ttree): Allocate it.
11066         (insert_decl_to_uid_decl_map): New helper function.
11067         (make_node_stat): Insert new decls into the map.
11068         (copy_node_stat): Likewise.
11069         (lookup_decl_from_uid): New function.
11070         (remove_decl_from_map): Likewise.
11071         (print_decl_for_uid_map_statistics): New helper.
11072         (dump_tree_statistics): Call it.
11073
11074         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
11075         (referenced_var_iterator): Adjust.
11076         (FOR_EACH_REFERENCED_VAR): Adjust.
11077         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
11078         (num_referenced_vars): Adjust.
11079         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
11080         (first_referenced_var): Remove.
11081         (end_referenced_vars_p): Likewise.
11082         (next_referenced_var): Likewise.
11083         (referenced_var_iterator_set): New helper function.
11084         * tree-dfa.c (referenced_var_lookup): Adjust.
11085         (referenced_var_check_and_insert): Likewise.
11086         (remove_referenced_var): Likewise.
11087         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
11088         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11089         (verify_call_clobbering): Likewise.
11090         (verify_memory_partitions): Likewise.
11091         (init_tree_ssa): Allocate bitmap instead of hashtable for
11092         referenced_vars.
11093         (delete_tree_ssa): Adjust.
11094         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
11095         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11096         (compute_tag_properties): Likewise.
11097         (set_initial_properties): Likewise.
11098         (find_partition_for): Likewise.
11099         (update_reference_counts): Likewise.
11100         (dump_may_aliases_for): Likewise.
11101         * tree-ssa-operands.c (add_virtual_operand): Likewise.
11102         (add_call_clobber_ops): Likewise.
11103         (add_call_read_ops): Likewise.
11104         (get_asm_expr_operands): Likewise.
11105         * tree-into-ssa.c (dump_decl_set): Likewise.
11106         (update_ssa): Likewise.
11107         * tree-sra.c (scan_function): Likewise.
11108         (decide_instantiations): Likewise.
11109         (scalarize_parms): Likewise.
11110         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
11111         (dsa_named_for): Likewise.
11112         * tree-ssa-structalias.c (update_alias_info): Likewise.
11113         (merge_smts_into): Likewise.
11114
11115 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11116
11117         PR 34351
11118         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
11119         * c-opts.c (c_common_handle_option): Wall enables
11120         Wvolatile-register-var.
11121         * common.opt: Move Wvolatile-register-var to...
11122         * c.opt: ...here.
11123         
11124 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11125
11126         * common.opt (Wlarger-than=): New.
11127         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
11128         -Wlarger-than=.
11129         * opts.c (common_handle_option): Handle -Wlarger-than=.
11130         * optc-gen.awk: Likewise.
11131         * opth-gen.awk: Likewise.
11132         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
11133         * tree-optimize.c (tree_rest_of_compilation): Likewise.
11134         
11135 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11136
11137         * c-common.c (match_case_to_enum_1): Add appropriate
11138         OPT_W* parameter to warning.
11139         (c_do_switch_warnings): Likewise.
11140         * c-typeck.c (warning_init): Add one more parameter following
11141         'warning' function.
11142         (push_init_level): Update call to warning_init.
11143         (pop_init_level): Likewise.
11144         (add_pending_init): Likewise.
11145         (output_init_element: Likewise.
11146
11147 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11148
11149         PR 28322
11150         * toplev.c (toplev_main): If there are warnings or error, print
11151         errors for ignored options.
11152         * opts.c (ignored_options): New static variable.
11153         (postpone_unknown_option_error): New.
11154         (print_ignored_options): New.
11155         (handle_option): Postpone errors for unknown -Wno-* options.
11156         * opts.h (print_ignored_options): Declare.
11157         
11158 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
11159
11160         * config/mips/mips.md (loadgp_blockage, blockage): Change type
11161         to "ghost".
11162
11163 2008-02-25  Richard Guenther  <rguenther@suse.de>
11164
11165         Revert:
11166         2008-02-25  Richard Guenther  <rguenther@suse.de>
11167
11168         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
11169         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
11170         (lookup_decl_from_uid): Declare.
11171         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
11172         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
11173         (decl_for_uid_map): New global hashtable mapping DECL_UID
11174         to the decl tree.
11175         (init_ttree): Allocate it.
11176         (insert_decl_to_uid_decl_map): New helper function.
11177         (make_node_stat): Insert new decls into the map.
11178         (copy_node_stat): Likewise.
11179         (lookup_decl_from_uid): New function.
11180         (print_decl_for_uid_map_statistics): New helper.
11181         (dump_tree_statistics): Call it.
11182
11183         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
11184         (referenced_var_iterator): Adjust.
11185         (FOR_EACH_REFERENCED_VAR): Adjust.
11186         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
11187         (num_referenced_vars): Adjust.
11188         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
11189         (first_referenced_var): Remove.
11190         (end_referenced_vars_p): Likewise.
11191         (next_referenced_var): Likewise.
11192         (referenced_var_iterator_set): New helper function.
11193         * tree-dfa.c (referenced_var_lookup): Adjust.
11194         (referenced_var_check_and_insert): Likewise.
11195         (remove_referenced_var): Likewise.
11196         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
11197         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11198         (verify_call_clobbering): Likewise.
11199         (verify_memory_partitions): Likewise.
11200         (init_tree_ssa): Allocate bitmap instead of hashtable for
11201         referenced_vars.
11202         (delete_tree_ssa): Adjust.
11203         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
11204         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11205         (compute_tag_properties): Likewise.
11206         (set_initial_properties): Likewise.
11207         (find_partition_for): Likewise.
11208         (update_reference_counts): Likewise.
11209         (dump_may_aliases_for): Likewise.
11210         * tree-ssa-operands.c (add_virtual_operand): Likewise.
11211         (add_call_clobber_ops): Likewise.
11212         (add_call_read_ops): Likewise.
11213         (get_asm_expr_operands): Likewise.
11214         * tree-into-ssa.c (dump_decl_set): Likewise.
11215         (update_ssa): Likewise.
11216         * tree-sra.c (scan_function): Likewise.
11217         (decide_instantiations): Likewise.
11218         (scalarize_parms): Likewise.
11219         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
11220         (dsa_named_for): Likewise.
11221         * tree-ssa-structalias.c (update_alias_info): Likewise.
11222         (merge_smts_into): Likewise.
11223
11224 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
11225
11226         PR fortran/29549
11227         * doc/invoke.texi (-fcx-limited-range): Document new option.
11228         * toplev.c (process_options): Handle -fcx-fortran-rules.
11229         * common.opt: Add documentation for -fcx-fortran-rules.
11230
11231 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
11232
11233         PR c/35162
11234         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
11235         actual behaviour and C99.
11236         
11237 2008-02-26  Ben Elliston  <bje@au.ibm.com>
11238
11239         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
11240         (ASM_CPU_POWER6_SPEC): Likewise.
11241         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
11242         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
11243         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
11244
11245 2008-02-25  Richard Guenther  <rguenther@suse.de>
11246
11247         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
11248         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
11249         (lookup_decl_from_uid): Declare.
11250         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
11251         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
11252         (decl_for_uid_map): New global hashtable mapping DECL_UID
11253         to the decl tree.
11254         (init_ttree): Allocate it.
11255         (insert_decl_to_uid_decl_map): New helper function.
11256         (make_node_stat): Insert new decls into the map.
11257         (copy_node_stat): Likewise.
11258         (lookup_decl_from_uid): New function.
11259         (print_decl_for_uid_map_statistics): New helper.
11260         (dump_tree_statistics): Call it.
11261
11262         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
11263         (referenced_var_iterator): Adjust.
11264         (FOR_EACH_REFERENCED_VAR): Adjust.
11265         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
11266         (num_referenced_vars): Adjust.
11267         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
11268         (first_referenced_var): Remove.
11269         (end_referenced_vars_p): Likewise.
11270         (next_referenced_var): Likewise.
11271         (referenced_var_iterator_set): New helper function.
11272         * tree-dfa.c (referenced_var_lookup): Adjust.
11273         (referenced_var_check_and_insert): Likewise.
11274         (remove_referenced_var): Likewise.
11275         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
11276         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11277         (verify_call_clobbering): Likewise.
11278         (verify_memory_partitions): Likewise.
11279         (init_tree_ssa): Allocate bitmap instead of hashtable for
11280         referenced_vars.
11281         (delete_tree_ssa): Adjust.
11282         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
11283         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11284         (compute_tag_properties): Likewise.
11285         (set_initial_properties): Likewise.
11286         (find_partition_for): Likewise.
11287         (update_reference_counts): Likewise.
11288         (dump_may_aliases_for): Likewise.
11289         * tree-ssa-operands.c (add_virtual_operand): Likewise.
11290         (add_call_clobber_ops): Likewise.
11291         (add_call_read_ops): Likewise.
11292         (get_asm_expr_operands): Likewise.
11293         * tree-into-ssa.c (dump_decl_set): Likewise.
11294         (update_ssa): Likewise.
11295         * tree-sra.c (scan_function): Likewise.
11296         (decide_instantiations): Likewise.
11297         (scalarize_parms): Likewise.
11298         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
11299         (dsa_named_for): Likewise.
11300         * tree-ssa-structalias.c (update_alias_info): Likewise.
11301         (merge_smts_into): Likewise.
11302
11303 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
11304
11305         PR target/35258
11306         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
11307         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
11308         * alias.h (nonoverlapping_memrefs_p): Likewise.
11309
11310 2008-02-25  Jan Beulich  <jbeulich@novell.com>
11311
11312         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
11313         * config/i386/netware-libgcc.exp: Add __bswap?i2,
11314         __emultls_get_address, __emultls_register_common,
11315         __floatundi?f, and _Unwind_GetIPInfo.
11316         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
11317         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
11318         (gen_regparm_prefix): Likewise.
11319         (i386_nlm_encode_section_info): Sync with
11320         config/i386/winnt.c:i386_pe_encode_section_info().
11321         (i386_nlm_maybe_mangle_decl_assembler_name): New.
11322         i386_nlm_mangle_decl_assembler_name): New.
11323         (netware_override_options): New.
11324         * config/i386/netware.h (netware_override_options): Declare.
11325         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
11326         (i386_nlm_mangle_decl_assembler_name): Declare.
11327         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
11328
11329 2008-02-25  Ben Elliston  <bje@au.ibm.com>
11330
11331         PR other/32948
11332         * c-decl.c (grokdeclarator): Remove unused local variables
11333         `typedef_type' and `type_as_written'.
11334         * bb-reorder.c
11335         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
11336         unused local variable `has_hot_blocks'.
11337         (fix_crossing_conditional_branches): Remove unused local variable
11338         `prev_bb'.
11339         
11340 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
11341
11342         PR middle-end/19984
11343         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
11344         using DEF_C99_BUILTIN.
11345         (BUILT_IN_NANF): Ditto.
11346         (BUILT_IN_NANL): Ditto.
11347
11348 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
11349             Revital Eres  <eres@il.ibm.com>
11350
11351         * modulo-sched.c (calculate_must_precede_follow): Address TODO
11352         regarding the order of two dependent insns in the same row.
11353
11354 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
11355
11356         * stor-layout.c (layout_decl): Do not bump the alignment of a
11357         bit-field to more than byte alignment if it is packed.
11358
11359 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
11360
11361         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
11362         e300c2 and e300c3.
11363
11364 2008-02-24  Diego Novillo  <dnovillo@google.com>
11365
11366         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
11367
11368         PR 33738
11369         * tree-vrp.c (vrp_evaluate_conditional): With
11370         -Wtype-limits, emit a warning when comparing against a
11371         constant outside the natural range of OP0's type.
11372         * c.opt (Wtype-limits): Move ...
11373         * common.opt (Wtype-limits): ... here.
11374
11375 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
11376
11377         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
11378         * config/rs6000/e300c2c3.md: New file.
11379         * config/rs6000/rs6000.c (processor_costs): Add new costs for
11380         e300c2 and e300c3.
11381         (rs6000_override_options): Add e300c2 and e300c3 cases to
11382         processor_target_table. Do not allow usage of Altivec or Spe
11383         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
11384         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
11385         * config/rs6000/rs6000.h (processor_type): Add
11386         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
11387         (ASM_CPU_SPEC): Add e300c2 and e300c3.
11388         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
11389         and ppce300c3. Include e300c2c3.md.
11390
11391 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
11392
11393         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
11394         instead of TARGET_STRICT_ALIGN.
11395
11396 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
11397
11398         * explow.c (memory_address): Assert that the generated address is
11399         valid.
11400
11401 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
11402
11403         PR target/25477
11404         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
11405         * config/darwin-ppc-ldouble-patch.def: New file.
11406         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
11407         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
11408         SUBTARGET_INIT_BUILTINS if defined.
11409         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
11410         New functions.
11411
11412 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11413
11414         PR rtl-opt/33512
11415         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
11416         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
11417
11418 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11419
11420         PR pch/35027
11421         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
11422         file" warning condtional on -Winvalid-PCH.
11423
11424 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
11425
11426         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
11427
11428 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
11429
11430         PR target/22076
11431         PR target/34256 
11432         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
11433         prevent reload from using MMX registers.
11434         (*mov<mode>_internal): Ditto.
11435         (*movv2sf_internal_rex64): Ditto.
11436         (*movv2sf_internal): Ditto.
11437
11438 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11439
11440         PR documentation/31569
11441         * doc/install.texi2html: Use makeinfo --no-number-sections.
11442
11443 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
11444
11445         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
11446         ensure that we can address an entire entity > 8 bytes.  Don't
11447         generate reg+reg addressing for such data.
11448
11449 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
11450
11451         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
11452         strings when optimizing for size, unless the target cares about
11453         alignment.
11454
11455 2008-02-22  Tom Tromey  <tromey@redhat.com>
11456
11457         * regclass.c (current_pass): Remove declaration.
11458
11459 2008-02-22  Anatoly Sokolov <aesok@post.ru>
11460
11461         * config/avr/libgcc.S (__RAMPZ__): Define.
11462         (__do_copy_data): Add for devices with 128KB code memory.
11463
11464 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
11465
11466         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
11467         Use spe_abi.
11468         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
11469
11470 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
11471
11472         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
11473         GENNONACR_REGS.
11474
11475 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11476
11477         PR c/19999
11478         * c-typeck.c (build_binary_op): Warn about floating point
11479         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
11480
11481 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
11482
11483         PR target/34526
11484         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
11485         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
11486         add vrsave.
11487         (rs6000_override_options): Set altivec_abi as default, not override,
11488         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
11489         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
11490         is used; use new member spe_abi.
11491         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
11492         spe_abi and altivec_abi.
11493
11494 2008-02-22  Tomas Bily  <tbily@suse.cz>
11495
11496         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
11497
11498 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11499
11500         PR bootstrap/35273
11501         * config.build (build_file_translate): Set to `CMD //c' only if
11502         it works.
11503         * Makefile.in (build_file_translate): Improve comment.
11504
11505 2008-02-21  Jan Hubicka  <jh@suse.cz>
11506
11507         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
11508         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
11509         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
11510
11511 2008-02-21  Michael Matz  <matz@suse.de>
11512
11513         PR target/35264
11514         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
11515
11516 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
11517
11518         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
11519         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
11520         as insn constraint.
11521         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
11522         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
11523         SSE_VEC_FLOAT_MODE_P as insn constraint.
11524         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
11525         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
11526         sse4a_movntdf using MODEF mode iterator.
11527         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
11528         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
11529         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
11530         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
11531         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
11532         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
11533         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
11534
11535 2008-02-21  Richard Guenther  <rguenther@suse.de>
11536
11537         * tree.def (PAREN_EXPR): New tree code.
11538         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
11539         and PAREN_EXPR.
11540         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
11541         * expr.c (expand_expr_real_1): Likewise.
11542         * tree-inline.c (estimate_num_insns_1): Likewise.
11543         * tree-complex.c (expand_complex_move): Likewise.
11544         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
11545         as plain x.
11546
11547 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11548
11549         PR target/35225
11550         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
11551
11552 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11553
11554         PR target/35190
11555         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
11556
11557         * config/sh/sh.c (find_barrier): Don't go past
11558         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
11559
11560 2008-02-20  DJ Delorie  <dj@redhat.com>
11561
11562         * config/h8300/h8300.md (insv): Force source operand to be a register.
11563
11564         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
11565         as a jump, not as a plain insn.
11566         
11567 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
11568
11569         * doc/invoke.texi (Warning Options): Add new option
11570         -Wframe-larger-than=.
11571         (-Wframe-larger-than): Document.
11572
11573         * flags.h (warn_frame_larger_than, frame_larger_than_size):
11574         Add declarations for new option variables.
11575
11576         * final.c (final_start_function): Check the frame size
11577         before emission and issue a Wframe-larger-than warning.
11578
11579         * opts.c (warn_frame_larger_than, frame_larger_than_size):
11580         Add definitions for new option variables.
11581         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
11582
11583         * common.opt (Wframe-larger-than=): New option.
11584
11585 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
11586
11587         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
11588         (<sse>_div<mode>3): Ditto.
11589         (<sse>_vmdiv<mode>3): Ditto.
11590         (<sse>_vmsqrt<mode>2): Ditto.
11591         (*smax<mode>3): Ditto.
11592         (sse5_frcz<mode>2): Ditto.
11593         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
11594         as insn constraint.
11595
11596 2008-02-20  Richard Guenther  <rguenther@suse.de>
11597
11598         PR middle-end/35265
11599         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
11600         be happy with INTEGRAL_TYPE_P.
11601
11602 2008-02-20  Richard Guenther  <rguenther@suse.de>
11603
11604         * fold-const.c (split_tree): Associate floatig-point expressions
11605         if flag_associative_math is set.
11606
11607 2008-02-20  Richard Guenther  <rguenther@suse.de>
11608
11609         * tree.h (fold_real_zero_addition_p): Declare.
11610         * fold-const.c (fold_real_zero_addition_p): Export.
11611         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
11612         floating-point operations with zero and one.
11613
11614 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
11615
11616         * doc/install.texi: Correct references to CFLAGS, replacing them
11617         with BOOT_CFLAGS.  Document flags used during bootstrap for
11618         target libraries.
11619                                 
11620 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
11621
11622         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
11623         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
11624         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
11625         insn constraint.
11626         (smin<mode>3): Ditto from similar patterns.
11627         (smax<mode>3): Ditto.
11628         (*ieee_smin<mode>3): Ditto.
11629         (*ieee_smax<mode>3): Ditto.
11630         * config/i386/sse.md (sse): New mode attribute.
11631         (mov<mode>): Macroize expander from movv4sf and movv2df using
11632         SSEMODEF2P mode iterator.
11633         (<sse>_movnt<mode>): Ditto from similar patterns. Use
11634         SSE_VEC_FLOAT_MODE_P as insn constraint.
11635         (storent<mode>): Ditto.
11636         (storent<mode>): Macroize expander from storentsf and storentdf using
11637         MODEF mode iterator.
11638         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
11639         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
11640         (abs<mode>2): Ditto from similar patterns.
11641         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
11642         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
11643         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
11644         (<sse>_vmsqrt<mode>2): Ditto.
11645         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
11646         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
11647         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
11648         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
11649         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
11650         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
11651         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
11652         insn constraint.
11653         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
11654         iterator and SSE_FLOAT_MODE_P as insn constraint.
11655         (<sse>_ucomi): Ditto from similar patterns.
11656         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
11657         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
11658         SSE_VEC_FLOAT_MODE_P as insn constraint.
11659         (vcond<mode>): Ditto from similar patterns.
11660         (and<mode>3, *and<mode>3): Ditto.
11661         (<sse>_nand<mode>3): Ditto.
11662         (ior<mode>3, *ior<mode>3): Ditto.
11663         (xor<mode>3, *xor<mode>3): Ditto.
11664         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
11665         iterator and SSE_FLOAT_MODE_P as insn constraint.
11666         (*nand<mode>3): Ditto from similar patterns.
11667         (*ior<mode>3): Ditto.
11668         (*xor<mode>3): Ditto.
11669
11670 2008-02-20  Ira Rosen  <irar@il.ibm.com>
11671
11672         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
11673         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
11674         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
11675
11676 2008-02-19  Jan Hubicka  <jh@suse.cz>
11677
11678         * predict.c (tree_bb_level_predictions): Remove variable next
11679         mistakely introduced by previous commit.
11680
11681 2008-02-19  Jan Hubicka  <jh@suse.cz>
11682
11683         * predict.c (predict_paths_leading_to): Rewrite.
11684         (predict_paths_for_bb): New.
11685         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
11686
11687 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11688
11689         PR bootstrap/35218
11690         * Makefile.in (build_file_translate): New.
11691         (gcc-vers.texi): Use it for translating $(abs_srcdir).
11692         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
11693         * configure.ac (build_file_translate): Substitute it.
11694         * configure: Regenerate.
11695
11696 2008-02-19  Jan Hubicka  <jh@suse.cz>
11697
11698         PR rtl-optimization/34408
11699         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
11700         invalid sharing.
11701
11702 2008-02-19  Jan Hubicka  <jh@suse.cz>
11703
11704         PR middle-end/28779
11705         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
11706         call_expr.
11707
11708 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
11709
11710         PR Ada/35186
11711         * config/i386/i386-modes.def: Revert the last DI alignment
11712         change until Ada people can look into it.
11713
11714 2008-02-19  Nick Clifton  <nickc@redhat.com>
11715
11716         * opts.c (print_specific_help): Fix typo in --help text.
11717
11718 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
11719
11720         PR target/35239
11721         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
11722         32-bit inline asm without asm alternatives for host GCC < 3.0.
11723
11724 2008-02-19  Richard Guenther  <rguenther@suse.de>
11725
11726         PR tree-optimization/34989
11727         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
11728         Allow propagation to INDIRECT_REF if we can simplify only.
11729
11730 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11731
11732         * c-common.c (warn_for_collisions_1): Use appropriate option when
11733         warning.
11734
11735 2008-02-19  Nick Clifton  <nickc@redhat.com>
11736
11737         PR other/31349
11738         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
11739         (handle_options): Fix indentation.
11740         (print_filtered_help): If no language-specific options were
11741         displayed tell the user how to list all the options supported by
11742         the language's front-end.
11743         (print_specific_help): Fix indentation and remove duplicate line.
11744         (common_handle_option): Handle the -v option.
11745         For --help enable the display of undocumented options if the -v
11746         switch has been included on the command line.
11747         For --help= check for overlaps in the arguments between the option
11748         classes and the language names and issue a warning when they
11749         cannot be disambiguated.
11750         * c.opt (v): Pass on to the common option handler.
11751
11752 2008-02-19  Revital Eres  <eres@il.ibm.com> 
11753
11754         * modulo-sched.c (sms_schedule): Change dump message when
11755         create_ddg function fails.
11756         (try_scheduling_node_in_cycle): Rename row to cycle.
11757         (print_partial_schedule): Rename CYCLE to ROW.
11758
11759 2008-02-19  Christian Bruel  <christian.bruel@st.com>
11760             Zdenek Dvorak  <ook@ucw.cz>
11761
11762         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
11763
11764 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
11765
11766         PR target/33555
11767         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
11768         (*x86_movdicc_0_m1_se): Ditto.
11769
11770 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
11771
11772         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
11773         (CMPtype): Define as __gcc_CMPtype.
11774         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
11775         (CMPtype): Define as __gcc_CMPtype.
11776
11777 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
11778
11779         Support valgrind 3.3 for --enable-checking=valgrind.
11780         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
11781         here.
11782         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
11783         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
11784         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
11785         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
11786         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
11787         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
11788         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
11789         respectively.
11790         * ggc-zone.c: Similar.
11791         * ggc-page.c: Similar.
11792
11793 2008-02-19  Paul Brook  <paul@codesourcery.com>
11794
11795         PR target/35071
11796         * config/arm/ieee754-df.S: Fix do_it typo.
11797         * config/arm/ieee754-sf.S: Fix do_it typo.
11798
11799 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
11800
11801         PR target/35189
11802         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
11803         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
11804         (OPTION_MASK_ISA_SSE_SET): Likewise.
11805         (OPTION_MASK_ISA_SSE2_SET): Likewise.
11806         (OPTION_MASK_ISA_SSE3_SET): Likewise.
11807         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
11808         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
11809         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
11810         (OPTION_MASK_ISA_SSE4_SET): Likewise.
11811         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
11812         (OPTION_MASK_ISA_SSE5_SET): Likewise.
11813         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
11814         (OPTION_MASK_ISA_MMX_UNSET): Updated.
11815         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
11816         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
11817         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
11818         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
11819         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
11820         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
11821         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
11822         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
11823         (OPTION_MASK_ISA_SSE4): Removed.
11824         (ix86_handle_option): Turn on bits in ix86_isa_flags and
11825         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
11826         (override_options): Don't turn on implied SSE/MMX bits in
11827         ix86_isa_flags.
11828
11829 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
11830
11831         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
11832         32bit host.
11833
11834 2008-02-18  Joey Ye  <joey.ye@intel.com>
11835
11836         PR middle-end/34921
11837         * tree-nested.c (insert_field_into_struct): Set type alignment
11838         to field alignment if the former is less than the latter.
11839
11840 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
11841
11842         * BASE-VER: Set to 4.4.0.
11843
11844 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11845
11846         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
11847         * doc/cfg.texi: Likewise.
11848         * doc/extend.texi: Likewise.
11849         * doc/gty.texi: Likewise.
11850         * doc/invoke.texi: Likewise.
11851         * doc/loop.texi: Likewise.
11852         * doc/md.texi: Likewise.
11853         * doc/passes.texi: Likewise.
11854         * doc/rtl.texi: Likewise.
11855         * doc/sourcebuild.texi: Likewise.
11856         * doc/tm.texi: Likewise.
11857         * doc/tree-ssa.texi: Likewise.
11858
11859 2008-02-17  Richard Guenther  <rguenther@suse.de>
11860
11861         PR middle-end/35227
11862         * tree-complex.c (init_parameter_lattice_values): Handle parameters
11863         without default definition.
11864
11865 2008-02-17  Richard Guenther  <rguenther@suse.de>
11866
11867         PR tree-optimization/35231
11868         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
11869         if A | B != 1.
11870
11871 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
11872
11873         Revert:
11874         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
11875         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
11876         libgcc_cmp_return mode.
11877
11878 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11879
11880         PR c/28368
11881         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
11882
11883 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
11884
11885         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
11886         multilibs.
11887
11888 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11889
11890         * doc/c-tree.texi: Use `@.' where appropriate.
11891         * doc/extend.texi: Likewise.
11892         * doc/install.texi: Likewise.
11893         * doc/invoke.texi: Likewise.
11894         * doc/loop.texi: Likewise.
11895         * doc/makefile.texi: Likewise.
11896         * doc/md.texi: Likewise.
11897         * doc/passes.texi: Likewise.
11898         * doc/standards.texi: Likewise.
11899         * doc/tm.texi: Likewise.
11900
11901 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
11902
11903         PR middle-end/35196
11904         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
11905         in entry_bb.
11906         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
11907         rather than in entry_bb.
11908
11909 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
11910
11911         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
11912         libgcc_cmp_return mode.
11913
11914 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
11915
11916         PR middle-end/35130
11917         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
11918         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
11919
11920 2008-02-15  Richard Guenther  <rguenther@suse.de>
11921             Zdenek Dvorak  <ook@ucw.cz>
11922
11923         PR tree-optimization/35164
11924         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
11925         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
11926         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
11927         Only propagate addresses which do not have abnormal SSA_NAMEs
11928         in their operands.
11929
11930 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
11931
11932         PR target/35088
11933         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
11934
11935 2008-02-15  Jan Hubicka  <jh@suse.cz>
11936
11937         PR middle-end/35149
11938         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
11939
11940 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
11941
11942         PR middle-end/34621
11943         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
11944         when calculating alignment_pad.
11945
11946 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
11947
11948         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
11949         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
11950         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
11951         and STACK_BOUNDARY define.
11952
11953 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
11954
11955         PR preprocessor/35061
11956         * c-pragma.c (handle_pragma_pop_macro): Check that
11957         pushed_macro_table has been allocated.
11958
11959 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
11960
11961         PR middle-end/35136
11962         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
11963         (force_gimple_operand): Likewise.
11964         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
11965         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
11966         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
11967         (find_interesting_uses_address): Check addressability and alignment
11968         of the base expression only after substituting bases of IVs into it.
11969
11970 2008-02-14  Michael Matz  <matz@suse.de>
11971
11972         PR target/34930
11973         * function.c (instantiate_virtual_regs_in_insn): Reload address
11974         before falling back to reloading the whole operand.
11975
11976 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
11977
11978         * config/s390/s390.c (s390_mainpool_start): Emit the pool
11979         before the first section switch note.
11980
11981 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11982
11983         * doc/bugreport.texi: Update copyright years.
11984         * doc/c-tree.texi: Likewise.
11985         * doc/cfg.texi: Likewise.
11986         * doc/cpp.texi: Likewise.
11987         * doc/cppinternals.texi: Likewise.
11988         * doc/fragments.texi: Likewise.
11989         * doc/frontends.texi: Likewise.
11990         * doc/gcc.texi: Likewise.
11991         * doc/gty.texi: Likewise.
11992         * doc/hostconfig.texi: Likewise.
11993         * doc/implement-c.texi: Likewise.
11994         * doc/libgcc.texi: Likewise.
11995         * doc/loop.texi: Likewise.
11996         * doc/makefile.texi: Likewise.
11997         * doc/options.texi: Likewise.
11998         * doc/passes.texi: Likewise.
11999         * doc/rtl.texi: Likewise.
12000         * doc/sourcebuild.texi: Likewise.
12001         * doc/standards.texi: Likewise.
12002         * doc/tree-ssa.texi: Likewise.
12003         * doc/trouble.texi: Likewise.
12004
12005         * doc/extend.texi: Use @: or add comma where appropriate.
12006         * doc/invoke.texi: Likewise.
12007         * doc/tm.texi: Likewise.
12008
12009 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
12010
12011         PR target/34393
12012         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
12013         to a reg.
12014
12015 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
12016
12017         * doc/md.texi (clz, ctz): Add reference.
12018         * doc/rtl.texi (clz, ctz): Likewise.
12019
12020 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12021
12022         PR other/35148
12023         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
12024         srcdir.
12025
12026 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
12027
12028         * config/s390/s390.c (struct constant_pool): New field
12029         emit_pool_after added.
12030         (s390_mainpool_start): Set the emit_pool_after flag according
12031         to the section switch notes.
12032         (s390_mainpool_finish): Consider emit_pool_after when emitting
12033         the literal pool at the end of the function.
12034         (s390_chunkify_start): Force literal pool splits at section
12035         switch notes.
12036
12037 2008-02-13  Michael Matz  <matz@suse.de>
12038
12039         PR debug/35065
12040         * var-tracking.c (clobber_variable_part): Correctly traverse the
12041         list.
12042
12043 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12044
12045         PR 29673
12046         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
12047         Add -fdump-ipa-inline.
12048         * tree-dump.c (dump_files): Remove tree-inlined dump.
12049         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
12050         
12051 2008-02-12  Richard Guenther  <rguenther@suse.de>
12052
12053         PR tree-optimization/35171
12054         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
12055         default defs.
12056
12057 2008-02-12  Richard Guenther  <rguenther@suse.de>
12058
12059         PR middle-end/35163
12060         * fold-const.c (fold_widened_comparison): Use get_unwidened in
12061         value-preserving mode.  Disallow final truncation.
12062
12063 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
12064
12065         PR middle-end/35136
12066         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
12067         code from here to...
12068         (force_gimple_operand): ...here.
12069
12070 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
12071
12072         PR c++/35144
12073         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
12074         non-compatible pointers.
12075         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
12076         different FIELD_DECLs, try harder by comparing field offsets, sizes
12077         and types.
12078
12079         PR inline-asm/35160
12080         * function.c (match_asm_constraints_1): Don't replace the same input
12081         multiple times.
12082
12083 2008-02-12  Anatoly Sokolov <aesok@post.ru>
12084
12085         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
12086         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
12087         (expand_epilogue): Restore RAMPZ register.
12088         * config/avr/avr.md (RAMPZ_ADDR): New constant.
12089
12090 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
12091
12092         * config/i386/cygwin.asm: (__alloca): Correct calling
12093         convention and alignment.
12094         (__chkstk): Force 8 byte stack alignment.
12095
12096 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
12097             Richard Guenther  <rguenther@suse.de>
12098
12099         PR tree-optimization/33992
12100         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
12101         the zero we compare against.
12102
12103 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
12104
12105         PR libfortran/35063
12106         * gthr-win32.h (__gthread_mutex_destroy_function): New function
12107         to CloseHandle after unlocking to prevent accumulation of handle
12108         count.
12109
12110 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12111
12112         PR middle_end/34150
12113         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
12114         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
12115         and update LABEL_NUSES during and after reload.
12116
12117 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
12118
12119         PR middle-end/34627
12120         * combine.c (simplify_if_then_else): Make sure the comparison is
12121         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
12122
12123 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
12124
12125         PR bootstrap/35051
12126         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
12127         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
12128         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
12129         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
12130         * tree.h (get_type_static_bounds): Likewise.
12131
12132 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12133
12134         * doc/invoke.texi (Option Summary, C++ Dialect Options)
12135         (Objective-C and Objective-C++ Dialect Options, Warning Options):
12136         Make -Wfoo language annotations match what the compiler outputs.
12137
12138 2008-02-08  Sa Liu  <saliu@de.ibm.com>
12139
12140         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
12141         intrinsics spu_convts, spu_convtu, spu_convtf.
12142
12143 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
12144
12145         * doc/extend.texi (Function Attributes) <noinline>: Mention
12146         asm ("") as method to keep calls.
12147
12148 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12149
12150         PR other/32754
12151         * doc/options.texi (Options): Replace references to opts.sh with
12152         optc-gen.awk.
12153         * opts-common.c: Likewise.
12154         * optc-gen.awk: Likewise.
12155         
12156 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
12157
12158         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
12159
12160 2008-02-07  Richard Henderson  <rth@redhat.com>
12161
12162         PR rtl-opt/33410
12163         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
12164         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
12165         funny mode.
12166
12167 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
12168
12169         PR tree-optimization/35085
12170         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
12171         for operand entry oe2 in addition to operand entry oe3 in order to
12172         expose more opportunities for vectorizer sum reduction.
12173
12174 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12175
12176         PR other/35107
12177         * Makefile.in (LIBS): Remove $(GMPLIBS).
12178         (cc1-dummy, cc1): Add $(GMPLIBS).
12179
12180 2008-02-06  Jan Hubicka  <jh@suse.cz>
12181
12182         PR target/23322
12183         * i386.md (moddf_integer): Do not produce partial memory stalls for
12184         targets where it hurts.
12185
12186 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
12187
12188         PR target/35083
12189         * optabs.c (expand_float): Do not check for decimal modes when
12190         expanding unsigned integer through signed conversion.
12191
12192 2008-02-06  Nick Clifton  <nickc@redhat.com>
12193
12194         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
12195         inside the clobber with a match_operand and duplicated operand
12196         number in the constraint.
12197         (ineqbranchsi): Delete redundant comment.
12198
12199 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
12200
12201         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
12202         builtin_define ("__USE_INIT_FINI__").
12203         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
12204         -msx multilibs.
12205         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
12206
12207 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12208
12209         PR documentation/30330
12210         * doc/invoke.texi (C++ Dialect Options)
12211         (Objective-C and Objective-C++ Dialect Options, Warning Options):
12212         For each warning option -Wfoo that allows -Wno-foo, ensure both
12213         -Wfoo and -Wno-foo are listed in the option index.  Fix index
12214         entry of -Wswitch-default, index -Wnormalized= including the
12215         `=', and -Wlarger-than-@var{len} including @var{len}.
12216
12217 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
12218
12219         * config/i386/i386.md (floatunssisf2): Use
12220         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
12221         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
12222         Macroize expander using MODEF mode iterator.
12223
12224 2008-02-05  Diego Novillo  <dnovillo@google.com>
12225
12226         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
12227
12228         PR 33738
12229         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
12230
12231 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12232
12233         PR other/35070
12234         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
12235
12236 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
12237
12238         PR target/35084
12239         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
12240         to indicate if a message should be generated.
12241         (init_cumulative_args): Updated.
12242         (function_value_32): Likewise.
12243
12244 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
12245
12246         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
12247
12248 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
12249
12250         PR target/35083
12251         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
12252         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
12253
12254 2008-02-04  Diego Novillo  <dnovillo@google.com>
12255
12256         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
12257
12258         PR 33738
12259         * tree-vrp.c (vrp_evaluate_conditional): With
12260         -Wtype-limits, emit a warning when comparing against a
12261         constant outside the natural range of OP0's type.
12262
12263 2008-02-04  Richard Guenther  <rguenther@suse.de>
12264
12265         PR middle-end/33631
12266         * expr.c (count_type_elements): Give for unions instead of
12267         guessing.
12268
12269 2008-02-04  Richard Guenther  <rguenther@suse.de>
12270
12271         PR middle-end/35043
12272         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
12273         to TYPE_DOMAINs base type instead of using bitsizetype here.
12274
12275 2008-02-03  Jason Merrill  <jason@redhat.com>
12276
12277         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
12278
12279 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12280
12281         PR other/29972
12282         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
12283         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
12284         (RS/6000 and PowerPC Options): Fix typos and markup.
12285         * doc/passes.texi (Tree-SSA passes): Likewise.
12286
12287 2008-02-02  Michael Matz  <matz@suse.de>
12288
12289         PR target/35045
12290         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
12291         from record_last_reg_set_info.
12292         (record_last_reg_set_info): Take an RTX argument, iterate over all
12293         constituent hardregs.
12294         (record_last_set_info, record_opr_changes): Change calls to
12295         new signature or to record_last_reg_set_info_regno.
12296
12297 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
12298
12299         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
12300
12301 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
12302
12303         PR rtl-optimization/34773
12304         * reg-notes.def (EQUAL): Mention significance of combination of
12305         REG_EQUAL and REG_RETVAL.
12306         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
12307         insn that has a REG_RETVAL.
12308
12309 2008-02-01  Roger Sayle  <roger@eyesopen.com>
12310
12311         PR bootstrap/33781
12312         * configure.ac (--enable-fixed-point): Disable unless explicitly
12313         requested on IRIX.
12314         * configure: Regenerate.
12315
12316 2008-02-01  Richard Guenther  <rguenther@suse.de>
12317
12318         PR other/35042
12319         * invoke.texi (-finline-limit): Remove no longer true parts
12320         of the documentation.  Note that there is no default value.
12321
12322 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
12323             Mark Mitchell  <mark@codesourcery.com>
12324             Ben Elliston  <bje@au.ibm.com>
12325
12326         PR c/29326
12327         * doc/extend.texi (Other Builtins): Document.
12328
12329 2008-01-31  Tom Browder <tom.browder@gmail.com>
12330
12331         * doc/c-tree.texi (Types): Fix grammar.
12332         (Expression trees): Ditto.
12333         * doc/passes.texi (Tree-SSA passes): Ditto.
12334         
12335         * doc/configterms.texi (Configure Terms): Fix typo.
12336         * doc/cpp.texi (Common Predefined Macros): Ditto.
12337         * doc/md.texi (Machine Constraints): Ditto.
12338         
12339         * doc/makefile.texi (Makefile): Add comma.
12340
12341 2008-01-31  Tom Browder  <tom.browder@gmail.com>
12342             Gerald Pfeifer  <gerald@pfeifer.com>
12343         
12344         * doc/sourcebuild.texi (Front End): Remove references to CVS
12345         and CVSROOT/modules.
12346         (Texinfo Manuals): Replace reference to CVS by one to SVN.
12347         (Back End): Remove reference to CVS.
12348
12349 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
12350
12351         PR target/34900
12352         * config/mips/mips.c (gen_load_const_gp): New function, taking a
12353         comment from...
12354         (mips16_gp_pseudo_reg): ...here.
12355         * config/mips/mips.md (load_const_gp): Replace with...
12356         (load_const_gp_<mode>): ...this :P-based insn.
12357
12358 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12359
12360         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
12361         options. Minor fixes.
12362         (-std): Move reference to standards closer to where language
12363         standards are first mentioned.
12364         
12365 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
12366
12367         PR rtl-optimization/34995
12368         * reload.c (alternative_allows_const_pool_ref): Take an rtx
12369         parameter and return a bool.  If the rtx parameter is nonnull,
12370         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
12371         (find_reloads): Update call accordingly.  Pass the new operand
12372         if it needed no address reloads, otherwise pass null.
12373
12374 2008-01-30  Richard Henderson  <rth@redhat.com>
12375
12376         PR c/34993
12377         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
12378         for unbounded arrays.
12379
12380 2008-01-30  Silvius Rus  <rus@google.com>
12381
12382         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
12383
12384 2008-01-30  Jan Hubicka  <jh@suse.cz>
12385
12386         PR target/34982
12387         * i386.c (init_cumulative_args): Use real function declaration when
12388         calling locally.
12389
12390 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
12391
12392         PR rtl-optimization/34998
12393         * global.c (build_insn_chain): Treat non-subreg_lowpart
12394         SUBREGs of pseudos as clobbering all the words covered by the
12395         SUBREG, not just all the bytes.
12396         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
12397         original df_ref rather than an extract parameter.
12398         (global_conflicts): Update call accordingly.
12399
12400 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
12401
12402         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
12403         the overflow check to make it easier to read.
12404         (__fixtfdi): Change the type of the ll member in union
12405         long_double to UDItype_x.
12406
12407 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
12408
12409         PR middle-end/34969
12410         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
12411         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
12412         * tree-inline.c (fold_marked_statements): Call
12413         cgraph_update_edges_for_call_stmt if folding a call statement.
12414         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
12415         debug_generic_stmt calls, reset it back afterwards.
12416
12417         PR c/35017
12418         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
12419         static decls.
12420         * c-typeck.c (build_external_ref): Don't pedwarn about
12421         static vars in current function's scope.
12422
12423 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
12424
12425         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
12426
12427 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
12428
12429         PR c/35002
12430         * ipa-struct-reorg.c: Fix spelling.
12431         * params.def: Ditto.
12432
12433 2008-01-29  Richard Guenther  <rguenther@suse.de>
12434
12435         PR middle-end/35006
12436         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
12437         field.
12438         * tree-inline.c (remap_type): Increment remapping_type_depth
12439         around remapping types.
12440         (copy_body_r): Only add referenced variables if they are referenced
12441         from code, not types.
12442
12443 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
12444
12445         PR c++/34055
12446         PR c++/34103
12447         PR c++/34219
12448         PR c++/34606
12449         PR c++/34753
12450         PR c++/34754
12451         PR c++/34755
12452         PR c++/34919
12453         PR c++/34961
12454         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
12455         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
12456
12457 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
12458
12459         PR target/34412
12460         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
12461         pointer for tiny stack.
12462
12463 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
12464
12465         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
12466
12467 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
12468
12469         * config/vx-common.h: Fix typo in comment.
12470
12471 2008-01-28  Ian Lance Taylor  <iant@google.com>
12472
12473         PR c++/34862
12474         PR c++/33407
12475         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
12476         coalesce pointers if they have different DECL_NO_TBAA_P values.
12477         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
12478         between variables with different DECL_NO_TBAA_P values.
12479
12480 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
12481
12482         PR 31535
12483         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
12484         are not legitimate small data references on SPE targets.
12485
12486 2008-01-28  David Daney  <ddaney@avtrex.com>
12487
12488         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
12489
12490 2008-01-28  David Daney  <ddaney@avtrex.com>
12491
12492         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
12493
12494 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
12495
12496         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
12497         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
12498         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
12499         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
12500         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
12501         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
12502         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
12503         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
12504
12505 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
12506
12507         * basic-block.h (condjump_equiv_p): Fix comment.
12508
12509 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
12510
12511         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
12512         print_generic_stmt_indented): Fix comment.
12513
12514 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
12515
12516         * configure.ac (__stack_chk_fail): Add detecion for availability
12517         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
12518         * configure: Regenerate.
12519
12520 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
12521
12522         PR middle-end/34688
12523         * final.c (output_addr_const): Handle TRUNCATE.
12524
12525 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
12526
12527         PR target/34711
12528         * tree-ssa-loop-ivopts.c (comp_cost): New type.
12529         (zero_cost, infinite_cost): New constants.
12530         (struct cost_pair): Change type of cost to comp_cost.
12531         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
12532         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
12533         New functions.
12534         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
12535         split_address_cost, ptr_difference_cost, difference_cost,
12536         get_computation_cost_at, get_computation_cost,
12537         determine_use_iv_cost_generic, determine_use_iv_cost_address,
12538         determine_use_iv_cost_condition, determine_use_iv_costs,
12539         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
12540         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
12541         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
12542         Change type of cost to comp_cost.
12543         (determine_iv_cost): Increase cost of non-original ivs, instead
12544         of decreasing the cost of original ones.
12545         (get_address_cost): Indicate the complexity of the addressing mode 
12546         in comp_cost.
12547         (try_add_cand_for): Prefer using ivs not specific to some object.
12548         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
12549
12550 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
12551             Janis Johnson  <janis187@us.ibm.com>
12552
12553         PR target/34814
12554         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
12555         (TARGET_INSTANTIATE_DECLS): Likewise.
12556         * target.h (expand_to_rtl_hook): New target hook.
12557         (instantiate_decls): Likewise.
12558         * function.c (instantiate_decl): Make non-static.  Rename to...
12559         (instantiate_decl_rtl): ... this.
12560         (instantiate_expr): Use instantiate_decl_rtl.
12561         (instantiate_decls_1): Likewise.
12562         (instantiate_decls): Likewise.
12563         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
12564         * function.h (instantiate_decl_rtl): Add prototype.
12565         * cfgexpand.c (target.h): New include.
12566         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
12567         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
12568         (TARGET_INSTANTIATE_DECLS): Likewise.
12569         (TARGET_INITIALIZER): New target hooks added.
12570         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
12571         New prototype.
12572         * config/rs6000/rs6000.c (tree-flow.h): New include.
12573         (machine_function): Add sdmode_stack_slot field.
12574         (rs6000_alloc_sdmode_stack_slot): New function.
12575         (rs6000_instantiate_decls): Likewise.
12576         (rs6000_secondary_memory_needed_rtx): Likewise.
12577         (rs6000_check_sdmode): Likewise.
12578         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
12579         (TARGET_INSTANTIATE_DECLS): Likewise.
12580         (rs6000_hard_regno_mode_ok): Allow SDmode.
12581         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
12582         (rs6000_emit_move): Handle SDmode.
12583         (function_arg_advance): Likewise.
12584         (function_arg): Likewise.
12585         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
12586         SDmode var args for 32-bit compiles.
12587         (rs6000_secondary_reload_class): Handle SDmode.
12588         (rs6000_output_function_epilogue): Likewise.
12589         (rs6000_function_value): Simplify if statement.
12590         (rs6000_libcall_value): Likewise.
12591         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
12592         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
12593         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
12594         (movsd_hardfloat): New define_insn.
12595         (movsd_softfloat): Likewise.
12596         (movsd_store): Likewise.
12597         (movsd_load): Likewise.
12598         (extendsddd2): Likewise.
12599         (extendsdtd2): Likewise.
12600         (truncddsd2): Likewise.
12601         (movdd_hardfloat64): Fixup comment.
12602         (UNSPEC_MOVSD_LOAD): New constant.
12603         (UNSPEC_MOVSD_STORE): Likewise.
12604
12605 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
12606
12607         PR c++/34965
12608         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
12609         TRUTH_XOR_EXPR.
12610         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
12611         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
12612         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
12613         and TRUTH_XOR_EXPR.
12614
12615 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
12616
12617         PR target/34794
12618         * config.gcc: Separate AIX 5.3 from AIX 6.1.
12619         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
12620         __LONGDOUBLE128 too.
12621         * config/rs6000/aix61.h: New file.
12622
12623 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
12624
12625         PR rtl-optimization/34959
12626         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
12627         popcount and parity rtxes the same mode as their operand.
12628         Truncate or extend the result to the return value's mode
12629         if necessary.
12630
12631 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
12632
12633         PR target/34981
12634         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
12635         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
12636         to GOT_VERSION_REGNUM.
12637         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
12638         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
12639         * config/mips/mips.c (mips_emit_call_insn): New function.
12640         (mips_call_tls_get_addr): Call mips_expand_call directly.
12641         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
12642         emit_call_insn.
12643         (mips16_build_call_stub): Likewise.  Return the call insn or null.
12644         (mips_expand_call): Update the call to mips16_build_call_stub
12645         accordingly and a remove redundant condition.  Assert that MIPS16
12646         stubs do not use lazy binding.  Use mips_emit_call_insn and return
12647         the call insn.
12648         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
12649         TARGET_USE_GOT.
12650         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
12651         (mips_avoid_hazard): Remove hazard_set handling.
12652         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
12653         (UNSPEC_RESTORE_GP): ...this.
12654         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
12655         (FAKE_CALL_REGNO): Rename to...
12656         (GOT_VERSION_REGNUM): ...this.
12657         (type): Add "ghost" value.  Add an associated insn reservation.
12658         (hazard_set): Remove.
12659         (exception_receiver): Rename to...
12660         (restore_gp): ...this and update the unspec identifier accordingly.
12661         (exception_receiver, nonlocal_got_receiver): New expanders.
12662         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
12663         FAKE_CALL_REGNO.  Remove hazard_set attribute.
12664         (set_got_version, update_got_version): New patterns.
12665
12666 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
12667
12668         PR target/34970
12669         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
12670
12671 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
12672
12673         PR other/31955
12674         * doc/install.texi2html: Generate gcc-vers.texi.
12675
12676 2008-01-25  DJ Delorie  <dj@redhat.com>
12677
12678         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
12679
12680 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
12681
12682         * config/c4x: Remove directory.
12683         * config.gcc (crx-*, mt-*): Mark obsolete.
12684         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
12685         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
12686         sh-*-rtemscoff*): Remove cases.
12687         * defaults.h (C4X_FLOAT_FORMAT): Remove.
12688         * real.c (encode_c4x_single, decode_c4x_single,
12689         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
12690         c4x_extended_format): Remove.
12691         * real.h (c4x_single_format, c4x_extended_format): Remove.
12692         * doc/extend.texi (interrupt, naked): Remove mention of attributes
12693         on C4x.
12694         (Pragmas): Remove comment about c4x pragmas.
12695         * doc/install.texi (c4x): Remove target-specific instructions.
12696         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
12697         * doc/md.texi (Machine Constraints): Remove C4x documentation.
12698         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
12699         refer to C4x source files as examples.
12700         (C4X_FLOAT_FORMAT): Remove documentation.
12701
12702 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
12703
12704         * config/bfin/bfin.c (override_options): Reorder tests so that
12705         flag_pic gets enabled for -msep-data.
12706
12707 2008-01-25  Richard Guenther  <rguenther@suse.de>
12708
12709         PR middle-end/32244
12710         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
12711         to its bitfield precision if required.
12712
12713 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
12714
12715         PR middle-end/33880
12716         * tree-nested.c (walk_omp_for): New function.
12717         (convert_nonlocal_reference, convert_local_reference): Call
12718         walk_omp_for on OMP_FOR.
12719         (convert_call_expr): Call walk_body on OMP_FOR's
12720         OMP_FOR_PRE_INIT_BODY.
12721
12722 2008-01-25  Richard Guenther  <rguenther@suse.de>
12723
12724         PR tree-optimization/34966
12725         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
12726         default defs and PHI_NODEs we have to insert after the
12727         defining statement.
12728
12729 2008-01-24  Nick Clifton  <nickc@redhat.com>
12730
12731         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
12732         Provide a default definition.
12733         (LIBGCC2_UNITS_PER_WORD): Likewise.
12734
12735         * config/stormy16/stormy16.c: Include df.h for the prototype
12736         for df_regs_ever_live_p.
12737         (xstormy16_expand_builtin_va_start): Convert the stack offset
12738         into a component_ref and then use POINTER_PLUS_EXPR to add it
12739         to the incoming_virtual_args_rtx.
12740         (xstormy16_gimplify_va_arg_expr): Rename to
12741         xstormy16_gimplify_va_arg_expr.
12742         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
12743         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
12744         xstormy16_gimplify_va_arg_expr.
12745         Fix up some formatting issues.
12746
12747         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
12748         Move to predicates.md.
12749         (xs_hi_general_operand): Likewise.
12750         (xs_hi_nonmemory_operand): Likewise.
12751         * config/stormy16/predicates.md:
12752         (xstormy16_carry_plus_operand): New predicate.
12753         (xs_hi_general_operand): New predicate.
12754         (xs_hi_nonmemory_operand): New predicate.
12755         * config/stormy16/stormy16-protos.h:
12756         (xstormy16_carry_plus_operand): Delete prototype.
12757         (xs_hi_general_operand): Likewise.
12758         (xs_hi_nonmemory_operand): Likewise.
12759
12760         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
12761         modifiers as they are no longer needed and they can trigger
12762         reload spill failures.
12763
12764         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
12765         with a match_operand in order to help reload.
12766
12767         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
12768         constraint with 'e' for the 8th alternative as this version of
12769         the mov.w instruction only accepts the lower 8 registers.
12770
12771 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
12772
12773         PR target/34856
12774         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
12775         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
12776         vector elements.
12777
12778 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
12779
12780         PR middle-end/33333
12781         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
12782
12783 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
12784
12785         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
12786         New functions.
12787         (remove_structure): Update allocations list before removing structure.
12788         
12789 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
12790
12791         * ipa-struct-reorg.c (is_safe_cond_expr, 
12792         create_new_stmts_for_cond_expr): Use integer_zerop function,
12793         that recognize not only zero-pointer, but zero-integer too.
12794
12795 2008-01-25  Ben Elliston  <bje@au.ibm.com>
12796
12797         PR other/22232
12798         * fixproto: Escape "." in sed expression that strips leading "./".
12799
12800 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
12801
12802         PR driver/34904
12803         * gcc.c (SWITCH_OK): Removed.
12804         (SWITCH_LIVE): Changed to bit.
12805         (SWITCH_FALSE): Likewise.
12806         (SWITCH_IGNORE): Likewise.
12807         (switchstr): Change live_cond to unsigned int.
12808         (process_command): Replace SWITCH_OK with 0.
12809         (do_self_spec): Likewise.
12810         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
12811         (give_switch): Likewise.
12812         (used_arg): Likewise.
12813         (do_spec_1): Set the SWITCH_IGNORE bit.
12814         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
12815         bits.  Set the SWITCH_LIVE bit.
12816
12817 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
12818
12819         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
12820
12821 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
12822
12823         PR tree-optimization/34472
12824         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
12825         parameter to a "bool *" and set *DATA to false if there is
12826         an unsafe access.  Do not delete the structure here.
12827         (check_cond_exprs): Delete it here instead.
12828         (check_cond_exprs, exclude_cold_structs): Do not increase
12829         I when removing a structure.
12830
12831 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
12832
12833         PR target/34856
12834         * config/i386/i386.c (ix86_expand_vector_init): Consider only
12835         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
12836
12837 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
12838
12839         PR middle-end/34934
12840         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
12841         a fixed vector for stack.
12842
12843 2008-01-24  Ben Elliston  <bje@au.ibm.com>
12844
12845         PR c++/25701
12846         * doc/gcc.texi (Software development): Add a direntry for g++.
12847         
12848 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
12849
12850         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
12851         stale and straggling -fforce-addr comments above.
12852
12853         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
12854         define.
12855         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
12856         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
12857
12858 2008-01-23  Michael Matz  <matz@suse.de>
12859
12860         PR debug/34895
12861         * dwarf2out.c (force_type_die): Use modified_type_die instead of
12862         gen_type_die.
12863
12864 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
12865
12866         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
12867         malloc result type.
12868
12869 2008-01-23 Anatoly Sokolov <aesok@post.ru>
12870
12871         * config/avr/avr.c (avr_current_arch): New variable.
12872         (avr_arch_types): Add 'avr31' and 'avr51' entries.
12873         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
12874         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
12875         (avr_override_options): Init 'avr_current_arch'. 
12876         (base_arch_s): Move from here...
12877         * config/avr/avr.h (base_arch_s): ... here. Add new members 
12878         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
12879         'mega' to 'have_jmp_call'.
12880         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
12881         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
12882         macros.
12883         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
12884         architectures.
12885         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
12886         MULTILIB_MATCHES): (Ditto.).
12887
12888 2008-01-23  Richard Guenther  <rguenther@suse.de>
12889
12890         PR middle-end/31529
12891         * cgraphunit.c (cgraph_reset_node): Always mark the node
12892         not reachable if it is not queued already.
12893
12894 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
12895
12896         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
12897         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
12898         (cputype_selected): New static variable.
12899         (bfin_handle_option): Set it if -mcpu is used.
12900         (override_option): Select default set of workarounds if no cpu type
12901         selected on the command line.
12902         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
12903
12904         From  Michael Frysinger  <michael.frysinger@analog.com>
12905         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
12906         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
12907
12908         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
12909         for bf547, bf523, bf524, and bf526.
12910         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
12911         bf526.
12912         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
12913         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
12914         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
12915         __ADSPBF547__ and __ADSPBF54x__ for bf547.
12916         * doc/invoke.texi (Blackfin Options): Document that
12917         -mcpu now accept bf547, bf523, bf524, and bf526.
12918
12919 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
12920
12921         PR rtl-optimization/34628
12922         * combine.c (try_combine): Stop and undo after the first combination
12923         if an autoincrement side-effect on the first insn has effectively
12924         been lost.
12925
12926 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
12927
12928         PR target/34529
12929         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
12930         Offset addresses are not valid for Altivec or paired float modes.
12931
12932 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
12933
12934         PR c++/34607
12935         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
12936         if DECL_INITIAL (decl) is error_mark_node.
12937
12938         PR c++/34914
12939         * c-common.c (handle_vector_size_attribute): Only allow
12940         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
12941         the same way as pointer, array etc. types.
12942         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
12943
12944         PR c++/34917
12945         * tree.c (build_type_attribute_qual_variant): Call
12946         build_qualified_type if attributes are equal, but quals are not.
12947
12948 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12949
12950         PR 32102
12951         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
12952         * flags.h (warn_strict_aliasing): Remove.
12953         (warn_strict_overflow): Remove.
12954         * opts.c (warn_strict_aliasing): Remove.
12955         (warn_strict_overflow): Remove.
12956         * c-opts.c (c_common_handle_option): -Wall only sets
12957         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
12958         (c_common_post_options): Give default values to -Wstrict-aliasing
12959         and -Wstrict-overflow if they are uninitialized.
12960         * common.opt (Wstrict-aliasing): Specify Var and Init.
12961         (Wstrict-overflow): Likewise.
12962
12963 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
12964
12965         PR rtl-optimization/26854
12966         PR rtl-optimization/34400
12967         PR rtl-optimization/34884
12968         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
12969         DF_RD->gen.
12970         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
12971         (df_rd_bb_info.expanded_lr_out): Deleted
12972         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
12973         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
12974         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
12975         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
12976         Removed code to allocate, initialize or free expanded_lr_out.
12977         (df_rd_bb_local_compute_process_def): Restructured to make more
12978         understandable.
12979         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
12980         sets if the sets are being trimmed.
12981
12982 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
12983
12984         PR bootstrap/32287
12985         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
12986         (as_vers): Likewise.
12987         * configure: Regenerated.
12988
12989 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12990
12991         PR middle-end/33092
12992         * tree-pass.h (pass_build_alias): New pass.
12993         * tree-ssa-alias.c (gate_build_alias): New.
12994         (pass_build_alias): New.
12995         * passes.c (init_optimization_passes): Add pass_build_alias after
12996         pass_create_structure_vars.
12997
12998 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
12999
13000         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
13001         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
13002         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
13003         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
13004         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
13005         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
13006         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
13007         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
13008         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
13009         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
13010         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
13011         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
13012         * config/s390/s390.md (FP_ALL): New mode iterator.
13013         (_d): New mode attribute.
13014         ("*signbit<mode>2>"): Changed mode of first operand.
13015         ("isinf<mode>2"): Changed mode of first operand.
13016         ("*TDC_insn"): Adaptation for DFP modes.
13017
13018 2008-01-22  Ben Elliston  <bje@au.ibm.com>
13019
13020         * tree.c (check_qualified_type): Improve function description.
13021
13022 2008-01-21  Jason Merrill  <jason@redhat.com>
13023
13024         PR c++/34196
13025         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
13026         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
13027         if it is set.
13028
13029 2008-01-21  DJ Delorie  <dj@redhat.com>
13030
13031         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
13032         return zero.
13033
13034 2008-01-21  Richard Guenther  <rguenther@suse.de>
13035
13036         PR middle-end/34856
13037         * tree-cfg.c (verify_expr): Allow all invariant expressions
13038         instead of just constant class ones as reference argument.
13039         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
13040         like any other constant.
13041         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
13042
13043 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
13044
13045         * regmove.c (fixup_match_1): Update call crossed frequencies.
13046
13047 2008-01-21  Richard Guenther  <rguenther@suse.de>
13048
13049         PR c/34885
13050         * tree-inline.c (setup_one_parameter): Deal with mismatched
13051         types using a VIEW_CONVERT_EXPR.
13052
13053 2008-01-21  Alon Dayan  <alond@il.ibm.com>
13054             Olga Golovanevsky  <olga@il.ibm.com>
13055         
13056         PR tree-optimization/34701
13057         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
13058         when the structure size is not a power of 2.
13059
13060 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
13061
13062         * doc/install.texi: Add doc for --enable-checking=df.
13063         
13064 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
13065
13066         PR rtl-optimization/34808
13067         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
13068
13069 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
13070
13071         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
13072         input.
13073
13074 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
13075
13076         PR rtl-optimization/26854
13077         PR rtl-optimization/34400
13078         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
13079         DF_RD->gen.
13080         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
13081         (df_rd_bb_info.expanded_lr_out): New.
13082         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
13083         * loop_iv.c (iv_analysis_loop_init): Ditto.
13084         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
13085         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
13086         Added code to allocate, initialize or free expanded_lr_out.
13087         (df_rd_bb_local_compute_process_def): Restructured to make
13088         more understandable.
13089         (df_rd_confluence_n): Add code to do nothing with fake edges and
13090         code to no apply invalidate_by_call sets if the sets are being trimmed.
13091         (df_lr_local_finalize): Renamed to df_lr_finalize.
13092         (df_live_local_finalize): Renamed to df_live_finalize.
13093
13094 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
13095
13096         PR target/34831
13097         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
13098         deciding whether to use reciprocal instructions.
13099
13100 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
13101
13102         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
13103         dwarf2out_note_section_used if cold_text_section is NULL.
13104
13105 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
13106
13107         PR gcov-profile/34610
13108         * tree-cfg.c (make_edges): Mark both outgoing edges from
13109         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
13110         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
13111         from OMP_FOR and OMP_CONTINUE outgoing edges.
13112
13113         * tree-profile.c (tree_profiling): Return early if
13114         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
13115         at the end.
13116         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
13117         from cfun to child_cfun.
13118         * function.h (struct function): Add after_tree_profile bit.
13119
13120 2008-01-19 Anatoly Sokolov <aesok@post.ru>
13121
13122         * config/avr/avr.S (_exit): Disable interrupt.
13123
13124 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
13125             Steven Bosscher  <stevenb.gcc@gmail.com>
13126
13127         PR rtl-optimization/26854
13128         PR rtl-optimization/34400
13129         * df-problems.c (df_live_scratch): New scratch bitmap.
13130         (df_live_alloc): Allocate df_live_scratch when doing df_live.
13131         (df_live_reset): Clear the proper bitmaps.
13132         (df_live_bb_local_compute): Only process the artificial defs once
13133         since the order is not important.
13134         (df_live_init): Init the df_live sets only with the variables
13135         found live by df_lr.
13136         (df_live_transfer_function): Use the df_lr sets to prune the
13137         df_live sets as they are being computed.  
13138         (df_live_free): Free df_live_scratch.
13139
13140 2008-01-18  Ian Lance Taylor  <iant@google.com>
13141
13142         * common.opt: Add fmerge-debug-strings.
13143         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
13144         flag_merge_debug_strings rather than flag_merge_constants.
13145         * doc/invoke.texi (Option Summary): Mention
13146         -fmerge-debug-strings.
13147         (Debugging Options): Document -fmerge-debug-strings.
13148
13149 2008-01-18  Ian Lance Taylor  <iant@google.com>
13150
13151         PR c++/33407
13152         * tree.h (DECL_IS_OPERATOR_NEW): Define.
13153         (struct tree_function_decl): Add new field operator_new_flag.
13154         * tree-inline.c (expand_call_inline): When inlining a call to
13155         operator new, force the return value to go into a variable, and
13156         set DECL_NO_TBAA_P on that variable.
13157         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
13158
13159 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
13160
13161         PR debug/34484
13162         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
13163         DWARF2_DEBUGGING_INFO.
13164         (dwarf2out_note_section_used): Ditto.  Add prototype.
13165         (have_multiple_function_sections, text_section_used,
13166         cold_text_section_used, *cold_text_sections): Move declarations
13167         before their uses.
13168
13169 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
13170
13171         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
13172         field and add signal_ra.
13173         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
13174         assignments to frame state pc.  Move end of stack check after
13175         MD_FALLBACK_FRAME_STATE_FOR.
13176         (uw_update_context_1): Use frame state signal_regs if set, instead
13177         of checking signal_frame flag.
13178         (uw_update_context): Use frame state signal_ra if set.
13179         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
13180         * config/xtensa/linux-unwind.h: New file.
13181
13182 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
13183
13184         * modulo-sched.c (get_sched_window): Fix comment typo.
13185
13186 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
13187
13188         PR tree-optimization/34648
13189         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
13190
13191 2008-01-17  Anatoly Sokolov <aesok@post.ru>
13192
13193         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
13194         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
13195
13196 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
13197
13198         PR rtl-optimization/34400
13199         * df-core.c (df_worklist_dataflow_overeager,
13200         df_worklist_dataflow_doublequeue): New functions.
13201         (df_worklist_dataflow): Two different worklist solvers.
13202         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
13203         New param.
13204
13205 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13206
13207         PR testsuite/34821
13208         * doc/invoke.texi: Document the dependence on pthread for fopenmp
13209         and ftree-parallelize-loops.
13210
13211 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
13212
13213         PR rtl-optimization/34826
13214         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
13215
13216 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
13217
13218         * global.c (find_reg): Mark the eh regs as used if necessary.
13219         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
13220         * ra.h (struct allocno): no_eh_reg field added.  Changed
13221         no_stack_reg type to bitfield.
13222
13223 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
13224
13225         * tree.c (substitute_in_expr): Add missing 'break'.
13226
13227 2008-01-17  Richard Guenther  <rguenther@suse.de>
13228
13229         PR tree-optimization/34825
13230         * tree-ssa-math-opts.c (is_division_by): Do not recognize
13231         x / x as division to handle.
13232
13233 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13234
13235         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
13236         "-pthread" is specified.
13237         * pa-hpux11.h (LIB_SPEC): Likewise.
13238
13239 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
13240             Peter Bergner  <bergner@vnet.ibm.com>
13241
13242         PR rtl-optimization/33796
13243         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
13244
13245 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13246
13247         PR libgfortran/34699
13248         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
13249         static links.
13250         * pa-hpux10.h (LINK_SPEC): Likewise.
13251         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
13252
13253 2008-01-16  Richard Guenther  <rguenther@suse.de>
13254
13255         PR middle-end/32628
13256         * fold-const.c (fold_convert_const_int_from_int): Do not
13257         set overflow if that occured only because of a sign extension
13258         change when converting from/to a sizetype with the same
13259         precision and signedness.
13260
13261 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
13262
13263         PR debug/34249
13264         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
13265         location address to the correct place.  Update copyright year.
13266
13267 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13268
13269         * lambda-code.c (lambda_transform_legal_p): Handle the case of
13270         no dependences in the dependence_relations vector.
13271
13272 2008-01-16  Jan Hubicka  <jh@suse.cz>
13273
13274         PR rtl-optimization/31396
13275         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
13276         * cfg.c (dump_reg_info): Print it.
13277         * regs.h (struct reg_info_t): add freq_calls_crossed.
13278         (REG_FREQ_CALLS_CROSSED): New macro.
13279         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
13280         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
13281         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
13282         regmove_optimize): Update call crossed frequencies.
13283         * local-alloc.c (struct qty): Add freq_calls_crossed.
13284         (alloc_qty): Copute freq_calls_crossed.
13285         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
13286         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
13287         * ra.h (struct allocno): Add freq_calls_crossed.
13288
13289 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13290
13291         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
13292         libgomp when compiling with ftree-parallelize-loops.
13293         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
13294
13295 2008-01-16  Richard Guenther  <rguenther@suse.de>
13296
13297         PR tree-optimization/34769
13298         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
13299         * tree.c (int_cst_value): Instead make this function more
13300         permissive in what it accepts as valid input.  Document this
13301         function always sign-extends the value.
13302
13303 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
13304             Richard Guenther  <rguenther@suse.de>
13305
13306         PR c/34668
13307         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
13308         (gimple_fold_indirect_ref_rhs): ... this.
13309         (gimple_fold_indirect_ref): New function with foldings
13310         that preserve lvalueness.
13311         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
13312         * tree-flow.h (gimple_fold_indirect_ref): Declare.
13313         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
13314         to fold an INDIRECT_REF, fall back to the old use of
13315         fold_indirect_ref_1.
13316
13317 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13318
13319         * tree-data-ref.c (subscript_dependence_tester_1): Call 
13320         free_conflict_function.
13321         (compute_self_dependence): Same.
13322
13323 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
13324
13325         PR debug/34249
13326         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
13327         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
13328         function global.
13329         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
13330         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
13331         for DWARF2_UNWIND_INFO targets.
13332
13333 2008-01-16  Richard Guenther  <rguenther@suse.de>
13334
13335         PR c/34768
13336         * c-typeck.c (common_pointer_type): Do not merge inconsistent
13337         type qualifiers for function types.
13338
13339 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
13340
13341         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
13342         loop_iterator li from previous commit.
13343
13344 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
13345
13346         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
13347
13348 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
13349
13350         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
13351         (parallelize_loops): Don't parallelize irreducible components.
13352
13353 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13354
13355         PR c++/24924
13356         * c-opts (c_common_post_options): Do not enable CPP
13357         flag_pedantic_errors by default.
13358         
13359 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
13360
13361         PR rtl-optimization/31944
13362         * cse.c (remove_pseudo_from_table): New function.
13363         (merge_equiv_classes): Use above function to remove pseudo-registers.
13364         (invalidate): Likewise.
13365
13366 2008-01-13  Richard Guenther  <rguenther@suse.de>
13367
13368         PR middle-end/34601
13369         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
13370         instead of TYPE_MODE to deal with calls from expand_one_error_var.
13371
13372 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
13373
13374         * gcse.c (cprop_jump): Call validate_unshare_change instead of
13375         validate_change to unshare the source of the PC set.
13376
13377 2008-01-12  Jan Hubicka  <jh@suse.cz>
13378
13379         PR middle-end/32135
13380         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
13381         references above array bounds.  This might trigger bounds checks for
13382         pointers to arrays.
13383
13384 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
13385
13386         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
13387         new_replaceable_dependencies.
13388
13389 2008-01-12  Doug Kwan  <dougkwan@google.com>
13390
13391         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
13392         instead of OPT_Wreturn_type in warning due to ignored return type
13393         qualifiers.
13394         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
13395         options included in -Wextra.
13396         * c.opt: New option -Wignored_qualifiers.
13397         * doc/invoke.texi (Warning Options, -Wextra): Add new option
13398         -Wignore_qualifiers.
13399         (-Wignored-qualifiers): Document.
13400         (-Wreturn-type): Remove description of functionality now handled
13401         by -Wignored-qualifiers.
13402
13403 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
13404
13405         PR ada/33788
13406         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
13407         NOP_EXPR if it is between integral types with the same precision.
13408
13409 2008-01-12  Jan Hubicka  <jh@suse.cz>
13410
13411         PR other/28023
13412         * invoke.texi (max-inline-recursive-depth): Fix default value.
13413
13414 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
13415
13416         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
13417         correct type.
13418
13419 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
13420         
13421         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
13422         
13423 2008-01-11  James E. Wilson  <wilson@specifix.com>
13424
13425         PR target/26015
13426         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
13427
13428 2008-01-11  Anatoly Sokolov <aesok@post.ru>
13429
13430         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
13431         save/restore frame pointer register and don't use 'call-prologues' 
13432         optimization in function with "OS_task" attribute.
13433
13434 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
13435
13436         PR middle-end/31309
13437         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
13438         when copying to memory.
13439
13440 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
13441
13442         PR rtl-optimization/30905
13443         * cfgcleanup.c: Include dce.h
13444         (crossjumps_occured): New global variable.
13445         (try_crossjump_bb): Exit loop after finding a fallthru edge.
13446         If something changed, set crossjumps_occured to true.
13447         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
13448         Don't add/remove fake edges to exit here...
13449         (cleanup_cfg): ...but do it here, when crossjumping.
13450         Run a fast DCE when successful crossjumps occured in the latest
13451         iteration of try_optimize_cfg.
13452
13453 2008-01-11  Richard Guenther  <rguenther@suse.de>
13454
13455         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
13456         (struct vn_unary_op_s): Likewise.
13457         (vn_reference_insert): Free old reference on hash collision.
13458
13459 2008-01-10  Raksit Ashok  <raksit@google.com>
13460
13461         PR rtl-optimization/27971
13462         * combine.c (find_split_point): Split PLUS expressions which are
13463         inside a MEM rtx, and whose first operand is complex.
13464
13465 2008-01-10  DJ Delorie  <dj@redhat.com>
13466
13467         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
13468         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
13469         (m32c_hard_regno_ok): Call the underlying function.
13470
13471 2008-01-10  Richard Guenther  <rguenther@suse.de>
13472
13473         PR middle-end/34683
13474         * tree-cfg.c (tree_merge_blocks): Do not go through the
13475         full-blown folding and stmt updating path if we just deal
13476         with virtual operands.
13477         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
13478         test for abnormal SSA_NAMEs.
13479
13480 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
13481
13482         PR middle-end/34641
13483         * reload.c (push_reload): Add assertions.  All constants from
13484         reg_equiv_constant should have been used for replacing the respective
13485         pseudo earlier.
13486         (find_reloads_address): Invoke find_reloads_address_part for
13487         constant taken from the reg_equiv_constant array.
13488
13489 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
13490
13491         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
13492         field (valnum) the first in the struct.  Replace bools with
13493         unit bit fields.
13494
13495 2008-01-10  Richard Guenther  <rguenther@suse.de>
13496
13497         PR tree-optimization/34651
13498         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
13499         types and ordering for masking and converting.
13500
13501 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
13502
13503         PR tree-optimization/34017
13504         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
13505         also for PHI_NODE expressions.
13506
13507 2008-01-09  Jan Hubicka  <jh@suse.cz>
13508
13509         PR tree-optimization/34708
13510         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
13511         based on number of case labels.
13512         (init_inline_once): Remove switch_cost.
13513         * tree-inline.h (eni_weights_d): Remove switch_cost.
13514
13515 2008-01-09  Richard Guenther  <rguenther@suse.de>
13516         Andrew Pinski  <andrew_pinski@playstation.sony.com>
13517
13518         PR middle-end/30132
13519         * gimplify.c (gimplify_cond_expr): Do not create an addressable
13520         temporary if an rvalue is ok or an lvalue is not required.
13521
13522 2008-01-09  Richard Guenther  <rguenther@suse.de>
13523
13524         PR middle-end/34458
13525         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
13526         adjust return type.
13527
13528 2008-01-09  Richard Guenther  <rguenther@suse.de>
13529
13530         PR middle-end/34679
13531         * tree.c (host_integerp): Check for sizetype only if the
13532         type is an integer type.
13533
13534 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
13535
13536         PR debug/26364
13537         * opts.c (decode_options): Disable inlining of functions called
13538         once if not in unit-at-a-time mode.
13539
13540 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
13541
13542         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
13543
13544 2008-01-08  Richard Guenther  <rguenther@suse.de>
13545
13546         PR middle-end/31863
13547         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
13548         out early if the result will be unused.
13549
13550 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
13551
13552         PR target/34709
13553         Revert:
13554
13555         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
13556         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
13557         for TARGET_RECIP.       
13558         
13559 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
13560         
13561         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
13562         for vectorization tuned.
13563         
13564 2008-01-08  Richard Guenther  <rguenther@suse.de>
13565
13566         PR tree-optimization/34683
13567         * tree-ssa-operands.c (operand_build_cmp): Export.
13568         * tree-ssa-operands.h (operand_build_cmp): Declare.
13569         * tree-vn.c (vuses_compare): Remove.
13570         (sort_vuses): Use operand_build_cmp.
13571         (sort_vuses_heap): Likewise.
13572         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
13573         to re-use old VEC if available.  Do not sort already sorted VUSEs.
13574         (vdefs_to_vec): Do not sort already sorted VDEFs.
13575
13576 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
13577
13578         PR middle-end/34694
13579         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
13580
13581 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
13582
13583         PR target/34702
13584         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
13585         limitations of reciprocal sequences on x86 targets.
13586
13587 2008-01-08  Richard Guenther  <rguenther@suse.de>
13588
13589         PR tree-optimization/34683
13590         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
13591
13592 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
13593
13594         PR target/34622
13595         * config/darwin.c (darwin_mergeable_string_section): Don't use
13596         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
13597
13598 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
13599
13600         PR target/34682
13601         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
13602         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
13603         predicates of op0 and op1 to register_operand.
13604         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
13605         expander using X87MODEF mode iterator.  Change predicates of
13606         op0 and op1 to register_operand.
13607         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
13608         corresponding patterns and macroize using MODEF macro.  Change
13609         predicates of op0 and op1 to register_operand and remove
13610         "m" constraint. Disparage "r" alternative with "!".
13611         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
13612         macroize using X87MODEF macro.  Change predicates of op0 and op1
13613         to register_operand and remove "m" constraint.  Disparage "r"
13614         alternative with "!".
13615         (absneg splitter with memory operands): Remove.
13616         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
13617         patterns and macroize using X87MODEF mode iterator.
13618         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
13619         Change predicate of op1 to register_operand.
13620         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
13621         for memory operands.
13622
13623 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
13624
13625         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
13626
13627 2008-01-07  Richard Guenther  <rguenther@suse.de>
13628
13629         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
13630         fields.
13631
13632 2008-01-07  Richard Guenther  <rguenther@suse.de>
13633
13634         PR tree-optimization/34683
13635         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
13636         VOPs of the needed size to save memory.  Use VEC_quick_push
13637         to save compile-time.
13638         (vdefs_to_vec): Likewise.
13639
13640 2008-01-07  Sa Liu  <saliu@de.ibm.com>
13641
13642         * config/spu/spu.md (divdf3): Genetate inline code for double
13643         division.  The implementation doesn't handle INF or NAN, therefore it
13644         only applies when -ffinite-math-only is given.
13645
13646 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
13647
13648         PR libstdc++/34680
13649         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
13650         * doc/cpp.texi ([Common Predefined Macros]): Document.
13651
13652 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
13653
13654         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
13655         order to use commutative addition instead of subtraction.
13656
13657 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13658             Mircea Namolaru  <namolaru@il.ibm.com>
13659             Vladimir Yanovsky  <yanov@il.ibm.com>
13660             Revital Eres  <eres@il.ibm.com>
13661
13662         PR tree-optimization/34263
13663         * tree-outof-ssa.c (process_single_block_loop_latch,
13664         contains_tree_r): New functions.
13665         (analyze_edges_for_bb): Call process_single_block_loop_latch
13666         function to empty single-basic-block latch block if possible.
13667
13668 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
13669
13670         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
13671         for TARGET_RECIP.
13672         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
13673
13674 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
13675
13676         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
13677
13678 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
13679
13680         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
13681
13682 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
13683
13684         PR tree-optimization/34618
13685         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
13686         flag from T.
13687
13688 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
13689
13690         PR target/34673
13691         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
13692         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
13693         Update copyright year.
13694
13695         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
13696         Update copyright year.
13697         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
13698         using NR fixup.
13699
13700 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
13701
13702         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
13703         edge does not point to current bb before changing need_assert.
13704
13705 2008-01-04  Richard Guenther  <rguenther@suse.de>
13706
13707         PR middle-end/34029
13708         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
13709         for verifying purposes if they are is_gimple_min_invariant.
13710
13711 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
13712
13713         PR tree-optimization/34448
13714         PR tree-optimization/34465
13715         * gimplify.c (gimplify_init_constructor): Add new parameter
13716         notify_temp_creation.  Use it.
13717         (gimplify_modify_expr_rhs): Take volatiles into account when
13718         optimizing constructors.
13719         Do not optimize constructors if gimplify_init_constructor will dump to
13720         memory.
13721         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
13722         * gcc.c-torture/compile/pr34448.c: New.
13723
13724 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
13725
13726         PR gcov-profile/34609
13727         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
13728         return_slot if result is TREE_ADDRESSABLE.
13729
13730 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
13731
13732         * config/mips/mips.md (sqrt_condition): Tweak comment.
13733         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
13734
13735 2008-01-03  Tom Tromey  <tromey@redhat.com>
13736
13737         PR c/34457
13738         * c-common.c (c_type_hash): Handle VLAs.
13739
13740 2008-01-03  Jan Hubicka  <jh@suse.cz>
13741
13742         PR tree-optimization/31081
13743         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
13744         0 when inlining and not inlining to first basic block.
13745         (remap_decl): When var is initialized to 0, don't set default_def.
13746         (expand_call_inline): Set entry_bb.
13747         * tree-inline.h (copy_body_data): Add entry_bb.
13748
13749 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
13750
13751         PR c++/34619
13752         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
13753         before returning.
13754
13755         PR tree-optimization/29484
13756         * tree-inline.c (inline_forbidden_p_2): New function.
13757         (inline_forbidden_p): Disallow inlining if some static var
13758         has an address of a local LABEL_DECL in its initializer.
13759         * doc/extend.texi (Labels as Values): Document &&foo behaviour
13760         vs. inlining.
13761
13762 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
13763
13764         PR tree-optimization/34635
13765         * tree-data-ref.c (add_other_self_distances): Make sure that the
13766         evolution step is constant.
13767
13768 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
13769
13770         PR middle-end/34608
13771         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
13772
13773 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
13774
13775         * tree-sra.c (scalarize_init): Insert the generate_element_init
13776         statements after the generate_element_zero statements.
13777
13778 2008-01-02  Richard Guenther  <rguenther@suse.de>
13779
13780         PR middle-end/34093
13781         PR middle-end/31976
13782         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
13783         for very large number of operands instead of ICEing.
13784
13785 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
13786
13787         PR target/34013
13788         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
13789         while stack probing.
13790
13791 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
13792
13793         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
13794         in C++0x mode.
13795
13796 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
13797
13798         PR libmudflap/26442
13799         * tree-mudflap.c (mx_register_decls): Guard warning by
13800         !DECL_ARTIFICIAL check.
13801
13802 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
13803
13804         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
13805         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
13806         sse5_perm<mode>): Fix constraints.