OSDN Git Service

2008-10-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-10-13  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2             Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
3             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
4             Grace Cao  <grace_cao@playstation.sony.com>
5
6         * doc/invoke.texi (-mgen-cell-microcode): Document.
7         (-mwarn-cell-microcode): Document.
8         * cfglayout.c (locator_location): Export.
9         * rtl.h (locator_location): Define prototype.
10         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): New predicate.
11         * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
12         * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
13         (mwarn-cell-microcode): New option.
14         * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
15         (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
16         cell and not already set.
17         Turn off string instructions if not generating cell microcode.
18         (rs6000_final_prescan_insn): New function that warns about microcoded
19         instructions.
20         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
21         * config/rs6000/rs6000.md
22         Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
23         the instruction would have been microcoded on the Cell.
24         Set cell_micro to always on unnamed patterns for the string instructions.
25         (cell_micro): Update definition, remove load/store conditional microcoded.
26         (sign_extend:DI): Define new pattern for non microcoded version.
27         (sign_extend:SI): Likewise.
28         (compare (div:P)): Set cell_micro to not.
29         (andsi3): Define as an expand.
30         (andsi3_mc): New pattern.
31         (andsi3_nomc): New pattern.
32         (andsi3_internal0_nomc): New pattern.
33         (andsi3_internal2): Rename to ...
34         (andsi3_internal2_mc): this and enable iff generating microcode.
35         (andsi3_internal3): Rename to ...
36         (andsi3_internal3_mc): this and enable iff generating microcode.
37         (andsi3_internal4): Enable iif generating microcode.
38         (andsi3_internal5): Rename to ..
39         (andsi3_internal5_mc): this and enable iff generating microcode.
40         (andsi3_internal5_nomc): New pattern.
41         (extzvdi_internal1): Enable iff generating microcode.
42         (extzvdi_internal2): Likewise.
43         (rotlsi3_internal7): Set cell_micro to always if non immediate form.
44         (anddi3): Change to expand.
45         (anddi3_mc): Rename from anddi3.
46         (anddi3_no_mc): New pattern.
47         (anddi3_internal2): Rename to ..
48         (anddi3_internal2_mc): this and enable iff generating microcode.
49         (anddi3_internal2_nomc): New pattern.
50         (anddi3_internal3): Rename to ..
51         (anddi3_internal3_mc): this and enable iff generating microcode.
52         (anddi3_internal3_nomc): New pattern.
53         (movti_string): Set cell_micro to always if TARGET_STRING.
54         (stmsi8): Set cell_micro to always.
55         (stmsi7): Likewise.
56         (stmsi6): Likewise.
57         (stmsi5): Likewise.
58         (stmsi4): Likewise.
59         (stmsi3): Likewise.
60         (stmsi8_power): Likewise.
61         (stmsi7_power): Likewise.
62         (stmsi6_power): Likewise.
63         (stmsi5_power): Likewise.
64         (stmsi4_power): Likewise.
65         (stmsi3_power): Likewise.
66         (movsi_update2): Enable iff generating microcode.
67         (movhi_update3): Likewise.
68         (lmw): Set cell_micro to always.
69
70 2008-10-13  Richard Sandiford  <rdsandiford@googlemail.com>
71
72         * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
73         * config/s390/s390.c (machine_function): Remove
74         decomposed_literal_pool_addresses_ok_p.
75         (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
76         the difference of two labels.
77         (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
78         (s390_pool_offset): New function.
79         (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
80         (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
81
82 2008-10-13  Nathan Froyd  <froydnj@codesourcery.com>
83
84         * doc/install.texi (powerpc-*-*): Require binutils 2.15.
85         (powerpc*-*-linux-gnu*): Describe.
86         * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
87         * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
88         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
89         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
90         config/rs6000/e500crtres32gpr.asm,
91         config/rs6000/e500crtres64gpr.asm,
92         config/rs6000/e500crtres64gprctr.asm,
93         config/rs6000/e500crtrest32gpr.asm,
94         config/rs6000/e500crtrest64gpr.asm,
95         config/rs6000/e500crtresx32gpr.asm,
96         config/rs6000/e500crtresx64gpr.asm,
97         config/rs6000/e500crtsav32gpr.asm,
98         config/rs6000/e500crtsav64gpr.asm,
99         config/rs6000/e500crtsav64gprctr.asm,
100         config/rs6000/e500crtsavg32gpr.asm,
101         config/rs6000/e500crtsavg64gpr.asm,
102         config/rs6000/e500crtsavg64gprctr.asm: Use it.
103         * config/rs6000/crtsavres.asm: Really remove.
104
105 2008-10-13  Kai Tietz  <kai.tietz@onevision.com>
106
107         Fix PR/25502
108         * c-format.c (convert_format_name_to_system_name): Use
109         TARGET_OVERRIDES_FORMAT_INIT.
110         * config.gcc (extra_options): Add for mingw targets mingw.opt.
111         * config/i386/mingw.opt: New.
112         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
113         * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
114         (ms_printf_length_specs): Removed const specifier.
115         * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
116         * doc/invoke.texi (Wno-pedantic-ms-format): New.
117
118 2008-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
119
120         * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
121         * doc/install.texi: Bump recommended MPFR to 2.3.2.
122
123 2008-10-12  Kenneth Zadeck <zadeck@naturalbridge.com>
124
125         PR middle-end/37808
126         * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
127         sure that ref has valid bb.
128         
129 2008-10-12  Richard Henderson  <rth@redhat.com>
130
131         PR middle-end/37447
132         * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
133         * alias.c (value_addr_p, stack_addr_p): Remove.
134         (nonoverlapping_memrefs_p): Remove IRA special case.
135         * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
136         * emit-rtl.h (set_mem_attrs_for_spill): Declare.
137         * reload1.c (alter_reg): Use it.
138
139 2008-10-12  Uros Bizjak  <ubizjak@gmail.com>
140
141         * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
142         of registers instead of eax, ebx, ecx and edx.  Use for loop
143         and check register for non-zero value before the call
144         to decode_caches_intel.
145
146 2008-10-11  Kenneth Zadeck <zadeck@naturalbridge.com>
147
148         PR rtl-optimization/37448
149         * df.h: (df_ref_class): New enum.
150         (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
151         (struct df_ref): Replaced with union df_ref_d.
152         (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
153         New members of df_ref_d union.
154         (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
155         DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
156         DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
157         DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
158         DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
159         DF_REF_EXTRACT_MODE): Replaced definition to access union
160         df_ref_d.
161         (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
162         (df_scan_bb_info, df_bb_regno_first_def_find,
163         df_bb_regno_last_def_find, df_find_def, df_find_use,
164         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
165         debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
166         df_ref_create, df_ref_remove, df_compute_accessed_bytes,
167         df_get_artificial_defs, df_get_artificial_uses, union_defs)
168         Replaced struct df_ref * with df_ref.
169         * df-scan.c (df_collection_rec, df_null_ref_rec,
170         df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
171         df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
172         df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
173         df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
174         df_reorganize_refs_by_reg_by_reg,
175         df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
176         df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
177         df_sort_and_compress_refs, df_install_ref, df_install_refs,
178         df_ref_record, df_get_conditional_uses, df_get_call_refs,
179         df_bb_refs_record, df_exit_block_uses_collect,
180         df_record_exit_block_uses, df_reg_chain_mark,
181         df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
182         df_ref * with df_ref.
183         (df_ref_record, df_uses_record, df_ref_create_structure): Added
184         df_ref_class parameter.
185         (df_scan_problem_data): Added new pools for different types of
186         refs.
187         (df_scan_free_internal, df_scan_alloc, df_free_ref,
188         df_ref_create_structure): Processed new ref pools.
189         (df_scan_start_dump): Added counts of refs and insns.
190         (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
191         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
192         df_entry_block_defs_collect, df_exit_block_uses_collect): Added
193         code to pass df_ref_class down to ref creation functions.
194         (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
195         df_reg_chain_mark): Use macros to hide references to df_refs.
196         (df_ref_chain_change_bb): Removed.
197         (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
198         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
199         Enhanced to understand df_ref union structure.
200         * fwprop.c (local_ref_killed_between_p, use_killed_between,
201         all_uses_available_at, update_df, try_fwprop_subst,
202         forward_propagate_subreg, forward_propagate_and_simplify,
203         forward_propagate_into, fwprop, fwprop_addr): Replaced struct
204         df_ref * with df_ref.
205         (use_killed_between, all_uses_available_at): Use macros to hide
206         references to df_refs.
207         * regstat.c (regstat_bb_compute_ri,
208         regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
209         df_ref.
210         * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
211         see_handle_relevant_refs, see_analyze_one_def,
212         see_update_relevancy, see_propagate_extensions_to_uses): Replaced
213         struct df_ref * with df_ref.
214         * ra-conflict.c (record_one_conflict, clear_reg_in_live,
215         global_conflicts): Replaced struct df_ref * with df_ref.
216         * ddg.c (create_ddg_dep_from_intra_loop_link,
217         add_cross_iteration_register_deps, build_inter_loop_deps):
218         Replaced struct df_ref * with df_ref.
219         (create_ddg_dep_from_intra_loop_link,
220         add_cross_iteration_register_deps): Use macros to hide references
221         to df_refs.
222         * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
223         df_ref * with df_ref.
224         * df-core.c (df_bb_regno_first_def_find,
225         df_bb_regno_last_def_find, df_find_def, df_find_use,
226         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
227         debug_df_ref): Replaced struct df_ref * with df_ref.
228         (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
229         * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
230         df_ref.
231         * web.c (union_defs, entry_register, replace_ref, web_main):
232         Replaced struct df_ref * with df_ref.
233         (union_defs, replace_ref): Use macros to hide references to df_refs.
234         * global.c (compute_regs_asm_clobbered, build_insn_chain):
235         Replaced struct df_ref * with df_ref.
236         * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
237         * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets, ):
238         Replaced struct df_ref * with df_ref.
239         * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
240         mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
241         with df_ref.
242         * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
243         * df-byte-scan.c (df_compute_accessed_bytes_extract,
244         df_compute_accessed_bytes_strict_low_part,
245         df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
246         Replaced struct df_ref * with df_ref.
247         (df_compute_accessed_bytes): Use macros to hide references to df_refs.
248         * init-regs.c (initialize_uninitialized_regs): Replaced struct
249         df_ref * with df_ref.
250         * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
251         check_dependency, check_dependencies, record_uses): Replaced
252         struct df_ref * with df_ref.
253         (invariant_for_use, check_dependency): Use macros to hide
254         references to df_refs.
255         * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
256         get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
257         iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
258         (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
259         references to df_refs.
260         * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
261         with df_ref.
262         * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
263         * df-problems.c (df_rd_bb_local_compute_process_def,
264         df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
265         df_chain_unlink_1, df_chain_unlink, df_chain_copy,
266         df_chain_remove_problem, df_chain_create_bb_process_use,
267         df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
268         df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
269         df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
270         df_byte_lr_simulate_artificial_refs_at_top,
271         df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
272         df_note_bb_compute, df_note_add_problem, df_simulate_defs,
273         df_simulate_uses, df_simulate_artificial_refs_at_end,
274         df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
275         df_ref.
276         (df_chain_dump): Use macros to hide references to df_refs.
277         * config/mips/mips.c (r10k_simplify_address): Replaced struct
278         df_ref * with df_ref.
279         * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
280         mark_artificial_uses, mark_reg_dependencies,
281         byte_dce_process_block): Replaced struct df_ref * with df_ref.
282
283 2008-10-11  Eric Botcazou  <ebotcazou@adacore.com>
284
285         * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
286         head comment.
287         (array_ref_element_size): Likewise.
288         (array_ref_low_bound): Likewise.
289         (array_ref_up_bound): Likewise.
290         * expr.c (contains_packed_reference): Likewise.
291         (array_ref_element_size): Likewise.
292         (array_ref_low_bound): Likewise.
293         (array_ref_up_bound): Likewise.
294         * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
295         with ARRAY_RANGE_REF.
296         (idx_find_step): Likewise.
297         (idx_record_use): Likewise.
298         (strip_offset_1): Likewise.
299         (idx_remove_ssa_names): Likewise.
300
301 2008-10-11  Uros Bizjak  <ubizjak@gmail.com>
302             Andi Kleen  <ak@linux.intel.com>
303
304         * config/i386/cpuid.h (__cpuid_count): New defines.
305         * config/i386/driver-i386.c (struct cache_desc): New structure.
306         (describe_cache): Use struct cache_desc to pass cache descriptions.
307         (detect_l2_cache): Ditto. Rename from decode_l2_cache.
308         (detect_caches_amd): Use struct cache_desc to describe caches.
309         (decode_caches_intel): Use struct cache_desc to pass cache
310         descriptions.  Update descriptions to match latest (rev -032,
311         December 2007) CPUID documentation.  Do not check valid bit here.
312         Check for Xeon MP value 0x49 problems.
313         (detect_caches_cpuid2): New function, split from detect_caches_intel.
314         Check valid bit before calling decode_caches_intel.  Detect number
315         of times to repeat CPUID instruction.
316         (detect_caches_cpuid4): New function.
317         (detect_caches_intel): Depending on max_level, call
318         detect_caches_cpuid2 or detect_caches_cpuid4.  Call detect_l2_cache
319         only when other methods fail to provide valid L2 cache description.
320
321 2008-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
322
323         PR middle-end/37608
324         * pa.md (call, call_value): Generate an rtx for register r4 and pass
325         it to PIC call patterns.
326         (call_symref_pic): Revise pattern to expose PIC register save.  Remove
327         code generation and attributes from pattern.  Change peephole2 to split
328         for noreturn case.  Revise split pattern for non noreturn case.
329         (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
330         call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
331         * pa.c (attr_length_call): Simplify extraction of call rtx.  Add some
332         asserts.
333
334 2008-10-11  David Edelsohn  <edelsohn@gnu.org>
335
336         * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
337         (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
338         and fp_type.
339         (divdf3): Reformat long line.
340
341 2008-10-11  Michael J. Eager  <eager@eagercon.com>
342
343         * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
344         -mfpu options.
345         (rs6000_handle_option): Process -mfpu options.
346         * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
347         (enum fpu_type_t): New.
348         * config/rs6000/rs6000.md (attr fp_type): New.  Include xfpu.md.
349         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
350         fp_type.
351         (floatsisf2): Remove TARGET_SINGLE_FPU condition.
352         (floatdidf2): Add TARGET_SINGLE_FPU condition.
353         * config/rs6000/rs6000.opt (-mfpu): New.
354         (-mxilinx-fpu): New.
355         * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
356         * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
357         * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
358         * gcc/config.gcc: powerpc-xilinx-eabi target: New.
359         * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
360
361 2008-10-11  Jakub Jelinek  <jakub@redhat.com>
362
363         PR target/35760
364         * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
365         LO_SUM on Darwin if mode has just one unit.
366
367 2008-10-10  H.J. Lu  <hongjiu.lu@intel.com>
368
369         PR debug/37002
370         * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
371         has been optimized out.
372
373 2008-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
374
375         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
376         instead of PIC_DIRECT_ADDR_P.
377         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
378         (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
379         (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
380         (PIC_OFFSET_P): Rename to...
381         (PCREL_SYMOFF_P): ...this.
382         (PIC_DIRECT_ADDR_P): Delete.
383         (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
384         PIC_OFFSET_P.
385         (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
386         single argument.  Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
387         UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
388         * config/sh/sh.c (print_operand): Remove CONST handling.
389         (unspec_caller_rtx_p): Rewrite to use split_const and check
390         the operands of UNSPEC bases.
391         (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
392         with (unspec [A B] UNSPEC_SYMOFF).
393         (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
394         UNSPEC_PCREL_SYMOFF.
395         (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
396         * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
397         (UNSPEC_EXTRACT_U16): Likewise.
398         (UNSPEC_SYMOFF): Likewise.
399         (UNSPEC_PCREL_SYMOFF): Likewise.
400         (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
401         of constants.
402         (movsi_const_16bit): Likewise.
403         (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
404         (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
405         with (unspec [A B] UNSPEC_PCREL_SYMOFF).
406         (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
407         with (unspec [A B] UNSPEC_SYMOFF).
408         (symPLT_label2reg): Replace (minus A (minus B pc)) with
409          (unspec [A B] PCREL_UNSPEC_SYMOFF).
410         * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
411         (Csu): Likewise UNSPEC_EXTRACT_U16.
412         (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
413         (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
414
415 2008-10-10  Stepan Kasal  <skasal@redhat.com>
416
417         * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
418         for loop strip mining and loop blocking.
419
420 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
421
422         * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
423         vary types depending on debug info.
424
425 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
426
427         * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
428         before ensuring it's already computed.
429
430 2008-10-09  Jakub Jelinek  <jakub@redhat.com>
431
432         * rtl.h (locator_eq): New decl.
433         * cfglayout.c (locator_scope): New function.
434         (insn_scope): Use it.
435         (locator_eq): New function.
436         (fixup_reorder_chain): Search for last insn in src bb
437         that has locator set or first insn in dest bb.  Use
438         locator_eq instead of == to compare locators.
439         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
440         * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
441         == to compare locators.
442
443         * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
444         as used.
445         * gimple-low.c (lower_function_body, lower_gimple_return,
446         lower_builtin_setjmp): Set gimple_block on the newly created stmts.
447         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
448         goto_block on edges if goto_locus is known.
449
450         PR middle-end/37774
451         * tree.h (get_object_alignment): Declare.
452         * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
453         get_object_alignment if needed.
454         * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand handling
455         to ...
456         (get_object_alignment): ... here.  New function.  Try harder to
457         determine alignment from get_inner_reference returned offset.
458
459 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
460
461         * graphite.c (gloog): Don't call find_unreachable_blocks
462         before delte_unreachable_blocks.
463
464         * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
465         goto_locus of true_edge into RTL locator.
466
467 2008-10-08  Uros Bizjak  <ubizjak@gmail.com>
468
469         * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
470         (*jcc_btdi_mask_rex64): Ditto.
471         (*jcc_btsi): Ditto.
472         (*jcc_btsi_mask): Ditto.
473         (*jcc_btsi_1): Ditto.
474         (*jcc_btsi_mask_1): Ditto.
475
476 2008-10-08  Paul Brook  <paul@codesourcery.com>
477
478         * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
479         compatible profiler (__gnu_mcount_nc).
480         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
481
482 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
483
484         * config/i386/i386.c (initial_ix86_tune_features): Add
485         X86_TUNE_USE_VECTOR_FP_CONVERTS.
486         * config/i386/i386.h (ix86_tune_indices): Likewise.
487         (TARGET_USE_VECTOR_FP_CONVERTS): New.
488
489         * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
490         instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
491         for FP to FP splitters.
492
493 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
494
495         * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
496         splitter.
497
498 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
499
500         PR target/36635
501         PR target/37290
502         PR rtl-optimization/37341
503         * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
504         to ORIG_BB, pass through ORIG_BB recursively.
505         (cse_condition_code_reg): Adjust caller.
506
507 2008-10-08  Kai Tietz  <kai.tietz@onevision.com>
508
509         * sdbout.c (sdbout_one_type): Treat the value type
510         CONST_DECL for enumerals.
511
512 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
513
514         * config/i386/i386.md: Remove trailing white spaces.
515
516 2008-10-07  Kenneth Zadeck <zadeck@naturalbridge.com>
517
518         PR rtl-optimization/37448
519         * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
520         (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
521         Make unsigned long.
522         (struct output_info) [count]: Renamed total_created and made
523         unsigned long.
524         (struct output_info) [size]: Renamed total_allocated and made
525         unsigned long.
526         (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
527         Properly keep track of desc->size.
528         (print_statistics, dump_alloc_pool_statistics): Enhance the
529         printing of statistics to print the number of elements and to use
530         unsigned longs.
531         
532 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
533
534         PR middle-end/37576
535         * opts.h (CL_SAVE): Move up to flags range.
536         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
537         CL_COMMON): Renumber.
538         (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
539         * opts.c (common_handle_option): Revert last change.
540
541 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
542
543         * config/i386/i386-protos.h (ix86_schedule): New.
544
545         * config/i386/i386.c (ix86_schedule): New.
546         (override_options): Add schedule to processor_alias_table.  Set
547         ix86_schedule from the schedule field in processor_alias_table.
548         (ix86_function_specific_save): Save ix86_schedule.
549         (ix86_function_specific_restore): Restore ix86_schedule.
550
551         * config/i386/i386.md (cpu): Map to ix86_schedule instead of
552         ix86_tune.  Add none and remove i386, i486, pentium4, nocona
553         and generic32.
554
555         * config/i386/i386.opt: Add schedule.
556
557         * config/i386/ppro.md: Remove generic32.
558
559 2008-10-07  Simon Martin  <simartin@users.sourceforge.net>
560
561         PR c/35437
562         * expr.c (count_type_elements): Handle ERROR_MARK.
563
564 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
565
566         PR debug/29609
567         PR debug/36690
568         PR debug/37616
569         * basic-block.h (struct edge_def): Add goto_block field.
570         * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
571         one insn with locus corresponding to edge's goto_locus if !optimize.
572         * profile.c (branch_prob): Copy edge's goto_block.
573         * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
574         emitted jumps.
575         (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
576         locator in between the merged basic blocks if !optimize and needed.
577         * cfgexpand.c (expand_gimple_cond): Convert goto_block and
578         goto_locus into RTL locator.  For unconditional jump use that
579         locator for the jump insn.
580         (expand_gimple_cond): Convert goto_block and goto_locus into
581         RTL locator for all remaining edges.  For unconditional jump
582         use that locator for the jump insn.
583         * cfgcleanup.c (try_forward_edges): Avoid the optimization if
584         there is more than one edge or insn locator along the forwarding
585         edges and !optimize.  If there is just one, set e->goto_locus.
586         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
587         edge's goto_block.
588         (move_block_to_fn): Adjust edge's goto_block.
589
590 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
591
592         PR middle-end/37731
593         * expmed.c (expand_mult): Properly check DImode constant in
594         CONST_DOUBLE.
595
596 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
597
598         PR debug/37738
599         * dwarf2out.c (common_block_die_table): New variable.
600         (common_block_die_table_hash, common_block_die_table_eq): New
601         functions.
602         (gen_variable_die): Look up a DW_TAG_common_block die for a particular
603         COMMON block in the current scope rather than globally.  Optimize
604         DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
605         DW_OP_addr SYMBOL_REF+off.
606
607 2008-10-07  Eric Botcazou  <ebotcazou@adacore.com>
608
609         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
610         Return true for non-addressable GIMPLE operands.
611
612 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
613
614         PR target/24765
615         * config/i386/i386.c (initial_ix86_tune_features): Remove
616         X86_TUNE_USE_BIT_TEST.
617         * config/i386/i386.h (ix86_tune_indices): Likewise.
618         (TARGET_USE_BIT_TEST): Removed.
619
620 2008-10-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
621
622         * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
623
624 2008-10-06  Adam Nemet  <anemet@caviumnetworks.com>
625
626         * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
627         (mul<mode>3_mul3): ... into this new template.
628
629 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
630
631         * gimplify.c (gimplify_arg): Add location argument.  Use it.
632         (gimplify_call_expr): Pass location to gimplify_arg.
633         (gimplify_modify_expr_to_memcpy): Same.
634         (gimplify_modify_expr_to_memset): Same.
635
636 2008-10-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
637
638         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
639         Update calls to build_unary_op and build_indirect_ref for location
640         changes.
641
642 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
643
644         build_modify_expr.
645         * c-decl.c (finish_decl): Pass input_location to build_unary_op.
646         * c-typeck.c (array_to_pointer_conversion): Pass location to
647         build_unary_op.
648         (function_to_pointer_conversion): Use error_at and warning_at.
649         (build_indirect_ref): Same.
650         (build_array_ref): Pass location to build_binary_op.
651         (parser_build_unary_op): Do not set location after calling
652         build_unary_op.
653         (build_unary_op): Add location argument.  Use it throughout.  Set
654         EXPR_LOCATION before returning new tree.
655         (build_modify_expr): Same.
656         (build_binary_op): Use location throughout.  Set EXPR_LOCATION before
657         returning node.
658         * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
659         build_indirect_ref, build_modify_expr.
660         (c_finish_omp_for): Same.  Use error_at instead of error.
661         * c-common.c (c_common_truthvalue_conversion): Pass location to
662         build_unary_op.
663         (warn_for_div_by_zero): Add location argument.
664         * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
665         build_unary_op, warn_for_div_by_zero.
666         * c-parser.c (c_parser_typeof_specifier): Use
667         protected_set_expr_location.
668         (c_parser_statement_after_labels): Same.
669         (c_parser_condition): Same.
670         (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
671         (c_parser_conditional_expression): Use protected_set_expr_location.
672         (c_parser_unary_expression): Pass location to build_indirect_ref.
673         (c_parser_postfix_expression_after_primary): Pass location to
674         build_indirect_ref, build_unary_op.
675         (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
676
677 2008-10-06  Joshua Kinard  <kumba@gentoo.org>
678
679         * doc/invoke.texi: List r1x000 family under the -march MIPS option.
680         * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
681         * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
682         r14000 and r16000.
683         (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
684         (mips_issue_rate): Handle PROCESSOR_R10000.
685         * config/mips/mips.md (cpu): Add r10000.
686         Include r10000.md.
687         * config/mips/10000.md: New file.
688
689 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
690
691         * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
692         * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
693         * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
694
695 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
696
697         * config/darwin-protos.h (machopic_function_base_name): Delete.
698         (machopic_function_base_sym): Likewise.
699         (machopic_gen_offset): Declare.
700         * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
701         (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
702         * config/darwin.c (machopic_function_base_name): Delete.
703         (machopic_function_base_sym): Likewise.
704         (gen_pic_offset): Rename to...
705         (machopic_gen_offset): ...this and remove the pic_base argument.
706         Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
707         is needed.  Create an UNSPEC_MACHOPIC_OFFSET if so, and set
708         crtl->uses_pic_offset_table.
709         (machopic_indirect_data_reference): Use new machopic_gen_offset
710         interface.
711         (machopic_legitimize_pic_address): Likewise.
712         (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
713
714         * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
715         MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
716         * config/i386/i386.c (output_set_got): Likewise.
717         (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
718         instead of a MINUS.
719         (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
720         (legitimate_address_p): Likewise.
721         (output_pic_addr_const): Likewise.
722         (output_addr_const_extra): Likewise.
723         (ix86_delegitimize_address): Expect darwin_local_data_pic to
724         match an UNSPEC rather than a MINUS.
725         * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
726         (builtin_setjmp_receiver): Use machopic_gen_offset.
727         * config/i386/predicates.md (pic_symbolic_operand): Handle
728         UNSPEC_MACHOPIC_OFFSET.
729
730         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
731         Use machopic_gen_offset and machopic_operand_p.
732         (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
733         (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
734         * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
735         (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
736         Set crtl->uses_pic_offset_table.
737
738 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
739
740         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
741         Declare.
742         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
743         * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
744         * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
745         (constant_pool_expr_p): Use split_const and check the base.
746         (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
747         instead of a MINUS.
748         (legitimate_constant_pool_address_p): Check toc_relative_p
749         instead of constant_pool_expr_p.
750         (print_operand_address): Always use output_addr_const for
751         constant pool addresses.
752         (rs6000_output_addr_const_extra): New function.
753         (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
754
755 2008-10-06  Vladimir Makarov  <vmakarov@redhat.com>
756
757         PR middle-end/37535
758
759         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
760         (mark_ref_live, mark_ref_dead): Use them.
761         (def_conflicts_with_inputs_p): Remove.
762         (mark_early_clobbers): New function.
763         (process_bb_node_lives): Call preprocess_constraints and
764         mark_early_clobbers.
765
766         * doc/rtx.texi (clobber): Change how RA deals with clobbers.
767
768 2008-10-06  Danny Smith  <dannysmith@users.sourceforge.net>
769
770         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
771         lib with -mthread switch.
772
773 2008-10-05  Dodji Seketeli  <dodji@redhat.com>
774
775         PR c++/37410
776         * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
777         function in two, making it call a new and reusable
778         dwarf2out_imported_module_or_decl() that takes the containing
779         BLOCK of the declaration in argument.
780         (dwarf2out_imported_module_or_decl_real): New function.
781         (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
782         IMPORTED_DECL in account.
783         * tree.def: Added IMPORTED_DECL node type.
784         * tree.h: Added accessors for IMPORTED_DECL nodes.
785         * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
786
787 2008-10-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
788
789         * doc/gimple.texi: Fix some typos, wrap some long lines,
790         fix some broken wraps with continuations.
791         * tree-ssa-reassoc.c: Fix comment typos.
792
793 2000-10-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
794
795         PR target/37603
796         * pa.c (legitimize_pic_address): Force function labels to memory in
797         word mode.
798
799 2008-10-04  Anton Blanchard  <anton@samba.org>
800
801         * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
802         (rs6000_split_atomic_op): Same.
803         (rs6000_split_compare_and_swap): Same.
804         (rs6000_split_compare_and_swapqhi): Same.
805
806 2008-10-04  Richard Guenther  <rguenther@suse.de>
807
808         * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
809         instead of pointer equality.
810         (vn_nary_op_eq): Likewise.
811
812 2008-10-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
813
814         * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT 
815         condition.
816         (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
817         TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
818
819 2008-10-03  Danny Smith  <dannysmith@users.sourceforge.net>
820
821         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
822         Revert previous change.
823
824 2008-10-03  Tom Tromey  <tromey@redhat.com>
825
826         * stringpool.c (ggc_alloc_string): Terminate string.
827
828 2008-10-03  Jakub Jelinek  <jakub@redhat.com>
829
830         * gimplify.c (gimplify_function_tree): For -finstrument-functions
831         use gimple_bind_{,set_}block instead of gimple_{,set_}block.
832         * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
833
834         PR debug/37726
835         * gimplify.c (declare_vars): Use gimple_bind_block instead of
836         gimple_block.
837
838 2008-10-03  Pascal Obry  <obry@adacore.com>
839
840         * gcov.c (create_file_names): Properly handle UNIX and DOS
841         directory separators.
842         (make_gcov_file_name): Likewise + convert the ':' DOS drive
843         separator to '~' to ensure clean filenames on Windows.
844
845 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>
846
847         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
848         Add a null terminator to the stripped name.
849
850 2008-10-02  David Edelsohn  <edelsohn@gnu.org>
851
852         * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
853         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
854         (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
855         TARGET_SINGLE_FLOAT.  Revert SCALAR_FLOAT_MODE_P condition.
856         (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
857         (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
858         TARGET_SINGLE_FLOAT.
859
860 2008-10-02  Daniel Jacobowitz  <dan@codesourcery.com>
861
862         * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
863
864 2008-10-02  Richard Guenther  <rguenther@suse.de>
865
866         PR middle-end/37713
867         * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
868         and VECTOR_TYPE recurse with useless_type_conversion_p which
869         properly handles void pointer conversion.
870
871 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>  
872
873         PR target/37528
874         * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
875         (REAL_LIBGCC_SPEC): New.  Always include -lgcc.
876
877 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
878
879         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
880         Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
881         ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
882         they translate to non builtins.
883         * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
884         opaque_ftype_opaque.  Define builtins __builtin_vec_splats,
885         __builtin_vec_promote, __builtin_vec_extract, and
886         __builtin_vec_insert.
887         * config/rs6000/rs6000.h (enum rs6000_builtins): Add
888         ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
889         ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
890         * config/rs6000/altivec.h (vec_extract): Define
891         (vec_insert): Define.
892         (vec_splats): Define.
893         (vec_promote): Define.
894
895 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
896             Yukishige Shibata  <shibata@rd.scei.sony.co.jp>
897             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
898
899         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
900         Altivec intrinsics.
901         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
902         prototype.  Add new parameter, blk.
903         Use BLKmode for the MEM if blk is true.
904         (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
905         ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
906         ALTIVEC_BUILTIN_STVRXL.
907         Update usage of altivec_expand_lv_builtin.
908         Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
909         ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
910         (altivec_init_builtins): If compiling for the Cell, also define the
911         cell VMX builtins.
912         * config/rs6000/rs6000.h (rs6000_builtins): Define
913         ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
914         ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
915         ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
916         ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
917         ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
918         ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
919         ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
920         * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
921         UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
922         UNSPEC_STVRX, and UNSPEC_STVRXL.
923         (altivec_lvlx): New pattern.
924         (altivec_lvlxl): New pattern.
925         (altivec_lvrx): New pattern.
926         (altivec_lvrxl): New pattern.
927         (altivec_stvlx): New pattern.
928         (altivec_stvlxl): New pattern.
929         (altivec_stvrx): New pattern.
930         (altivec_stvrxl): New pattern.
931         * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
932         (vec_lvlxl): Likewise.
933         (vec_lvrx): Define if PPU is defined.
934         (vec_lvrxl): Likewise.
935         (vec_stvlx): Define if PPU is defined.
936         (vec_stvlxl): Likewise.
937         (vec_stvrx): Define if PPU is defined.
938         (vec_stvrxl): Likewise.
939
940 2008-10-01  Geert Bosch  <bosch@adacore.com>
941
942         * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
943
944 2008-10-01  Richard Guenther  <rguenther@suse.de>
945
946         PR tree-optimization/37617
947         * tree-ssa-pre.c (create_expression_by_pieces): During FRE
948         do not add to the NEW_SETS.
949
950 2008-10-01  Richard Guenther  <rguenther@suse.de>
951
952         PR middle-end/37285
953         * tree-vrp.c (execute_vrp): If we optimized away the default
954         case make sure to promote the label that got in place of it
955         to a default case label.
956
957 2008-10-01  Richard Henderson  <rth@redhat.com>
958
959         PR tree-opt/35737
960         * tree-complex.c (set_component_ssa_name): Don't optimize
961         is_gimple_min_invariant values with ssa_names in abnormal phis.
962
963 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
964
965         PR tree-optimization/37662
966         * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
967         commutative binary operation if they are in the wrong order and
968         fold_build2 produces non-GIMPLE.
969
970 2008-09-30  Jakub Jelinek  <jakub@redhat.com>
971
972         PR tree-optimization/37662
973         PR tree-optimization/37663
974         * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
975         get_value_range with non-SSA_NAME.  Don't assert operands have been
976         folded, instead just bail out.
977
978 2008-09-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
979
980         * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
981
982 2008-09-30  Richard Guenther  <rguenther@suse.de>
983
984         PR middle-end/37491
985         * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
986         build restrict-qualified pointers.
987         (vectorizable_store): Move alias check later.
988         (vectorizable_load): Likewise.
989
990 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
991
992         * c-common.c (empty_if_body_warning): Remove.
993         * c-common.h (empty_if_body_warning): Remove.
994         * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
995         here the -Wempty-body warning for `if' and `else' statements.
996         * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
997
998 2008-09-29  H.J. Lu  <hongjiu.lu@intel.com>
999
1000         * config/i386/i386.opt: Add msse2avx.
1001
1002         * config/i386/linux.h (ASM_SPEC): New.  Support -msse2avx.
1003         * config/i386/linux64.h (ASM_SPEC): Likewise.
1004
1005         * doc/invoke.texi: Document -msse2avx.
1006
1007 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
1008
1009         * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
1010
1011 2008-09-29  Joseph Myers  <joseph@codesourcery.com>
1012
1013         * ifcvt.c (noce_emit_store_flag): If using condition from original
1014         jump, reverse it if if_info->cond was reversed.
1015
1016 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
1017
1018         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1019         non-constant memory if it cannot be forced to constant memory.
1020         Overhaul surrounding code and factor out common condition.
1021
1022 2008-09-29  Jeff Law <law@redhat.com>
1023
1024         * reload1.c (alter_reg): Add missing curly braces.
1025
1026 2008-09-29  Michael J. Eager  <eager@eagercon.com>
1027
1028         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
1029         are easy.
1030         * config/rs6000/rs6000.c (rs6000_override_options): Move
1031         rs6000_init_hard_regno_mode_ok after all options changed.
1032         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
1033         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
1034         -msimple-fpu flags.  Add warning messages if single FP not configured.
1035         (rs6000_file_start): Output gnu_attribute for single-float.
1036         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
1037         (rs6000_legitimize_address): Likewise.
1038         (rs6000_legitimize_reload_address): Likewise.
1039         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
1040         TARGET_SINGLE_FLOAT.
1041         (function_arg_advance): Likewise (partial conversion).
1042         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
1043         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
1044         TARGET_SINGLE_FLOAT.
1045         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
1046         (rs6000_emit_prologue): Likewise.
1047         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
1048         TARGET_SINGLE_FLOAT.
1049         (rs6000_libcall_value): Likewise.
1050         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
1051         (TARGET_DOUBLE_FLOAT): New default to 1
1052         (TARGET_SIMPLE_FPU): New default to 0
1053         (TARGET_SINGLE_FPU): New default to 0
1054         (TARGET_SINGLE_FLOAT_MODE): New.
1055         (TARGET_DOUBLE_FLOAT_MODE): New.
1056         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
1057         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
1058         UNITS_PER_FP_WORD
1059         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
1060         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1061         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
1062         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
1063         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
1064         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
1065         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
1066         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
1067         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
1068         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
1069         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
1070         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
1071         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
1072         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
1073         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
1074         cmptf_internal1, *cmptf_internal2): Condition on
1075         TARGET_DOUBLE_FLOAT.
1076         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
1077         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
1078         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
1079         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
1080         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
1081         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
1082         TARGET_SINGLE_FLOAT.
1083         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
1084         * config/rs6000/rs6000.opt (-msingle-float): New.
1085         (-mdouble-float): New.
1086         (-msimple-fpu): New.
1087         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
1088         -msingle-float, -mdouble-float, -msimple-fpu options.
1089         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
1090         _SOFT_DOUBLE for -msingle-float.
1091         * config.gcc: New config for target=powerpc-xilinx-eabi.
1092
1093 2008-09-29  Tobias Grosser  <grosser@fim.uni-passau.de>
1094
1095         * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
1096         have exit and entry.
1097         (new_scop): Take entry and exit edge to define new SCoP.
1098         (sd_region_p): New structure used during SCoP detection.
1099         (move_scops): Delete.
1100         (move_sd_regions): New.
1101         (scopdet_info): Change the definition from edges back to basic_blocks.
1102         (scopdet_edge_info):  Work on basic_blocks and rename to
1103         scopdet_basic_block_info.
1104         (split_difficult_bb): At the moment removed. We should later
1105         add it at another place.
1106         (build_scops_1): Work on basic_blocks.
1107         (bb_in_sd_region): New.
1108         (find_single_entry_edge): New.
1109         (find_single_exit_edge): New.
1110         (create_single_entry_edge): New.
1111         (sd_region_without_exit): New.
1112         (create_single_exit_edge): New.
1113         (unmark_exit_edges): New.
1114         (mark_exit_edges): New.
1115         (create_sese_edges): New.
1116         (build_graphite_scops): New.
1117         (build_scops): Make SCoPs SESE.
1118         (limit_scops): Use the new functions.
1119
1120 2008-09-29  Hans-Peter Nilsson  <hp@axis.com>
1121
1122         * config/cris/cris.h (IRA_COVER_CLASSES): Define.
1123
1124 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1125
1126         PR target/37640
1127         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
1128         address to a register before taking the lower part.
1129
1130 2008-09-28  Kaz Kojima  <kkojima@gcc.gnu.org>
1131
1132         * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
1133         for SHmedia.
1134
1135 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1136             Kaushal Kantawala  <kaushal_kantawala@playstation.sony.com>
1137
1138         PR tree-opt/36891
1139         * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
1140         the newly created variable.
1141         Create a VECTOR_CST of all 1s for vector types.
1142
1143 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
1144
1145         PR middle-end/36575
1146         * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
1147
1148 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
1149
1150         * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
1151         order to convert between modes.
1152         (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
1153
1154 2008-09-27  Kaz Kojima  <kkojima@gcc.gnu.org>
1155
1156         * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
1157         if needed.
1158
1159 2008-09-26  Vladimir Makarov  <vmakarov@redhat.com>
1160
1161         Revert:
1162         2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
1163         * ira-lives.c:...
1164         * doc/rtl.texi:...
1165
1166 2008-09-26  Adam Nemet  <anemet@caviumnetworks.com>
1167
1168         * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
1169         ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
1170         them to yield false with MIPS16.
1171
1172 2008-09-26  Jakub Jelinek  <jakub@redhat.com>
1173
1174         PR middle-end/37275
1175         * dwarf2out.c (tls_mem_loc_descriptor): New function.
1176         (mem_loc_descriptor): Use it for MEM.  For PLUS fail if second
1177         mem_loc_descriptor failed.  Accept UNSPEC.
1178         (loc_descriptor): Use tls_mem_loc_descriptor for MEM.  For PARALLEL
1179         fail if one of the loc_descriptor calls for pieces failed.
1180         (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
1181         as long as they bind locally.  For COMPONENT_REF, ARRAY_REF etc. fail
1182         if loc_descriptor_from_tree_1 on offset failed.
1183
1184         PR middle-end/37576
1185         * opts.c (common_handle_option): Don't call print_specific_help with
1186         CL_SAVE as first argument.
1187
1188 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
1189             Steve Ellcey  <sje@cup.hp.com>
1190
1191         * configure: Regenerate for new libtool.
1192         * aclocal.m4: Ditto.
1193
1194 2008-09-26  Pat Haugen  <pthaugen@us.ibm.com>
1195
1196         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
1197         alias set on MEM when saving stack pointer.
1198         * config/rs6000/rs6000.md (allocate_stack): Likewise
1199
1200 2008-09-26  Dorit Nuzman  <dorit@il.ibm.com>
1201
1202         PR tree-optimization/37574
1203         * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
1204         * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
1205         instead of vector_type for constants. Take computation out of loop.
1206         (vect_get_vec_def_for_operand): Use only vectype for constant case,
1207         and use only vector_type for invariant case.
1208         (get_initial_def_for_reduction): Use vectype instead of vector_type.
1209
1210 2008-09-25  Jakub Jelinek  <jakub@redhat.com>
1211
1212         PR c/37645
1213         * c-common.c (handle_weakref_attribute): Ignore the attribute unless
1214         the decl is a VAR_DECL or FUNCTION_DECL.
1215
1216 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
1217
1218         PR middle-end/37535
1219         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
1220         (mark_ref_live, mark_ref_dead): Use them.
1221         (def_conflicts_with_inputs_p): Remove.
1222         (mark_early_clobbers): New function.
1223         (process_bb_node_lives): Call preprocess_constraints and
1224         mark_early_clobbers.
1225
1226         * doc/rtl.texi (clobber): Change how RA deals with clobbers.
1227
1228 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
1229
1230         PR middle-end/37448
1231         * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
1232         (ira_compress_allocno_live_ranges): New prototype.
1233
1234         * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
1235         (coalesced_allocnos_living_at_program_points): New.
1236         (coalesced_allocnos_live_at_points_p,
1237         set_coalesced_allocnos_live_points): New functions.
1238         (coalesce_spill_slots): Rewrite.
1239         
1240         * ira-lives.c (remove_some_program_points_and_update_live_ranges,
1241         ira_compress_allocno_live_ranges): New functions.
1242
1243         * ira-build.c (ira_flattening): Call
1244         ira_compress_allocno_live_ranges.
1245         (ira_build): Ditto.
1246
1247 2008-09-25  H.J. Lu  <hongjiu.lu@intel.com>
1248
1249         * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
1250         optimization.
1251
1252 2008-09-25  Richard Sandiford  <rdsandiford@googlemail.com>
1253
1254         * combine.c (make_compound_operation): Handle the 'E' format.
1255         (count_rtxs): Likewise.
1256         (update_table_tick): Likewise.
1257         (get_last_value_validate): Likewise.
1258
1259 2008-09-25  Eric Botcazou  <ebotcazou@adacore.com>
1260
1261         * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
1262
1263 2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
1264
1265         * matrix-reorg.c (transform_allocation_sites): Initializers 
1266         added to avoid the warning.
1267
1268 2008-09-25  Martin Jambor  <mjambor@suse.cz>
1269
1270         * cgraph.c (free_nodes): New variable.
1271         (NEXT_FREE_NODE): New macro.
1272         (cgraph_create_node): Reuse nodes from the free list.  Do not
1273         update uid if doing so.
1274         (cgraph_remove_node): Add the node to the free list.
1275
1276 2008-09-25  Gerald Pfeifer  <gerald@pfeifer.com>
1277
1278         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1279
1280 2008-09-24  Richard Henderson  <rth@redhat.com>
1281
1282         * dwarf2.h (DW_OP_GNU_encoded_addr): New.
1283         * unwind-dw2.c (execute_stack_op): Handle it.
1284
1285 2008-09-24  David Edelsohn  <edelsohn@gnu.org>
1286
1287         Revert:
1288         2008-09-24  Michael J. Eager  <eager@eagercon.com>
1289
1290 2008-09-24  Aldy Hernandez  <aldyh@redhat.com>
1291
1292         * c-common.c (fname_decl): New location argument.
1293         * c-common.h (fname_decl): Same.
1294         * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
1295         {warning,error}.
1296         (c_parser_typeof_specifier): Same.
1297         (c_parser_parms_list_declarator): Same.
1298         (c_parser_asm_string_literal): Same.
1299         (c_parser_compound_statement_nostart): Same.
1300         (c_parser_label): Same.
1301         (c_parser_do_statement): Same.
1302         (c_parser_asm_statement): Same.
1303         (c_parser_unary_expression): Same.
1304         (c_parser_sizeof_expression): Same.
1305         (c_parser_postfix_expression): Same.
1306         (c_parser_pragma): Same.
1307         (c_parser_omp_clause_collapse): Same.
1308         (c_parser_omp_clause_num_threads): Same.
1309         (c_parser_omp_clause_schedule): Same.
1310         (c_parser_omp_all_clauses): Same.
1311         (c_parser_omp_sections_scope): Same.
1312         (c_parser_omp_for_loop): Same.  Pass condition's location to
1313         c_objc_common_truthvalue_conversion.
1314         (c_parser_enum_specifier): Remove comment.
1315
1316 2008-09-24  Michael J. Eager  <eager@eagercon.com>
1317
1318         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
1319         are easy.
1320         * config/rs6000/rs6000.c (rs6000_override_options): Move
1321         rs6000_init_hard_regno_mode_ok after all options changed.
1322         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
1323         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
1324         -msimple-fpu flags.  Add warning messages if single FP not configured.
1325         (rs6000_file_start): Output gnu_attribute for single-float.
1326         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
1327         (rs6000_legitimize_address): Likewise.
1328         (rs6000_legitimize_reload_address): Likewise.
1329         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
1330         TARGET_SINGLE_FLOAT.
1331         (function_arg_advance): Likewise.
1332         (function_arg): Likewise.
1333         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
1334         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
1335         TARGET_SINGLE_FLOAT.
1336         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
1337         (rs6000_emit_prologue): Likewise.
1338         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
1339         TARGET_SINGLE_FLOAT.
1340         (rs6000_libcall_value): Likewise.
1341         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
1342         (TARGET_DOUBLE_FLOAT): New default to 1
1343         (TARGET_SIMPLE_FPU): New default to 0
1344         (TARGET_SINGLE_FPU): New default to 0
1345         (TARGET_SINGLE_FLOAT_MODE): New.
1346         (TARGET_DOUBLE_FLOAT_MODE): New.
1347         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
1348         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
1349         UNITS_PER_FP_WORD
1350         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
1351         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1352         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
1353         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
1354         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
1355         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
1356         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
1357         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
1358         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
1359         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
1360         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
1361         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
1362         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
1363         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
1364         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
1365         cmptf_internal1, *cmptf_internal2): Condition on
1366         TARGET_DOUBLE_FLOAT.
1367         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
1368         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
1369         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
1370         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
1371         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
1372         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
1373         TARGET_SINGLE_FLOAT.
1374         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
1375         * config/rs6000/rs6000.opt (-msingle-float): New.
1376         (-mdouble-float): New.
1377         (-msimple-fpu): New.
1378         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
1379         -msingle-float, -mdouble-float, -msimple-fpu options.
1380         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
1381         _SOFT_DOUBLE for -msingle-float.
1382         * config.gcc: New config for target=powerpc-xilinx-eabi.
1383
1384 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
1385
1386         * config/sparc/constraints.md: New file.
1387         * config/sparc/sparc.md: Include it.
1388         * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
1389         (sparc_extra_constraint_check): Delete.
1390         * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
1391         (memory_ok_for_ldd): New predicate.
1392         (sparc_extra_constraint_check): Delete.
1393         * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
1394         (CONST_OK_FOR_LETTER_P): Likewise.
1395         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
1396         (EXTRA_CONSTRAINT): Likewise.
1397
1398 2008-08-23  Steve Ellcey  <sje@cup.hp.com>
1399
1400         * regrename.c (do_replace): Copy REG_POINTER value to new reg.
1401
1402 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
1403
1404         * alias.c (find_base_value): Use FIND_BASE_TERM.
1405         * doc/tm.texi (FIND_BASE_TERM): Update documentation.
1406
1407 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
1408
1409         * config/i386/i386.c: Include cselib.h.
1410         (ix86_pic_register_p): New function.
1411         (ix86_delegitimize_address): Use it to check for the PIC register.
1412
1413 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
1414
1415         * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
1416         * config/i386/i386.c (ix86_find_base_term): Don't check for
1417         SYMBOL_REF and LABEL_REF.
1418
1419 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
1420
1421         * config/i386/i386.c (ix86_delegitimize_address): Wrap the
1422         constant PLUS in a CONST.
1423
1424 2008-09-23  Kai Tietz  <kai.tietz@onevision.com>
1425
1426         * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
1427         check for sibcall support for w64.
1428
1429 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
1430
1431         * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
1432
1433 2008-09-23  Aldy Hernandez  <aldyh@redhat.com>
1434
1435         * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
1436         parser_build_binary_op.
1437         * c-decl.c (build_enumerator): Pass location to build_binary_op.
1438         * c-typeck.c (build_array_ref): Same.
1439         (parser_build_unary_op): New location argument.
1440         (pointer_diff): Pass location to build_binary_op,
1441         c_objc_common_truthvalue_conversion.
1442         (build_modify_expr): Same.
1443         (build_unary_op): New location argument.
1444         (build_binary_op): New location argument.
1445         (c_objc_common_truthvalue_conversion): Pass location to
1446         c_*common_truthvalue_conversion.
1447         * c-convert.c (convert): Same.
1448         * c-common.c (binary_op_error): New location argument.
1449         (pointer_int_sum): Pass location to build_binary_op.
1450         (c_common_truthvalue_conversion): New location argument.
1451         (warn_for_sign_compare): Same.
1452         * c-common.h: Add location argument to c_common_truthvalue_conversion,
1453         binary_op_error, build_binary_op, warn_for_sign_compare.
1454         * c-parser.c (c_parser_condition): Pass location to
1455         c_*common_truthvalue_conversion.
1456         (c_parser_conditional_expression): Save condition's location and pass
1457         it on down.
1458         (c_parser_binary_expression): Same, but for the binary operator's
1459         location.
1460         (c_parser_omp_for_loop): Pass location to
1461         c_objc_common_truthvalue_conversion.
1462
1463 2008-09-23  Martin Jambor  <mjambor@suse.cz>
1464
1465         * cgraph.c (cgraph_free_edge): Use sizeof(*e).
1466         (cgraph_node_remove_callees): New temporary f.  Hold the next item
1467         in f when looping.
1468         (cgraph_node_remove_callers): Likewise.
1469
1470         * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
1471         (ipa_node_removal_hook): Likewise.
1472
1473         * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
1474         gimple_call_copy_skip_args and moved to the gimple_call section.
1475         * gimple.c (gimple_copy_call_skip_args): Renamed to
1476         gimple_call_copy_skip_args.  Changed al users.
1477
1478 2008-09-22  Vladimir Makarov  <vmakarov@redhat.com>
1479
1480         * ira-color.c (start_allocno_priorities): Rename to
1481         setup_allocno_priorities.  Use costs and
1482         ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
1483         range lengths.  Get rid off doubles.
1484         (ira_fast_allocations): Call start_allocno_priorities.
1485         
1486 2008-09-22  David Daney  <ddaney@avtrex.com>
1487
1488         PR target/37593
1489         * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
1490         register if TARGET_LONG_CALLS.
1491
1492 2008-09-22  Richard Guenther  <rguenther@suse.de>
1493
1494         PR tree-optimization/37145
1495         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
1496         value-numbering union accesses with their offset and size only.
1497         (visit_reference_op_load): Fix simplification of inserted conversions.
1498         * tree-ssa-pre.c (find_or_generate_expression): Do not
1499         recursively generate expressions if running FRE.
1500
1501 2008-09-22  Adam Nemet  <anemet@caviumnetworks.com>
1502
1503         * config/mips/mips.h (ISA_HAS_BADDU): New macro.
1504         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
1505         New patterns.
1506
1507 2008-09-22  Richard Guenther  <rguenther@suse.de>
1508
1509         PR tree-optimization/37145
1510         * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
1511         (phi_translate_1): Constant fold references.
1512
1513 2008-09-22  Ira Rosen  <irar@il.ibm.com>
1514
1515         PR tree-optimization/37482
1516         * tree-vectorizer.h (struct _slp_instance): Add new field.
1517         (SLP_INSTANCE_FIRST_LOAD_STMT): New.
1518         (get_earlier_stmt): New function.
1519         * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
1520         function.
1521         (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
1522         * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
1523         asserts that GSI points to the scalar statement being vectorized.
1524         Set new statement location according to GSI.
1525         (vect_schedule_slp_instance): Use GSI of
1526         SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
1527
1528 2008-09-21  Jan Hubicka  <jh@suse.cz>
1529
1530         * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
1531         (ipcp_insert_stage): Update dead_nodes bitmap.
1532
1533 2008-09-22  Danny Smith  <dannysmith@users.sourceforge.net>
1534
1535         PR target/37528 
1536         * config/i386/t-cygming (SHLIB_LC): Remove.
1537         (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
1538         * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
1539
1540 2008-09-22  Hans-Peter Nilsson  <hp@axis.com>
1541
1542         PR middle-end/37170
1543         PR middle-end/37280
1544         * final.c (mark_symbol_ref_as_used): New helper function.
1545         (output_operand): Instead of just looking inside MEMs for
1546         SYMBOL_REFs, use new helper function and for_each_rtx.
1547         * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
1548         to after weak-handling.  Don't mark decls with TREE_STATIC as weak.
1549         Make head comment more general.
1550         * config/darwin.c (machopic_output_indirection): Handle weak
1551         references here, like in assemble_external.
1552
1553 2008-09-21  Eric Botcazou  <ebotcazou@adacore.com>
1554
1555         * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
1556         (sparc_emit_float_lib_cmp): Change return type.
1557         * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
1558         (gen_compare_operator): New function.
1559         (sparc_emit_float_lib_cmp): Return the new operator to be used in
1560         the comparison sequence.  Minor tweaks.
1561         * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
1562         that the final operator and the result of sparc_emit_float_lib_cmp
1563         match for software TFmode; use emit_insn in lieu of emit_jump_insn.
1564         (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
1565         buneq, bunge, bunle, bltgt): Assert that the final operator and the
1566         result of sparc_emit_float_lib_cmp match for software TFmode.
1567         (movqicc, movhicc, movsicc, movdicc): Merge into...
1568         (mov<I:mode>cc): ...this.
1569         (movsfcc, movdfcc, movtfcc): Merge into...
1570         (mov<F:mode>cc): ...this.
1571         (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
1572         into...
1573         (mov<I:mode>_cc_v9): ...this.
1574         (movdi_cc_sp64_trunc): Delete.
1575         (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
1576         movdi_cc_reg_sp64): Merge into...
1577         (mov<I:mode>_cc_reg_sp64): ...this.
1578         (movsf_cc_sp64): Rename into...
1579         (movsf_cc_v9): ...this.
1580         (movdf_cc_sp64): Rename into...
1581         (movdf_cc_v9): ...this.
1582         (movtf_cc_hq_sp64): Rename into...
1583         (movtf_cc_hq_v9): ...this.
1584         (movtf_cc_sp64): Rename into...
1585         (movtf_cc_v9): ...this.  Adjust for renaming of movdf_cc_sp64.
1586
1587 2008-09-21  Diego Novillo  <dnovillo@google.com>
1588
1589         * doc/gccint.texi: Include generic.texi and gimple.texi.
1590         Re-order index.
1591         * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
1592         (GIMPLE): Move to gimple.texi.
1593         (Annotations): Remove references to to stmt_ann_t and
1594         ssa_name_ann_t.
1595         (SSA Operands): Rename from 'Statement Operands'.
1596         * doc/generic.texi: New.
1597         * doc/gimple.texi: New.
1598         * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
1599         * Makefile.in (TEXI_GCCINT_FILES):
1600         * gimple.c (gimple_copy_call_skip_args): Rename from
1601         giple_copy_call_skip_args.  Update all users.
1602         * doc/gimple.texi (gimple_copy_call_skip_args): Document.
1603
1604 2008-09-21  Ira Rosen  <irar@il.ibm.com>
1605
1606         PR tree-optimization/37539
1607         * tree-vect-transform.c (vect_transform_strided_load): Save vector
1608         statement in related statement field only for the first load of the
1609         group of loads with the same data reference.
1610
1611 2008-09-20  Adam Nemet  <anemet@caviumnetworks.com>
1612
1613         * config/mips/mips.h (TUNE_OCTEON): New macro.
1614         * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
1615         (mips_multipass_dfa_lookahead): Return 2 for Octeon.
1616         * config/mips/octeon.md: New file.
1617         * config/mips/mips.md: Include octeon.md.  Restore
1618         semi-alphabetical order of include files.
1619
1620 2008-09-20  H.J. Lu  <hongjiu.lu@intel.com>
1621
1622         PR target/37571
1623         * config/i386/i386.md (*jcc_fused_1): Removed.
1624         (*jcc_fused_2): Likewise.
1625         (*jcc_fused_3): Likewise.
1626         (*jcc_fused_4): Likewise.
1627
1628 2008-09-20  Richard Sandiford  <rdsandiford@googlemail.com>
1629
1630         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
1631         (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
1632         * target.h (gcc_target): Add ira_cover_classes.
1633         * ira.c: Remove IRA_COVER_CLASSES guards.
1634         (setup_cover_and_important_classes): Use targetm.ira_cover_classes
1635         instead of IRA_COVER_CLASSES.
1636         (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
1637         (setup_class_translate): Likewise.
1638         (setup_reg_class_intersect_union): Likewise.
1639         (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
1640         test of targetm.ira_cover_classes.
1641         * opts.c (decode_options): Use targetm.ira_cover_classes instead
1642         of IRA_COVER_CLASSES.
1643         * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
1644         (TARGET_INITIALIZER): Include it.
1645         * targhooks.h (default_ira_cover_classes): Declare.
1646         * targhooks.c (default_ira_cover_classes): New function.
1647
1648 2008-09-19  Bob Wilson  <bob.wilson@acm.org>
1649         
1650         * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
1651         
1652 2008-09-19  Ian Lance Taylor  <iant@google.com>
1653
1654         * varasm.c (narrowing_initializer_constant_valid_p): Return
1655         NULL_TREE if ENDTYPE is not an integer.
1656
1657 2008-09-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1658
1659         PR tree-opt/30930
1660         * tree-ssa.c (execute_update_addresses_taken): Also update
1661         DECL_GIMPLE_REG_P for vector and complex types.
1662
1663 2008-09-19  Andrew MacLeod  <amacleod@redhat.com>
1664             Jan Hubicka  <jh@suse.cz>
1665
1666         PR middle-end/37567
1667         * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
1668         empty before freeing them.
1669         (find_replaceable_exprs): Move asserts to free_temp_expr_table.
1670
1671 2008-09-18  Bob Wilson  <bob.wilson@acm.org>
1672
1673         * configure.ac: Add HAVE_AS_TLS check for Xtensa.
1674         * config/xtensa/predicates.md (tls_symbol_operand): New.
1675         * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
1676         (TARGET_CANNOT_FORCE_MEM): Define.
1677         (xtensa_tls_symbol_p): New.
1678         (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
1679         (xtensa_legitimate_address_p): Disallow constant pool TLS references.
1680         (xtensa_tls_module_base): New.
1681         (xtensa_call_tls_desc): New.
1682         (xtensa_legitimize_tls_address): New.
1683         (xtensa_legitimize_address): Handle TLS symbols.
1684         (xtensa_tls_referenced_p_1): New.
1685         (xtensa_tls_referenced_p): New.
1686         (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
1687         UNSPEC_DTPOFF.
1688         (XTENSA_BUILTIN_THREAD_POINTER): New.
1689         (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
1690         (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
1691         builtin.  Add declarations for __builtin_thread_pointer and
1692         __builtin_set_thread_pointer.
1693         (xtensa_fold_builtin): Recognize new builtins.
1694         (xtensa_expand_builtin): Expand new builtins.
1695         * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
1696         (TARGET_THREADPTR): Define.
1697         (HAVE_AS_TLS): Define default value.
1698         (LEGITIMATE_CONSTANT_P): Disallow TLS references.
1699         * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
1700         (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
1701         (UNSPECV_SET_TP): New.
1702         (sym_TPOFF, sym_DTPOFF): New.
1703         (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
1704         * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
1705         * configure: Regenerated.
1706         
1707 2008-09-18  H.J. Lu  <hongjiu.lu@intel.com>
1708
1709         PR target/37394
1710         * config/ia64/ia64.c (ia64_optimization_options): Move
1711         checking and setting flag_schedule_insns_after_reload and
1712         ia64_flag_schedule_insns2 back to ...
1713         (ia64_override_options): Here.
1714
1715 2008-09-18  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1716
1717         PR rtl-opt/37451
1718         * loop-doloop.c (doloop_modify): New argument zero_extend_p and
1719         zero extend count after the correction to it is done.
1720         (doloop_optimize): Update call to doloop_modify, don't zero extend
1721         count before call.
1722
1723 2008-09-18  Martin Jambor  <mjambor@suse.cz>
1724
1725         * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
1726
1727         * ipa-prop.c: Correct comments.
1728         * ipa-prop.h: Likewise.
1729
1730 2008-09-18  Jan Hubicka  <jh@suse.cz>
1731
1732         PR middle-end/37448
1733         * ipa-reference.c (ipa_reference_local_vars_info_d,
1734         ipa_reference_global_vars_info_d,
1735         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
1736         ipa_reference_vars_info_t): Move here from ipa-reference.h
1737         (node_duplication_hook_holder, node_removal_hook_holder): New.
1738         (get_reference_vars_info_from_cgraph): Rename to ...
1739         (get_reference_vars_info): ... this one, use cgraph uids.
1740         (get_local_reference_vars_info, get_global_reference_vars_info):
1741         Use cgraph instead of decl.
1742         (ipa_reference_get_read_local, ipa_reference_get_written_local):
1743         Remove.
1744         (ipa_reference_get_read_global, ipa_reference_get_not_read_global
1745         ipa_reference_get_written_global,
1746         ipa_reference_get_not_written_global): Use cgraph argument.
1747         (check_call): Simplify avail check.
1748         (scan_stmt_for_static_refs): Update.
1749         (propagate_bits): Update.
1750         (merge_callee_local_info): Remove.
1751         (init_function_info): Use cgraph nodes.
1752         (clean_function_local_data): Break out from ...
1753         (clean_function): ... here.
1754         (copy_local_bitmap, copy_global_bitmap): New functions.
1755         (duplicate_node_data, remove_node_data): New functions.
1756         (generate_summary): Register hooks; use visibility instead of
1757         master clones.
1758         (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
1759         * ipa-reference.h (ipa_reference_local_vars_info_d,
1760         ipa_reference_global_vars_info_d,
1761         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
1762         ipa_reference_vars_info_t): Move to ipa-reference.c
1763         (ipa_reference_get_read_local, ipa_reference_get_written_local):
1764         Remove.
1765         (ipa_reference_get_read_global, ipa_reference_get_written_global,
1766         ipa_reference_get_not_read_global,
1767         ipa_reference_get_not_written_global): Update prototype.
1768         * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
1769         (init_state): Remove.
1770         (node_duplication_hook_holder, node_removal_hook_holder): New.
1771         (get_function_state, set_function_state): Use VECtor.
1772         (analyze_function): Check body availability.
1773         (add_new_function): Likewise.
1774         (duplicate_node_data, remove_node_data): New.
1775         (generate_summary): Register hooks; do not care about clones.
1776         (propafate): Do not care about clones; recursive functions are
1777         not looping.
1778         * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
1779         * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
1780         * edge_duplication_hook_holder, node_duplication_hook_holder): Make
1781         static.
1782         * tree-flow.h (function_ann_d): Remove reference_vars_info.
1783         * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
1784         Update call of ipa-reference accesors.
1785
1786 2008-09-18  Simon Baldwin  <simonb@google.com>
1787
1788         * c-opts.c (c_common_handle_option): Add handling for
1789         -Wbuiltin-macro-redefined command line option.
1790         * c.opt: Added builtin-macro-redefined option.
1791         * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
1792         documentation.
1793
1794 2008-09-18  Richard Guenther  <rguenther@suse.de>
1795
1796         PR tree-optimization/37258
1797         * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
1798         and signedness for integral types.
1799         (vn_phi_eq): Require compatible types.
1800
1801 2008-09-18  Jakub Jelinek  <jakub@redhat.com>
1802
1803         PR debug/34037
1804         * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
1805         TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
1806         VAR_DECL.
1807         * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
1808         !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
1809         ggc_free other TREE_LIST nodes from that chain.
1810         * function.c (instantiate_decls): Instantiate also DECL_RTL
1811         of vars in cfun->local_decls, free that list afterwards.
1812
1813 2008-09-18  Eric Botcazou  <ebotcazou@adacore.com>
1814
1815         * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
1816         * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
1817
1818 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
1819
1820         * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
1821         * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
1822
1823 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
1824
1825         PR tree-optimization/37102
1826         * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
1827         from a node. Check to see if another PHI is dead.
1828         (eliminate_useless_phis): Rename from eliminate_virtual_phis and 
1829         remove real PHIs which have no uses.
1830         (rewrite_out_of_ssa): Call eliminate_useless_phis.
1831
1832 2008-09-18  Richard Guenther  <rguenther@suse.de>
1833
1834         PR middle-end/37284
1835         * tree-cfg.c (remove_useless_stmts_1): Remove
1836         GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
1837
1838 2008-09-18  Nick Clifton  <nickc@redhat.com>
1839
1840         * config/frv/frv.h (IRA_COVER_CLASSES): Define.
1841         (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
1842         to frv_secondary_reload_class.
1843         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
1844         * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
1845         (frv_secondary_reload_class): Omit unused parameter.
1846         (frv_secondary_reload): New function.  Handle the case when
1847         secondary_reload_class() is called before the reload_(in|out)
1848         _optabs have been initialised.
1849         * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
1850         unused parameter.
1851         * config/frv/frv.md: Define an exclusion set between fr550_m0
1852         and fr550_f0.
1853
1854 2008-09-18  Richard Guenther  <rguenther@suse.de>
1855
1856         PR tree-optimization/37456
1857         * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
1858         want to insert after ends a BB insert on the single fallthru
1859         outgoing edge.
1860
1861 2008-09-18  Andreas Krebbel  <krebbel1@de.ibm.com>
1862
1863         * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
1864         Mention -march=z9-109, z9-ec and z10.
1865
1866 2008-09-18  Uros Bizjak  <ubizjak@gmail.com>
1867
1868         PR rtl-optimization/37544
1869         * regrename.c (maybe_mode_change): Exit early when copy_mode
1870         is narrower than orig_mode and narrower than new_mode.
1871
1872 2008-09-18  Alexander Monakov  <amonakov@ispras.ru>
1873
1874         PR middle-end/37499
1875         * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
1876
1877         * sched-rgn.c (ref_counts): Remove.
1878         (insn_referenced): New static variable.
1879         (INSN_REF_COUNT): Remove.
1880         (sched_run_compute_dependencies): Use insn_referenced instead of
1881         INSN_REF_COUNT.
1882         (add_branch_dependences): Likewise.  Delete dead assignment.
1883
1884 2008-09-17  Adam Nemet  <anemet@caviumnetworks.com>
1885
1886         * haifa-sched.c (dep_cost_1): Recognize the producer even if the
1887         consumer is an asm.  Add comment why this is important.
1888         (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
1889         recog_memoized (insn) < 0" assert.  Put ENABLE_CHECKING around it.
1890
1891 2008-09-17  Joseph Myers  <joseph@codesourcery.com>
1892
1893         * expr.c (emit_group_store): Do not shift before moving via a
1894         stack slot.
1895
1896 2008-09-17  Eric Botcazou  <ebotcazou@adacore.com>
1897
1898         * varasm.c (initializer_constant_valid_p): Forbid view-conversions
1899         from aggregate to non-aggregate type if the bit pattern is not fully
1900         preserved afterwards.
1901
1902 2008-09-17  Richard Guenther  <rguenther@suse.de>
1903
1904         * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
1905         (verify_gimple_assign): ... this.  Split into ...
1906         (verify_gimple_assign_unary): ... this,
1907         (verify_gimple_assign_binary): ... that,
1908         (verify_gimple_assign_single): ... and this.
1909         (verify_types_in_gimple_stmt): Call verify_gimple_assign.
1910         Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
1911         (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
1912         (verify_types_in_gimple_reference): Be forgiving with
1913         VIEW_CONVERT_EXPRs.
1914         (verify_gimple_phi): Deal with virtual operands.
1915
1916         * tree.def (PREDICT_EXPR): Change to tcc_expression.
1917
1918 2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1919
1920         * tree.c (get_callee_fndecl): Don't call the language hook.
1921         * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
1922         * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
1923         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
1924
1925 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
1926
1927         * tree.c (protected_set_expr_location): Don't unnecessarily
1928         check for error_mark_node.
1929
1930 2008-09-17  Art Haas  <ahaas@impactweather.com>
1931
1932         * ipa-reference.c (analyze_function): Declare step only if
1933         ENABLE_CHECKING is defined.
1934
1935 2008-09-17  Jan Hubicka  <jh@suse.cz>
1936
1937         PR c++/18071
1938         * tree.h (DECL_INLINE): remove.
1939         (DECL_DECLARED_INLINE_P): Update docs.
1940         (DECL_NO_INLINE_WARNING_P): new.
1941         (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
1942         * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
1943
1944 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
1945             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1946
1947         PR bootstrap/37441
1948         * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
1949         false.
1950
1951 2008-09-17  Jan Hubicka  <jh@suse.cz>
1952
1953         * ipa-reference.c (ipa_obstack): Remove.
1954         (local_info_obstack, global_info_obstack): New.
1955         (add_static_var): We now handle variables only.
1956         (mark_address_taken, mark_load, mark_store): New functions based on ...
1957         (check_operand): ... remove.
1958         (get_asm_stmt_operands): Rename to ...
1959         (check_asm_memory_clobber): ... this. Look only for memory clobber.
1960         (scan_stmt_for_static_refs): Rewrite.
1961         (scan_op_for_static_refs): Rename to ...
1962         (scan_initializer_for_static_refs): do not look for VAR_DECL
1963         initializers; stop recursion on types and decls.
1964         (ipa_init): Use proper obstacks.
1965         (analyze_variable): Use scan_initializer_for_static_refs.
1966         (init_function_info): Use local obstack.
1967         (analyze_function): Simplify.
1968         (add_new_function): We don't need visited_nodes obstack.
1969         (generate_summary): Use proper obstacks; cleanup after propagation.
1970
1971 2008-09-17  Richard Guenther  <rguenther@suse.de>
1972
1973         PR middle-end/37385
1974         PR tree-optimization/37491
1975         * alias.c (get_alias_set): Use the canonical type.
1976         * tree-vect-transform.c (vectorizable_store): Use the type of
1977         the lhs for the vector type.  Adjust checking.
1978         (vectorizable_load): Adjust checking.
1979
1980 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
1981             Adam Nemet  <anemet@caviumnetworks.com>
1982
1983         PR rtl-optimization/37483
1984         * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
1985         if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
1986         Rearrange code to better match the original comment.  Check
1987         t_unconditional first.  Improve comment.
1988
1989 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
1990
1991         PR c/37529
1992         * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
1993         GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
1994
1995         PR c++/37530
1996         * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
1997         GIMPLE_TRY if cleanup sequence is empty.
1998
1999 2008-09-16  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2000
2001         PR middle-end/37263
2002         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
2003         eliminate IV if the cost are the same.
2004
2005 2008-09-16  Richard Guenther  <rguenther@suse.de>
2006
2007         PR middle-end/37380
2008         * tree-sra.c (sra_build_assignment): Do not call the gimplifier
2009         if not necessary.
2010
2011 2008-09-16  Richard Guenther  <rguenther@suse.de>
2012
2013         PR tree-optimization/37508
2014         * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
2015
2016 2008-09-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2017
2018         * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
2019
2020 2008-09-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2021
2022         * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
2023         use gen_floatdidf2 directly.
2024         (floatunssidf2): Likewise.
2025         (floatsidf_ppc64_mfpgpr): Remove.
2026         (floatsidf_ppc64): Remove.
2027         (floatunssidf_ppc64): Remove.
2028
2029 2008-09-15  Jakub Jelinek  <jakub@redhat.com>
2030
2031         * ira-color.c (finish_cost_update): Free update_cost_queue_elems
2032         rather than update_cost_queue.
2033
2034         * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
2035         in every call starting with the second one, instead of only when
2036         alias_bitmap_obstack.elements != NULL.
2037
2038         * tree-predcom.c (filter_suitable_components): Free all refs in
2039         act->refs vector before calling release_component.
2040         (add_ref_to_chain): Free ref if not adding it to chain->refs.
2041
2042         * tree-data-ref.c (free_subscripts): Free all subscript objects.
2043
2044         * tree-loop-linear.c (linear_transform_loops): Initialize
2045         lambda_obstack only after calling perfect_loop_nest_depth.
2046         Goto free_and_continue instead of just continue for later failures.
2047
2048         PR middle-end/37479
2049         * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
2050
2051         PR libmudflap/36397
2052         * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
2053
2054 2008-09-14  Andreas Schwab  <schwab@suse.de>
2055
2056         * tree-call-cdce.c (check_target_format): Accept Motorola formats.
2057
2058 2008-09-14  Jan Hubicka  <jh@suse.cz>
2059
2060         * invoke.texi (-fconserve-stack): Document.
2061         * opts.c (decode_options): Handle conserve_stack.
2062         * common.opt (fconvserve_stack): New.
2063
2064 2008-09-14  David Edelsohn  <edelsohn@gnu.org>
2065
2066         * config.host: Add x-aix to host_xmake_file.
2067         * config/rs6000/t-aix52: Do not override LDFLAGS.
2068         * config/rs6000/x-aix: New file.
2069
2070 2008-09-14  Andy Hutchinson  <hutchinsonandy@aim.com>
2071
2072         PR target/19636
2073         PR target/24894
2074         PR target/31644
2075         PR target/31786
2076         * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
2077         is not recognized as a valid register usage. Allow REG_X to be used
2078         as a base pointer.
2079         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
2080         forces a reload when using a base register.
2081
2082 2008-09-14  Danny Smith  <dannysmith@users.sourceforge.net>
2083
2084         * config/i386/cygming-crtend.c (register_frame_ctor): If
2085         DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
2086         directly with atexit.
2087         (deregister_frame_ctor): Rename to ...
2088         (deregister_frame_dtor): Use to call __gcc_deregister_frame
2089         if !DEFAULT_USE_CXA_ATEXIT.
2090
2091 2008-09-13  Jan Hubicka  <jh@suse.cz>
2092
2093         * cgraph.c: Include value-prof.h
2094         * Makefile.in (cgraph.o): Add value-prof.h dependency.
2095
2096 2008-09-13  Jan Hubicka  <jh@suse.cz>
2097
2098         PR middle-end/32581
2099         * tree-profile.c (add_abnormal_goto_call_edges): New function.
2100         (tree_gen_interval_profiler, tree_gen_pow2_profiler,
2101         tree_gen_one_value_profiler, tree_gen_average_profiler,
2102         tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
2103
2104 2008-09-13  Jan Hubicka  <jh@suse.cz>
2105
2106         * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
2107         too many bytes on misalligned blocks.
2108
2109 2008-09-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2110
2111         * doc/cfg.texi: Fix some typos.
2112         * doc/extend.texi: Likewise.
2113         * doc/install.texi: Likewise.
2114         * doc/invoke.texi: Likewise.
2115         * doc/rtl.texi: Likewise.
2116         * doc/tree-ssa.texi: Likewise.
2117
2118 2008-09-13  Richard Guenther  <rguenther@suse.de>
2119
2120         PR middle-end/30141
2121         * tree-nested.c (finalize_nesting_tree_1): Generate valid
2122         gimple stores for memory rhs.
2123
2124 2008-09-13  H.J. Lu  <hongjiu.lu@intel.com>
2125
2126         PR rtl-optimization/37489
2127         * cse.c (fold_rtx): Don't return const_true_rtx for float
2128         compare if FLOAT_STORE_FLAG_VALUE is undefined.
2129
2130 2008-09-13  Jan Hubicka  <jh@suse.cz>
2131
2132         PR tree-optimization/37392
2133         * tree-inline.c (remap_gimple_stmt): Do not remap return value.
2134
2135 2008-09-13  Martin Jambor  <mjambor@suse.cz>
2136             Jan Hubicka  <jh@suse.cz>
2137
2138         * cgraph.c (free_edges): New variable.
2139         (NEXT_FREE_EDGE): New macro.
2140         (cgraph_free_edge): New function.
2141         (cgraph_remove_edge): Call cgraph_remove_edge_1.
2142         (cgraph_node_remove_callees): Likewise.
2143         (cgraph_node_remove_callers): Likewise.
2144         (cgraph_create_edge): Reuse edges from the free list.  Do not
2145         update uid if doing so.
2146         (cgraph_remove_*_hook): Add free call.
2147
2148 2008-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2149
2150         * ira-color.c (conflict_allocno_vec): Delete.
2151         (update_cost_queue_elem): New structure.
2152         (update_cost_queue): New variable.
2153         (update_cost_queue_tail): Likewise.
2154         (update_cost_queue_elems): Likewise.
2155         (allocno_update_cost_check): Delete.
2156         (initiate_cost_update): Allocate update_cost_queue_elems
2157         instead of allocno_update_cost_check.
2158         (finish_cost_update): Update the free()s accordingly.
2159         (start_update_cost): New function.
2160         (queue_update_cost): Likewise.
2161         (get_next_update_cost): Likewise.
2162         (update_copy_costs_1): Inline into...
2163         (update_copy_costs): ...here.  Use a queue instead of recursive calls.
2164         Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
2165         once we've established they are equal.  Don't allocate update
2166         costs if there is nothing to add to them.
2167         (update_conflict_hard_regno_costs): Remove ALLOCNO and
2168         DIVISOR arguments.  Use a queue instead of recursive calls;
2169         process all the allocnos in the initial queue, rather than
2170         a single allocno.
2171         (assign_hard_reg): Use queue_update_cost instead of
2172         conflict_allocno_vec.  Queue coalesced allocnos instead
2173         of calling update_conflict_hard_regno_costs for each one.
2174         Just call update_conflict_hard_regno_costs once for the
2175         entire queue.
2176         (ira_color): Remove conflict_allocno_vec handling.
2177
2178 2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>
2179
2180         PR tree-optimization/37484
2181         * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
2182         (save_var_name): Same.
2183         (initialize_cloog_names): Same.
2184         (initialize_cloog_names): Same.
2185
2186 2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>
2187
2188         * tree-scalar-evolution.c (set_instantiated_value): Set
2189         instantiated_below.
2190
2191 2008-09-12  Vladimir Makarov  <vmakarov@redhat.com>
2192
2193         PR rtl-opt/37377
2194
2195         * ira-build.c (common_loop_tree_node_dominator): Remove.
2196         (copy_live_ranges_to_removed_store_destinations): New function.
2197         (regno_top_level_allocno_map): Move to top level from ...
2198         (ira_flattening): ... here.  Use
2199         copy_live_ranges_to_removed_store_destinations.
2200
2201         * ira-emit.c (generate_edge_moves): Fix a comment.
2202
2203 2008-09-12  Anatoly Sokolov  <aesok@post.ru>
2204
2205         PR target/37466
2206         * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
2207         scratch register after 'set' pattern.
2208
2209 2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2210
2211         * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
2212         information passed to mark_reg_pointer.
2213         * explow.c (force_reg): Likewise.
2214
2215 2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2216
2217         * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
2218         when building for the celledp architecture.
2219
2220 2008-09-12  Richard Guenther  <rguenther@suse.de>
2221
2222         * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
2223
2224 2008-09-12  Eric Botcazou  <ebotcazou@adacore.com>
2225
2226         PR rtl-optimization/37424
2227         * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
2228         the regnos instead of the addresses.
2229
2230 2008-09-11  Janis Johnson  <janis187@us.ibm.com>
2231
2232         * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
2233
2234 2008-09-11  Richard Guenther  <rguenther@suse.de>
2235
2236         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
2237         entering the weaker equivalence recording.
2238
2239         * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
2240
2241 2008-09-11  Jeff Law <law@redhat.com>
2242
2243         * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
2244         by assign_stack_local on the IRA path for stack slot sharing
2245         as well as the non-IRA path.
2246
2247 2008-09-11  Uros Bizjak  <ubizjak@gmail.com>
2248
2249         * config/i386/i386.h: Fix whitespace issues.
2250
2251 2008-09-11  Martin Jambor  <mjambor@suse.cz>
2252
2253         * ipa-prop.h (struct ipa_param_flags): Removed.
2254         (struct ipa_param_descriptor): New structure.
2255         (struct ipa_node_params): ipcp_lattices, param_decls and
2256         param_flags moved to ipa_param_description.
2257         (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
2258         descriptors.  Renamed all users.
2259         (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
2260         changed to access descriptors.  Renamed all users.
2261         (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
2262         to access descriptors. Renamed all users.
2263         * ipa-cp.c (ipcp_init_cloned_node): Call
2264         ipa_initialize_node_params instead of ipa_count_formal_params and
2265         ipa_create_param_decls_array.
2266         (ipcp_analyze_node): Likewise.
2267         (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
2268         descriptors.  Renamed all users.
2269         (ipcp_initialize_node_lattices): Remove allocation.
2270         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
2271         ipa_initialize_node_params instead of ipa_count_formal_params and
2272         ipa_create_param_decls_array.
2273         * ipa-prop.c (ipa_create_param_decls_array): Renamed to
2274         ipa_populate_param_decls, made static, added parameter info,
2275         renamed mt to node, removed allocation, changed to use
2276         descriptors.
2277         (ipa_count_formal_params): Made static, added parameter info,
2278         renamed mt to node.
2279         (ipa_initialize_node_params): New function.
2280         (ipa_check_stmt_modifications): Changed to use descriptors.
2281         (ipa_detect_param_modifications): Removed allocation, changed to
2282         use descriptors.
2283         (ipa_note_param_call): Changed to use descriptors.
2284         (ipa_analyze_params_uses): Removed allocation.
2285         (ipa_free_node_params_substructures): Changed to use descriptors.
2286         (ipa_edge_duplication_hook): Use the unused attribute.
2287         (ipa_node_duplication_hook): Use the unused attribute, changed to
2288         use descriptors, changed to duplicate descriptors.
2289
2290         * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
2291         changed all callers.  Call ipa_propagate_indirect_call_infos if doing
2292         indirect inlining.  Made static.
2293         (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
2294         functions called only once.
2295         (cgraph_decide_recursive_inlining): Don't call
2296         ipa_propagate_indirect_call_infos, pass new_edges to
2297         cgraph_mark_inline_edge instead.
2298         (cgraph_decide_inlining_of_small_functions): Don't call
2299         ipa_propagate_indirect_call_infos, pass new_edges to
2300         cgraph_mark_inline_edge instead.
2301         (cgraph_decide_inlining): Don't call
2302         ipa_propagate_indirect_call_infos.
2303         * ipa-prop.c: Check that vectors are allocated.
2304
2305         * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
2306         iff a new cgraph edges have been created.
2307         (cgraph_decide_inlining): New variable redo_always_inline.
2308         Flattening and always_inlining loop until callgraph stabilizes.
2309         * ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
2310         true iff new cgraph edges have been created.
2311         (propagate_info_to_inlined_callees): Likewise.
2312         (ipa_propagate_indirect_call_infos): Likewise.
2313
2314 2008-09-11  Richard Guenther  <rguenther@suse.de>
2315
2316         * tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
2317         (set_prologue_iterations): Likewise.
2318         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
2319         Likewise.
2320         (vect_update_init_of_dr): Likewise.
2321         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
2322         type verification.
2323         * fold-const.c (fold_unary): Do not generate calculations
2324         in sub-types.
2325
2326 2008-09-11  Paolo Bonzini  <bonzini@gnu.org>
2327
2328         * dojump.c (do_jump) [BIT_AND_EXPR]: Move below.  Fall through to
2329         TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
2330         (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
2331
2332         * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
2333         a bool.
2334         * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
2335         VRP's simplify_stmt_using_ranges.  Do simplify_stmt_using_ranges
2336         before finalizing the changes.
2337         * tree-vrp.c (extract_range_from_binary_expr): Add limited support
2338         for BIT_IOR_EXPR.
2339         (simplify_truth_ops_using_ranges): New.
2340         (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
2341         simplify_cond_using_ranges, simplify_switch_using_ranges): Return
2342         whether a simplification was made.
2343         (simplify_stmt_using_ranges): Ditto, and accept a GSI.  For GS_ASSIGN,
2344         use a switch statement and also call simplify_truth_ops_using_ranges.
2345
2346 2008-09-11  Jan Hubicka  <jh@suse.cz>
2347
2348         * ggc-common.c (loc_array): Make static.
2349         * dce.c (rest_of_handle_ud_dce): Free worklist.
2350
2351 2008-09-11  Jan Hubicka  <jh@suse.cz>
2352
2353         * cgraph.c (cgraph_release_function_body): Plug memory leak on
2354         ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
2355         function so we are sure we do not dangle it forever.
2356         * function.c (outer_function_chain, find_function_data): Remove.
2357         (function_context_stack): New.
2358         (push_function_context, pop_function_context): Update.
2359         * function.h (struct function): Remove pointer outer.
2360         (outer_function_chain, find_function_data): Remove.
2361         * stmt.c (force_label_rtx): Remove dead call of find_function_data.
2362
2363 2008-09-11  Jan Hubicka  <jh@suse.cz>
2364
2365         PR middle-end/37448
2366         * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
2367
2368 2008-09-11  Jan Hubicka  <jh@suse.cz>
2369
2370         * tree-ssa-pre.c (phi_translate_1): Fix memory leak
2371
2372 2008-09-11  Jan Hubicka  <jh@suse.cz>
2373
2374         * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
2375         (free_var_map_entry): New function.
2376         (redirect_edge_var_map_destroy): Use it.
2377
2378 2008-09-11  Jan Hubicka  <jh@suse.cz>
2379
2380         PR middle-end/37448
2381         * tree-inline.c (add_lexical_block): Replace with ...
2382         (prepend_lexical_block): ... prepend at begginig.
2383         (remap_blocks): Use it and reverse later.
2384         (expand_call_inline): Use prepend_lexical_block.
2385
2386 2008-09-11  Jan Hubicka  <jh@suse.cz>
2387
2388         * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
2389
2390 2008-09-11  Jan Hubicka  <jh@suse.cz>
2391
2392         * function.c (free_after_compilation): Call insn_locators_free.
2393         * cfglayout.c (insn_locators_free): New function.
2394         * rtl.h (insn_locators_free): Declare.
2395
2396 2008-09-11  Jan Hubicka  <jh@suse.cz>
2397
2398         * ifcvt.c (check_cond_move_block): Make regs argument pointer to
2399         vector pointer.
2400         (cond_move_process_if_block): Update call.
2401
2402 2008-09-11  Jan Hubicka  <jh@suse.cz>
2403
2404         * toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
2405         * vec.c: Include hashtab.h
2406         (vec_descriptor, ptr_hash_entry): New structures.
2407         (vec_desc_hash, vec_ptr_map): New static variables.
2408         (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
2409         register_overhead, free_overhead, vec_heap_free): New functions.
2410         (vec_gc_o_reserve_1): ggc_free when resizing to 0.
2411         (vec_heap_o_reserve_1): free when resizing to 0; add statistics.
2412         (cmp_statistic, add_statistics, dump_vec_loc_statistics):
2413         New functions.
2414
2415 2008-09-11  Ira Rosen  <irar@il.ibm.com>
2416
2417         PR tree-optimization/37474
2418         * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
2419         length of load permutation.
2420
2421 2008-09-11  Andreas Schwab  <schwab@suse.de>
2422
2423         * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
2424
2425 2008-09-11  Jakub Jelinek  <jakub@redhat.com>
2426
2427         PR target/37382
2428         * expmed.c (extract_low_bits): Avoid creating invalid subregs.
2429         * dse.c (find_shift_sequence): Use extract_low_bits instead of
2430         simplify_gen_subreg.
2431
2432 2008-09-11  Ira Rosen  <irar@il.ibm.com>
2433
2434         * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
2435         for alias check.
2436
2437 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
2438
2439         PR middle-end/37338
2440         * gimplify.c (gimplify_body): Call default_rtl_profile.
2441
2442         PR target/36904
2443         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
2444         instead of tok->val.node if not expanding to something else.  Handle
2445         intervening CPP_PADDING tokens.
2446         (altivec_categorize_keyword): Remove unneeded comparisons.
2447
2448 2008-09-10  Richard Guenther  <rguenther@suse.de>
2449
2450         * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
2451
2452 2008-09-10  Richard Guenther  <rguenther@suse.de>
2453
2454         PR middle-end/37432
2455         * tree-inline.c (insert_init_stmt): Make sure to not
2456         insert invalid gimple stores.
2457
2458 2008-09-10  Sebastian Pop  <sebastian.pop@amd.com>
2459
2460         PR tree-optimization/37388
2461         * toplev.c (process_options): Fail and warn when graphite
2462         flags are used, but the compiler has not been configured
2463         with graphite libraries.
2464         * graphite.c (graphite_transform_loops): Remove printfs
2465         to dump_file for the case when graphite is not available.
2466
2467 2008-09-10  H.J. Lu  <hongjiu.lu@intel.com>
2468
2469         PR target/37434:
2470         * config/i386/i386.c (ix86_expand_vector_init_interleave): Force
2471         the even element into register.
2472         (ix86_expand_vector_init_general): Don't use
2473         ix86_expand_vector_init_interleave on V16QImode and V8HImode
2474         if we can't move from GPR to SSE register directly.
2475
2476 2008-09-10  Bernd Schmidt  <bernd.schmidt@analog.com>
2477
2478         * config/bfin/bfin.c (workaround_speculation): Correct algorithm to
2479         not lose track of the number of NOPs needed.  Number of NOPs needed
2480         for sync vs. loads workaround was switched; corrected.  Run second
2481         pass for all workarounds.  No NOPs needed after call insns.  Change
2482         second pass to use find_next_insn_start and find_load helpers in order
2483         to properly detect parallel insns.
2484         * config/bfin/bfin.md (cbranch_with_nops): Increase length.
2485
2486 2008-09-10  Jan Hubicka  <jh@suse.cz>
2487
2488         * value-prof.c (gimple_ic): Fix tuplification bug.
2489         * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
2490         var warning.
2491
2492 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
2493
2494         PR tree-optimization/37353
2495         * tree-call-cdce.c (cond_dead_built_in_calls): Remove.
2496         (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
2497         calls instead of cond_dead_built_in_calls.
2498         (tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
2499         initalize the vector only before adding first entry.  Use VEC_safe_push
2500         instead of VEC_quick_push.  Pass cond_dead_built_in_calls to
2501         shrink_wrap_conditional_dead_built_in_calls call.
2502
2503 2008-09-10  Ira Rosen  <irar@il.ibm.com>
2504
2505         PR tree-optimization/37385
2506         * tree-vect-transform.c (vect_create_data_ref_ptr): Add a new
2507         argument, and use it as a vector type if not NULL.
2508         (vectorizable_store): Call vect_create_data_ref_ptr with the type of
2509         vectorized rhs.
2510         (vect_setup_realignment): Call vect_create_data_ref_ptr with
2511         additional argument.
2512         (vectorizable_load): Likewise.
2513
2514 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
2515
2516         * config/i386/i386.md (SWI32): New mode iterator.
2517         (jcc_fused_1, jcc_fused_2, jcc_fused_3, jcc_fused_4): Use it instead
2518         of SWI.
2519
2520 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
2521
2522         PR rtl-optimization/37435
2523         * caller-save.c (insert_restore, insert_save): Check the mode by
2524         reg_save_code.
2525
2526 2008-09-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2527
2528         PR other/37265
2529         * dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for
2530         splay tree lookup.
2531         (dw2_output_indirect_constant_1): Use unstripped name in symbol
2532         reference.
2533
2534 2008-09-09  Sandra Loosemore  <sandra@codesourcery.com>
2535
2536         * doc/invoke.texi (ARM Options): Correct errors in discussion
2537         of -mfloat-abi, -mhard-float, and -msoft-float.
2538
2539 2008-09-09  Jakub Jelinek  <jakub@redhat.com>
2540             Jan Hubicka  <jh@suse.cz>
2541
2542         PR middle-end/37356
2543         * tree-inline.c (copy_bb): Insert stmt into copy_basic_block before
2544         calling gimple_regimplify_operands on it.  Iterate over all newly
2545         added statements, not just the last one.
2546         (insert_init_stmt): Insert stmt into seq first, then call
2547         gimple_regimplify_operands on it.  Don't create new gimplification
2548         context, nor find referenced vars.
2549
2550 2008-09-09  Jakub Jelinek  <jakub@redhat.com>
2551
2552         PR other/37419
2553         * ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument
2554         to pointer to vector pointer.
2555         * ipa-prop.c (ipa_propagate_indirect_call_infos,
2556         propagate_info_to_inlined_callees): Likewise.
2557         (update_call_notes_after_inlining): Likewise.  Push new indirect edge
2558         to *new_edges instead of new_edges.  Reread IPA_EDGE_REF after
2559         ipa_check_create_edge_args.
2560         * ipa-inline.c (cgraph_decide_recursive_inlining): Change last
2561         argument to pointer to vector pointer.
2562         (cgraph_decide_inlining_of_small_function): Adjust
2563         cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos
2564         calls.
2565
2566         PR target/37438
2567         * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
2568         optimizing for size, not speed.
2569
2570         PR rtl-optimization/37408
2571         * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
2572         if parm is promoted.
2573
2574 2008-09-09  Sebastian Pop  <sebastian.pop@amd.com>
2575
2576         PR tree-optimization/37375
2577         * tree-scalar-evolution.c (scev_info_str): Add field
2578         instantiated_below.
2579         (new_scev_info_str, eq_scev_info, find_var_scev_info,
2580         set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
2581         set_instantiated_value): Pass instantiated_below.
2582         (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls
2583         to above functions.
2584         (instantiate_scev_1, instantiate_scev): Pass a basic block above which
2585         the definitions are not instantiated.
2586
2587         * tree-scalar-evolution.h (instantiate_scev): Update declaration.
2588         (block_before_loop): New.
2589         * tree-data-ref.c (dr_analyze_indices): Update uses of
2590         instantiate_scev.
2591         * graphite.c (block_before_scop): New.
2592         (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
2593         basic block, not a loop for determining the parameters.
2594         (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
2595         scop.
2596         (idx_record_params, find_params_in_bb, find_scop_parameters,
2597         build_loop_iteration_domains, add_conditions_to_domain): Update calls
2598         to instantiate_scev.
2599
2600         * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
2601
2602 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
2603
2604         PR rtl-opt/37333
2605
2606         * ira-build.c (ira_create_allocno): Setup frequency to 0.
2607
2608         * ira-color.c (update_conflict_hard_regno_costs): Remove assert.
2609         Check zero freq and increase if necessary.
2610
2611 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
2612
2613         * ira-conflicts.c (process_regs_for_copy): Check that the hard
2614         regno is in the right range.  Add comments.
2615
2616 2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2617
2618         * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
2619         warnings.
2620         * mips-tfile.c (copy_object): Cast alloca result to int *.
2621         * mips-tdump.c (print_symbol): Cast xmalloc return values to
2622         proper types.
2623         Rename class to sclass.
2624         (read_tfile): Cast read_seek return values to proper types.
2625         Cast xcalloc return value to proper type.
2626
2627 2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2628
2629         * config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ...
2630         * config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here.
2631         * config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here.
2632
2633 2008-09-09  Jan Hubicka  <jh@suse.cz>
2634
2635         * profile.c (is_edge_inconsistent): Add debug output; ignore
2636         negative count on fake edges.
2637         (is_inconsistent): Add debug output.
2638
2639 2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
2640
2641         * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
2642         dump message.
2643         (choose_ready): When first insn is chosen from the ready list, also
2644         dump it.
2645
2646 2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
2647
2648         PR rtl-optimization/37360
2649         * haifa-sched.c (max_issue): Do not assert that we never issue more
2650         insns than issue_rate.  Add comment.
2651
2652 2008-09-09  Richard Guenther  <rguenther@suse.de>
2653
2654         * tree-cfg.c (verify_types_in_gimple_op): Remove.
2655         (verify_types_in_gimple_call): Rename to ...
2656         (verify_gimple_call): ... this.  Enhance.
2657         (verify_types_in_gimple_cond): Remove.
2658         (verify_gimple_comparison): New function ...
2659         (verify_types_in_gimple_assign): ... split out from here.
2660         (verify_types_in_gimple_return): Rename to ...
2661         (verify_gimple_return): ... this.  Enhance.
2662         (verify_types_in_gimple_switch): Rename to ...
2663         (verify_gimple_switch): ... this.  Enhance.
2664         (verify_gimple_goto): New function.
2665         (verify_types_in_gimple_phi): Rename to ...
2666         (verify_gimple_phi): ... this.  Enhance.
2667         (verify_types_in_gimple_stmt): Adjust calls to helper functions.
2668         Fold in single-statement cases from verify_types_in_gimple_seq_2.
2669         (verify_types_in_gimple_seq_2): Remove cases handled in
2670         verify_types_in_gimple_stmt.
2671
2672 2008-09-09  Bernd Schmidt  <bernd.schmidt@analog.com>
2673
2674         * config/bfin/bfin.c (n_regs_to_save): New static variable.
2675         (push_multiple_operation, pop_multiple_operation): Set it.
2676         (workaround_rts_anomaly): New function.
2677         (workaround_speculation): New function, broken out of bfin_reorg.
2678         (bfin_reorg): Call the new functions.
2679
2680 2008-09-09  Richard Guenther  <rguenther@suse.de>
2681
2682         PR middle-end/37354
2683         PR middle-end/30165
2684         * gimplify.c (gimplify_conversion): Change conversions of
2685         non-register type to VIEW_CONVERT_EXPRs.
2686         (gimplify_addr_expr): If we need to make the operand
2687         addressable make sure to use a properly initialized
2688         temporary for that so it gets a valid gimple store.
2689
2690 2008-09-09  Aldy Hernandez  <aldyh@redhat.com>
2691
2692         * function.h (struct function): Add function_start_locus.
2693         * cfgexpand.c (gimple_expand_cfg): Use it.
2694         * c-parser.c (c_parser_declaration_or_fndef): Set it.
2695
2696 2008-09-09  Richard Guenther  <rguenther@suse.de>
2697
2698         PR tree-optimization/37433
2699         * tree-ssa-ccp.c (ccp_fold): Properly guard folding of
2700         function calls.
2701
2702 2008-09-09  Richard Guenther  <rguenther@suse.de>
2703
2704         PR tree-optimization/37387
2705         * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
2706         and bits to a common type.
2707
2708 2008-09-09  Nick Clifton  <nickc@redhat.com>
2709
2710         * config/v850/v850.md (return): Restore frame size restriction.
2711
2712 2008-09-09  Paolo Bonzini  <bonzini@gnu.org>
2713
2714         * c-common.c (c_expand_decl): Remove.
2715         * c-common.h (anon_aggr_type_p): Remove prototype.
2716         (DECL_ANON_UNION_ELEMS): Remove.
2717         * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
2718         * c-decl.c (anon_aggr_type_p): Remove.
2719         * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
2720         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
2721         * langhooks.h (struct lang_hooks): Remove expand_decl.
2722         * langhooks.c (lhd_expand_decl): Remove.
2723         * stmt.c (expand_anon_union_decl): Remove.
2724         * tree.h (expand_anon_union_decl): Remove prototype.
2725
2726 2008-08-09  Andy Hutchinson  <hutchinsonandy@aim.com>
2727
2728         PR target/36609
2729         * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
2730         zero.
2731         * config/avr/avr.md  (QISI) : Define mode iterator.
2732         (negated_tst<mode>) : Redefine as split using mode macro.
2733         (reversed_tstqi): Define insn as reversed compare with zero.
2734         (reversed_tsthi): Ditto.
2735         (reversed_tstsi): Ditto.
2736
2737 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
2738
2739         PR middle-end/37393
2740         * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
2741         call stmt by new_call, clear gimple_bb on stmt after gsi_replace.
2742
2743         PR middle-end/37414
2744         * predict.c (optimize_function_for_size_p): Don't segfault if
2745         FUN is NULL.
2746         * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
2747         tree_swap_operands_p): Don't test cfun != NULL before calling
2748         optimize_function_for_s*_p.
2749
2750 2008-09-08  Eric Botcazou  <ebotcazou@adacore.com>
2751
2752         * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
2753         end of the search.
2754
2755 2008-09-08  M R Swami Reddy <MR.Swami.Reddy@nsc.com>
2756
2757         * crx/crx.h (IRA_COVER_CLASSES): Define.
2758
2759 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
2760
2761         PR middle-end/37337
2762         * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
2763         even when a stmt has been gimple_modified_p, but after fold_stmt is
2764         not any longer.  Remove unneeded may_have_exposed_new_symbols
2765         initializations.
2766
2767 2008-09-08  Richard Guenther  <rguenther@suse.de>
2768
2769         PR tree-optimization/37421
2770         * tree-ssa-sccvn.c (visit_copy): Make sure to fully
2771         valueize the RHS.
2772
2773 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
2774
2775         PR middle-end/37415
2776         * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
2777
2778 2008-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2779
2780         PR driver/37409
2781         * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
2782         * pa-hpux10.h (LINK_SPEC): Likewise.
2783         * pa-hpux11.h (LINK_SPEC): Likewise.
2784
2785 2008-09-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2786
2787         * pa32-regs.h (IRA_COVER_CLASSES): Define.
2788         * pa64-regs.h (IRA_COVER_CLASSES): Define.
2789
2790 2008-09-07  Helge Deller  <deller@gmx.de>
2791
2792         * pa/linux-atomic.c: New file.
2793         * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
2794         * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
2795
2796 2008-09-07  Richard Guenther  <rguenther@suse.de>
2797             Ira Rosen  <irar@il.ibm.com>
2798
2799         PR tree-optimization/36630
2800         * tree-vect-transform.c (vect_update_ivs_after_vectorizer):
2801         Call STRIP_NOPS before calling evolution_part_in_loop_num.
2802
2803 2008-09-07  Dorit Nuzman  <dorit@il.ibm.com>
2804             Ira Rosen  <irar@il.ibm.com>
2805
2806         PR tree-optimization/35642
2807         * config/rs6000/altivec.md (mulv8hi3): Implement.
2808
2809 2008-09-06  Jeff Law <law@redhat.com>
2810
2811         * h8300/h8300.h (IRA_COVER_CLASSES): Define.
2812
2813 2008-09-06  Jan Hubicka  <jh@suse.cz>
2814
2815         PR tree-optimization/14703
2816         * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
2817         declarations.
2818         * passes.c (init_optimization_passes): Recompute inline parameters.
2819
2820 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
2821
2822         * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
2823         DECL being null.
2824
2825 2008-09-06  Richard Sandiford  <rdsandiford@goolemail.com>
2826             Peter Fuerst  <post@pfrst.de>
2827
2828         * doc/invoke.texi: Document -mr10k-cache-barrier=.
2829         * doc/extend.texi: Document __builtin_mips_cache.
2830         * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
2831         * config/mips/mips.opt (mr10k-cache-barrier=): New option.
2832         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
2833         __GCC_HAVE_BUILTIN_MIPS_CACHE.
2834         (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
2835         * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
2836         (set_push_mips_isas): New variable.
2837         (mips_r10k_cache_barrier): New variable.
2838         (cache): New availability predicate.
2839         (mips_builtins): Add an entry for __builtin_mips_cache.
2840         (mips_build_cvpointer_type): New function.
2841         (MIPS_ATYPE_CVPOINTER): New macro.
2842         (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
2843         mode is VOIDmode.
2844         (r10k_simplified_address_p, r10k_simplify_address)
2845         (r10k_uncached_address_p, r10k_safe_address_p)
2846         (r10k_needs_protection_p_1, r10k_needs_protection_p_store)
2847         (r10k_needs_protection_p_call, r10k_needs_protection_p)
2848         (r10k_insert_cache_barriers): New functions.
2849         (mips_reorg_process_insns): Delete cache barriers after a
2850         branch-likely instruction.
2851         (mips_reorg): Call r10k_insert_cache_barriers.
2852         (mips_handle_option): Handle OPT_mr10k_cache_barrier_.
2853         * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
2854         (UNSPEC_R10K_CACHE_BARRIER): Likewise.
2855         (mips_cache, r10k_cache_barrier): New define_insns.
2856
2857 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
2858
2859         * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
2860         * ira-color.c (setup_allocno_left_conflicts_num): Use
2861         hard_reg_set_equal_p instead of a comparison with
2862         ira_zero_hard_reg_set.
2863         * ira.c (setup_reg_subclasses): Likewise.
2864         (setup_cover_and_important_classes): Likewise.
2865         (setup_class_translate): Likewise.
2866         (setup_reg_class_intersect_union): Likewise.
2867         (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
2868         (ira_init_once): Don't initialize them.
2869
2870 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
2871
2872         * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
2873
2874 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
2875
2876         * ira-color.c (ira_fast_allocation): Permit global allocno allocation.
2877
2878 2008-09-05  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2879
2880         Improved branch hints, safe hints, and scheduling.
2881
2882         * haifa-sched.c (sched_emit_insn) : Define.
2883         * sched-int.h (sched_emit_insn) : Add prototype.
2884         * doc/invoke.texi (-mdual-nops, -mhint-max-nops,
2885         -mhint-max-distance -msafe-hints) : Document.
2886         * config/spu/spu.c (spu_flag_var_tracking): New.
2887         (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
2888         TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
2889         TARGET_ASM_FILE_START): Define.
2890         (TARGET_SCHED_ADJUST_PRIORITY): Remove.
2891         (STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
2892         (spu_emit_branch_hint): Add blocks argument.
2893         (insert_branch_hints, insert_nops): Remove.
2894         (pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
2895         uses_ls_unit, spu_sched_init_global, spu_sched_init,
2896         spu_sched_reorder, asm_file_start): New functions.
2897         (clock_var, spu_sched_length, pipe0_clock,
2898         pipe1_clock, prev_clock_var, prev_priority,
2899         spu_ls_first, prev_ls_clock): New static variables.
2900         * config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
2901         * config/spu.md (iprefetch): Add operand, make it clobber MEM.
2902         (nopn_nv): Add a non-volatile version of nop.
2903         * config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
2904         -mhint-max-distance, -msafe-hints): New options.
2905
2906 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
2907             Samuel Tardieu  <sam@rfc1149.net>
2908
2909         * opts.c (decode_options): Combine nested if statements.
2910
2911         PR target/37283
2912         * opts.c (decode_options): Handle more relationships among
2913         unit-at-a-time, toplevel-reorder, and section-anchors.
2914
2915 2008-09-05  David Daney  <ddaney@avtrex.com>
2916
2917         * doc/install.texi (--enable-reduced-reflection): Document new option.
2918
2919 2008-09-05  Bob Wilson  <bob.wilson@acm.org>
2920
2921         * config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use
2922         constantpool_mem_p.
2923         (constantpool_operand): New.
2924         (move_operand): Disallow sub-word modes for the constant pool.
2925         * config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define.
2926         (xtensa_secondary_reload_class): Replace with....
2927         (xtensa_secondary_reload): this function.  Remove SIGN_EXTEND check.
2928         Set icode for sub-word reloads from the constant pool.
2929         * config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete.
2930         (SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
2931         * config/xtensa/xtensa.md (reload<mode>_literal): New.
2932         * config/xtensa/xtensa-protos.h: Update prototypes.
2933
2934 2008-09-05  Joseph Myers  <joseph@codesourcery.com>
2935
2936         * config/mips/mips.h (enum reg_class): Add FRAME_REGS.
2937         (REG_CLASS_NAMES): Update.
2938         (REG_CLASS_CONTENTS): Update.
2939         * config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
2940         of ALL_REGS for regs 77 and 78.
2941         * function.c (instantiate_virtual_regs_in_insn): Assert that
2942         return value of simplify_gen_subreg is not NULL.
2943
2944 2008-09-05  Paolo Bonzini  <bonzini@gnu.org>
2945
2946         * emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
2947         (gen_rtvec_v): Fix coding standards.
2948
2949 2008-09-04  Jan Hubicka  <jh@suse.cz>
2950
2951         * i386.c (decide_alg): Be more conservative about optimizing for size.
2952
2953 2008-09-04  Ian Lance Taylor  <iant@google.com>
2954
2955         * varasm.c (narrowing_initializer_constant_valid_p): New
2956         static function.
2957         (initializer_constant_valid_p): Call it.
2958
2959 2008-09-04  Jeff Law  <law@redhat.com>
2960
2961         * fold-const.c (native_encode_real): Fix computation of WORDS.
2962         (native_interpret_real): Likewise.
2963
2964 2008-09-04  Janis Johnson  <janis187@us.ibm.com>
2965
2966         * config/rs6000/t-rs6000: Remove target gt-rs6000.h.
2967
2968 2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
2969
2970         * ira-conflicts.c (process_regs_for_copy): Check insn to check
2971         that the cost is already taken into account in ira-costs.c
2972
2973         * ira-int.h (ira_debug_copy, ira_debug_copies): New.
2974
2975         * ira-build.c (print_copy, print_copies, ira_debug_copy,
2976         ira_debug_copies): New.
2977         (ira_bulid): Call print_copies.
2978
2979         * doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
2980
2981 2008-09-04  Samuel Tardieu  <sam@rfc1149.net>
2982
2983         PR target/32783
2984         * config/rs6000/rs6000.c (optimization_options): Remove check of
2985         flag_toplevel_order.
2986
2987 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
2988
2989         * config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro.
2990         * config/mips/mips.c (mips_expand_scc): Also expand seq and sne if
2991         second operand is a reg_imm10_operand.
2992         * config/mips/mips.md (*seq_<GPR:mode><GPR2:mode>_seq,
2993         *sne_<GPR:mode><GPR2:mode>_sne): New patterns.
2994         (*seq_<GPR:mode><GPR2:mode>): Rename to
2995         *seq_zero_<GPR:mode><GPR2:mode>.  Don't match if
2996         ISA_HAS_SEQ_SNE.
2997         (*seq_<GPR:mode><GPR2:mode>_mips16): Rename to
2998         *seq_zero_<GPR:mode><GPR2:mode>_mip16.  Don't match if
2999         ISA_HAS_SEQ_SNE.
3000         (*sne_<GPR:mode><GPR2:mode>): Rename to
3001         *sne_zero_<GPR:mode><GPR2:mode>.  Don't match if
3002         ISA_HAS_SEQ_SNE.
3003
3004 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
3005
3006         * config/mips/mips.h (ISA_HAS_EXTS): New macro.
3007         * config/mips/mips.md (*ashr_trunc<mode>): Name the pattern
3008         combining an arithmetic right shift by more than 31 and a
3009         trunction.  Don't match for out-of-range shift amounts.  Set
3010         attribute mode to <MODE>.
3011         (*lshr32_trunc<mode>): Name the pattern combining a logical right
3012         shift by 32 and and a truncation.  Set attribute mode to <MODE>.
3013         (*<optab>_trunc<mode>_exts): New pattern for truncated right
3014         shifts by less than 32.
3015         (extv): Change predicate on first operand to accept registers.
3016         Change predicate of the other operands from immediate_operand to
3017         const_int_operand.  Expand exts when source is a register.
3018         (extzv): Change predicate of the constant operands from
3019         immediate_operand to const_int_operand.
3020         (extzv<mode>): Change predicate of the constant operands from
3021         immediate_operand to const_int_operand and no constraint. Also
3022         remove mode.
3023         (*extzv_trunc<mode>_exts): New pattern.
3024
3025 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
3026
3027         * config/mips/mips.h (ISA_HAS_CINS): New macro.
3028         * config/mips/mips-protos.h (mask_low_and_shift_p,
3029         mask_low_and_shift_len): Declare.
3030         * config/mips/mips.c (mask_low_and_shift_p,
3031         mask_low_and_shift_len): New functions.
3032         (mips_print_operand): Handle new operand prefix "m".
3033         * config/mips/mips.md (*cins<mode>): New pattern.
3034
3035 2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
3036
3037         * config/bfin/bfin.c (gen_one_bundle): Don't create new nops when
3038         optimizing for size.
3039
3040 2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
3041
3042         * df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM
3043         regardless of epilogue_completed.
3044
3045 2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
3046
3047         PR middle-end/37359
3048         * ira-lives.c (process_bb_node_lives): Check setjmp.
3049
3050 2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
3051
3052         PR middle-end/37243
3053         * ira-build.c (form_loop_tree): Reverse BB walk.
3054         (create_bb_allocnos): Likewise.
3055         * ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
3056         (mark_reg_store): Rename to...
3057         (mark_ref_live): ...this and take a df_ref argument instead of
3058         note_stores arguments.  Assert that we have a register.
3059         (mark_reg_clobber): Delete.
3060         (def_conflicts_with_inputs_p): New function.
3061         (mark_reg_conflicts): Delete.
3062         (mark_reg_death): Rename to...
3063         (mark_ref_dead): ...this and take a df_ref argument instead of
3064         a register.  Assert that we have a register.
3065         (process_bb_node_lives): Hoist frequency calculation out of
3066         instruction walk.  Convert from a forwards scan to a backwards scan.
3067         Use DF_REF_USES and DF_REF_DEFS instead of register notes and
3068         note_stores.  Remove EH_RETURN_DATA_REGNO and regs_set handling.
3069         (create_allocno_live_ranges): Don't create regs_set.
3070
3071 2008-09-04  Ian Lance Taylor  <iant@google.com>
3072
3073         * rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND
3074         or REG_LABEL_TARGET.
3075         * calls.c (emit_library_call_value_1): Use MEM_P rather than
3076         comparing MODE with MEM.
3077         * gimple.c (gimple_build_predict): Cast END_PREDICTORS before
3078         comparing with GF_PREDICT_TAKEN.
3079         (gimple_get_lhs): Change code to enum gimple_code.
3080         (gimple_set_lhs): Likewise.
3081         * ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE.
3082         * omp-low.c (find_omp_clause): Change kind parameter to enum
3083         omp_clause_code.
3084         * tree-flow.h (find_omp_clause): Update declaration.
3085         * regrename.c (clear_dead_regs): Change kind parameter to enum
3086         reg_note.
3087         * reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
3088         GET_MODE.
3089         * see.c (see_get_extension_data): Change return type to enum
3090         entry_type.  Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to
3091         SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF.
3092         (see_gen_normalized_extension): Change extension_code parameter to
3093         enum entry_type.
3094         (see_seek_pre_extension_expr): Change extension_code to enum
3095         entry_type.
3096         (see_merge_one_def_extension): Likewise.
3097         (see_handle_relevant_defs): Likewise.
3098         (see_handle_relevant_uses): Likewise.
3099         (see_analyze_one_def): Likewise.
3100         * tree-cfg.c (need_fake_edge_p): Compare gimple code with
3101         GIMPLE_ASM rather than ASM_EXPR.
3102         * tree-ssa-alias.c (is_escape_site): Compare gimple code with
3103         GIMPLE_RETURN rather than RETURN_EXPR.
3104         * tree-ssa-ccp.c (likely_value): Change code to enum gimple_code.
3105         (evaluate_stmt): Likewise.
3106         * tree-vect-analyze.c (vect_analyze_operations): Change relevance
3107         to enum vect_relevant.
3108         (vect_mark_stmts_to_be_vectorized): Change assertion to not
3109         compare gimple codes with tree codes.
3110
3111 2008-09-04  Paul Brook  <paul@codesourcery.com>
3112
3113         * config/arm/arm.c (arm_size_rtx_costs): Call cost function.
3114
3115 2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
3116
3117         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null
3118         pointer check lost in the recent no-unit-at-a-time patch.
3119
3120 2008-09-04  Jan Hubicka  <jh@suse.cz>
3121
3122         PR middle-end/37343
3123         * tree-switch-conversion.c (check_final_bb): Accept only IP
3124         invariants.
3125
3126 2008-09-04  Jan Hubicka  <jh@suse.cz>
3127
3128         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
3129         Break out from ...
3130         (vrp_evaluate_conditional_warnv_with_ops): ... this one.  Add
3131         using_ranges argument.
3132         (vrp_evaluate_conditional): Avoid bogus warning for type range.
3133         (vrp_visit_cond_stmt): Update call of
3134         vrp_evaluate_conditional_warnv_with_ops
3135
3136 2008-09-04  Jan Hubicka  <jh@suse.cz>
3137
3138         PR tree-optimization/37345
3139         PR tree-optimization/37358
3140         PR tree-optimization/37357
3141         * tree.c (build_function_type_skip_args): Build distinct type copy;
3142         set TYPE_CONTEXT.
3143         (build_function_decl_skip_args): Set type of new decl not orig decl;
3144         clear DECL_VINDEX for methods turned into functions.
3145
3146 2008-09-04  Nick Clifton  <nickc@redhat.com>
3147
3148         * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler check.
3149         * configure: Regenerate.
3150         * config.in: Regenerate.
3151         * config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
3152         alignment field, if it is supported.
3153
3154 2008-09-04  Kai Tietz  <kai.tietz@onevision.com>
3155
3156         * config/i386/t-mingw32 (SHLIB_LC): Change order of import
3157         libraries.
3158
3159 2008-09-03  David Edelsohn  <edelsohn@gnu.org>
3160
3161         * config/rs6000/rs6000.c (processor_target_table): Do not
3162         enable VMX for POWER6.
3163
3164 2008-09-03  Anton Blanchard  <anton@samba.org>
3165
3166         * config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not
3167         emit memory barrier before operation.
3168
3169 2008-09-03  John David Anglin  <dave.anglin@nrc.cnrc.gc.ca>
3170
3171         PR testsuite/37325
3172         * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call
3173         default_elf_asm_output_external.
3174
3175 2008-09-03  Jeff Law  <law@redhat.com>
3176
3177         * h8300.c (expand_a_shift): Avoid invalid RTL sharing.
3178
3179 2008-09-03  Richard Henderson  <rth@redhat.com>
3180
3181         * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
3182         memory barrier to below the test-and-set.
3183         (alpha_split_lock_test_and_set_12): Likewise.
3184
3185 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
3186
3187         PR rtl-opt/37243
3188
3189         * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
3190         all_allocnos.
3191
3192         * ira-color.c (print_loop_title): Use all_allocnos.
3193         (color_pass): Ditto.  Don't add border_allocnos.  Check that
3194         subloop allocno in the correspdoning bitmap all_allocnos.
3195
3196         * ira-emit.c (change_loop): Use all_allocnos.
3197
3198         * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node): Ditto.
3199         (ira_create_allocno): Set up all_allocnos bit for the created allocno.
3200         (create_cap_allocno): Remove setting mentioned_allocnos.
3201         (create_insn_allocnos): Ditto.
3202         (remove_unnecessary_allocnos): Use all_allocnos.
3203         (check_allocno_creation): Check that allocnos are in the
3204         corresponding bitmap all_allocnos.
3205
3206 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
3207
3208         PR rtl-opt/37243
3209
3210         * ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New.
3211         (process_regs_for_copy): Process subregs.  Refine check when cost
3212         is taken into account in ira-costs.c.
3213         (process_reg_shuffles): Use REG_SUBREG_P.
3214         (add_insn_allocno_copies): Ditto.  Ignore modes.
3215
3216         * ira-color.c (conflict_allocno_vec): New.
3217         (COST_HOP_DIVISOR): New macro.
3218         (update_copy_costs_1): Use it.
3219         (update_conflict_hard_regno_costs): New function.
3220         (assign_hard_reg): Use it.
3221         (ira_color): Allocate and free conflict_allocno_vec.
3222
3223 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
3224
3225         PR rtl-opt/37296
3226
3227         * ira-int.h (ira_sort_insn_chain): Remove.
3228
3229         * ira.c (basic_block_order_nums, chain_insn_order,
3230         chain_freq_compare, chain_bb_compare, ira_sort_insn_chain): Remove.
3231         (ira): Don't call ira_sort_insn_chain.
3232
3233         * reload1.c (reload): Don't call ira_sort_insn_chain.
3234
3235 2008-09-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3236
3237         PR middle-end/37293
3238         * cgraphunit.c (update_call_expr): Remove eh regions from statements
3239         which become non throw.
3240         (cgraph_function_versioning): Also clear DECL_WEAK.  Call
3241         update_call_expr after updating the flags on the decl.
3242
3243 2008-09-03  Jan Hubicka  <jh@suse.cz>
3244
3245         PR tree-optimization/37315
3246         * cgraph.c (cgraph_create_edge): Use gimple_has_body_p.
3247         * cgraphunit.c (verify_cgraph_node): drop gimple_body check.
3248         (cgraph_analyze_functions): Use node->analyzed
3249         (cgraph_mark_functions_to_output): Likewise.
3250         (cgraph_expand_function): All functions can be released after
3251         expanding.
3252         (cgraph_optimize): Use gimple_has_body_p.
3253         * ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag.
3254         (cgraph_decide_inlining_incrementally): Likewise.
3255         (inline_transform): Inline transform.
3256         * tree-inline.c (initialize_cfun): Do now shallow copy structure;
3257         copy fields needed.
3258         (inlinable_function_p): Drop gimple_body check.
3259         (expand_call_inline): Use gimple_has_body_p.
3260         * gimple.c (gimple_has_body_p): New.
3261         * gimple.h (gimple_has_body_p): Add prototype.
3262         * tree-cfg.c (execute_build_cfg): Remove gimple_body.
3263         (dump_function_to_file): Use gimple_has_body_p check.
3264
3265 2008-09-03  Jakub Jelinek  <jakub@redhat.com>
3266
3267         PR c++/37346
3268         * gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
3269         substatements.
3270         * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.
3271
3272 2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
3273
3274         From Michael Frysinger  <michael.frysinger@analog.com>
3275         * config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524,
3276         bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549.  Add 0.2
3277         for bf538.
3278
3279 2008-09-03  Hari Sandanagobalane  <hariharan@picochip.com>
3280
3281         Add picoChip port.
3282         * doc/extend.texi: Document picoChip builtin functions.
3283         * doc/invoke.texi: Document picoChip options.
3284         * doc/contrib.texi: Add picoChip contribution.
3285         * doc/md.texi: Document picoChip constraints.
3286         * config.gcc: Add picochip-*-*.
3287         * config/picochip/: Add new port.
3288
3289 2008-09-03  Richard Guenther  <rguenther@suse.de>
3290
3291         PR tree-optimization/37328
3292         * tree-sra.c (sra_build_assignment): Gimplify properly.
3293         (generate_copy_inout): Take the correct stmt as definition,
3294         remove bogus assert.
3295
3296 2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
3297
3298         * config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit
3299         attributes.
3300
3301         From Michael Frysinger  <michael.frysinger@analog.com>
3302         * config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning.
3303
3304 2008-09-03 Danny Smith  <dannysmith@usrs.sourceforge.net>
3305
3306         * gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is defined.
3307         (__gthread_setspecific): Revert 2008-08-31 change to
3308         __GTHREAD_HIDE_W32API case.  Apply it to !__GTHREAD_HIDE_W32API case.
3309
3310 2008-09-02  Aldy Hernandez  <aldyh@redhat.com>
3311
3312         * diagnostic.c (error_at): New.
3313         * toplev.h (error_at): New prototype.
3314         * c-typeck.c (build_array_ref): Call error_at instead of error.
3315         Pass location to pedwarn.
3316
3317 2008-09-02  Adam Nemet  <anemet@caviumnetworks.com>
3318
3319         * sel-sched.c (sel_hard_regno_rename_ok): Mark arguments unused.
3320
3321 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
3322
3323         * dwarf2out.c (tree_add_const_value_attribute): Only handle
3324         VAR_DECL and CONST_DECL.
3325
3326 2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
3327             Jakub Jelinek  <jakub@redhat.com>
3328
3329         * config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
3330         (setup_incoming_varargs_64): Assume cum != NULL. Set/check
3331         ix86_varargs_gpr_size and ix86_varargs_fpr_size.  Use
3332         ix86_varargs_gpr_size instead of X86_64_REGPARM_MAX.
3333         Don't set ix86_save_varrargs_registers.
3334         (ix86_setup_incoming_varargs): Assume cum != NULL.
3335         (ix86_va_start): Check ix86_varargs_gpr_size and
3336         ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
3337         cfun->va_list_fpr_size, respectively.  Subtract 8*X86_64_REGPARM_MAX
3338         from frame pointer if ix86_varargs_gpr_size == 0.
3339         (ix86_compute_frame_layout): Updated.
3340         * config/i386/i386.h (ix86_save_varrargs_registers): Removed.
3341         (ix86_varargs_gpr_size): Define.
3342         (ix86_varargs_fpr_size): Likewise.
3343         (machine_function): Remove save_varrargs_registers.
3344         Add varargs_gpr_size and varargs_fpr_size.
3345
3346 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
3347
3348         * config/alpha/alpha.c (va_list_skip_additions,
3349         alpha_stdarg_optimize_hook, alpha_gimplify_va_arg_1): Tuplify.
3350         (alpha_gimplify_va_arg): Call unshare_expr on second use of
3351         offset_field.
3352
3353         PR tree-optimization/36766
3354         * tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing
3355         for already removed basic blocks.
3356
3357         PR target/36332
3358         * real.c (real_maxval): Clear a lower bit to make real_maxval
3359         match get_max_float for IBM long double format.
3360
3361 2008-09-02  Andreas Schwab  <schwab@suse.de>
3362
3363         * configure.ac: Use m4_quote to quote the expansion of m4_do.
3364         * configure: Regenerate.
3365
3366 2008-09-02  Richard Sandiford  <rdsandiford@googlemail.com>
3367
3368         * simplify-rtx.c (simplify_binary_operation_1): Check for CONST,
3369         SYMBOL_REF and LABEL_REF when applying plus_constant, instead of
3370         checking for a non-VOID CONSTANT_P.
3371
3372 2008-09-02  Jan Hubicka  <jh@suse.cz>
3373
3374         * predict.c (pass_strip_predict_hints): Avoid bugs dump file.
3375         * expmed.c (expand_divmod): Fix test of smod_pow2_cheap and
3376         sdiv_pow2_cheap
3377
3378 2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
3379
3380         * expr.c (emit_group_store): Don't assert stack temp mode size.
3381
3382 2008-09-02  Sebastian Pop  <sebastian.pop@amd.com>
3383             Tobias Grosser  <grosser@fim.uni-passau.de>
3384             Jan Sjodin  <jan.sjodin@amd.com>
3385             Harsha Jagasia  <harsha.jagasia@amd.com>
3386             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
3387             Konrad Trifunovic  <konrad.trifunovic@inria.fr>
3388             Adrien Eliche  <aeliche@isty.uvsq.fr>
3389
3390         Merge from graphite branch.
3391         * graphite.c: New.
3392         * graphite.h: New.
3393         * tree-loop-linear.c (perfect_loop_nest_depth): Export.
3394         * doc/invoke.texi (-floop-block, -floop-interchange,
3395         -floop-strip-mine): Document new flags.
3396         * tree-into-ssa.c (gimple_vec): Moved...
3397         * tree-loop-distribution.c (rdg_component): Moved...
3398         * cfgloopmanip.c: Include tree-flow.h.
3399         (update_dominators_in_loop): New.
3400         (create_empty_if_region_on_edge): New.
3401         (create_empty_loop_on_edge): New.
3402         (loopify): Use update_dominators_in_loop.
3403         * tree-pass.h (pass_graphite_transforms): Declared.
3404         * configure: Regenerate.
3405         * tree-phinodes.c (make_phi_node): Export.
3406         (add_phi_node_to_bb): New, split from create_phi_node.
3407         * tree-chrec.c (for_each_scev_op): New.
3408         * tree-chrec.h (for_each_scev_op): Declared.
3409         * tree-ssa-loop-ivopts.c (get_phi_with_result): New.
3410         (remove_statement): Call get_phi_with_result.
3411         * config.in (HAVE_cloog): Undef.
3412         * gdbinit.in (pgg): New.
3413         * timevar.def (TV_GRAPHITE_TRANSFORMS): New.
3414         * tree-ssa-loop.c (graphite_transforms): New.
3415         (gate_graphite_transforms): New.
3416         (pass_graphite_transforms): New.
3417         * configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
3418         HAVE_cloog): Defined.
3419         * tree-vectorizer.c (rename_variables_in_bb): Export.
3420         * tree-data-ref.c (dr_may_alias_p): Export.
3421         (stmt_simple_memref_p): New.
3422         (find_data_references_in_stmt): Export.
3423         (find_data_references_in_loop): Export.
3424         (create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
3425         (create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
3426         (create_rdg_vertices): Export.
3427         (build_empty_rdg): New.
3428         (build_rdg): Call build_empty_rdg.  Free dependence_relations.
3429         * tree-data-ref.h (rdg_component): ... here.
3430         (scop_p): New.
3431         (struct data_reference): Add a field scop.
3432         (DR_SCOP): New.
3433         (find_data_references_in_loop): Declared.