1 2008-10-13 Matthias Klose <doko@ubuntu.com>
3 * gcc/config/pa/linux-atomic.c: Work around missing header file
4 for hppa64-linux-gnu targets.
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>
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
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.
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.
75 2008-10-13 Richard Sandiford <rdsandiford@googlemail.com>
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.
87 2008-10-13 Nathan Froyd <froydnj@codesourcery.com>
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.
110 2008-10-13 Kai Tietz <kai.tietz@onevision.com>
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.
123 2008-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
125 * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
126 * doc/install.texi: Bump recommended MPFR to 2.3.2.
128 2008-10-12 Kenneth Zadeck <zadeck@naturalbridge.com>
131 * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
132 sure that ref has valid bb.
134 2008-10-12 Richard Henderson <rth@redhat.com>
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.
144 2008-10-12 Uros Bizjak <ubizjak@gmail.com>
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.
151 2008-10-11 Kenneth Zadeck <zadeck@naturalbridge.com>
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
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
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
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
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
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 *
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 *
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
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.
288 2008-10-11 Eric Botcazou <ebotcazou@adacore.com>
290 * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
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.
306 2008-10-11 Uros Bizjak <ubizjak@gmail.com>
307 Andi Kleen <ak@linux.intel.com>
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.
326 2008-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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
339 2008-10-11 David Edelsohn <edelsohn@gnu.org>
341 * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
342 (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
344 (divdf3): Reformat long line.
346 2008-10-11 Michael J. Eager <eager@eagercon.com>
348 * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
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
356 (floatsisf2): Remove TARGET_SINGLE_FPU condition.
357 (floatdidf2): Add TARGET_SINGLE_FPU condition.
358 * config/rs6000/rs6000.opt (-mfpu): 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.
366 2008-10-11 Jakub Jelinek <jakub@redhat.com>
369 * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
370 LO_SUM on Darwin if mode has just one unit.
372 2008-10-10 H.J. Lu <hongjiu.lu@intel.com>
375 * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
376 has been optimized out.
378 2008-10-10 Richard Sandiford <rdsandiford@googlemail.com>
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
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
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
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.
420 2008-10-10 Stepan Kasal <skasal@redhat.com>
422 * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
423 for loop strip mining and loop blocking.
425 2008-10-10 Alexandre Oliva <aoliva@redhat.com>
427 * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
428 vary types depending on debug info.
430 2008-10-10 Alexandre Oliva <aoliva@redhat.com>
432 * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
433 before ensuring it's already computed.
435 2008-10-09 Jakub Jelinek <jakub@redhat.com>
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.
448 * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
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.
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
461 (get_object_alignment): ... here. New function. Try harder to
462 determine alignment from get_inner_reference returned offset.
464 2008-10-08 Jakub Jelinek <jakub@redhat.com>
466 * graphite.c (gloog): Don't call find_unreachable_blocks
467 before delte_unreachable_blocks.
469 * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
470 goto_locus of true_edge into RTL locator.
472 2008-10-08 Uros Bizjak <ubizjak@gmail.com>
474 * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
475 (*jcc_btdi_mask_rex64): Ditto.
477 (*jcc_btsi_mask): Ditto.
478 (*jcc_btsi_1): Ditto.
479 (*jcc_btsi_mask_1): Ditto.
481 2008-10-08 Paul Brook <paul@codesourcery.com>
483 * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
484 compatible profiler (__gnu_mcount_nc).
485 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
487 2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
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.
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.
498 2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
500 * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
503 2008-10-08 Jakub Jelinek <jakub@redhat.com>
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.
512 2008-10-08 Kai Tietz <kai.tietz@onevision.com>
514 * sdbout.c (sdbout_one_type): Treat the value type
515 CONST_DECL for enumerals.
517 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
519 * config/i386/i386.md: Remove trailing white spaces.
521 2008-10-07 Kenneth Zadeck <zadeck@naturalbridge.com>
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]:
527 (struct output_info) [count]: Renamed total_created and made
529 (struct output_info) [size]: Renamed total_allocated and made
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
537 2008-10-07 Jakub Jelinek <jakub@redhat.com>
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.
546 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
548 * config/i386/i386-protos.h (ix86_schedule): New.
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.
556 * config/i386/i386.md (cpu): Map to ix86_schedule instead of
557 ix86_tune. Add none and remove i386, i486, pentium4, nocona
560 * config/i386/i386.opt: Add schedule.
562 * config/i386/ppro.md: Remove generic32.
564 2008-10-07 Simon Martin <simartin@users.sourceforge.net>
567 * expr.c (count_type_elements): Handle ERROR_MARK.
569 2008-10-07 Jakub Jelinek <jakub@redhat.com>
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
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
593 (move_block_to_fn): Adjust edge's goto_block.
595 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
598 * expmed.c (expand_mult): Properly check DImode constant in
601 2008-10-07 Jakub Jelinek <jakub@redhat.com>
604 * dwarf2out.c (common_block_die_table): New variable.
605 (common_block_die_table_hash, common_block_die_table_eq): New
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.
612 2008-10-07 Eric Botcazou <ebotcazou@adacore.com>
614 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
615 Return true for non-addressable GIMPLE operands.
617 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
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.
625 2008-10-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
627 * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
629 2008-10-06 Adam Nemet <anemet@caviumnetworks.com>
631 * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
632 (mul<mode>3_mul3): ... into this new template.
634 2008-10-06 Aldy Hernandez <aldyh@redhat.com>
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.
641 2008-10-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
643 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
644 Update calls to build_unary_op and build_indirect_ref for location
647 2008-10-06 Aldy Hernandez <aldyh@redhat.com>
650 * c-decl.c (finish_decl): Pass input_location to build_unary_op.
651 * c-typeck.c (array_to_pointer_conversion): Pass location to
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
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
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
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.
682 2008-10-06 Joshua Kinard <kumba@gentoo.org>
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,
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.
692 * config/mips/10000.md: New file.
694 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
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.
700 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
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
716 (machopic_legitimize_pic_address): Likewise.
717 (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
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
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.
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.
743 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
745 * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
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
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.
760 2008-10-06 Vladimir Makarov <vmakarov@redhat.com>
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
771 * doc/rtx.texi (clobber): Change how RA deals with clobbers.
773 2008-10-06 Danny Smith <dannysmith@users.sourceforge.net>
775 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
776 lib with -mthread switch.
778 2008-10-05 Dodji Seketeli <dodji@redhat.com>
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.
792 2008-10-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
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.
798 2000-10-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
801 * pa.c (legitimize_pic_address): Force function labels to memory in
804 2008-10-04 Anton Blanchard <anton@samba.org>
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.
811 2008-10-04 Richard Guenther <rguenther@suse.de>
813 * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
814 instead of pointer equality.
815 (vn_nary_op_eq): Likewise.
817 2008-10-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
819 * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT
821 (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
822 TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
824 2008-10-03 Danny Smith <dannysmith@users.sourceforge.net>
826 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
827 Revert previous change.
829 2008-10-03 Tom Tromey <tromey@redhat.com>
831 * stringpool.c (ggc_alloc_string): Terminate string.
833 2008-10-03 Jakub Jelinek <jakub@redhat.com>
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.
840 * gimplify.c (declare_vars): Use gimple_bind_block instead of
843 2008-10-03 Pascal Obry <obry@adacore.com>
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.
850 2008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
852 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
853 Add a null terminator to the stripped name.
855 2008-10-02 David Edelsohn <edelsohn@gnu.org>
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,
865 2008-10-02 Daniel Jacobowitz <dan@codesourcery.com>
867 * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
869 2008-10-02 Richard Guenther <rguenther@suse.de>
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.
876 2008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
879 * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
880 (REAL_LIBGCC_SPEC): New. Always include -lgcc.
882 2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
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.
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>
904 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
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
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.
945 2008-10-01 Geert Bosch <bosch@adacore.com>
947 * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
949 2008-10-01 Richard Guenther <rguenther@suse.de>
951 PR tree-optimization/37617
952 * tree-ssa-pre.c (create_expression_by_pieces): During FRE
953 do not add to the NEW_SETS.
955 2008-10-01 Richard Guenther <rguenther@suse.de>
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.
962 2008-10-01 Richard Henderson <rth@redhat.com>
965 * tree-complex.c (set_component_ssa_name): Don't optimize
966 is_gimple_min_invariant values with ssa_names in abnormal phis.
968 2008-09-30 Paolo Bonzini <bonzini@gnu.org>
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.
975 2008-09-30 Jakub Jelinek <jakub@redhat.com>
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.
983 2008-09-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
985 * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
987 2008-09-30 Richard Guenther <rguenther@suse.de>
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.
995 2008-09-30 Paolo Bonzini <bonzini@gnu.org>
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.
1003 2008-09-29 H.J. Lu <hongjiu.lu@intel.com>
1005 * config/i386/i386.opt: Add msse2avx.
1007 * config/i386/linux.h (ASM_SPEC): New. Support -msse2avx.
1008 * config/i386/linux64.h (ASM_SPEC): Likewise.
1010 * doc/invoke.texi: Document -msse2avx.
1012 2008-09-29 Eric Botcazou <ebotcazou@adacore.com>
1014 * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
1016 2008-09-29 Joseph Myers <joseph@codesourcery.com>
1018 * ifcvt.c (noce_emit_store_flag): If using condition from original
1019 jump, reverse it if if_info->cond was reversed.
1021 2008-09-29 Eric Botcazou <ebotcazou@adacore.com>
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.
1027 2008-09-29 Jeff Law <law@redhat.com>
1029 * reload1.c (alter_reg): Add missing curly braces.
1031 2008-09-29 Michael J. Eager <eager@eagercon.com>
1033 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
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,
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.
1098 2008-09-29 Tobias Grosser <grosser@fim.uni-passau.de>
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.
1125 2008-09-29 Hans-Peter Nilsson <hp@axis.com>
1127 * config/cris/cris.h (IRA_COVER_CLASSES): Define.
1129 2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
1132 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
1133 address to a register before taking the lower part.
1135 2008-09-28 Kaz Kojima <kkojima@gcc.gnu.org>
1137 * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
1140 2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
1141 Kaushal Kantawala <kaushal_kantawala@playstation.sony.com>
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.
1148 2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
1151 * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
1153 2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
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.
1159 2008-09-27 Kaz Kojima <kkojima@gcc.gnu.org>
1161 * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
1164 2008-09-26 Vladimir Makarov <vmakarov@redhat.com>
1167 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
1171 2008-09-26 Adam Nemet <anemet@caviumnetworks.com>
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.
1177 2008-09-26 Jakub Jelinek <jakub@redhat.com>
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.
1190 * opts.c (common_handle_option): Don't call print_specific_help with
1191 CL_SAVE as first argument.
1193 2008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
1194 Steve Ellcey <sje@cup.hp.com>
1196 * configure: Regenerate for new libtool.
1197 * aclocal.m4: Ditto.
1199 2008-09-26 Pat Haugen <pthaugen@us.ibm.com>
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
1205 2008-09-26 Dorit Nuzman <dorit@il.ibm.com>
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.
1215 2008-09-25 Jakub Jelinek <jakub@redhat.com>
1218 * c-common.c (handle_weakref_attribute): Ignore the attribute unless
1219 the decl is a VAR_DECL or FUNCTION_DECL.
1221 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
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.
1231 * doc/rtl.texi (clobber): Change how RA deals with clobbers.
1233 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
1236 * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
1237 (ira_compress_allocno_live_ranges): New prototype.
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.
1245 * ira-lives.c (remove_some_program_points_and_update_live_ranges,
1246 ira_compress_allocno_live_ranges): New functions.
1248 * ira-build.c (ira_flattening): Call
1249 ira_compress_allocno_live_ranges.
1252 2008-09-25 H.J. Lu <hongjiu.lu@intel.com>
1254 * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
1257 2008-09-25 Richard Sandiford <rdsandiford@googlemail.com>
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.
1264 2008-09-25 Eric Botcazou <ebotcazou@adacore.com>
1266 * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
1268 2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
1270 * matrix-reorg.c (transform_allocation_sites): Initializers
1271 added to avoid the warning.
1273 2008-09-25 Martin Jambor <mjambor@suse.cz>
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.
1281 2008-09-25 Gerald Pfeifer <gerald@pfeifer.com>
1283 * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1285 2008-09-24 Richard Henderson <rth@redhat.com>
1287 * dwarf2.h (DW_OP_GNU_encoded_addr): New.
1288 * unwind-dw2.c (execute_stack_op): Handle it.
1290 2008-09-24 David Edelsohn <edelsohn@gnu.org>
1293 2008-09-24 Michael J. Eager <eager@eagercon.com>
1295 2008-09-24 Aldy Hernandez <aldyh@redhat.com>
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
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.
1321 2008-09-24 Michael J. Eager <eager@eagercon.com>
1323 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
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,
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.
1389 2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
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.
1403 2008-08-23 Steve Ellcey <sje@cup.hp.com>
1405 * regrename.c (do_replace): Copy REG_POINTER value to new reg.
1407 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
1409 * alias.c (find_base_value): Use FIND_BASE_TERM.
1410 * doc/tm.texi (FIND_BASE_TERM): Update documentation.
1412 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
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.
1418 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
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.
1424 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
1426 * config/i386/i386.c (ix86_delegitimize_address): Wrap the
1427 constant PLUS in a CONST.
1429 2008-09-23 Kai Tietz <kai.tietz@onevision.com>
1431 * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
1432 check for sibcall support for w64.
1434 2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
1436 * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
1438 2008-09-23 Aldy Hernandez <aldyh@redhat.com>
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
1463 (c_parser_binary_expression): Same, but for the binary operator's
1465 (c_parser_omp_for_loop): Pass location to
1466 c_objc_common_truthvalue_conversion.
1468 2008-09-23 Martin Jambor <mjambor@suse.cz>
1470 * cgraph.c (cgraph_free_edge): Use sizeof(*e).
1471 (cgraph_node_remove_callees): New temporary f. Hold the next item
1473 (cgraph_node_remove_callers): Likewise.
1475 * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
1476 (ipa_node_removal_hook): Likewise.
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.
1483 2008-09-22 Vladimir Makarov <vmakarov@redhat.com>
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.
1491 2008-09-22 David Daney <ddaney@avtrex.com>
1494 * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
1495 register if TARGET_LONG_CALLS.
1497 2008-09-22 Richard Guenther <rguenther@suse.de>
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.
1506 2008-09-22 Adam Nemet <anemet@caviumnetworks.com>
1508 * config/mips/mips.h (ISA_HAS_BADDU): New macro.
1509 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
1512 2008-09-22 Richard Guenther <rguenther@suse.de>
1514 PR tree-optimization/37145
1515 * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
1516 (phi_translate_1): Constant fold references.
1518 2008-09-22 Ira Rosen <irar@il.ibm.com>
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
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.
1533 2008-09-21 Jan Hubicka <jh@suse.cz>
1535 * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
1536 (ipcp_insert_stage): Update dead_nodes bitmap.
1538 2008-09-22 Danny Smith <dannysmith@users.sourceforge.net>
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.
1545 2008-09-22 Hans-Peter Nilsson <hp@axis.com>
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.
1558 2008-09-21 Eric Botcazou <ebotcazou@adacore.com>
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
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.
1592 2008-09-21 Diego Novillo <dnovillo@google.com>
1594 * doc/gccint.texi: Include generic.texi and gimple.texi.
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
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.
1609 2008-09-21 Ira Rosen <irar@il.ibm.com>
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.
1616 2008-09-20 Adam Nemet <anemet@caviumnetworks.com>
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.
1625 2008-09-20 H.J. Lu <hongjiu.lu@intel.com>
1628 * config/i386/i386.md (*jcc_fused_1): Removed.
1629 (*jcc_fused_2): Likewise.
1630 (*jcc_fused_3): Likewise.
1631 (*jcc_fused_4): Likewise.
1633 2008-09-20 Richard Sandiford <rdsandiford@googlemail.com>
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.
1653 2008-09-19 Bob Wilson <bob.wilson@acm.org>
1655 * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
1657 2008-09-19 Ian Lance Taylor <iant@google.com>
1659 * varasm.c (narrowing_initializer_constant_valid_p): Return
1660 NULL_TREE if ENDTYPE is not an integer.
1662 2008-09-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
1665 * tree-ssa.c (execute_update_addresses_taken): Also update
1666 DECL_GIMPLE_REG_P for vector and complex types.
1668 2008-09-19 Andrew MacLeod <amacleod@redhat.com>
1669 Jan Hubicka <jh@suse.cz>
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.
1676 2008-09-18 Bob Wilson <bob.wilson@acm.org>
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
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.
1712 2008-09-18 H.J. Lu <hongjiu.lu@intel.com>
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.
1720 2008-09-18 Andrew Pinski <andrew_pinski@playstation.sony.com>
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
1728 2008-09-18 Martin Jambor <mjambor@suse.cz>
1730 * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
1732 * ipa-prop.c: Correct comments.
1733 * ipa-prop.h: Likewise.
1735 2008-09-18 Jan Hubicka <jh@suse.cz>
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):
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
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):
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
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
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.
1791 2008-09-18 Simon Baldwin <simonb@google.com>
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
1799 2008-09-18 Richard Guenther <rguenther@suse.de>
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.
1806 2008-09-18 Jakub Jelinek <jakub@redhat.com>
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
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.
1818 2008-09-18 Eric Botcazou <ebotcazou@adacore.com>
1820 * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
1821 * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
1823 2008-09-18 Andrew MacLeod <amacleod@redhat.com>
1825 * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
1826 * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
1828 2008-09-18 Andrew MacLeod <amacleod@redhat.com>
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.
1837 2008-09-18 Richard Guenther <rguenther@suse.de>
1840 * tree-cfg.c (remove_useless_stmts_1): Remove
1841 GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
1843 2008-09-18 Nick Clifton <nickc@redhat.com>
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
1856 * config/frv/frv.md: Define an exclusion set between fr550_m0
1859 2008-09-18 Richard Guenther <rguenther@suse.de>
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
1866 2008-09-18 Andreas Krebbel <krebbel1@de.ibm.com>
1868 * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
1869 Mention -march=z9-109, z9-ec and z10.
1871 2008-09-18 Uros Bizjak <ubizjak@gmail.com>
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.
1877 2008-09-18 Alexander Monakov <amonakov@ispras.ru>
1880 * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
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
1887 (add_branch_dependences): Likewise. Delete dead assignment.
1889 2008-09-17 Adam Nemet <anemet@caviumnetworks.com>
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.
1896 2008-09-17 Joseph Myers <joseph@codesourcery.com>
1898 * expr.c (emit_group_store): Do not shift before moving via a
1901 2008-09-17 Eric Botcazou <ebotcazou@adacore.com>
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.
1907 2008-09-17 Richard Guenther <rguenther@suse.de>
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
1919 (verify_gimple_phi): Deal with virtual operands.
1921 * tree.def (PREDICT_EXPR): Change to tcc_expression.
1923 2008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
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.
1930 2008-09-17 Jakub Jelinek <jakub@redhat.com>
1932 * tree.c (protected_set_expr_location): Don't unnecessarily
1933 check for error_mark_node.
1935 2008-09-17 Art Haas <ahaas@impactweather.com>
1937 * ipa-reference.c (analyze_function): Declare step only if
1938 ENABLE_CHECKING is defined.
1940 2008-09-17 Jan Hubicka <jh@suse.cz>
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.
1949 2008-09-17 Jakub Jelinek <jakub@redhat.com>
1950 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1953 * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
1956 2008-09-17 Jan Hubicka <jh@suse.cz>
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.
1976 2008-09-17 Richard Guenther <rguenther@suse.de>
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.
1985 2008-09-16 Jakub Jelinek <jakub@redhat.com>
1986 Adam Nemet <anemet@caviumnetworks.com>
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.
1994 2008-09-16 Jakub Jelinek <jakub@redhat.com>
1997 * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
1998 GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
2001 * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
2002 GIMPLE_TRY if cleanup sequence is empty.
2004 2008-09-16 Andrew Pinski <andrew_pinski@playstation.sony.com>
2007 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
2008 eliminate IV if the cost are the same.
2010 2008-09-16 Richard Guenther <rguenther@suse.de>
2013 * tree-sra.c (sra_build_assignment): Do not call the gimplifier
2016 2008-09-16 Richard Guenther <rguenther@suse.de>
2018 PR tree-optimization/37508
2019 * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
2021 2008-09-15 Kaz Kojima <kkojima@gcc.gnu.org>
2023 * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
2025 2008-09-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
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.
2034 2008-09-15 Jakub Jelinek <jakub@redhat.com>
2036 * ira-color.c (finish_cost_update): Free update_cost_queue_elems
2037 rather than update_cost_queue.
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.
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.
2047 * tree-data-ref.c (free_subscripts): Free all subscript objects.
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.
2054 * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
2057 * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
2059 2008-09-14 Andreas Schwab <schwab@suse.de>
2061 * tree-call-cdce.c (check_target_format): Accept Motorola formats.
2063 2008-09-14 Jan Hubicka <jh@suse.cz>
2065 * invoke.texi (-fconserve-stack): Document.
2066 * opts.c (decode_options): Handle conserve_stack.
2067 * common.opt (fconvserve_stack): New.
2069 2008-09-14 David Edelsohn <edelsohn@gnu.org>
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.
2075 2008-09-14 Andy Hutchinson <hutchinsonandy@aim.com>
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
2084 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
2085 forces a reload when using a base register.
2087 2008-09-14 Danny Smith <dannysmith@users.sourceforge.net>
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.
2096 2008-09-13 Jan Hubicka <jh@suse.cz>
2098 * cgraph.c: Include value-prof.h
2099 * Makefile.in (cgraph.o): Add value-prof.h dependency.
2101 2008-09-13 Jan Hubicka <jh@suse.cz>
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.
2109 2008-09-13 Jan Hubicka <jh@suse.cz>
2111 * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
2112 too many bytes on misalligned blocks.
2114 2008-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
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.
2123 2008-09-13 Richard Guenther <rguenther@suse.de>
2126 * tree-nested.c (finalize_nesting_tree_1): Generate valid
2127 gimple stores for memory rhs.
2129 2008-09-13 H.J. Lu <hongjiu.lu@intel.com>
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.
2135 2008-09-13 Jan Hubicka <jh@suse.cz>
2137 PR tree-optimization/37392
2138 * tree-inline.c (remap_gimple_stmt): Do not remap return value.
2140 2008-09-13 Martin Jambor <mjambor@suse.cz>
2141 Jan Hubicka <jh@suse.cz>
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.
2153 2008-09-13 Richard Sandiford <rdsandiford@googlemail.com>
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
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
2181 (ira_color): Remove conflict_allocno_vec handling.
2183 2008-09-12 Sebastian Pop <sebastian.pop@amd.com>
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.
2191 2008-09-12 Sebastian Pop <sebastian.pop@amd.com>
2193 * tree-scalar-evolution.c (set_instantiated_value): Set
2196 2008-09-12 Vladimir Makarov <vmakarov@redhat.com>
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.
2206 * ira-emit.c (generate_edge_moves): Fix a comment.
2208 2008-09-12 Anatoly Sokolov <aesok@post.ru>
2211 * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
2212 scratch register after 'set' pattern.
2214 2008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
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.
2220 2008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2222 * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
2223 when building for the celledp architecture.
2225 2008-09-12 Richard Guenther <rguenther@suse.de>
2227 * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
2229 2008-09-12 Eric Botcazou <ebotcazou@adacore.com>
2231 PR rtl-optimization/37424
2232 * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
2233 the regnos instead of the addresses.
2235 2008-09-11 Janis Johnson <janis187@us.ibm.com>
2237 * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
2239 2008-09-11 Richard Guenther <rguenther@suse.de>
2241 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
2242 entering the weaker equivalence recording.
2244 * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
2246 2008-09-11 Jeff Law <law@redhat.com>
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.
2252 2008-09-11 Uros Bizjak <ubizjak@gmail.com>
2254 * config/i386/i386.h: Fix whitespace issues.
2256 2008-09-11 Martin Jambor <mjambor@suse.cz>
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
2282 (ipa_count_formal_params): Made static, added parameter info,
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
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.
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.
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.
2319 2008-09-11 Richard Guenther <rguenther@suse.de>
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):
2325 (vect_update_init_of_dr): Likewise.
2326 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
2328 * fold-const.c (fold_unary): Do not generate calculations
2331 2008-09-11 Paolo Bonzini <bonzini@gnu.org>
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.
2337 * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
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
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.
2351 2008-09-11 Jan Hubicka <jh@suse.cz>
2353 * ggc-common.c (loc_array): Make static.
2354 * dce.c (rest_of_handle_ud_dce): Free worklist.
2356 2008-09-11 Jan Hubicka <jh@suse.cz>
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.
2368 2008-09-11 Jan Hubicka <jh@suse.cz>
2371 * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
2373 2008-09-11 Jan Hubicka <jh@suse.cz>
2375 * tree-ssa-pre.c (phi_translate_1): Fix memory leak
2377 2008-09-11 Jan Hubicka <jh@suse.cz>
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.
2383 2008-09-11 Jan Hubicka <jh@suse.cz>
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.
2391 2008-09-11 Jan Hubicka <jh@suse.cz>
2393 * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
2395 2008-09-11 Jan Hubicka <jh@suse.cz>
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.
2401 2008-09-11 Jan Hubicka <jh@suse.cz>
2403 * ifcvt.c (check_cond_move_block): Make regs argument pointer to
2405 (cond_move_process_if_block): Update call.
2407 2008-09-11 Jan Hubicka <jh@suse.cz>
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):
2420 2008-09-11 Ira Rosen <irar@il.ibm.com>
2422 PR tree-optimization/37474
2423 * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
2424 length of load permutation.
2426 2008-09-11 Andreas Schwab <schwab@suse.de>
2428 * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
2430 2008-09-11 Jakub Jelinek <jakub@redhat.com>
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.
2437 2008-09-11 Ira Rosen <irar@il.ibm.com>
2439 * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
2442 2008-09-10 Jakub Jelinek <jakub@redhat.com>
2445 * gimplify.c (gimplify_body): Call default_rtl_profile.
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.
2453 2008-09-10 Richard Guenther <rguenther@suse.de>
2455 * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
2457 2008-09-10 Richard Guenther <rguenther@suse.de>
2460 * tree-inline.c (insert_init_stmt): Make sure to not
2461 insert invalid gimple stores.
2463 2008-09-10 Sebastian Pop <sebastian.pop@amd.com>
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.
2472 2008-09-10 H.J. Lu <hongjiu.lu@intel.com>
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.
2481 2008-09-10 Bernd Schmidt <bernd.schmidt@analog.com>
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.
2491 2008-09-10 Jan Hubicka <jh@suse.cz>
2493 * value-prof.c (gimple_ic): Fix tuplification bug.
2494 * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
2497 2008-09-10 Jakub Jelinek <jakub@redhat.com>
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.
2508 2008-09-10 Ira Rosen <irar@il.ibm.com>
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
2515 (vect_setup_realignment): Call vect_create_data_ref_ptr with
2516 additional argument.
2517 (vectorizable_load): Likewise.
2519 2008-09-10 Jakub Jelinek <jakub@redhat.com>
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
2525 2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
2527 PR rtl-optimization/37435
2528 * caller-save.c (insert_restore, insert_save): Check the mode by
2531 2008-09-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2534 * dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for
2536 (dw2_output_indirect_constant_1): Use unstripped name in symbol
2539 2008-09-09 Sandra Loosemore <sandra@codesourcery.com>
2541 * doc/invoke.texi (ARM Options): Correct errors in discussion
2542 of -mfloat-abi, -mhard-float, and -msoft-float.
2544 2008-09-09 Jakub Jelinek <jakub@redhat.com>
2545 Jan Hubicka <jh@suse.cz>
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.
2555 2008-09-09 Jakub Jelinek <jakub@redhat.com>
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
2572 * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
2573 optimizing for size, not speed.
2575 PR rtl-optimization/37408
2576 * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
2577 if parm is promoted.
2579 2008-09-09 Sebastian Pop <sebastian.pop@amd.com>
2581 PR tree-optimization/37375
2582 * tree-scalar-evolution.c (scev_info_str): Add field
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
2589 (instantiate_scev_1, instantiate_scev): Pass a basic block above which
2590 the definitions are not instantiated.
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
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
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.
2605 * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
2607 2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
2611 * ira-build.c (ira_create_allocno): Setup frequency to 0.
2613 * ira-color.c (update_conflict_hard_regno_costs): Remove assert.
2614 Check zero freq and increase if necessary.
2616 2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
2618 * ira-conflicts.c (process_regs_for_copy): Check that the hard
2619 regno is in the right range. Add comments.
2621 2008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2623 * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
2625 * mips-tfile.c (copy_object): Cast alloca result to int *.
2626 * mips-tdump.c (print_symbol): Cast xmalloc return values to
2628 Rename class to sclass.
2629 (read_tfile): Cast read_seek return values to proper types.
2630 Cast xcalloc return value to proper type.
2632 2008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
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.
2638 2008-09-09 Jan Hubicka <jh@suse.cz>
2640 * profile.c (is_edge_inconsistent): Add debug output; ignore
2641 negative count on fake edges.
2642 (is_inconsistent): Add debug output.
2644 2008-09-09 Andrey Belevantsev <abel@ispras.ru>
2646 * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
2648 (choose_ready): When first insn is chosen from the ready list, also
2651 2008-09-09 Andrey Belevantsev <abel@ispras.ru>
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.
2657 2008-09-09 Richard Guenther <rguenther@suse.de>
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.
2677 2008-09-09 Bernd Schmidt <bernd.schmidt@analog.com>
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.
2685 2008-09-09 Richard Guenther <rguenther@suse.de>
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.
2695 2008-09-09 Aldy Hernandez <aldyh@redhat.com>
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.
2701 2008-09-09 Richard Guenther <rguenther@suse.de>
2703 PR tree-optimization/37433
2704 * tree-ssa-ccp.c (ccp_fold): Properly guard folding of
2707 2008-09-09 Richard Guenther <rguenther@suse.de>
2709 PR tree-optimization/37387
2710 * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
2711 and bits to a common type.
2713 2008-09-09 Nick Clifton <nickc@redhat.com>
2715 * config/v850/v850.md (return): Restore frame size restriction.
2717 2008-09-09 Paolo Bonzini <bonzini@gnu.org>
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.
2731 2008-08-09 Andy Hutchinson <hutchinsonandy@aim.com>
2734 * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
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.
2742 2008-09-08 Jakub Jelinek <jakub@redhat.com>
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.
2749 * predict.c (optimize_function_for_size_p): Don't segfault if
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.
2755 2008-09-08 Eric Botcazou <ebotcazou@adacore.com>
2757 * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
2760 2008-09-08 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
2762 * crx/crx.h (IRA_COVER_CLASSES): Define.
2764 2008-09-08 Jakub Jelinek <jakub@redhat.com>
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
2772 2008-09-08 Richard Guenther <rguenther@suse.de>
2774 PR tree-optimization/37421
2775 * tree-ssa-sccvn.c (visit_copy): Make sure to fully
2778 2008-09-08 Jakub Jelinek <jakub@redhat.com>
2781 * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
2783 2008-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2786 * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
2787 * pa-hpux10.h (LINK_SPEC): Likewise.
2788 * pa-hpux11.h (LINK_SPEC): Likewise.
2790 2008-09-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2792 * pa32-regs.h (IRA_COVER_CLASSES): Define.
2793 * pa64-regs.h (IRA_COVER_CLASSES): Define.
2795 2008-09-07 Helge Deller <deller@gmx.de>
2797 * pa/linux-atomic.c: New file.
2798 * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
2799 * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
2801 2008-09-07 Richard Guenther <rguenther@suse.de>
2802 Ira Rosen <irar@il.ibm.com>
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.
2808 2008-09-07 Dorit Nuzman <dorit@il.ibm.com>
2809 Ira Rosen <irar@il.ibm.com>
2811 PR tree-optimization/35642
2812 * config/rs6000/altivec.md (mulv8hi3): Implement.
2814 2008-09-06 Jeff Law <law@redhat.com>
2816 * h8300/h8300.h (IRA_COVER_CLASSES): Define.
2818 2008-09-06 Jan Hubicka <jh@suse.cz>
2820 PR tree-optimization/14703
2821 * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
2823 * passes.c (init_optimization_passes): Recompute inline parameters.
2825 2008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
2827 * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
2830 2008-09-06 Richard Sandiford <rdsandiford@goolemail.com>
2831 Peter Fuerst <post@pfrst.de>
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
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.
2862 2008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
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.
2875 2008-09-05 Vladimir Makarov <vmakarov@redhat.com>
2877 * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
2879 2008-09-05 Vladimir Makarov <vmakarov@redhat.com>
2881 * ira-color.c (ira_fast_allocation): Permit global allocno allocation.
2883 2008-09-05 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2885 Improved branch hints, safe hints, and scheduling.
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.
2911 2008-09-05 Janis Johnson <janis187@us.ibm.com>
2912 Samuel Tardieu <sam@rfc1149.net>
2914 * opts.c (decode_options): Combine nested if statements.
2917 * opts.c (decode_options): Handle more relationships among
2918 unit-at-a-time, toplevel-reorder, and section-anchors.
2920 2008-09-05 David Daney <ddaney@avtrex.com>
2922 * doc/install.texi (--enable-reduced-reflection): Document new option.
2924 2008-09-05 Bob Wilson <bob.wilson@acm.org>
2926 * config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use
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.
2939 2008-09-05 Joseph Myers <joseph@codesourcery.com>
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.
2949 2008-09-05 Paolo Bonzini <bonzini@gnu.org>
2951 * emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
2952 (gen_rtvec_v): Fix coding standards.
2954 2008-09-04 Jan Hubicka <jh@suse.cz>
2956 * i386.c (decide_alg): Be more conservative about optimizing for size.
2958 2008-09-04 Ian Lance Taylor <iant@google.com>
2960 * varasm.c (narrowing_initializer_constant_valid_p): New
2962 (initializer_constant_valid_p): Call it.
2964 2008-09-04 Jeff Law <law@redhat.com>
2966 * fold-const.c (native_encode_real): Fix computation of WORDS.
2967 (native_interpret_real): Likewise.
2969 2008-09-04 Janis Johnson <janis187@us.ibm.com>
2971 * config/rs6000/t-rs6000: Remove target gt-rs6000.h.
2973 2008-09-04 Vladimir Makarov <vmakarov@redhat.com>
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
2978 * ira-int.h (ira_debug_copy, ira_debug_copies): New.
2980 * ira-build.c (print_copy, print_copies, ira_debug_copy,
2981 ira_debug_copies): New.
2982 (ira_bulid): Call print_copies.
2984 * doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
2986 2008-09-04 Samuel Tardieu <sam@rfc1149.net>
2989 * config/rs6000/rs6000.c (optimization_options): Remove check of
2990 flag_toplevel_order.
2992 2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
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
3002 (*seq_<GPR:mode><GPR2:mode>_mips16): Rename to
3003 *seq_zero_<GPR:mode><GPR2:mode>_mip16. Don't match if
3005 (*sne_<GPR:mode><GPR2:mode>): Rename to
3006 *sne_zero_<GPR:mode><GPR2:mode>. Don't match if
3009 2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
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
3028 (*extzv_trunc<mode>_exts): New pattern.
3030 2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
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.
3040 2008-09-04 Bernd Schmidt <bernd.schmidt@analog.com>
3042 * config/bfin/bfin.c (gen_one_bundle): Don't create new nops when
3043 optimizing for size.
3045 2008-09-04 Richard Sandiford <rdsandiford@googlemail.com>
3047 * df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM
3048 regardless of epilogue_completed.
3050 2008-09-04 Vladimir Makarov <vmakarov@redhat.com>
3053 * ira-lives.c (process_bb_node_lives): Check setjmp.
3055 2008-09-04 Richard Sandiford <rdsandiford@googlemail.com>
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.
3076 2008-09-04 Ian Lance Taylor <iant@google.com>
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
3089 * tree-flow.h (find_omp_clause): Update declaration.
3090 * regrename.c (clear_dead_regs): Change kind parameter to enum
3092 * reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
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
3099 (see_seek_pre_extension_expr): Change extension_code to enum
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.
3116 2008-09-04 Paul Brook <paul@codesourcery.com>
3118 * config/arm/arm.c (arm_size_rtx_costs): Call cost function.
3120 2008-09-04 Bernd Schmidt <bernd.schmidt@analog.com>
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.
3125 2008-09-04 Jan Hubicka <jh@suse.cz>
3128 * tree-switch-conversion.c (check_final_bb): Accept only IP
3131 2008-09-04 Jan Hubicka <jh@suse.cz>
3133 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
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
3141 2008-09-04 Jan Hubicka <jh@suse.cz>
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;
3148 (build_function_decl_skip_args): Set type of new decl not orig decl;
3149 clear DECL_VINDEX for methods turned into functions.
3151 2008-09-04 Nick Clifton <nickc@redhat.com>
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.
3159 2008-09-04 Kai Tietz <kai.tietz@onevision.com>
3161 * config/i386/t-mingw32 (SHLIB_LC): Change order of import
3164 2008-09-03 David Edelsohn <edelsohn@gnu.org>
3166 * config/rs6000/rs6000.c (processor_target_table): Do not
3167 enable VMX for POWER6.
3169 2008-09-03 Anton Blanchard <anton@samba.org>
3171 * config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not
3172 emit memory barrier before operation.
3174 2008-09-03 John David Anglin <dave.anglin@nrc.cnrc.gc.ca>
3177 * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call
3178 default_elf_asm_output_external.
3180 2008-09-03 Jeff Law <law@redhat.com>
3182 * h8300.c (expand_a_shift): Avoid invalid RTL sharing.
3184 2008-09-03 Richard Henderson <rth@redhat.com>
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.
3190 2008-09-03 Vladimir Makarov <vmakarov@redhat.com>
3194 * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
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.
3201 * ira-emit.c (change_loop): Use all_allocnos.
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.
3211 2008-09-03 Vladimir Makarov <vmakarov@redhat.com>
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.
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.
3228 2008-09-03 Vladimir Makarov <vmakarov@redhat.com>
3232 * ira-int.h (ira_sort_insn_chain): Remove.
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.
3238 * reload1.c (reload): Don't call ira_sort_insn_chain.
3240 2008-09-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
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.
3248 2008-09-03 Jan Hubicka <jh@suse.cz>
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
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;
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.
3270 2008-09-03 Jakub Jelinek <jakub@redhat.com>
3273 * gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
3275 * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.
3277 2008-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
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
3284 2008-09-03 Hari Sandanagobalane <hariharan@picochip.com>
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.
3294 2008-09-03 Richard Guenther <rguenther@suse.de>
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.
3301 2008-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
3303 * config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit
3306 From Michael Frysinger <michael.frysinger@analog.com>
3307 * config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning.
3309 2008-09-03 Danny Smith <dannysmith@usrs.sourceforge.net>
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.
3315 2008-09-02 Aldy Hernandez <aldyh@redhat.com>
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.
3322 2008-09-02 Adam Nemet <anemet@caviumnetworks.com>
3324 * sel-sched.c (sel_hard_regno_rename_ok): Mark arguments unused.
3326 2008-09-02 Jakub Jelinek <jakub@redhat.com>
3328 * dwarf2out.c (tree_add_const_value_attribute): Only handle
3329 VAR_DECL and CONST_DECL.
3331 2008-09-02 H.J. Lu <hongjiu.lu@intel.com>
3332 Jakub Jelinek <jakub@redhat.com>
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.
3351 2008-09-02 Jakub Jelinek <jakub@redhat.com>
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
3358 PR tree-optimization/36766
3359 * tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing
3360 for already removed basic blocks.
3363 * real.c (real_maxval): Clear a lower bit to make real_maxval
3364 match get_max_float for IBM long double format.
3366 2008-09-02 Andreas Schwab <schwab@suse.de>
3368 * configure.ac: Use m4_quote to quote the expansion of m4_do.
3369 * configure: Regenerate.
3371 2008-09-02 Richard Sandiford <rdsandiford@googlemail.com>
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.
3377 2008-09-02 Jan Hubicka <jh@suse.cz>
3379 * predict.c (pass_strip_predict_hints): Avoid bugs dump file.
3380 * expmed.c (expand_divmod): Fix test of smod_pow2_cheap and
3383 2008-09-02 H.J. Lu <hongjiu.lu@intel.com>
3385 * expr.c (emit_group_store): Don't assert stack temp mode size.
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>
3395 Merge from graphite branch.
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