OSDN Git Service

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