1 2008-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3 * pa.c (function_arg): Revert 2008-10-26 change.
5 2008-11-23 Helge Deller <deller@gmx.de>
7 * pa/linux-atomic.c (EBUSY): Define if not _LP64.
8 (__kernel_cmpxchg): Return -EBUSY if the kernel LWS call
9 succeeded and lws_ret is not equal to oldval.
11 2008-11-23 Kaz Kojima <kkojima@gcc.gnu.org>
13 * config/sh/sh.md (consttable_4): Call mark_symbol_refs_as_used.
15 2008-11-22 Andreas Schwab <schwab@suse.de>
17 * varasm.c (default_file_start): Suppress ASM_APP_OFF also with
20 2008-11-22 Adam Nemet <anemet@caviumnetworks.com>
22 * config/mips/mips.md (rdhwr): Rename to rdhwr_synci_step_<mode>.
23 Use constant 1 as the operand.
24 * config/mips/mips.c (mips_expand_synci_loop): Make INC Pmode.
25 Rename gen_rdhwr to gen_rdhwr_synci_step_si or
26 gen_rdhwr_synci_step_di depending on the size of Pmode.
28 2008-11-22 Uros Bizjak <ubizjak@gmail.com>
31 * config/i386/i386.md (SWI248): New mode iterator.
32 (SWI32): Remove mode iterator.
33 (popcount<mode>2): Rename from popcounthi2, popcountsi2 and
34 popcounthi2 insn patterns. Macroize pattern using SWI248 mode
35 iterator. Generate popcnt mnemonic without mode extensions
36 for Darwin x86 targets.
37 (*popcount<mode>2_cmp): Ditto.
38 (*popcountsi2_cmp_zext): Generate popcnt mnemonic without mode
39 extensions for Darwin x86 targets.
41 2008-11-22 Eric Botcazou <ebotcazou@adacore.com>
43 * config/sparc/sparc.c (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define
44 only if HAVE_AS_SPARC_UA_PCREL is defined.
46 2008-11-22 Richard Sandiford <rdsandiford@googlemail.com>
48 * ira-costs.c (find_allocno_class_costs): Work out the maximum
49 allocno_costs value of the classees with the lowest total_costs
50 value. Use this to set ALLOCNO_COVER_CLASS_COST here...
51 (setup_allocno_cover_class_and_costs): ...rather than here.
52 Use the ALLOCNO_COVER_CLASS_COST for all registers in the
55 2008-11-22 Jakub Jelinek <jakub@redhat.com>
58 * builtins.c (expand_builtin_apply_args): Emit sequence before
59 parm_birth_insn instead of after entry_of_function's first insn.
62 * function.c (assign_parm_remove_parallels): Pass
63 data->passed_type as third argument to emit_group_store.
66 * final.c (mark_symbol_refs_as_used): New function.
67 * output.h (mark_symbol_refs_as_used): New prototype.
68 * config/s390/s390.c (s390_mark_symbol_ref_as_used): Removed.
69 (s390_output_pool_entry): Use mark_symbol_refs_as_used.
70 * config/arm/arm.md (consttable_4): Likewise.
73 * doc/invoke.texi: Adjust wording of -mcmodel=medium description.
75 2008-11-21 Jakub Jelinek <jakub@redhat.com>
78 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
79 propagate x = &a into *x = b if conversion from b to a's type is
82 2008-11-21 Eric Botcazou <ebotcazou@adacore.com>
84 * caller-save.c (insert_one_insn): Take into account REG_INC notes
85 for the liveness computation of the new insn.
87 2008-11-21 DJ Delorie <dj@redhat.com>
89 * config/stormy16/stormy16.md (movqi_internal, movhi_internal):
90 Moves to/from below100 space (W) can only use r0-r7.
92 2008-11-21 Paolo Carlini <paolo.carlini@oracle.com>
95 * doc/invoke.texi (Optimization Options): Fix typo.
97 2008-11-21 H.J. Lu <hongjiu.lu@intel.com>
98 Xuepeng Guo <xuepeng.guo@intel.com>
100 * config.gcc (extra_headers): For x86 and x86-64, remove
101 gmmintrin.h, add immintrin.h and avxintrin.h.
103 * config/i386/gmmintrin.h: Renamed to ...
104 * config/i386/avxintrin.h: This. Issue an error if
105 _IMMINTRIN_H_INCLUDED is undedined.
107 * config/i386/immintrin.h: New.
109 2008-11-21 Jakub Jelinek <jakub@redhat.com>
112 * reload1.c (eliminate_regs_in_insn): For trunc_int_for_mode use
113 mode of PLUS, not mode of the eliminated register.
115 2008-11-21 Uros Bizjak <ubizjak@gmail.com>
117 * config/i386/mmx.md (mmx_nand<mode>3): Rename to mmx_andnot<mode>3.
118 * config/i386/sse.md (avx_nand<mode>3): Rename to avx_andnot<mode>3.
119 (<sse>_nand<mode>3): Rename to <sse>_andnot<mode>3.
120 (sse2_nand<mode>3): Rename to sse2_andnot<mode>3.
121 (*sse_nand<mode>3): Rename to *sse_andnot<mode>3.
122 (*avx_nand<mode>3): Rename to *avx_andnot<mode>3.
123 (*nand<mode>3): Rename to *andnot<mode>3.
124 (*nandtf3): rename to *andnottf3.
125 * config/i386/i386.c (bdesc_args) [IX86_BUILTIN_PANDN]:
126 Use CODE_FOR_mmx_andnotv2si3.
127 [IX86_BUILTIN_ANDNPS]: Use CODE_FOR_sse_andnotv4sf3.
128 [IX86_BUILTIN_ANDNPD]: Use CODE_FOR_sse2_andnotv2df3.
129 [IX86_BUILTIN_PANDN128]: Use CODE_FOR_sse2_andnotv2di3.
130 [IX86_BUILTIN_ANDNPS256]: Use CODE_FOR_avx_andnotv8sf3.
131 [IX86_BUILTIN_ANDNPD256]: Use CODE_FOR_avx_andnotv4df3.
133 2008-11-21 Uros Bizjak <ubizjak@gmail.com>
136 * config/ia64/ia64.c (ia64_expand_atomic_ope): Properly handle NAND
137 case by calculating ~(new_reg & val) instead of (~new_reg & val).
138 * config/ia64/sync.md (sync_nand<mode>): Change insn RTX
139 to (not:IMODE (and:IMODE (...))).
140 (sync_old_nand<mode>): Ditto.
141 (sync_new_nand<mode>): Ditto.
143 2008-11-20 Joseph Myers <joseph@codesourcery.com>
145 * config/arm/thumb2.md (thumb2_casesi_internal,
146 thumb2_casesi_internal_pic): Use earlyclobber for scratch operand 4.
148 2008-11-20 Andreas Krebbel <krebbel1@de.ibm.com>
150 * gcc/config/s390/s390.c (s390_expand_atomic): Adjust QI/HI atomic
151 nand to the changed 4.4 semantic.
153 2008-11-20 Jakub Jelinek <jakub@redhat.com>
156 * builtins.c (SLOW_UNALIGNED_ACCESS): Define if not defined.
157 (fold_builtin_memory_op): Handle even the case where just one
158 of src and dest is an address of a var decl component, using
159 TYPE_REF_CAN_ALIAS_ALL pointers. Remove is_gimple_min_invariant
160 and readonly_data_expr src check.
161 * tree-ssa-sccvn.c (DFS): Use clear_and_done_ssa_iter to shut
164 PR rtl-optimization/36998
165 * dwarf2out.c (stack_adjust_offset): Add cur_args_size and cur_offset
166 arguments. Handle sp = reg and (set (foo) (mem (pre_inc (reg sp)))).
167 (compute_barrier_args_size_1, dwarf2out_frame_debug_expr): Adjust
168 stack_adjust_offset callers.
169 (dwarf2out_stack_adjust): Likewise. Handle insns in annulled
171 (compute_barrier_args_size): Handle insns in annulled branches
174 2008-11-20 Uros Bizjak <ubizjak@gmail.com>
177 * config/i386/i386.c (classify_argument) [integer mode size <= 64bit]:
178 Handle cases when integer argument crosses argument register boundary.
180 2008-11-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
183 * config.gcc (i[34567]86-*-solaris2*): Don't include
184 i386/t-crtstuff here.
185 Move extra_parts, i386/t-sol2 in tmake_file to libgcc/config.host.
186 * config/i386/t-sol2: Move to libgcc/config/i386.
188 2008-11-20 Samuel Thibault <samuel.thibault@ens-lyon.org>
191 * tlink.c: Include "libiberty.h".
192 (initial_cwd): Change type into char *.
193 (tlink_init): Call getpwd instead of getcwd.
195 2008-11-19 Zdenek Dvorak <ook@ucw.cz>
197 PR rtl-optimization/32283
198 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Use type of the base
199 of the induction variable to decide whether it may wrap.
200 * tree-ssa-loop-ivopts.c (rewrite_use_compare): Emit the
201 initialization of the bound before the loop.
202 * simplify-rtx.c (simplify_binary_operation_1): Add two
203 simplifications regarding AND.
204 (simplify_plus_minus): Only fail if no simplification is possible.
205 * loop-iv.c (simple_rhs_p): Consider reg + reg and reg << cst simple.
207 2008-11-20 Jakub Jelinek <jakub@redhat.com>
210 * gimplify.c (gimplify_call_expr): Defer most of the cannot inline
211 checking until GIMPLE lowering.
212 * gimple-low.c (check_call_args): New function.
213 (lower_stmt) <case GIMPLE_CALL>: Call it.
215 2008-11-19 Adam Nemet <anemet@caviumnetworks.com>
217 * config/mips/mips.c (mips_gimplify_va_arg_expr): Use -rsize
218 with the same type as the first operand of the AND expression.
220 2008-11-19 Vladimir Makarov <vmakarov@redhat.com>
223 * ira-int.h (struct ira_loop_tree_node): New member
224 entered_from_non_parent_p.
226 * ira-color.c (print_loop_title): Print loop bbs.
228 * ira-emit.c (entered_from_non_parent_p,
229 setup_entered_from_non_parent_p): New functions.
230 (not_modified_p): Rename to store_can_be_removed_p. Check there
232 (generate_edge_moves): Use store_can_be_removed_p instead of
234 (ira_emit): Call setup_entered_from_non_parent_p.
236 * ira-build.c (copy_info_to_removed_store_destinations):
237 Accumulate CALL_FREQ, CALL_CROSSED_NUM, and
238 ALLOCNO_EXCESS_PRESSURE_POINTS_NUM.
239 (ira_flattening): Don't CHECK MEM_OPTIMIZED_DEST[_P], always
240 update all accumulated attributes.
242 2008-11-19 Vladimir Makarov <vmakarov@redhat.com>
245 * ira-int.h (ira_copy_allocno_live_range_list,
246 ira_merge_allocno_live_ranges, ira_allocno_live_ranges_intersect_p,
247 ira_finish_allocno_live_range_list): New prototypes.
248 (ira_allocno_live_ranges_intersect_p,
249 ira_pseudo_live_ranges_intersect_p): Remove.
251 * ira-conflicts.c (ira_allocno_live_ranges_intersect_p,
252 ira_pseudo_live_ranges_intersect_p): Rename to
253 allocnos_have_intersected_live_ranges_p and
254 pseudos_have_intersected_live_ranges_p. Move them from here to ...
256 * ira-color.c: ... here
257 (coalesced_allocno_conflict_p): Use
258 allocnos_have_intersected_live_ranges_p.
259 (coalesced_allocnos_living_at_program_points,
260 coalesced_allocnos_live_at_points_p,
261 set_coalesced_allocnos_live_points): Remove.
262 (slot_coalesced_allocnos_live_ranges,
263 slot_coalesced_allocno_live_ranges_intersect_p,
264 setup_slot_coalesced_allocno_live_ranges): New.
265 (coalesce_spill_slots): Use ranges of coalesced allocnos.
266 (ira_sort_regnos_for_alter_reg): Use
267 allocnos_have_intersected_live_ranges_p.
268 (ira_reuse_stack_slot): Use
269 pseudos_have_intersected_live_ranges_p.
271 * global.c (pseudo_for_reload_consideration_p): Check
272 flag_ira_share_spill_slots too.
274 * ira-build.c (copy_allocno_live_range_list): Rename to
275 ira_copy_allocno_live_range_list. Make it external.
276 (merge_ranges): Rename to ira_merge_allocno_live_ranges. Make it
278 (ira_allocno_live_ranges_intersect_p): New.
279 (ira_finish_allocno_live_range_list): New.
280 (finish_allocno): Use it.
281 (remove_unnecessary_allocnos): Use ira_merge_allocno_live_ranges.
282 (copy_info_to_removed_store_destinations): Ditto. Use
283 ira_copy_allocno_live_range_list.
284 (ira_flattening): Use ira_merge_allocno_live_ranges.
286 * ira.c (too_high_register_pressure_p): New function.
287 (ira): Switch off sharing spill slots if the pressure is too high.
289 2008-11-19 Richard Guenther <rguenther@suse.de>
291 * tree.c (build2_stat): Allow non-POINTER_PLUS_EXPRs with
292 non-sizetype offsets if their precision matches that of the pointer.
293 * expr.c (expand_expr_real_1): Always sign-extend the offset
294 operand of a POINTER_PLUS_EXPR.
296 2008-11-19 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
298 * config.gcc: Unobsolete mips-sgi-irix[56]*.
299 (mips-sgi-irix[56]*): No need to use fixproto.
301 2008-11-19 Maxim Kuvyrkov <maxim@codesourcery.com>
302 Paul Brook <paul@codesourcery.com>
304 * config/m68k/lb1sf68.asm: Add GNU-stack annotation to avoid
307 2008-11-19 Maxim Kuvyrkov <maxim@codesourcery.com>
309 * config/m68k/m68k.c (sched_attr_op_type): Handle all CONSTs.
311 2008-11-19 Razya Ladelsky <razya@il.ibm.com>
314 * tree-parloops.c (loop_parallel_p): NULL vect_dump.
315 (separate_decls_in_region): Create shared struct even when there
318 2008-11-19 Hariharan Sandanagobalane <hariharan@picochip.com>
320 * config/picochip/picochip.c (headers): Remove an unnecessary
323 2008-11-19 Andrew Stubbs <ams@codesourcery.com>
326 * config/m68k/m68k.h (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY): New defines.
327 * config/m68k/m68k.c (notice_update_cc): Set cc_status properly for
329 * config/m68k/m68k.md: Adjust all conditional branches that use the
330 carry and overflow flags so they understand CC_OVERFLOW_UNUSABLE.
332 2008-11-18 Uros Bizjak <ubizjak@gmail.com>
335 * config/mips/mips.md (move_doubleword_fpr<mode>): Check that "high"
336 is a register or zero operand in the correct mode before generating
337 mtch1 insn or a register operand in the correct mode before generating
339 (mtch1<mode>): Correct operand 1 predicate to reg_or_0_operand.
341 2008-11-18 Adam Nemet <anemet@caviumnetworks.com>
343 * config.gcc (mips*-sde-elf*): Handle mipsisa64r2*.
344 (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Add new cases to
345 mipsisa*-*-elf*. Handle mipsisa64r2*.
346 * config/mips/sde.h (LINK_SPEC): Handle -mips64r2.
347 * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
349 (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64.
350 * config/mips/t-sde (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
352 (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64. Add mips64r2/mips16.
353 Fix mips16 if mips64 or mips64r2 are multilib defaults.
354 * config/mips/t-sdemtk (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
357 2008-11-18 Jakub Jelinek <jakub@redhat.com>
360 * config/i386/i386.md (allocate_stack_worker_32,
361 allocate_stack_worker_64): Don't use match_dup between input and
363 (allocate_stack): Adjust gen_stack_worker_{32,64} caller.
364 * config/i386/i386.c (ix86_expand_prologue): Likewise.
366 2008-11-18 Kai Tietz <kai.tietz@onevision.com>
368 * config/i386/t-cygming (SHLIB_LINK): Make sure that $(SHLIB_MAP).def
369 is forced when trying to do a symbol link for it.
371 2008-11-17 Adam Nemet <anemet@caviumnetworks.com>
373 * expmed.c (extract_bit_field_1): Also use a temporary and
374 convert_extracted_bit_field when the conversion from ext_mode to
375 the target mode requires explicit truncation.
377 2008-11-17 Richard Sandiford <rdsandiford@googlemail.com>
379 * config/mips/mips.h (REG_ALLOC_ORDER): Put accumulators first.
381 * config/mips/mips.c (mips_ira_cover_classes): Don't use accumulator
382 registers when not optimizing.
384 2008-11-17 Richard Sandiford <rdsandiford@googlemail.com>
386 * config/mips/mips.md (*mul_acc_si): Remove middle alternative
387 and its associated define_split. Expose the all-d alternative
388 to the register allocator, but mark it with "?". Mark the first
389 alternative with "*?*?".
390 (*mul_sub_si): Likewise.
391 (*mul_acc_si_r3900): New pattern.
393 2008-11-17 Jakub Jelinek <jakub@redhat.com>
396 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If
397 propagating x = &a into *x = b, add a cast if not useless
398 type conversion or don't optimize if another stmt would be
401 2008-11-17 Uros Bizjak <ubizjak@gmail.com>
404 * optabs.c (expand_sync_operation): Properly handle NAND case
405 by calculating ~(t1 & val) instead of (~t1 & val).
406 * builtins.c (expand_builtin_sync_operation): Warn for changed
407 semantics in NAND builtins.
408 * c.opt (Wsync-nand): New warning option. Describe -Wsync-nand.
410 * doc/invoke.texi (Warning options): Add Wsync-nand.
411 * doc/extend.texi (Atomic Builtins) [__sync_fetch_and_nand]: Correct
412 __sync_fetch_and_nand builtin operation in the example. Add a note
413 about changed semantics in GCC 4.4.
414 [__sync_nand_and_fetch]: Correct __sync_nand_and_fetch builtin
415 operation in the example. Add a note about changed semantics in
418 2008-11-16 Jan Hubicka <jh@suse.cz>
420 * cgraph.c (cgraph_function_body_availability): Fix test of externally
423 2008-11-16 Joshua Kinard <kumba@gentoo.org>
425 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=r1[0246]000
428 2008-11-16 Richard Sandiford <rdsandiford@googlemail.com>
431 * config/mips/mips.c (mips_cfun_call_saved_reg_p)
432 (mips_cfun_might_clobber_call_saved_reg_p): New functions,
434 (mips_save_reg_p): ...here. Always consult TARGET_CALL_SAVED_GP
435 rather than call_really_used_regs when handling $gp.
437 2008-11-16 Richard Sandiford <rdsandiford@googlemail.com>
440 * config/mips/mips.c (machine_function): Update the comment
441 above global_pointer.
442 (mips_global_pointer): Use INVALID_REGNUM rather than 0 to indicate
443 that a function doesn't need a global pointer.
444 (mips_current_loadgp_style): Update accordingly.
445 (mips_restore_gp): Likewise.
446 (mips_output_cplocal): Likewise.
447 (mips_expand_prologue): Likewise.
449 2008-11-16 Eric Botcazou <ebotcazou@adacore.com>
451 * config/sparc/sparc.c (function_arg_vector_value): Remove 'base_mode'
452 parameter. Use DImode for computing the number of registers.
453 (function_arg): Adjust for above change.
454 (function_value): Likewise.
456 2008-11-15 Zdenek Dvorak <ook@ucw.cz>
458 PR tree-optimization/37950
459 * tree-flow-inline.h (memory_partition): Return NULL when aliases were
460 not computed for the current function.
462 2008-11-15 Jakub Jelinek <jakub@redhat.com>
465 * config/i386/i386.c (ix86_gimplify_va_arg): Don't share valist between
466 gpr and other COMPONENT_REFs.
468 2008-11-15 Richard Guenther <rguenther@suse.de>
470 PR tree-optimization/38051
471 * tree-ssa-alias.c (update_alias_info_1): Manually find
474 2008-11-15 Joshua Kinard <kumba@gentoo.org>
476 * doc/invoke.texi (-mfix-r10000): Document.
477 * config/mips/mips.opt (mfix-r10000): New option.
478 * config/mips/mips-protos.h (mips_output_sync_loop): Declare.
479 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Use %?.
480 (MIPS_COMPARE_AND_SWAP_12): Likewise.
481 (MIPS_SYNC_OP): Likewise.
482 (MIPS_SYNC_OP_12): Likewise.
483 (MIPS_SYNC_OLD_OP_12): Likewise.
484 (MIPS_SYNC_NEW_OP_12): Likewise.
485 (MIPS_SYNC_OLD_OP): Likewise.
486 (MIPS_SYNC_NAND): Likewise.
487 (MIPS_SYNC_OLD_NAND): Likewise.
488 (MIPS_SYNC_EXCHANGE): Likewise.
489 (MIPS_SYNC_EXCHANGE_12): Likewise.
490 (MIPS_SYNC_NEW_OP): Likewise, using %~ to fill branch-likely
492 (MIPS_SYNC_NEW_NAND): Likewise.
493 * config/mips/mips.c (mips_print_operand_punctuation): Handle '~'.
494 (mips_init_print_operand_punct): Treat '~' as a punctuation character.
495 (mips_output_sync_loop): New function.
496 (mips_override_options): Make -march=r10000 imply -mfix-r10000.
497 Make -mfix-r10000 require branch-likely instructions.
498 * config/mips/sync.md (sync_compare_and_swap<mode>): Use
499 mips_output_sync_loop.
500 (compare_and_swap_12): Likewise.
501 (sync_add<mode>): Likewise.
502 (sync_<optab>_12): Likewise.
503 (sync_old_<optab>_12): Likewise.
504 (sync_new_<optab>_12): Likewise.
505 (sync_nand_12): Likewise.
506 (sync_old_nand_12): Likewise.
507 (sync_new_nand_12): Likewise.
508 (sync_sub<mode>): Likewise.
509 (sync_old_add<mode>): Likewise.
510 (sync_old_sub<mode>): Likewise.
511 (sync_new_add<mode>): Likewise.
512 (sync_new_sub<mode>): Likewise.
513 (sync_<optab><mode>): Likewise.
514 (sync_old_<optab><mode>): Likewise.
515 (sync_new_<optab><mode>): Likewise.
516 (sync_nand<mode>): Likewise.
517 (sync_old_nand<mode>): Likewise.
518 (sync_new_nand<mode>): Likewise.
519 (sync_lock_test_and_set<mode>): Likewise.
520 (test_and_set_12): Likewise.
522 2008-11-15 Eric Botcazou <ebotcazou@adacore.com>
524 * gcc.c (cc1_options): Fix comment.
526 2008-11-15 Jakub Jelinek <jakub@redhat.com>
529 * c-typeck.c (build_unary_op): Don't call get_unwidened. Use
530 argtype instead of result_type.
532 2008-11-14 Adam Nemet <anemet@caviumnetworks.com>
534 * ira-int.h (struct ira_loop_tree_node): Improve comments for
535 subloop_next/next and subloops/childen fields.
537 2008-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
539 * config/spu/spu-elf.h (STANDARD_STARTFILE_PREFIX_2): Disable default.
540 (STANDARD_INCLUDE_DIR): Redefine to "/include".
541 (LOCAL_INCLUDE_DIR): Undefine.
542 * config/spu/t-spu-elf (NATIVE_SYSTEM_HEADER_DIR): Define.
544 2008-11-14 Vladimir Makarov <vmakarov@redhat.com>
546 PR rtl-optimization/37397
547 * ira-int.h (struct ira_allocno): New member bad_spill_p.
548 (ALLOCNO_BAD_SPILL_P): New macro.
550 * ira-color.c (push_allocnos_to_stack): Check ALLOCNO_BAD_SPILL_P.
552 * ira-build.c (ira_create_allocno): Initialize ALLOCNO_BAD_SPILL_P.
553 (create_cap_allocno, propagate_allocno_info,
554 remove_unnecessary_allocnos): Set up or update ALLOCNO_BAD_SPILL_P.
555 (update_bad_spill_attribute): New function.
556 (ira_build): Call it.
558 * ira-costs.c (record_reg_classes): Set up ALLOCNO_BAD_SPILL_P.
560 2008-11-14 Jakub Jelinek <jakub@redhat.com>
562 PR tree-optimization/38104
563 * gimplify.c (gimple_regimplify_operands): Add referenced vars
564 before calling mark_symbols_for_renaming, not after it.
566 2008-11-14 Kaz Kojima <kkojima@gcc.gnu.org>
568 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Revert last change.
569 (OVERRIDE_OPTIONS): Likewise.
571 2008-11-14 Maxim Kuvyrkov <maxim@codesourcery.com>
572 Andrew Stubbs <ams@codesourcery.com>
573 Gunnar Von Boehn <gunnar@genesi-usa.com>
576 * config/m68k/m68k.md (addsi3_5200): Add a new alternative preferring
577 the shorter LEA insn over ADD.L where possible.
579 2008-11-14 Thomas Schwinge <tschwinge@gnu.org>
581 * configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/Hurd
582 systems, which are assumend to always provide SSP-support in glibc.
583 Also consider GNU/kFreeBSD, GNU/kNetBSD systems in the `*-*-linux*'
585 * configure: Regenerate.
587 2008-11-14 Jakub Jelinek <jakub@redhat.com>
590 * function.c (gimplify_parameters): For callee copies parameters,
591 move TREE_ADDRESSABLE flag from the PARM_DECL to the local copy.
593 2008-11-13 Thomas Schwinge <tschwinge@gnu.org>
596 * config.gcc (*-*-gnu*): Move Alpha parts into the `alpha*-*-gnu*',
597 x86 parts into the `i[34567]86-*-linux*' and parts that are
598 independent of the processor architecture into the `*-*-linux*' cases.
599 (*-*-linux*): Consider `linux.opt' only for Linux-based configurations.
600 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Redefine.
601 (TARGET_OS_CPP_BUILTINS, LINK_SPEC): Don't redefine.
602 [TARGET_LIBC_PROVIDES_SSP] (TARGET_THREAD_SSP_OFFSET): Undefine.
603 * config/gnu.h (NO_IMPLICIT_EXTERN_C): Don't redefine.
604 (HURD_TARGET_OS_CPP_BUILTINS): Don't define, but instead...
605 (LINUX_TARGET_OS_CPP_BUILTINS): Redefine.
607 2008-11-13 Ruan Beihong <ruanbeihong@gmail.com>
609 * config/mips/loongson.md (<u>div<mode>3, <u>mod<mode>3): New patterns.
610 * config/mips/loongson2ef.md (ls2_imult): Handle imul3nc.
611 (ls2_idiv): Likewise idiv3.
612 (ls2_prefetch): New reservation.
613 * config/mips/mips.h (ISA_HAS_PREFETCH): Add TARGET_LOONGSON_2EF.
614 * config/mips/mips.md (type): Add imul3nc and idiv3.
615 (length): Handle idiv3.
616 (any_mod): New code_iterator.
617 (u): Handle MOD and UMOD.
618 (mul<mode>3): Generate mul<mode>3_mul3_ls2ef on Loongson targets.
619 (prefetch): Handle TARGET_LOONGSON_2EF.
621 2008-11-13 Jakub Jelinek <jakub@redhat.com>
624 * dwarf2out.c (prune_unused_types_walk_local_classes): New function.
625 (prune_unused_types_walk): Call it for non-perennial local classes.
626 Set die_mark to 2 if recursing on children. If die_mark is 1 on
627 entry, just set it to 2 and recurse on children, don't walk attributes
630 2008-11-13 Martin Michlmayr <tbm@cyrius.com>
632 * c-common.c (warn_about_parentheses): Add missing whitespace
635 2008-11-13 Paul Brook <paul@codesourcery.com>
637 * doc/invoke.texi: Document --fix-cortex-m3.
638 * config/arm/arm.c (arm_override_options): Set fix_cm3_ldrd if
639 Cortex-M3 cpu is selected.
640 (output_move_double): Avoid overlapping base register and first
641 destination register when fix_cm3_ldrd.
642 * config/arm/arm.opt: Add mfix-cortex-m3-ldrd.
644 2008-11-13 Jakub Jelinek <jakub@redhat.com>
647 * gimple.h (gimple_range_check_failed): Remove prototype.
648 * gimple.c (gimple_check_failed): Don't check GCC_VERSION
650 (gimple_range_check_failed): Removed.
652 2008-11-13 Andrew Haley <aph@redhat.com>
655 * mcf.c (CAP_INFINITY): Use HOST_WIDEST_INT maximum, not GCC specific
658 2008-11-12 Jakub Jelinek <jakub@redhat.com>
662 2007-05-07 Mike Stump <mrs@apple.com>
663 * doc/invoke.texi (Warning Options): Document that -Wempty-body
664 also checks for and while statements in C++.
666 2008-11-12 Dodji Seketeli <dodji@redhat.com>
669 * cgraph.h: New abstract_and_needed member to struct cgraph_node.
670 * cgraphunit.c (cgraph_analyze_functions): Flag abstract functions
671 - which clones are reachable - as "abstract and needed".
672 * cgraph.c (cgraph_release_function_body): If a node is
673 "abstract and needed", do not release its DECL_INITIAL() content
674 that will be needed to emit debug info.
676 2008-11-12 Steve Ellcey <sje@cup.hp.com>
679 * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Use this macro
680 to set HAVE_GETIPINFO.
681 * aclocal.m4: Include ../config/unwind_ipinfo.m4.
682 * configure: Regenerate.
683 * config.in: Regenerate.
685 2008-11-12 Jack Howarth <howarth@bromo.med.uc.edu>
688 * gcc/config.gcc: Use darwin9.h on darwin10 as well.
690 2008-11-12 Jakub Jelinek <jakub@redhat.com>
693 2008-10-21 Jakub Jelinek <jakub@redhat.com>
694 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
696 2008-11-12 Jason Merrill <jason@redhat.com>
699 * c-common.c (c_common_signed_or_unsigned_type): Remove C++
702 2008-11-12 Anatoly Sokolov <aesok@post.ru>
704 * config/avr/avr.c (avr_mcu_t): Add atmega16hvb, atmega32hvb,
705 atmega4hvd, atmega8hvd, atmega64c1, atmega64m1, atmega16u4 and
707 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
708 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
710 2008-11-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
712 * gcc/config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Remove
713 packed-stack special handling.
714 (FRAME_ADDR_RTX): Add definition.
716 2008-11-12 Jakub Jelinek <jakub@redhat.com>
719 * fold-const.c (native_encode_string): New function.
720 (native_encode_expr): Use it for STRING_CST.
722 2008-11-12 DJ Delorie <dj@redhat.com>
724 * config/m32c/cond.md (cond_to_int peephole2): Don't eliminate the
725 insns if the intermediate value will be used later.
727 2008-11-12 Andreas Schwab <schwab@suse.de>
729 * config/m68k/m68k.c (print_operand): Mask off extra extension
730 bits when writing out the representation of real values.
732 2008-11-12 Ira Rosen <irar@il.ibm.com>
734 PR tree-optimization/38079
735 * tree-vect-analyze.c (vect_analyze_data_refs): Replace dump_file
738 2008-11-12 Jakub Jelinek <jakub@redhat.com>
741 * c-pretty-print.c (pp_c_complex_expr): New function.
742 (pp_c_postfix_expression) <case COMPLEX_EXPR>: Call it.
745 * expr.c (expand_expr_addr_expr_1): If EXP needs bigger alignment
746 than INNER and INNER is a constant, forcibly align INNER as much
749 2008-11-11 Richard Sandiford <rdsandiford@googlemail.com>
751 * cse.c (fold_rtx): Remove redundant gen_rtx_CONST.
753 2008-11-11 Richard Sandiford <rdsandiford@googlemail.com>
755 PR rtl-optimization/37363
756 * simplify-rtx.c (simplify_plus_minus): Don't create
757 (const (minus ...)) expresisons.
759 2008-11-11 Eric Botcazou <ebotcazou@adacore.com>
761 * ira-lives.c (process_bb_node_lives): Restore EH_RETURN_DATA_REGNO
764 2008-11-10 Catherine Moore <clm@codesourcery.com>
766 * config.gcc (mips64vrel-*-elf*): Include the tm_file
768 * config/mips/linux.h (LINUX_DRIVER_SELF_SPECS): New.
769 (BASE_DRIVER_SELF_SPECS): Remove.
770 (DRIVER_SELF_SPECS): New definition.
771 * config/mips/elfoabi.h: (DRIVER_SELF_SPECS): Include
772 BASE_DRIVER_SELF_SPECS.
773 * config/mips/sde.h: Likewise.
774 * config/mips/iris6.h: Likewise.
775 * config/mips/vr.h: Likewise.
776 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): New.
778 2008-11-10 Vladimir Makarov <vmakarov@redhat.com>
780 PR rtl-optimizations/37948
781 * ira-int.h (struct ira_allocno_copy): New member constraint_p.
782 (ira_create_copy, ira_add_allocno_copy): New parameter.
784 * ira-conflicts.c (process_regs_for_copy): New parameter. Pass it
785 to ira_add_allocno_copy.
786 (process_reg_shuffles, add_insn_allocno_copies): Pass a new
787 parameter to process_regs_for_copy.
788 (propagate_copies): Pass a new parameter to ira_add_allocno_copy.
789 Fix typo in passing second allocno to ira_add_allocno_copy.
791 * ira-color.c (update_conflict_hard_regno_costs): Use head of
792 coalesced allocnos list.
793 (assign_hard_reg): Ditto. Check that assigned allocnos are not in
795 (add_ira_allocno_to_bucket): Rename to add_allocno_to_bucket.
796 (add_ira_allocno_to_ordered_bucket): Rename to
797 add_allocno_to_ordered_bucket.
798 (push_ira_allocno_to_stack): Rename to push_allocno_to_stack. Use
799 head of coalesced allocnos list.
800 (push_allocnos_to_stack): Remove calculation of ALLOCNO_TEMP.
801 Check that it is aready calculated.
802 (push_ira_allocno_to_spill): Rename to push_ira_allocno_to_spill.
803 (setup_allocno_left_conflicts_num): Use head of coalesced allocnos
805 (coalesce_allocnos): Do extended coalescing too.
807 * ira-emit.c (add_range_and_copies_from_move_list): Pass a new
808 parameter to ira_add_allocno_copy.
810 * ira-build.c (ira_create_copy, ira_add_allocno_copy): Add a new
812 (print_copy): Print copy origination too.
814 * ira-costs.c (scan_one_insn): Use alloc_pref for load from
817 2008-11-10 Kaz Kojima <kkojima@gcc.gnu.org>
819 PR rtl-optimization/37514
820 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set
821 flag_ira_share_spill_slots to 2 if it's already non-zero.
822 (OVERRIDE_OPTIONS): Clear flag_ira_share_spill_slots if
823 flag_ira_share_spill_slots is 2.
825 2008-11-10 Kevin Buettner <kevinb@redhat.com>
827 * config/m32c/prologue.md (prologue_enter_16): Set FB to SP - 2.
828 (prologue_enter_32): Set FB to SP - 4.
830 2008-11-10 DJ Delorie <dj@redhat.com>
832 * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add ImB
833 constraint for single-bit-clear in lower byte of HI constant, vs
834 Imb which just ignores the upper byte.
835 * config/m32c/predicates.md (m32c_1mask8_operand): Use it.
836 * config/m32c/bitops.md (andhi3_16, andhi3_24): Use it.
837 (iorhi3_16): Check for single bit set, not single bit clear.
839 2008-11-10 Janis Johnson <janis187@us.ibm.com>
841 * doc/sourcebuild.texi (Torture Tests): Fix formatting for bullets.
843 * doc/sourcebuild.texi (Torture Tests): Fix formatting in example.
845 2008-11-10 Eric Botcazou <ebotcazou@adacore.com>
847 * calls.c (store_unaligned_arguments_into_pseudos): Deal only with
848 values living in memory and use more precise alignment information.
850 2008-11-10 Jakub Jelinek <jakub@redhat.com>
853 * tree-mudflap.c (mf_build_check_statement_for): Split then_block
854 after __mf_check call if the call must end a bb.
856 2008-11-10 Ralph Loader <suckfish@ihug.co.nz>
860 * combine.c (force_to_mode): Do not process vector types.
862 * rtlanal.c (nonzero_bits1): Do not process vector types.
863 (num_sign_bit_copies1): Likewise.
865 2008-11-09 Thomas Schwinge <tschwinge@gnu.org>
867 * config/i386/gnu.h: Add copyright and licensing header.
868 * config/gnu.h: Likewise.
870 2008-11-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
872 * fwprop.c (fwprop_done): Call df_remove_problem.
874 2008-11-07 Sebastian Pop <sebastian.pop@amd.com>
877 * tree-scalar-evolution.c (instantiate_scev_1): Return
878 chrec_dont_know for VL_EXP_CLASS_P.
880 2008-11-06 Uros Bizjak <ubizjak@gmail.com>
882 * reg-stack.c (reg_to_stack): Add missing braces in memset
885 2008-11-06 Andrew Stubbs <ams@codesourcery.com>
887 * config/arm/bpabi.h (PROFILE_HOOK): New undef.
888 (NO_PROFILE_COUNTERS): New define.
890 2008-11-06 David Edelsohn <edelsohn@gnu.org>
893 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Define.
895 2008-11-06 Kazu Hirata <kazu@codesourcery.com>
898 * config/sparc/constraints.md (D): New.
899 * config/sparc/predicates.md (const_double_or_vector_operand): New.
900 * config/sparc/sparc.c (sparc_extra_constraint_check): Handle the
902 * config/sparc/sparc.md (*movdf_insn_sp32_v9, *movdf_insn_sp64):
903 Use the 'D' constraint in addition to 'F' in some alternatives.
904 (DF splitter): Generalize for V64mode.
905 * doc/md.texi (SPARC): Document the 'D' constraint.
907 2008-11-06 Uros Bizjak <ubizjak@gmail.com>
909 * reg-stack.c (reg_to_stack): Generate +QNaN using real_nan.
911 2008-11-06 Ben Elliston <bje@au.ibm.com>
913 * gcc.c: Remove ancient comment about a bug in Sun cc.
915 2008-11-05 Janis Johnson <janis187@us.ibm.com>
917 * doc/sourcebuild.texi (Torture Tests): Add ADDITIONAL_TORTURE_OPTIONS.
919 2008-11-06 Ben Elliston <bje@au.ibm.com>
921 * config/rs6000/rs6000.c (rs6000_override_options): Comment fix.
923 2008-11-06 Ben Elliston <bje@au.ibm.com>
925 * config/rs6000/rs6000.opt (mwarn-cell-microcode): Improve option
928 2008-11-05 Hans-Peter Nilsson <hp@axis.com>
931 * config/cris/cris.c (cris_order_for_addsi3): Test for !REG_P, not
934 2008-11-05 Martin Jambor <mjambor@suse.cz>
937 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't turn
938 pointer arithmetics into array_ref if the array is accessed
939 through an indirect_ref.
941 2008-11-05 Richard Guenther <rguenther@suse.de>
944 * tree-ssa.c (useless_type_conversion_p_1): Check different restrict
945 qualified pointer conversion before stripping qualifiers.
946 * gimplify.c (create_tmp_from_val): Use correctly qualified type.
947 * tree-flow.h (may_propagate_address_into_dereference): Declare.
948 * tree-ssa-ccp.c (may_propagate_address_into_dereference): New
951 * tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions,
952 properly canonicalize binary ops.
953 (forward_propagate_addr_expr_1): Use
954 may_propagate_address_into_dereference.
956 2008-11-05 Uros Bizjak <ubizjak@gmail.com>
959 * reg-stack.c (subst_stack_regs_pat) [MINUS, DIV, MULT, PLUS]:
960 Initialize uninitialized input registers with a NaN.
962 2008-11-05 Tobias Grosser <grosser@fim.uni-passau.de>
966 * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR.
968 2008-11-05 Tobias Grosser <grosser@fim.uni-passau.de>
972 * graphite.c (scopdet_basic_block_info): Fix loops with multiple
973 exits and conditions.
974 * testsuite/gcc.dg/graphite/pr37943.c: New.
976 2008-11-04 Jakub Jelinek <jakub@redhat.com>
977 Andrew Pinski <andrew_pinski@playstation.sony.com>
980 * c-common.c (warn_for_sign_compare): For complex result_type
981 use component's type.
983 2008-11-04 Jakub Jelinek <jakuB@redhat.com>
985 * print-tree.c (print_node): Use code instead of TREE_CODE (node).
987 * print-tree.c (print_node): Don't print DECL_INITIAL
991 * c-common.c (parse_optimize_options): Save and restore
992 flag_strict_aliasing around decode_options call.
994 2008-11-04 Uros Bizjak <ubizjak@gmail.com>
996 * config/i386/driver-i386.c (enum vendor_signatures): New enum.
997 (host_detect_local_cpu): Use it instead of casted strings to
998 compare vendor signatures.
1000 2008-11-03 Mikael Pettersson <mikpe@it.uu.se>
1003 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Only add libgcc_s.a
1004 or libgcc_eh.a to spec if ENABLE_SHARED_LIBGCC.
1006 2008-11-03 Catherine Moore <clm@codesourcery.com>
1008 * config/mips.c (mips_conditional_register_usage): Handle the
1009 DSP control register.
1010 * doc/extend.texi: Document the DSP control register.
1012 2008-11-03 Steve Ellcey <sje@cup.hp.com>
1013 Jakub Jelinek <jakub@redhat.com>
1015 * omp-low.c (expand_omp_for_generic): If iter_type has different
1016 precision than type and type is a pointer type, cast n1 and n2
1017 first to an integer type with the same precision as pointers
1018 and only afterwards to iter_type.
1020 2008-11-03 Richard Sandiford <rdsandiford@googlemail.com>
1022 * config/arm/arm.md (UNSPEC_PIC_BASE): Update documentation.
1023 (UNSPEC_GOTSYM_OFF): New unspec.
1024 (pic_add_dot_plus_four): Simplify the UNSPEC_PIC_BASE operands.
1025 (pic_add_dot_plus_eight): Likewise.
1026 (tls_load_dot_plus_eight): Likewise. Update peephole2.
1027 * config/arm/thumb2.md (pic_load_dot_plus_four): Simplify the
1028 UNSPEC_PIC_BASE operands.
1029 * config/arm/arm.c (arm_load_pic_register): Use UNSPEC_GOTSYM_OFF.
1030 (arm_output_addr_const_extra): Handle it.
1032 2008-11-03 Eric Botcazou <ebotcazou@adacore.com>
1034 * config/i386/i386.c (classify_argument) <ARRAY_TYPE>: Promote partial
1035 integer class to full integer class if the offset is not word-aligned.
1037 2008-11-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
1040 * loop-doloop.c (doloop_modify): Add from_mode argument that says what
1042 (doloop_optimize): Update call to doloop_modify.
1044 2008-11-03 Eric Botcazou <ebotcazou@adacore.com>
1046 * tree-sra.c (bitfield_overlaps_p): Fix oversight.
1048 2008-11-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1051 * configure.ac (gcc_cv_ld_ro_rw_mix): Move before
1052 gcc_cv_as_cfi_directive.
1053 (gcc_cv_as_cfi_directive) [*-*-solaris*]: Check if linker supports
1054 merging read-only and read-write sections or assembler emits
1055 read-write .eh_frame sections.
1056 * configure: Regenerate.
1058 2008-11-03 Nathan Froyd <froydnj@codesourcery.com>
1061 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
1063 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
1065 (rs6000_emit_prologue): Invert logic.
1066 * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
1067 (reg:P 11) instead of match_operand.
1068 (*save_fpregs_<mode>): Likewise.
1069 (*restore_gpregs_<mode>): Likewise.
1070 (*return_and_restore_gpregs_<mode>): Likewise.
1071 (*return_and_restore_fpregs_<mode>): Likewise.
1072 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
1073 (reg:P 11) insted of match_operand.
1074 (*restore_gpregs_spe): Likewise.
1075 (*return_and_restore_gpregs_spe): Likewise.
1077 2008-11-03 Harsha Jagasia <harsha.jagasia@amd.com>
1079 PR tree-optimization/37684
1080 * gcc.dg/graphite/pr37684.c: New.
1081 * graphite.c (exclude_component_ref): New.
1082 (is_simple_operand): Call exclude_component_ref.
1084 2008-11-03 Sebastian Pop <sebastian.pop@amd.com>
1086 PR tree-optimization/36908
1087 * testsuite/gcc.dg/tree-ssa/pr36908.c: New.
1088 * tree-loop-distribution.c (number_of_rw_in_rdg): New.
1089 (number_of_rw_in_partition): New.
1090 (partition_contains_all_rw): New.
1091 (ldist_gen): Do not distribute when one of the partitions
1092 contains all the memory operations.
1094 2008-11-03 Sebastian Pop <sebastian.pop@amd.com>
1096 * cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and
1097 EDGE_IRREDUCIBLE_LOOP.
1099 2008-11-03 Bernd Schmidt <bernd.schmidt@analog.com>
1101 * config/bfin/bfin.c (bfin_optimize_loop): Properly handle case
1102 where we have one entry point in the loop which isn't the head.
1104 2008-11-03 Richard Guenther <rguenther@suse.de>
1107 * tree-data-ref.c (split_constant_offset_1): Fix tuplification.
1109 2008-11-03 Jakub Jelinek <jakub@redhat.com>
1112 * passes.c (execute_one_pass): Don't look at cfun->curr_properties
1113 for ipa and simple ipa passes.
1115 2008-11-02 Richard Guenther <rguenther@suse.de>
1117 PR tree-optimization/37542
1118 * tree-ssa-pre.c (fully_constant_expression): Handle more cases.
1119 * tree-ssa-sccvn.c (vn_get_expr_for): Fix typo.
1120 (vn_nary_op_lookup_stmt): Adjust for unary reference trees.
1121 (vn_nary_op_insert_stmt): Likewise.
1122 (visit_use): Likewise.
1124 2008-11-02 Anatoly Sokolov <aesok@post.ru>
1126 * config/avr/avr.md (UNSPEC_SWAP): Remove constants.
1128 (rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8,
1129 rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns.
1130 (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4,
1131 ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5,
1132 lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6
1133 peephole2's): Replace unspec with rotate.
1134 * config/avr/avr.c (avr_rtx_costs): Add ROTATE.
1136 2008-11-02 Richard Guenther <rguenther@suse.de>
1138 PR tree-optimization/37991
1139 * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
1140 * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
1141 (set_ssa_val_to): Print if the value changed.
1142 (simplify_binary_expression): Strip useless conversions.
1144 2008-11-01 Hans-Peter Nilsson <hp@axis.com>
1147 * config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI
1150 2008-11-01 Richard Guenther <rguenther@suse.de>
1153 * builtins.c (fold_builtin_strspn): Return a size_t.
1154 (fold_builtin_strcspn): Likewise.
1156 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
1158 * config/rs6000/rs6000.c (rs6000_file_start): Output gnu
1159 attribute for struct return convention.
1161 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
1163 * config/rs6000/crtsavres.asm: Really, really delete.
1165 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
1167 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
1169 (rs6000_emit_prologue): Invert logic.
1170 * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
1171 (reg:P 11) instead of match_operand.
1172 (*save_fpregs_<mode>): Likewise.
1173 (*restore_gpregs_<mode>): Likewise.
1174 (*return_and_restore_gpregs_<mode>): Likewise.
1175 (*return_and_restore_fpregs_<mode>): Likewise.
1176 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
1177 (reg:P 11) insted of match_operand.
1178 (*restore_gpregs_spe): Likewise.
1179 (*return_and_restore_gpregs_spe): Likewise.
1181 2008-10-28 Luis Machado <luisgpm@br.ibm.com>
1183 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
1184 list of word switches that take args.
1186 2008-10-30 Jakub Jelinek <jakub@redhat.com>
1188 * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
1189 (s390_output_pool_entry): Call it through for_each_rtx.
1192 * expr.c (store_constructor): For vectors, if target is a MEM, use
1193 target's MEM_ALIAS_SET instead of elttype alias set.
1195 2008-10-29 Kaz Kojima <kkojima@gcc.gnu.org>
1198 * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has
1201 2008-10-29 David Edelsohn <edelsohn@gnu.org>
1204 * config/rs6000/predicates.md (word_offset_memref_operand):
1205 Restructure code and look inside auto-inc/dec addresses.
1207 2008-10-29 Steve Ellcey <sje@cup.hp.com>
1210 * libgcov.c ( __gcov_indirect_call_profiler): Check
1211 TARGET_VTABLE_USES_DESCRIPTORS.
1213 2008-10-29 Stefan Schulze Frielinghaus <xxschulz@de.ibm.com>
1215 * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define.
1216 (INITIAL_FRAME_POINTER_OFFSET): Remove.
1217 * config/spu/spu.c (spu_initial_elimination_offset): Calculate new
1218 offset if eliminating soft frame pointer.
1219 * config/spu/spu.md (stack_protect_set, stack_protect_test)
1220 (stack_protect_test_si): Add initial machine description
1221 for Stack Smashing Protector
1223 2008-10-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1226 * c-common.c (min_precision): Move to...
1227 * tree.c (tree_int_cst_min_precision): ... to here. Renamed.
1228 * tree.h (tree_int_cst_min_precision): Declare.
1229 * c-common.h (min_precision): Delete declaration.
1230 * fold-const.c (tree_binary_nonnegative_warnv_p): Handle
1231 multiplication of non-negative integer constants.
1232 * c-decl.c (check_bitfield_type_and_width): Rename min_precision to
1233 tree_int_cst_min_precision.
1234 (finish_enum): Likewise.
1236 2008-10-29 Joseph Myers <joseph@codesourcery.com>
1239 * convert.c (convert_to_real): Do not optimize conversions of
1240 binary arithmetic operations between binary and decimal
1241 floating-point types. Consider mode of target type in determining
1242 decimal type for arithmetic. Unless
1243 flag_unsafe_math_optimizations, do not optimize binary conversions
1244 where this may change rounding behavior.
1245 * real.c (real_can_shorten_arithmetic): New.
1246 * real.h (real_can_shorten_arithmetic): Declare.
1248 2008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
1250 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
1251 ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
1252 * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
1254 (must_save_p): For some workarounds, interrupts need to clobber a
1256 (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
1257 and LC1 for WA_05000257.
1258 (expand_interrupt_handler_prologue): Add dummy read of CHIPID for
1259 WA_05000283 and WA_05000315.
1260 * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
1261 (movbi): Add alternative to set CC to 1; improve code for setting
1263 (dummy_load): New pattern.
1265 2008-10-29 Jakub Jelinek <jakub@redhat.com>
1268 * expmed.c (extract_bit_field_1): If int_mode_for_mode returns
1269 BLKmode for non-memory, convert using a wider MODE_INT mode
1273 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
1274 that haven't been removed yet.
1276 2008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
1278 * config/bfin/bfin.c (struct machine_function): New member
1279 has_loopreg_clobber.
1280 (bfin_expand_movmem): Set it when generating memcpy insns.
1281 (n_regs_saved_by_prologue, expand_prologue_reg_save,
1282 expand_epilogue_reg_restore): If we have hardware loops,
1283 memcpy insns (indicated by has_loopreg_clobber) or function
1284 calls, we need to save the loop registers.
1286 2008-10-28 H.J. Lu <hongjiu.lu@intel.com>
1288 * config/i386/i386.c (core2_cost): Fix typos in comments.
1290 2008-10-28 Jakub Jelinek <jakub@redhat.com>
1293 * combine.c (make_compound_operation): Don't call make_extraction with
1294 non-positive length.
1295 (simplify_shift_const_1): Canonicalize count even if complement_p.
1297 2008-10-28 Joseph Myers <joseph@codesourcery.com>
1299 * convert.c (strip_float_extensions): Do not remove or introduce
1300 conversions between binary and decimal floating-point types.
1302 2008-10-28 Jakub Jelinek <jakub@redhat.com>
1305 * fold-const.c (distribute_bit_expr): Convert common, left and
1306 right arguments to type.
1308 2008-10-28 Nick Clifton <nickc@redhat.com>
1310 * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
1311 * config/mn10300/mn10300.c (fp_regs_to_save): Test the
1312 call_really_used_regs array rather than the call_used_regs array.
1313 (mn10300_get_live_callee_saved_regs, expand_prologue,
1314 expand_epilogue, output_tst): Likewise.
1316 2008-10-27 Jakub Jelinek <jakub@redhat.com>
1319 * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
1320 (df_get_entry_block_def_set): Neither here.
1321 (df_get_regular_block_artificial_uses): Add EH_USES registers.
1323 PR tree-optimization/37879
1324 * predict.c (tree_estimate_probability): Check if last_stmt is
1325 non-NULL before dereferencing it.
1327 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
1329 * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
1330 (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
1331 (ira_fast_allocation): Remove the prototype.
1333 * ira-color.c (update_copy_costs, allocno_cost_compare_func,
1334 assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
1335 (color_pass): Modify the updated costs.
1336 (ira_color): Rename to color. Make it static.
1337 (ira_fast_allocation): Rename to fast_allocation. Make it static.
1338 (ira_color): New function.
1340 * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
1343 * ira-lives.c (last_call_num, allocno_saved_at_call): New
1345 (set_allocno_live, clear_allocno_live, mark_ref_live,
1346 mark_ref_dead): Invalidate corresponding element of
1347 allocno_saved_at_call.
1348 (process_bb_node_lives): Increment last_call_num. Setup
1349 allocno_saved_at_call. Don't increase ALLOCNO_CALL_FREQ if the
1350 allocno was already saved.
1351 (ira_create_allocno_live_ranges): Initiate last_call_num and
1352 allocno_saved_at_call.
1354 * ira-build.c (ira_create_allocno): Initiate
1355 ALLOCNO_UPDATED_COVER_CLASS_COST.
1356 (create_cap_allocno, propagate_allocno_info,
1357 remove_unnecessary_allocnos): Remove setting updated costs.
1358 (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
1360 * ira.c (ira): Don't call ira_fast_allocation.
1362 * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
1365 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
1368 * ira-conflicts.c (process_regs_for_copy): Remove class subset check.
1370 * ira-int.h (ira_hard_regno_cover_class): New.
1372 * ira-lives.c (mark_reg_live, mark_reg_dead,
1373 process_bb_node_lives): Use ira_hard_regno_cover_class.
1375 * ira.c (reg_class ira_hard_regno_cover_class): New global variable.
1376 (setup_hard_regno_cover_class): New function.
1377 (ira_init): Call setup_hard_regno_cover_class.
1379 * ira-costs.c (cost_class_nums): Add comment.
1380 (find_allocno_class_costs): Initiate cost_class_nums.
1381 (setup_allocno_cover_class_and_costs): Check cost_class_nums.
1383 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
1386 * ira-build.c (copy_live_ranges_to_removed_store_destinations):
1387 Rename to copy_info_to_removed_store_destinations. Propagate
1388 conflict hard regs and register stack attribute.
1390 2008-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1393 * pa.c (function_arg_padding): Pad complex and vector types
1394 upward in 64-bit runtime.
1395 (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
1397 2008-10-26 Matthias Klose <doko@ubuntu.com>
1399 * doc/install.texi: Document requirements on antlr.
1401 2008-10-25 Richard Sandiford <rdsandiford@googlemail.com>
1403 * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
1406 2008-10-24 Michael Meissner <meissner@linux.vnet.ibm.com>
1409 * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
1410 is defined, use it to modify the constant offset.
1412 * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
1414 * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
1415 and short arguments to the correct location as mandated by the ABI.
1417 2008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
1419 PR rtl-optimization/37769
1420 * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
1422 2008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
1424 * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
1425 unwind-dw2-Os-4-200.o.
1427 2008-10-24 Joseph Myers <joseph@codesourcery.com>
1429 * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
1430 (convert_for_assignment): Remove ic_argpass_nonproto cases.
1432 2008-10-24 Jakub Jelinek <jakub@redhat.com>
1434 PR tree-optimization/36038
1435 * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
1436 add sizetype IV with initial value zero instead of pointer type.
1438 2008-10-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
1441 * value-prof.c (gimple_stringop_fixed_value): Use parentheses
1442 around bit operation.
1443 * profile.c (is_edge_inconsistent): Likewise.
1444 * fold-const.c (truth_value_p): Move from here...
1445 * tree.h (truth_value_p): ... to here.
1446 * c-tree.h (c_expr): Update description of original_code.
1447 * c-typeck.c (parser_build_unary_op): Set original_code.
1448 (parser_build_binary_op): Update call to warn_about_parentheses.
1449 * c-common.c (warn_about_parentheses): Take two additional
1450 arguments of the operands. Use a switch. Quote operators
1451 appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
1452 Add warning about !x | y and !x & y.
1453 * c-common.h (warn_about_parentheses): Update declaration.
1455 2008-10-24 Jakub Jelinek <jakub@redhat.com>
1457 * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
1458 check_p_tool, check_p_vars, check_p_subno, check_p_comma,
1459 check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
1461 (check-subtargets, check-%-subtargets, check-parallel-%): New targets.
1462 (check-%): For test targets listed in lang_checks_parallelized
1463 if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
1464 run the testing in multiple make goals, possibly parallel, and
1465 afterwards run dg-extract-results.sh to merge the sum and log files.
1467 2008-10-24 Richard Sandiford <rdsandiford@googlemail.com>
1469 * config/mips/mips.c (mips_canonicalize_move_class): New function.
1470 (mips_move_to_gpr_cost): Likewise.
1471 (mips_move_from_gpr_cost): Likewise.
1472 (mips_register_move_cost): Make more fine-grained.
1474 2008-10-23 Tobias Grosser <grosser@fim.uni-passau.de>
1476 * graphite.c (graphite_apply_transformations): Check for
1477 -fgraphite-identity.
1478 * toplev.c (process_options): Add graphite_identity.
1479 * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
1481 2008-10-23 Bernd Schmidt <bernd.schmidt@analog.com>
1483 * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
1484 mulhisihl and mulhisihh builtins.
1486 From Jie Zhang <jie.zhang@analog.com>
1487 * config/bfin/bfin.md (composev2hi): Put operands into vector
1490 2008-10-22 Chao-ying Fu <fu@mips.com>
1492 * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
1494 2008-10-22 Bernd Schmidt <bernd.schmidt@analog.com>
1496 From Mike Frysinger <michael.frysinger@analog.com>
1497 * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
1498 BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
1499 * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
1500 and bf518. Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
1501 Add 0.6 for bf533, bf532, and bf531. Add 0.5 for bf538 and bf539.
1502 Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
1503 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
1504 for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
1505 for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518. Define
1506 __ADSPBF51x__ for all of them.
1507 * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
1508 -mcpu bf512, bf514, bf516, and bf518.
1509 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
1510 bf512-none, bf514-none, bf516-none, and bf518-none.
1511 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
1512 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
1513 * doc/invoke.texi (Blackfin Options): Document that
1514 -mcpu now accepts bf512, bf514, bf516, and bf518.
1516 2008-10-22 Jakub Jelinek <jakub@redhat.com>
1519 * fold-const.c (build_range_type): For 1 .. signed_max
1520 range call build_nonstandard_inter_type if signed_type_for
1521 returned a type with bigger precision.
1523 2008-10-22 Richard Guenther <rguenther@suse.de>
1525 * tree.def (COMPLEX_TYPE): Constrain element type.
1526 * tree.c (build_complex_type): Assert that.
1527 * tree-ssa-structalias.c (could_have_pointers): Complex types
1528 cannot have pointers.
1530 2008-10-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
1533 * c-typeck.c (convert_for_assignment): Do not give declaration's
1534 location for builtins. Spell out which type was expected and which
1537 2008-10-22 Nick Clifton <nickc@redhat.com>
1539 * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define. Do not allow
1540 the fdpic register to be a target when running in fdpic mode.
1542 2008-10-22 Rafael Espindola <espindola@google.com>
1544 * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
1545 newly created statements.
1547 2008-10-22 Kaz Kojima <kkojima@gcc.gnu.org>
1550 * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
1551 * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
1552 * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
1554 2008-10-22 Jakub Jelinek <jakub@redhat.com>
1557 * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
1558 Adjust -mcmodel=medium description for 2005-07-31 changes.
1560 2008-10-22 Jan Hubicka <jh@suse.cz>
1561 Jakub Jelinek <jakub@redhat.com>
1564 * doc/invoke.texi: Remove references to obsoleted -d dumps.
1566 2008-10-21 Richard Henderson <rth@redhat.com>
1569 * emit-rtl.c (get_spill_slot_decl): Export.
1570 * emit-rtl.h (get_spill_slot_decl): Declare.
1571 * var-tracking.c (vt_add_function_parameters): Relax assertion
1572 on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
1574 2008-10-21 Bob Wilson <bob.wilson@acm.org>
1576 * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
1577 REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
1580 2008-10-21 Adam Nemet <anemet@caviumnetworks.com>
1583 * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
1584 processed by get_maxval_strlen.
1586 2008-10-21 David Edelsohn <edelsohn@gnu.org>
1589 * tree.c (get_file_function_name): Copy first_global_object_name.
1590 Centralize call to clean_symbol_name.
1592 2008-10-21 Sandra Loosemore <sandra@codesourcery.com>
1594 * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
1595 * config/svr4.h (SVR4_ASM_SPEC): New.
1596 (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
1597 * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
1599 * doc/invoke.texi (Option Summary): Add -T to linker options.
1600 (Link Options): Document -T.
1602 2008-10-21 Jakub Jelinek <jakub@redhat.com>
1604 * tree-inline.c (tree_inlinable_function_p): Remove tuples
1607 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
1610 * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
1612 2008-10-20 Daniel Berlin <dberlin@dberlin.org>
1614 * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
1617 2008-10-20 Tobias Schlüter <tobi@gcc.gnu.org>
1619 * doc/install.texi: Fix typos in previous patch.
1621 2008-10-19 Tobias Schlüter <tobi@gcc.gnu.org>
1623 * doc/install.texi: Document in-tree building of gcc and mpfr.
1625 2008-10-19 Richard Guenther <rguenther@suse.de>
1627 * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
1629 2008-10-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
1632 * c-decl.c (finish_enum): Convert non-integer enumerators to enum type.
1633 (build_enumerator): Convert enumerators that fit in integer to
1636 2008-10-18 Uros Bizjak <ubizjak@gmail.com>
1638 * config/i386/i386.md (unnamed peephole2): Do not force memory
1639 operands of arith or logical instructions into registers for
1640 non-TARGET_READ_MODIFY targets.
1642 (ffs_cmove): Change operand 0 predicate to register_operand.
1643 Change operand 1 predicate to nonimmediate_operand.
1645 (*ffs_no_cmove): Change operand 0 predicate to register_operand.
1647 2008-10-18 Richard Guenther <rguenther@suse.de>
1649 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
1650 VIEW_CONVERT_EXPR case against invalid gimple.
1652 2008-10-17 Andreas Krebbel <krebbel1@de.ibm.com>
1654 * c-parser.c (c_parser_binary_expression): Silence the
1655 uninitialized variable warning emitted for binary_loc.
1657 2008-10-16 Daniel Berlin <dberlin@dberlin.org>
1659 * tree-ssa-pre.c (phi_translate_set): Add constants to phi
1662 2008-10-16 Joseph Myers <joseph@codesourcery.com>
1665 * c-typeck.c (build_unary_op): Use omit_one_operand for
1666 IMAGPART_EXPR of real argument.
1668 2008-10-16 Jakub Jelinek <jakub@redhat.com>
1670 PR tree-optimization/37664
1671 * fold-const.c (fold_binary): When optimizing comparison with
1672 highest or lowest type's value, don't consider TREE_OVERFLOW.
1674 2008-10-16 David Edelsohn <edelsohn@gnu.org>
1677 * Makefile.in (coverage.o): Depend on $(TM_P_H).
1678 * coverage.c: Include tm_p.h.
1679 * config/rs6000/x-aix (jc1): Override LDFLAGS.
1680 * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
1681 dollar signs from PREFIX.
1682 * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
1683 instead of manual strip_name_encoding.
1685 2008-10-16 Richard Guenther <rguenther@suse.de>
1688 * tree-ssa.c (useless_type_conversion_p_1): Do not treat
1689 volatile qualified functions or methods as relevant.
1691 2008-10-16 Jakub Jelinek <jakub@redhat.com>
1693 PR tree-optimization/37525
1694 * tree.c (int_fits_type_p): Rewrite using double_int. Zero extend
1695 sizetype unsigned constants, both in the case of C and bounds.
1697 2008-10-15 Jan Hubicka <jh@suse.cz>
1699 * ira-emit.c (change_regs): Return false when replacing reg by itself.
1701 2008-10-14 Vladimir Makarov <vmakarov@redhat.com>
1704 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
1705 HARD_REGNO_CALL_PART_CLOBBERED.
1707 2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
1710 * ira-lives.c (mark_early_clobbers): Remove.
1711 (make_pseudo_conflict, check_and_make_def_use_conflicts,
1712 check_and_make_def_conflicts,
1713 make_early_clobber_and_input_conflicts,
1714 mark_hard_reg_early_clobbers): New functions.
1715 (process_bb_node_lives): Call
1716 make_early_clobber_and_input_conflicts and
1717 mark_hard_reg_early_clobbers. Make hard register inputs live again.
1719 * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
1720 early clobbers of pseudo-registers.
1722 2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
1725 * ira-build.c (ira_flattening): Recalculate
1726 ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
1727 from the scratch instead of the propagation.
1729 2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
1731 * doc/rtl.texi (const_double): Remove the "addr" operand.
1732 Describe CONST_DOUBLE_* macros under const_double rather
1734 (const_fixed): Fix the operand description.
1735 (const): Add an @findex directive.
1736 (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
1737 after the constant rtl table.
1738 (fix): Combine floating-point and fixed-point descriptions.
1740 * sched-deps.c (sched_analyze_2): Remove reference to
1743 2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
1745 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
1747 * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
1748 for UNSPEC_GOTSYM_OFFs.
1749 * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
1750 (add_GOT_to_pic_reg): Use it.
1751 * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
1753 2008-10-15 Jan Sjodin <jan.sjodin@amd.com>
1754 Harsha Jagasia <harsha.jagasia@amd.com>
1756 PR tree-optimization/37485
1757 * graphite.c (gmp_cst_to_tree): Moved.
1758 (iv_stack_entry_is_constant): New.
1759 (iv_stack_entry_is_iv): New.
1760 (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
1761 (loop_iv_stack_insert_constant): New.
1762 (loop_iv_stack_pop): Use new datatpype.
1763 (loop_iv_stack_get_iv): Same.
1764 (loop_iv_stack_get_iv_from_name): Same.
1765 (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
1766 (loop_iv_stack_patch_for_consts): New.
1767 (loop_iv_stack_remove_constants): New.
1768 (graphite_create_new_loop): Use loop_iv_stack_push_iv.
1769 (translate_clast): Call loop_iv_stack_patch_for_consts and
1770 loop_iv_stack_remove_constants.
1771 (gloog): Use new datatype. Redirect construction edge to end
1772 block to avoid accidental deletion.
1773 * graphite.h (enum iv_stack_entry_kind): New. Tag for data in
1775 (union iv_stack_entry_data): New. Data in iv stack entry.
1776 (struct iv_stack_entry): New. Datatype for iv stack entries.
1778 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
1780 * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
1781 * graphite.c (free_scop): Same.
1782 (build_scops): Same.
1783 (free_scattering): New.
1784 (build_cloog_prog): Call free_scattering.
1785 (patch_phis_for_virtual_defs): Fix memleak.
1786 (graphite_trans_bb_strip_mine): Same.
1787 (limit_scops): Same.
1789 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
1790 Harsha Jagasia <harsha.jagasia@amd.com>
1792 PR tree-optimization/37828
1793 * graphite.c (graphite_trans_loop_block): Do not loop block
1794 single nested loops.
1796 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
1798 PR tree-optimization/37686
1799 * tree-loop-linear.c (linear_transform_loops): Build a
1800 loop nest vector. Pass it to lambda_compute_access_matrices.
1801 * tree-data-ref.h (struct access_matrix): Store the loop nest
1802 relative to which it encodes the information.
1803 (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
1804 (am_vector_index_for_loop): Reimplemented: iterate over the
1805 loop nest for finding the loop index in the access matrix.
1806 (lambda_compute_access_matrices): Update declaration.
1807 * lambda-code.c (build_access_matrix): Pass the loop nest and
1809 (lambda_compute_access_matrices): Same.
1811 2008-10-15 Andreas Krebbel <krebbel1@de.ibm.com>
1813 * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
1814 * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
1815 TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
1816 already implies hard float. Also fix several insn condition
1817 with TARGET_DFP which shall require TARGET_HARD_DFP instead.
1819 2008-10-15 David Edelsohn <edelsohn@gnu.org>
1822 Based on patches by Laurent Vivier.
1823 * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
1824 * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
1825 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
1826 dollar sign to underscore.
1827 (ASM_OUTPUT_EXTERNAL): Same.
1828 (ASM_OUTPUT_LABELREF): New.
1829 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
1831 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
1832 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
1833 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
1834 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
1836 2008-10-15 Jakub Jelinek <jakub@redhat.com>
1838 PR tree-optimization/36881
1839 * tree-switch-conversion.c (check_final_bb): For flag_pic, check
1840 that each value doesn't need runtime relocations, for !flag_pic
1841 check that each value is just a valid initializer constant.
1843 2008-10-14 Richard Sandiford <rdsandiford@googlemail.com>
1845 * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
1846 LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
1847 COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
1848 Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
1850 (REG_CLASS_NAMES): Update accordingly.
1851 (REG_CLASS_CONTENTS): Likewise. Use the class name in the comments,
1852 rather than an unpredictable descriptive string.
1853 * config/mips/mips.c (mips_register_move_cost): Remove comment.
1854 (mips_register_move_cost): Check for specific COP*_REGS classes,
1855 instead of ALL_COP_AND_GR_REGS.
1856 (mips_ira_cover_classes): New function.
1857 (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
1858 (TARGET_IRA_COVER_CLASSES): Define.
1860 2008-10-14 Douglas Gregor <doug.gregor@gmail.com>
1863 * tree.c (build_type_attribute_qual_variant): Hash on the
1864 unqualified type, and don't overwrite an existing
1865 (type_hash_eq): Make the TYPE_NAME of the types significant, to
1866 allow distinguishing between wchar_t and its underlying type. This
1867 also means that we'll retain a little more typedef information.
1869 2008-10-14 Andrey Belevantsev <abel@ispras.ru>
1870 Dmitry Melnik <dm@ispras.ru>
1871 Dmitry Zhurikhin <zhur@ispras.ru>
1872 Alexander Monakov <amonakov@ispras.ru>
1873 Maxim Kuvyrkov <maxim@codesourcery.com>
1875 * target.h (struct gcc_target): Update prototypes of needs_block_p
1877 * haifa-sched.c (create_check_block_twin): Update calls to the above.
1878 * sel-sched.c (create_speculation_check): Likewise.
1879 * doc/tm.texi: Provide documentation for new target hooks.
1881 * config/ia64/ia64.c: Include sel-sched.h. Rewrite speculation hooks.
1882 (ia64_gen_spec_insn): Removed.
1883 (get_spec_check_gen_function, insn_can_be_in_speculative_p,
1884 ia64_gen_spec_check): New static functions.
1885 (ia64_alloc_sched_context, ia64_init_sched_context,
1886 ia64_set_sched_context, ia64_clear_sched_context,
1887 ia64_free_sched_context, ia64_get_insn_spec_ds,
1888 ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
1889 (ia64_needs_block_p): Change prototype.
1890 (ia64_gen_check): Rename to ia64_gen_spec_check.
1891 (ia64_adjust_cost): Rename to ia64_adjust_cost_2. Add new parameter
1892 into declaration, add special memory dependencies handling.
1893 (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
1894 TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
1895 TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
1896 TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
1897 Define new target hooks.
1898 (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
1899 (ia64_optimization_options): Turn on selective scheduling with -O3,
1900 disable -fauto-inc-dec. Set mflag_sched_control_spec to true by
1901 default with selective scheduling.
1902 (ia64_override_options): Initialize align_loops and align_functions
1903 to 32 and 64, respectively. Set global selective scheduling flags
1904 according to target-dependent flags.
1905 (rtx_needs_barrier): Support UNSPEC_LDS_A.
1906 (group_barrier_needed): Use new mstop-bit-before-check flag.
1908 (dfa_state_size): Make global.
1909 (spec_check_no, max_uid): Remove.
1910 (mem_ops_in_group, current_cycle): New variables.
1911 (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
1912 Initialize new variables.
1913 (is_load_p, record_memory_reference): New functions.
1914 (ia64_dfa_sched_reorder): Lower priority of loads when limit is
1916 (ia64_variable_issue): Change use of current_sched_info to
1917 sched_deps_info. Update comment. Note if a load or a store is issued.
1918 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
1919 advance if maximal number of loads or stores was issued on current
1921 (scheduled_good_insn): New static helper function.
1922 (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
1923 a group barrier is needed. Fix vertical spacing. Guard the code
1924 doing state transition with last_scheduled_insn check.
1925 Mark that a stop bit should be before current insn if there was a
1926 cycle advance. Update current_cycle and mem_ops_in_group.
1927 (ia64_h_i_d_extended): Change use of current_sched_info to
1928 sched_deps_info. Reallocate stops_p by larger chunks.
1929 (struct _ia64_sched_context): New structure.
1930 (ia64_sched_context_t): New typedef.
1931 (ia64_alloc_sched_context, ia64_init_sched_context,
1932 ia64_set_sched_context, ia64_clear_sched_context,
1933 ia64_free_sched_context): New static functions.
1934 (gen_func_t): New typedef.
1935 (get_spec_load_gen_function): New function.
1936 (SPEC_GEN_EXTEND_OFFSET): Declare.
1937 (ia64_set_sched_flags): Check common_sched_info instead of *flags.
1938 (get_mode_no_for_insn): Change the condition that prevents use of
1939 special hardware registers so it can now handle pseudos.
1940 (get_spec_unspec_code): New function.
1941 (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
1942 ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
1943 (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
1944 during selective scheduling.
1945 (ia64_speculate_insn): Use ds_get_speculation_types when
1946 determining whether we need to change the pattern.
1947 (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
1948 (ia64_spec_check_src_p): Support new speculation/check codes.
1949 (struct bundle_state): New field.
1950 (issue_nops_and_insn): Initialize it.
1951 (insert_bundle_state): Minimize mid-bundle stop bits.
1952 (important_for_bundling_p): New function.
1953 (get_next_important_insn): Use important_for_bundling_p.
1954 (bundling): When shifting TImode from unimportant insns, ignore
1955 also group barriers. Assert that best state is found before
1956 the backward bundling pass. Print number of mid-bundle stop bits.
1957 Minimize mid-bundle stop bits. Check correct calculation of
1958 mid-bundle stop bits.
1959 (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
1960 (final_emit_insn_group_barriers): Emit stop bits before insns starting
1962 (sel2_run): New variable.
1963 (ia64_reorg): When flag_selective_scheduling2 is set, run the
1964 selective scheduling pass instead of schedule_ebbs.
1966 * config/ia64/ia64.md (speculable1, speculable2): New attributes.
1967 (UNSPEC_LDS_A): New UNSPEC.
1968 (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
1969 movti_internal, movsf_internal, movdf_internal,
1970 movxf_internal): Make visible. Add speculable* attributes.
1971 (output_c_nc): New mode attribute.
1972 (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
1973 mov<mode>_nc, zero_extend<mode>di2_nc,
1974 advanced_load_check_nc_<mode>): New insns.
1975 (zero_extend*): Add speculable* attributes.
1977 * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
1978 (msched-stop-bits-after-every-cycle): Likewise.
1979 (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
1981 (msched-spec-verbose): Remove.
1982 (msched-prefer-non-data-spec-insns,
1983 msched-prefer-non-control-spec-insns,
1984 msched-count-spec-in-critical-path,
1985 msel-sched-dont-check-control-spec): Use Target Report Var
1986 instead of Common Report Var.
1988 * config/ia64/itanium2.md: Remove incorrect bypass.
1990 * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
1992 2008-10-14 Jakub Jelinek <jakub@redhat.com>
1995 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
1996 and -fhelp=separate.
1998 2008-10-14 Ben Elliston <bje@au.ibm.com>
2000 * config/rs6000/rs6000.md (cell_micro): Fix formatting.
2002 2008-10-13 Joseph Myers <joseph@codesourcery.com>
2004 * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
2007 2008-10-13 Matthias Klose <doko@ubuntu.com>
2009 * config/pa/linux-atomic.c: Work around missing header file
2010 for hppa64-linux-gnu targets.
2012 2008-10-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
2013 Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
2014 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2015 Grace Cao <grace_cao@playstation.sony.com>
2017 * doc/invoke.texi (-mgen-cell-microcode): Document.
2018 (-mwarn-cell-microcode): Document.
2019 * cfglayout.c (locator_location): Export.
2020 * rtl.h (locator_location): Define prototype.
2021 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
2023 * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
2024 * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
2025 (mwarn-cell-microcode): New option.
2026 * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
2027 (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
2028 cell and not already set.
2029 Turn off string instructions if not generating cell microcode.
2030 (rs6000_final_prescan_insn): New function that warns about microcoded
2032 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
2033 * config/rs6000/rs6000.md
2034 Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
2035 the instruction would have been microcoded on the Cell. Set
2036 cell_micro to always on unnamed patterns for the string instructions.
2037 (cell_micro): Update definition, remove load/store conditional
2039 (sign_extend:DI): Define new pattern for non microcoded version.
2040 (sign_extend:SI): Likewise.
2041 (compare (div:P)): Set cell_micro to not.
2042 (andsi3): Define as an expand.
2043 (andsi3_mc): New pattern.
2044 (andsi3_nomc): New pattern.
2045 (andsi3_internal0_nomc): New pattern.
2046 (andsi3_internal2): Rename to ...
2047 (andsi3_internal2_mc): this and enable iff generating microcode.
2048 (andsi3_internal3): Rename to ...
2049 (andsi3_internal3_mc): this and enable iff generating microcode.
2050 (andsi3_internal4): Enable iif generating microcode.
2051 (andsi3_internal5): Rename to ..
2052 (andsi3_internal5_mc): this and enable iff generating microcode.
2053 (andsi3_internal5_nomc): New pattern.
2054 (extzvdi_internal1): Enable iff generating microcode.
2055 (extzvdi_internal2): Likewise.
2056 (rotlsi3_internal7): Set cell_micro to always if non immediate form.
2057 (anddi3): Change to expand.
2058 (anddi3_mc): Rename from anddi3.
2059 (anddi3_no_mc): New pattern.
2060 (anddi3_internal2): Rename to ..
2061 (anddi3_internal2_mc): this and enable iff generating microcode.
2062 (anddi3_internal2_nomc): New pattern.
2063 (anddi3_internal3): Rename to ..
2064 (anddi3_internal3_mc): this and enable iff generating microcode.
2065 (anddi3_internal3_nomc): New pattern.
2066 (movti_string): Set cell_micro to always if TARGET_STRING.
2067 (stmsi8): Set cell_micro to always.
2073 (stmsi8_power): Likewise.
2074 (stmsi7_power): Likewise.
2075 (stmsi6_power): Likewise.
2076 (stmsi5_power): Likewise.
2077 (stmsi4_power): Likewise.
2078 (stmsi3_power): Likewise.
2079 (movsi_update2): Enable iff generating microcode.
2080 (movhi_update3): Likewise.
2081 (lmw): Set cell_micro to always.
2083 2008-10-13 Richard Sandiford <rdsandiford@googlemail.com>
2085 * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
2086 * config/s390/s390.c (machine_function): Remove
2087 decomposed_literal_pool_addresses_ok_p.
2088 (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
2089 the difference of two labels.
2090 (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
2091 (s390_pool_offset): New function.
2092 (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
2093 (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
2095 2008-10-13 Nathan Froyd <froydnj@codesourcery.com>
2097 * doc/install.texi (powerpc-*-*): Require binutils 2.15.
2098 (powerpc*-*-linux-gnu*): Describe.
2099 * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
2100 * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
2101 config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
2102 config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
2103 config/rs6000/e500crtres32gpr.asm,
2104 config/rs6000/e500crtres64gpr.asm,
2105 config/rs6000/e500crtres64gprctr.asm,
2106 config/rs6000/e500crtrest32gpr.asm,
2107 config/rs6000/e500crtrest64gpr.asm,
2108 config/rs6000/e500crtresx32gpr.asm,
2109 config/rs6000/e500crtresx64gpr.asm,
2110 config/rs6000/e500crtsav32gpr.asm,
2111 config/rs6000/e500crtsav64gpr.asm,
2112 config/rs6000/e500crtsav64gprctr.asm,
2113 config/rs6000/e500crtsavg32gpr.asm,
2114 config/rs6000/e500crtsavg64gpr.asm,
2115 config/rs6000/e500crtsavg64gprctr.asm: Use it.
2116 * config/rs6000/crtsavres.asm: Really remove.
2118 2008-10-13 Kai Tietz <kai.tietz@onevision.com>
2121 * c-format.c (convert_format_name_to_system_name): Use
2122 TARGET_OVERRIDES_FORMAT_INIT.
2123 * config.gcc (extra_options): Add for mingw targets mingw.opt.
2124 * config/i386/mingw.opt: New.
2125 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
2126 * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
2127 (ms_printf_length_specs): Removed const specifier.
2128 * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
2129 * doc/invoke.texi (Wno-pedantic-ms-format): New.
2131 2008-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2133 * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
2134 * doc/install.texi: Bump recommended MPFR to 2.3.2.
2136 2008-10-12 Kenneth Zadeck <zadeck@naturalbridge.com>
2139 * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
2140 sure that ref has valid bb.
2142 2008-10-12 Richard Henderson <rth@redhat.com>
2145 * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
2146 * alias.c (value_addr_p, stack_addr_p): Remove.
2147 (nonoverlapping_memrefs_p): Remove IRA special case.
2148 * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
2149 * emit-rtl.h (set_mem_attrs_for_spill): Declare.
2150 * reload1.c (alter_reg): Use it.
2152 2008-10-12 Uros Bizjak <ubizjak@gmail.com>
2154 * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
2155 of registers instead of eax, ebx, ecx and edx. Use for loop
2156 and check register for non-zero value before the call
2157 to decode_caches_intel.
2159 2008-10-11 Kenneth Zadeck <zadeck@naturalbridge.com>
2161 PR rtl-optimization/37448
2162 * df.h: (df_ref_class): New enum.
2163 (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
2164 (struct df_ref): Replaced with union df_ref_d.
2165 (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
2166 New members of df_ref_d union.
2167 (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
2168 DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
2169 DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
2170 DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
2171 DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
2172 DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
2173 (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
2174 (df_scan_bb_info, df_bb_regno_first_def_find,
2175 df_bb_regno_last_def_find, df_find_def, df_find_use,
2176 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
2177 debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
2178 df_ref_create, df_ref_remove, df_compute_accessed_bytes,
2179 df_get_artificial_defs, df_get_artificial_uses, union_defs)
2180 Replaced struct df_ref * with df_ref.
2181 * df-scan.c (df_collection_rec, df_null_ref_rec,
2182 df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
2183 df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
2184 df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
2185 df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
2186 df_reorganize_refs_by_reg_by_reg,
2187 df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
2188 df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
2189 df_sort_and_compress_refs, df_install_ref, df_install_refs,
2190 df_ref_record, df_get_conditional_uses, df_get_call_refs,
2191 df_bb_refs_record, df_exit_block_uses_collect,
2192 df_record_exit_block_uses, df_reg_chain_mark,
2193 df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
2194 df_ref * with df_ref.
2195 (df_ref_record, df_uses_record, df_ref_create_structure): Added
2196 df_ref_class parameter.
2197 (df_scan_problem_data): Added new pools for different types of refs.
2198 (df_scan_free_internal, df_scan_alloc, df_free_ref,
2199 df_ref_create_structure): Processed new ref pools.
2200 (df_scan_start_dump): Added counts of refs and insns.
2201 (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
2202 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
2203 df_entry_block_defs_collect, df_exit_block_uses_collect): Added
2204 code to pass df_ref_class down to ref creation functions.
2205 (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
2206 df_reg_chain_mark): Use macros to hide references to df_refs.
2207 (df_ref_chain_change_bb): Removed.
2208 (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
2209 (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
2210 Enhanced to understand df_ref union structure.
2211 * fwprop.c (local_ref_killed_between_p, use_killed_between,
2212 all_uses_available_at, update_df, try_fwprop_subst,
2213 forward_propagate_subreg, forward_propagate_and_simplify,
2214 forward_propagate_into, fwprop, fwprop_addr): Replaced struct
2215 df_ref * with df_ref.
2216 (use_killed_between, all_uses_available_at): Use macros to hide
2217 references to df_refs.
2218 * regstat.c (regstat_bb_compute_ri,
2219 regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
2221 * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
2222 see_handle_relevant_refs, see_analyze_one_def,
2223 see_update_relevancy, see_propagate_extensions_to_uses): Replaced
2224 struct df_ref * with df_ref.
2225 * ra-conflict.c (record_one_conflict, clear_reg_in_live,
2226 global_conflicts): Replaced struct df_ref * with df_ref.
2227 * ddg.c (create_ddg_dep_from_intra_loop_link,
2228 add_cross_iteration_register_deps, build_inter_loop_deps):
2229 Replaced struct df_ref * with df_ref.
2230 (create_ddg_dep_from_intra_loop_link,
2231 add_cross_iteration_register_deps): Use macros to hide references
2233 * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
2234 df_ref * with df_ref.
2235 * df-core.c (df_bb_regno_first_def_find,
2236 df_bb_regno_last_def_find, df_find_def, df_find_use,
2237 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
2238 debug_df_ref): Replaced struct df_ref * with df_ref.
2239 (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
2240 * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
2242 * web.c (union_defs, entry_register, replace_ref, web_main):
2243 Replaced struct df_ref * with df_ref.
2244 (union_defs, replace_ref): Use macros to hide references to df_refs.
2245 * global.c (compute_regs_asm_clobbered, build_insn_chain):
2246 Replaced struct df_ref * with df_ref.
2247 * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
2248 * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets, ):
2249 Replaced struct df_ref * with df_ref.
2250 * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
2251 mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
2253 * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
2254 * df-byte-scan.c (df_compute_accessed_bytes_extract,
2255 df_compute_accessed_bytes_strict_low_part,
2256 df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
2257 Replaced struct df_ref * with df_ref.
2258 (df_compute_accessed_bytes): Use macros to hide references to df_refs.
2259 * init-regs.c (initialize_uninitialized_regs): Replaced struct
2260 df_ref * with df_ref.
2261 * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
2262 check_dependency, check_dependencies, record_uses): Replaced
2263 struct df_ref * with df_ref.
2264 (invariant_for_use, check_dependency): Use macros to hide
2265 references to df_refs.
2266 * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
2267 get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
2268 iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
2269 (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
2270 references to df_refs.
2271 * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
2273 * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
2274 * df-problems.c (df_rd_bb_local_compute_process_def,
2275 df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
2276 df_chain_unlink_1, df_chain_unlink, df_chain_copy,
2277 df_chain_remove_problem, df_chain_create_bb_process_use,
2278 df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
2279 df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
2280 df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
2281 df_byte_lr_simulate_artificial_refs_at_top,
2282 df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
2283 df_note_bb_compute, df_note_add_problem, df_simulate_defs,
2284 df_simulate_uses, df_simulate_artificial_refs_at_end,
2285 df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
2287 (df_chain_dump): Use macros to hide references to df_refs.
2288 * config/mips/mips.c (r10k_simplify_address): Replaced struct
2289 df_ref * with df_ref.
2290 * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
2291 mark_artificial_uses, mark_reg_dependencies,
2292 byte_dce_process_block): Replaced struct df_ref * with df_ref.
2294 2008-10-11 Eric Botcazou <ebotcazou@adacore.com>
2296 * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
2298 (array_ref_element_size): Likewise.
2299 (array_ref_low_bound): Likewise.
2300 (array_ref_up_bound): Likewise.
2301 * expr.c (contains_packed_reference): Likewise.
2302 (array_ref_element_size): Likewise.
2303 (array_ref_low_bound): Likewise.
2304 (array_ref_up_bound): Likewise.
2305 * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
2306 with ARRAY_RANGE_REF.
2307 (idx_find_step): Likewise.
2308 (idx_record_use): Likewise.
2309 (strip_offset_1): Likewise.
2310 (idx_remove_ssa_names): Likewise.
2312 2008-10-11 Uros Bizjak <ubizjak@gmail.com>
2313 Andi Kleen <ak@linux.intel.com>
2315 * config/i386/cpuid.h (__cpuid_count): New defines.
2316 * config/i386/driver-i386.c (struct cache_desc): New structure.
2317 (describe_cache): Use struct cache_desc to pass cache descriptions.
2318 (detect_l2_cache): Ditto. Rename from decode_l2_cache.
2319 (detect_caches_amd): Use struct cache_desc to describe caches.
2320 (decode_caches_intel): Use struct cache_desc to pass cache
2321 descriptions. Update descriptions to match latest (rev -032,
2322 December 2007) CPUID documentation. Do not check valid bit here.
2323 Check for Xeon MP value 0x49 problems.
2324 (detect_caches_cpuid2): New function, split from detect_caches_intel.
2325 Check valid bit before calling decode_caches_intel. Detect number
2326 of times to repeat CPUID instruction.
2327 (detect_caches_cpuid4): New function.
2328 (detect_caches_intel): Depending on max_level, call
2329 detect_caches_cpuid2 or detect_caches_cpuid4. Call detect_l2_cache
2330 only when other methods fail to provide valid L2 cache description.
2332 2008-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2335 * pa.md (call, call_value): Generate an rtx for register r4 and pass
2336 it to PIC call patterns.
2337 (call_symref_pic): Revise pattern to expose PIC register save. Remove
2338 code generation and attributes from pattern. Change peephole2 to
2339 split for noreturn case. Revise split pattern for non noreturn case.
2340 (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
2341 call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
2342 * pa.c (attr_length_call): Simplify extraction of call rtx. Add some
2345 2008-10-11 David Edelsohn <edelsohn@gnu.org>
2347 * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
2348 (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
2350 (divdf3): Reformat long line.
2352 2008-10-11 Michael J. Eager <eager@eagercon.com>
2354 * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
2356 (rs6000_handle_option): Process -mfpu options.
2357 * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
2358 (enum fpu_type_t): New.
2359 * config/rs6000/rs6000.md (attr fp_type): New. Include xfpu.md.
2360 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
2362 (floatsisf2): Remove TARGET_SINGLE_FPU condition.
2363 (floatdidf2): Add TARGET_SINGLE_FPU condition.
2364 * config/rs6000/rs6000.opt (-mfpu): New.
2365 (-mxilinx-fpu): New.
2366 * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
2367 * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
2368 * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
2369 * gcc/config.gcc: powerpc-xilinx-eabi target: New.
2370 * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
2372 2008-10-11 Jakub Jelinek <jakub@redhat.com>
2375 * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
2376 LO_SUM on Darwin if mode has just one unit.
2378 2008-10-10 H.J. Lu <hongjiu.lu@intel.com>
2381 * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
2382 has been optimized out.
2384 2008-10-10 Richard Sandiford <rdsandiford@googlemail.com>
2386 * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
2387 instead of PIC_DIRECT_ADDR_P.
2388 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
2389 (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
2390 (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
2391 (PIC_OFFSET_P): Rename to...
2392 (PCREL_SYMOFF_P): ...this.
2393 (PIC_DIRECT_ADDR_P): Delete.
2394 (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
2396 (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
2397 single argument. Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
2398 UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
2399 * config/sh/sh.c (print_operand): Remove CONST handling.
2400 (unspec_caller_rtx_p): Rewrite to use split_const and check
2401 the operands of UNSPEC bases.
2402 (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
2403 with (unspec [A B] UNSPEC_SYMOFF).
2404 (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
2405 UNSPEC_PCREL_SYMOFF.
2406 (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
2407 * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
2408 (UNSPEC_EXTRACT_U16): Likewise.
2409 (UNSPEC_SYMOFF): Likewise.
2410 (UNSPEC_PCREL_SYMOFF): Likewise.
2411 (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
2413 (movsi_const_16bit): Likewise.
2414 (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
2415 (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
2416 with (unspec [A B] UNSPEC_PCREL_SYMOFF).
2417 (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
2418 with (unspec [A B] UNSPEC_SYMOFF).
2419 (symPLT_label2reg): Replace (minus A (minus B pc)) with
2420 (unspec [A B] PCREL_UNSPEC_SYMOFF).
2421 * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
2422 (Csu): Likewise UNSPEC_EXTRACT_U16.
2423 (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
2424 (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
2426 2008-10-10 Stepan Kasal <skasal@redhat.com>
2428 * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
2429 for loop strip mining and loop blocking.
2431 2008-10-10 Alexandre Oliva <aoliva@redhat.com>
2433 * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
2434 vary types depending on debug info.
2436 2008-10-10 Alexandre Oliva <aoliva@redhat.com>
2438 * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
2439 before ensuring it's already computed.
2441 2008-10-09 Jakub Jelinek <jakub@redhat.com>
2443 * rtl.h (locator_eq): New decl.
2444 * cfglayout.c (locator_scope): New function.
2445 (insn_scope): Use it.
2446 (locator_eq): New function.
2447 (fixup_reorder_chain): Search for last insn in src bb
2448 that has locator set or first insn in dest bb. Use
2449 locator_eq instead of == to compare locators.
2450 * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
2451 * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
2452 == to compare locators.
2454 * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
2456 * gimple-low.c (lower_function_body, lower_gimple_return,
2457 lower_builtin_setjmp): Set gimple_block on the newly created stmts.
2458 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
2459 goto_block on edges if goto_locus is known.
2462 * tree.h (get_object_alignment): Declare.
2463 * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
2464 get_object_alignment if needed.
2465 * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand
2467 (get_object_alignment): ... here. New function. Try harder to
2468 determine alignment from get_inner_reference returned offset.
2470 2008-10-08 Jakub Jelinek <jakub@redhat.com>
2472 * graphite.c (gloog): Don't call find_unreachable_blocks
2473 before delte_unreachable_blocks.
2475 * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
2476 goto_locus of true_edge into RTL locator.
2478 2008-10-08 Uros Bizjak <ubizjak@gmail.com>
2480 * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
2481 (*jcc_btdi_mask_rex64): Ditto.
2483 (*jcc_btsi_mask): Ditto.
2484 (*jcc_btsi_1): Ditto.
2485 (*jcc_btsi_mask_1): Ditto.
2487 2008-10-08 Paul Brook <paul@codesourcery.com>
2489 * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
2490 compatible profiler (__gnu_mcount_nc).
2491 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
2493 2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
2495 * config/i386/i386.c (initial_ix86_tune_features): Add
2496 X86_TUNE_USE_VECTOR_FP_CONVERTS.
2497 * config/i386/i386.h (ix86_tune_indices): Likewise.
2498 (TARGET_USE_VECTOR_FP_CONVERTS): New.
2500 * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
2501 instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
2502 for FP to FP splitters.
2504 2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
2506 * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
2509 2008-10-08 Jakub Jelinek <jakub@redhat.com>
2513 PR rtl-optimization/37341
2514 * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
2515 to ORIG_BB, pass through ORIG_BB recursively.
2516 (cse_condition_code_reg): Adjust caller.
2518 2008-10-08 Kai Tietz <kai.tietz@onevision.com>
2520 * sdbout.c (sdbout_one_type): Treat the value type
2521 CONST_DECL for enumerals.
2523 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
2525 * config/i386/i386.md: Remove trailing white spaces.
2527 2008-10-07 Kenneth Zadeck <zadeck@naturalbridge.com>
2529 PR rtl-optimization/37448
2530 * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
2531 (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
2533 (struct output_info) [count]: Renamed total_created and made
2535 (struct output_info) [size]: Renamed total_allocated and made
2537 (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
2538 Properly keep track of desc->size.
2539 (print_statistics, dump_alloc_pool_statistics): Enhance the
2540 printing of statistics to print the number of elements and to use
2543 2008-10-07 Jakub Jelinek <jakub@redhat.com>
2546 * opts.h (CL_SAVE): Move up to flags range.
2547 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
2548 CL_COMMON): Renumber.
2549 (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
2550 * opts.c (common_handle_option): Revert last change.
2552 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
2554 * config/i386/i386-protos.h (ix86_schedule): New.
2556 * config/i386/i386.c (ix86_schedule): New.
2557 (override_options): Add schedule to processor_alias_table. Set
2558 ix86_schedule from the schedule field in processor_alias_table.
2559 (ix86_function_specific_save): Save ix86_schedule.
2560 (ix86_function_specific_restore): Restore ix86_schedule.
2562 * config/i386/i386.md (cpu): Map to ix86_schedule instead of
2563 ix86_tune. Add none and remove i386, i486, pentium4, nocona
2566 * config/i386/i386.opt: Add schedule.
2568 * config/i386/ppro.md: Remove generic32.
2570 2008-10-07 Simon Martin <simartin@users.sourceforge.net>
2573 * expr.c (count_type_elements): Handle ERROR_MARK.
2575 2008-10-07 Jakub Jelinek <jakub@redhat.com>
2580 * basic-block.h (struct edge_def): Add goto_block field.
2581 * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
2582 one insn with locus corresponding to edge's goto_locus if !optimize.
2583 * profile.c (branch_prob): Copy edge's goto_block.
2584 * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
2586 (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
2587 locator in between the merged basic blocks if !optimize and needed.
2588 * cfgexpand.c (expand_gimple_cond): Convert goto_block and
2589 goto_locus into RTL locator. For unconditional jump use that
2590 locator for the jump insn.
2591 (expand_gimple_cond): Convert goto_block and goto_locus into
2592 RTL locator for all remaining edges. For unconditional jump
2593 use that locator for the jump insn.
2594 * cfgcleanup.c (try_forward_edges): Avoid the optimization if
2595 there is more than one edge or insn locator along the forwarding
2596 edges and !optimize. If there is just one, set e->goto_locus.
2597 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
2599 (move_block_to_fn): Adjust edge's goto_block.
2601 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
2604 * expmed.c (expand_mult): Properly check DImode constant in
2607 2008-10-07 Jakub Jelinek <jakub@redhat.com>
2610 * dwarf2out.c (common_block_die_table): New variable.
2611 (common_block_die_table_hash, common_block_die_table_eq): New
2613 (gen_variable_die): Look up a DW_TAG_common_block die for a particular
2614 COMMON block in the current scope rather than globally. Optimize
2615 DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
2616 DW_OP_addr SYMBOL_REF+off.
2618 2008-10-07 Eric Botcazou <ebotcazou@adacore.com>
2620 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
2621 Return true for non-addressable GIMPLE operands.
2623 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
2626 * config/i386/i386.c (initial_ix86_tune_features): Remove
2627 X86_TUNE_USE_BIT_TEST.
2628 * config/i386/i386.h (ix86_tune_indices): Likewise.
2629 (TARGET_USE_BIT_TEST): Removed.
2631 2008-10-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2633 * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
2635 2008-10-06 Adam Nemet <anemet@caviumnetworks.com>
2637 * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
2638 (mul<mode>3_mul3): ... into this new template.
2640 2008-10-06 Aldy Hernandez <aldyh@redhat.com>
2642 * gimplify.c (gimplify_arg): Add location argument. Use it.
2643 (gimplify_call_expr): Pass location to gimplify_arg.
2644 (gimplify_modify_expr_to_memcpy): Same.
2645 (gimplify_modify_expr_to_memset): Same.
2647 2008-10-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
2649 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2650 Update calls to build_unary_op and build_indirect_ref for location
2653 2008-10-06 Aldy Hernandez <aldyh@redhat.com>
2656 * c-decl.c (finish_decl): Pass input_location to build_unary_op.
2657 * c-typeck.c (array_to_pointer_conversion): Pass location to
2659 (function_to_pointer_conversion): Use error_at and warning_at.
2660 (build_indirect_ref): Same.
2661 (build_array_ref): Pass location to build_binary_op.
2662 (parser_build_unary_op): Do not set location after calling
2664 (build_unary_op): Add location argument. Use it throughout. Set
2665 EXPR_LOCATION before returning new tree.
2666 (build_modify_expr): Same.
2667 (build_binary_op): Use location throughout. Set EXPR_LOCATION before
2669 * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
2670 build_indirect_ref, build_modify_expr.
2671 (c_finish_omp_for): Same. Use error_at instead of error.
2672 * c-common.c (c_common_truthvalue_conversion): Pass location to
2674 (warn_for_div_by_zero): Add location argument.
2675 * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
2676 build_unary_op, warn_for_div_by_zero.
2677 * c-parser.c (c_parser_typeof_specifier): Use
2678 protected_set_expr_location.
2679 (c_parser_statement_after_labels): Same.
2680 (c_parser_condition): Same.
2681 (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
2682 (c_parser_conditional_expression): Use protected_set_expr_location.
2683 (c_parser_unary_expression): Pass location to build_indirect_ref.
2684 (c_parser_postfix_expression_after_primary): Pass location to
2685 build_indirect_ref, build_unary_op.
2686 (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
2688 2008-10-06 Joshua Kinard <kumba@gentoo.org>
2690 * doc/invoke.texi: List r1x000 family under the -march MIPS option.
2691 * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
2692 * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
2694 (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
2695 (mips_issue_rate): Handle PROCESSOR_R10000.
2696 * config/mips/mips.md (cpu): Add r10000.
2698 * config/mips/10000.md: New file.
2700 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
2702 * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
2703 * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
2704 * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
2706 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
2708 * config/darwin-protos.h (machopic_function_base_name): Delete.
2709 (machopic_function_base_sym): Likewise.
2710 (machopic_gen_offset): Declare.
2711 * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
2712 (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
2713 * config/darwin.c (machopic_function_base_name): Delete.
2714 (machopic_function_base_sym): Likewise.
2715 (gen_pic_offset): Rename to...
2716 (machopic_gen_offset): ...this and remove the pic_base argument.
2717 Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
2718 is needed. Create an UNSPEC_MACHOPIC_OFFSET if so, and set
2719 crtl->uses_pic_offset_table.
2720 (machopic_indirect_data_reference): Use new machopic_gen_offset
2722 (machopic_legitimize_pic_address): Likewise.
2723 (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
2725 * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
2726 MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
2727 * config/i386/i386.c (output_set_got): Likewise.
2728 (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
2730 (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
2731 (legitimate_address_p): Likewise.
2732 (output_pic_addr_const): Likewise.
2733 (output_addr_const_extra): Likewise.
2734 (ix86_delegitimize_address): Expect darwin_local_data_pic to
2735 match an UNSPEC rather than a MINUS.
2736 * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
2737 (builtin_setjmp_receiver): Use machopic_gen_offset.
2738 * config/i386/predicates.md (pic_symbolic_operand): Handle
2739 UNSPEC_MACHOPIC_OFFSET.
2741 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
2742 Use machopic_gen_offset and machopic_operand_p.
2743 (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
2744 (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
2745 * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
2746 (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
2747 Set crtl->uses_pic_offset_table.
2749 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
2751 * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
2753 * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
2754 * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
2755 * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
2756 (constant_pool_expr_p): Use split_const and check the base.
2757 (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
2759 (legitimate_constant_pool_address_p): Check toc_relative_p
2760 instead of constant_pool_expr_p.
2761 (print_operand_address): Always use output_addr_const for
2762 constant pool addresses.
2763 (rs6000_output_addr_const_extra): New function.
2764 (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
2766 2008-10-06 Vladimir Makarov <vmakarov@redhat.com>
2770 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
2771 (mark_ref_live, mark_ref_dead): Use them.
2772 (def_conflicts_with_inputs_p): Remove.
2773 (mark_early_clobbers): New function.
2774 (process_bb_node_lives): Call preprocess_constraints and
2775 mark_early_clobbers.
2777 * doc/rtx.texi (clobber): Change how RA deals with clobbers.
2779 2008-10-06 Danny Smith <dannysmith@users.sourceforge.net>
2781 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
2782 lib with -mthread switch.
2784 2008-10-05 Dodji Seketeli <dodji@redhat.com>
2787 * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
2788 function in two, making it call a new and reusable
2789 dwarf2out_imported_module_or_decl() that takes the containing
2790 BLOCK of the declaration in argument.
2791 (dwarf2out_imported_module_or_decl_real): New function.
2792 (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
2793 IMPORTED_DECL in account.
2794 * tree.def: Added IMPORTED_DECL node type.
2795 * tree.h: Added accessors for IMPORTED_DECL nodes.
2796 * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
2798 2008-10-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2800 * doc/gimple.texi: Fix some typos, wrap some long lines,
2801 fix some broken wraps with continuations.
2802 * tree-ssa-reassoc.c: Fix comment typos.
2804 2000-10-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2807 * pa.c (legitimize_pic_address): Force function labels to memory in
2810 2008-10-04 Anton Blanchard <anton@samba.org>
2812 * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
2813 (rs6000_split_atomic_op): Same.
2814 (rs6000_split_compare_and_swap): Same.
2815 (rs6000_split_compare_and_swapqhi): Same.
2817 2008-10-04 Richard Guenther <rguenther@suse.de>
2819 * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
2820 instead of pointer equality.
2821 (vn_nary_op_eq): Likewise.
2823 2008-10-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
2825 * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT
2827 (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
2828 TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
2830 2008-10-03 Danny Smith <dannysmith@users.sourceforge.net>
2832 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
2833 Revert previous change.
2835 2008-10-03 Tom Tromey <tromey@redhat.com>
2837 * stringpool.c (ggc_alloc_string): Terminate string.
2839 2008-10-03 Jakub Jelinek <jakub@redhat.com>
2841 * gimplify.c (gimplify_function_tree): For -finstrument-functions
2842 use gimple_bind_{,set_}block instead of gimple_{,set_}block.
2843 * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
2846 * gimplify.c (declare_vars): Use gimple_bind_block instead of
2849 2008-10-03 Pascal Obry <obry@adacore.com>
2851 * gcov.c (create_file_names): Properly handle UNIX and DOS
2852 directory separators.
2853 (make_gcov_file_name): Likewise + convert the ':' DOS drive
2854 separator to '~' to ensure clean filenames on Windows.
2856 2008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
2858 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
2859 Add a null terminator to the stripped name.
2861 2008-10-02 David Edelsohn <edelsohn@gnu.org>
2863 * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
2864 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
2865 (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
2866 TARGET_SINGLE_FLOAT. Revert SCALAR_FLOAT_MODE_P condition.
2867 (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
2868 (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
2869 TARGET_SINGLE_FLOAT.
2871 2008-10-02 Daniel Jacobowitz <dan@codesourcery.com>
2873 * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
2875 2008-10-02 Richard Guenther <rguenther@suse.de>
2878 * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
2879 and VECTOR_TYPE recurse with useless_type_conversion_p which
2880 properly handles void pointer conversion.
2882 2008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
2885 * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
2886 (REAL_LIBGCC_SPEC): New. Always include -lgcc.
2888 2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
2890 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2891 Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
2892 ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
2893 they translate to non builtins.
2894 * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
2895 opaque_ftype_opaque. Define builtins __builtin_vec_splats,
2896 __builtin_vec_promote, __builtin_vec_extract, and
2897 __builtin_vec_insert.
2898 * config/rs6000/rs6000.h (enum rs6000_builtins): Add
2899 ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
2900 ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
2901 * config/rs6000/altivec.h (vec_extract): Define
2902 (vec_insert): Define.
2903 (vec_splats): Define.
2904 (vec_promote): Define.
2906 2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
2907 Yukishige Shibata <shibata@rd.scei.sony.co.jp>
2908 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2910 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
2912 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
2913 prototype. Add new parameter, blk.
2914 Use BLKmode for the MEM if blk is true.
2915 (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
2916 ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
2917 ALTIVEC_BUILTIN_STVRXL.
2918 Update usage of altivec_expand_lv_builtin.
2919 Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
2920 ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
2921 (altivec_init_builtins): If compiling for the Cell, also define the
2923 * config/rs6000/rs6000.h (rs6000_builtins): Define
2924 ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
2925 ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
2926 ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
2927 ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
2928 ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
2929 ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
2930 ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
2931 * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
2932 UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
2933 UNSPEC_STVRX, and UNSPEC_STVRXL.
2934 (altivec_lvlx): New pattern.
2935 (altivec_lvlxl): New pattern.
2936 (altivec_lvrx): New pattern.
2937 (altivec_lvrxl): New pattern.
2938 (altivec_stvlx): New pattern.
2939 (altivec_stvlxl): New pattern.
2940 (altivec_stvrx): New pattern.
2941 (altivec_stvrxl): New pattern.
2942 * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
2943 (vec_lvlxl): Likewise.
2944 (vec_lvrx): Define if PPU is defined.
2945 (vec_lvrxl): Likewise.
2946 (vec_stvlx): Define if PPU is defined.
2947 (vec_stvlxl): Likewise.
2948 (vec_stvrx): Define if PPU is defined.
2949 (vec_stvrxl): Likewise.
2951 2008-10-01 Geert Bosch <bosch@adacore.com>
2953 * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
2955 2008-10-01 Richard Guenther <rguenther@suse.de>
2957 PR tree-optimization/37617
2958 * tree-ssa-pre.c (create_expression_by_pieces): During FRE
2959 do not add to the NEW_SETS.
2961 2008-10-01 Richard Guenther <rguenther@suse.de>
2964 * tree-vrp.c (execute_vrp): If we optimized away the default
2965 case make sure to promote the label that got in place of it
2966 to a default case label.
2968 2008-10-01 Richard Henderson <rth@redhat.com>
2971 * tree-complex.c (set_component_ssa_name): Don't optimize
2972 is_gimple_min_invariant values with ssa_names in abnormal phis.
2974 2008-09-30 Paolo Bonzini <bonzini@gnu.org>
2976 PR tree-optimization/37662
2977 * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
2978 commutative binary operation if they are in the wrong order and
2979 fold_build2 produces non-GIMPLE.
2981 2008-09-30 Jakub Jelinek <jakub@redhat.com>
2983 PR tree-optimization/37662
2984 PR tree-optimization/37663
2985 * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
2986 get_value_range with non-SSA_NAME. Don't assert operands have been
2987 folded, instead just bail out.
2989 2008-09-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
2991 * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
2993 2008-09-30 Richard Guenther <rguenther@suse.de>
2996 * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
2997 build restrict-qualified pointers.
2998 (vectorizable_store): Move alias check later.
2999 (vectorizable_load): Likewise.
3001 2008-09-30 Paolo Bonzini <bonzini@gnu.org>
3003 * c-common.c (empty_if_body_warning): Remove.
3004 * c-common.h (empty_if_body_warning): Remove.
3005 * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
3006 here the -Wempty-body warning for `if' and `else' statements.
3007 * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
3009 2008-09-29 H.J. Lu <hongjiu.lu@intel.com>
3011 * config/i386/i386.opt: Add msse2avx.
3013 * config/i386/linux.h (ASM_SPEC): New. Support -msse2avx.
3014 * config/i386/linux64.h (ASM_SPEC): Likewise.
3016 * doc/invoke.texi: Document -msse2avx.
3018 2008-09-29 Eric Botcazou <ebotcazou@adacore.com>
3020 * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
3022 2008-09-29 Joseph Myers <joseph@codesourcery.com>
3024 * ifcvt.c (noce_emit_store_flag): If using condition from original
3025 jump, reverse it if if_info->cond was reversed.
3027 2008-09-29 Eric Botcazou <ebotcazou@adacore.com>
3029 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
3030 non-constant memory if it cannot be forced to constant memory.
3031 Overhaul surrounding code and factor out common condition.
3033 2008-09-29 Jeff Law <law@redhat.com>
3035 * reload1.c (alter_reg): Add missing curly braces.
3037 2008-09-29 Michael J. Eager <eager@eagercon.com>
3039 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
3041 * config/rs6000/rs6000.c (rs6000_override_options): Move
3042 rs6000_init_hard_regno_mode_ok after all options changed.
3043 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
3044 (rs6000_handle_option): Process -msingle-float, -mdouble-float,
3045 -msimple-fpu flags. Add warning messages if single FP not configured.
3046 (rs6000_file_start): Output gnu_attribute for single-float.
3047 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
3048 (rs6000_legitimize_address): Likewise.
3049 (rs6000_legitimize_reload_address): Likewise.
3050 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
3051 TARGET_SINGLE_FLOAT.
3052 (function_arg_advance): Likewise (partial conversion).
3053 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
3054 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
3055 TARGET_SINGLE_FLOAT.
3056 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
3057 (rs6000_emit_prologue): Likewise.
3058 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
3059 TARGET_SINGLE_FLOAT.
3060 (rs6000_libcall_value): Likewise.
3061 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
3062 (TARGET_DOUBLE_FLOAT): New default to 1
3063 (TARGET_SIMPLE_FPU): New default to 0
3064 (TARGET_SINGLE_FPU): New default to 0
3065 (TARGET_SINGLE_FLOAT_MODE): New.
3066 (TARGET_DOUBLE_FLOAT_MODE): New.
3067 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
3068 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
3070 * config/rs6000/rs6000.md (define_mode_iterator): Condition on
3071 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
3072 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
3073 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
3074 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
3075 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
3076 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
3077 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
3078 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
3079 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
3080 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
3081 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
3082 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
3083 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
3084 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
3085 cmptf_internal1, *cmptf_internal2): Condition on
3086 TARGET_DOUBLE_FLOAT.
3087 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
3088 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
3089 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
3090 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
3091 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
3092 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
3093 TARGET_SINGLE_FLOAT.
3094 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
3095 * config/rs6000/rs6000.opt (-msingle-float): New.
3096 (-mdouble-float): New.
3097 (-msimple-fpu): New.
3098 * doc/invoke.texi (RS/6000 and PowerPC Options): Add
3099 -msingle-float, -mdouble-float, -msimple-fpu options.
3100 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
3101 _SOFT_DOUBLE for -msingle-float.
3102 * config.gcc: New config for target=powerpc-xilinx-eabi.
3104 2008-09-29 Tobias Grosser <grosser@fim.uni-passau.de>
3106 * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
3107 have exit and entry.
3108 (new_scop): Take entry and exit edge to define new SCoP.
3109 (sd_region_p): New structure used during SCoP detection.
3110 (move_scops): Delete.
3111 (move_sd_regions): New.
3112 (scopdet_info): Change the definition from edges back to basic_blocks.
3113 (scopdet_edge_info): Work on basic_blocks and rename to
3114 scopdet_basic_block_info.
3115 (split_difficult_bb): At the moment removed. We should later
3116 add it at another place.
3117 (build_scops_1): Work on basic_blocks.
3118 (bb_in_sd_region): New.
3119 (find_single_entry_edge): New.
3120 (find_single_exit_edge): New.
3121 (create_single_entry_edge): New.
3122 (sd_region_without_exit): New.
3123 (create_single_exit_edge): New.
3124 (unmark_exit_edges): New.
3125 (mark_exit_edges): New.
3126 (create_sese_edges): New.
3127 (build_graphite_scops): New.
3128 (build_scops): Make SCoPs SESE.
3129 (limit_scops): Use the new functions.
3131 2008-09-29 Hans-Peter Nilsson <hp@axis.com>
3133 * config/cris/cris.h (IRA_COVER_CLASSES): Define.
3135 2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
3138 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
3139 address to a register before taking the lower part.
3141 2008-09-28 Kaz Kojima <kkojima@gcc.gnu.org>
3143 * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
3146 2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
3147 Kaushal Kantawala <kaushal_kantawala@playstation.sony.com>
3150 * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
3151 the newly created variable.
3152 Create a VECTOR_CST of all 1s for vector types.
3154 2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
3157 * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
3159 2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
3161 * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
3162 order to convert between modes.
3163 (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
3165 2008-09-27 Kaz Kojima <kkojima@gcc.gnu.org>
3167 * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
3170 2008-09-26 Vladimir Makarov <vmakarov@redhat.com>
3173 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
3177 2008-09-26 Adam Nemet <anemet@caviumnetworks.com>
3179 * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
3180 ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
3181 them to yield false with MIPS16.
3183 2008-09-26 Jakub Jelinek <jakub@redhat.com>
3186 * dwarf2out.c (tls_mem_loc_descriptor): New function.
3187 (mem_loc_descriptor): Use it for MEM. For PLUS fail if second
3188 mem_loc_descriptor failed. Accept UNSPEC.
3189 (loc_descriptor): Use tls_mem_loc_descriptor for MEM. For PARALLEL
3190 fail if one of the loc_descriptor calls for pieces failed.
3191 (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
3192 as long as they bind locally. For COMPONENT_REF, ARRAY_REF etc. fail
3193 if loc_descriptor_from_tree_1 on offset failed.
3196 * opts.c (common_handle_option): Don't call print_specific_help with
3197 CL_SAVE as first argument.
3199 2008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
3200 Steve Ellcey <sje@cup.hp.com>
3202 * configure: Regenerate for new libtool.
3203 * aclocal.m4: Ditto.
3205 2008-09-26 Pat Haugen <pthaugen@us.ibm.com>
3207 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
3208 alias set on MEM when saving stack pointer.
3209 * config/rs6000/rs6000.md (allocate_stack): Likewise
3211 2008-09-26 Dorit Nuzman <dorit@il.ibm.com>
3213 PR tree-optimization/37574
3214 * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
3215 * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
3216 instead of vector_type for constants. Take computation out of loop.
3217 (vect_get_vec_def_for_operand): Use only vectype for constant case,
3218 and use only vector_type for invariant case.
3219 (get_initial_def_for_reduction): Use vectype instead of vector_type.
3221 2008-09-25 Jakub Jelinek <jakub@redhat.com>
3224 * c-common.c (handle_weakref_attribute): Ignore the attribute unless
3225 the decl is a VAR_DECL or FUNCTION_DECL.
3227 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
3230 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
3231 (mark_ref_live, mark_ref_dead): Use them.
3232 (def_conflicts_with_inputs_p): Remove.
3233 (mark_early_clobbers): New function.
3234 (process_bb_node_lives): Call preprocess_constraints and
3235 mark_early_clobbers.
3237 * doc/rtl.texi (clobber): Change how RA deals with clobbers.
3239 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
3242 * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
3243 (ira_compress_allocno_live_ranges): New prototype.
3245 * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
3246 (coalesced_allocnos_living_at_program_points): New.
3247 (coalesced_allocnos_live_at_points_p,
3248 set_coalesced_allocnos_live_points): New functions.
3249 (coalesce_spill_slots): Rewrite.
3251 * ira-lives.c (remove_some_program_points_and_update_live_ranges,
3252 ira_compress_allocno_live_ranges): New functions.
3254 * ira-build.c (ira_flattening): Call
3255 ira_compress_allocno_live_ranges.
3258 2008-09-25 H.J. Lu <hongjiu.lu@intel.com>
3260 * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
3263 2008-09-25 Richard Sandiford <rdsandiford@googlemail.com>
3265 * combine.c (make_compound_operation): Handle the 'E' format.
3266 (count_rtxs): Likewise.
3267 (update_table_tick): Likewise.
3268 (get_last_value_validate): Likewise.
3270 2008-09-25 Eric Botcazou <ebotcazou@adacore.com>
3272 * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
3274 2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
3276 * matrix-reorg.c (transform_allocation_sites): Initializers
3277 added to avoid the warning.
3279 2008-09-25 Martin Jambor <mjambor@suse.cz>
3281 * cgraph.c (free_nodes): New variable.
3282 (NEXT_FREE_NODE): New macro.
3283 (cgraph_create_node): Reuse nodes from the free list. Do not
3284 update uid if doing so.
3285 (cgraph_remove_node): Add the node to the free list.
3287 2008-09-25 Gerald Pfeifer <gerald@pfeifer.com>
3289 * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
3291 2008-09-24 Richard Henderson <rth@redhat.com>
3293 * dwarf2.h (DW_OP_GNU_encoded_addr): New.
3294 * unwind-dw2.c (execute_stack_op): Handle it.
3296 2008-09-24 David Edelsohn <edelsohn@gnu.org>
3299 2008-09-24 Michael J. Eager <eager@eagercon.com>
3301 2008-09-24 Aldy Hernandez <aldyh@redhat.com>
3303 * c-common.c (fname_decl): New location argument.
3304 * c-common.h (fname_decl): Same.
3305 * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
3307 (c_parser_typeof_specifier): Same.
3308 (c_parser_parms_list_declarator): Same.
3309 (c_parser_asm_string_literal): Same.
3310 (c_parser_compound_statement_nostart): Same.
3311 (c_parser_label): Same.
3312 (c_parser_do_statement): Same.
3313 (c_parser_asm_statement): Same.
3314 (c_parser_unary_expression): Same.
3315 (c_parser_sizeof_expression): Same.
3316 (c_parser_postfix_expression): Same.
3317 (c_parser_pragma): Same.
3318 (c_parser_omp_clause_collapse): Same.
3319 (c_parser_omp_clause_num_threads): Same.
3320 (c_parser_omp_clause_schedule): Same.
3321 (c_parser_omp_all_clauses): Same.
3322 (c_parser_omp_sections_scope): Same.
3323 (c_parser_omp_for_loop): Same. Pass condition's location to
3324 c_objc_common_truthvalue_conversion.
3325 (c_parser_enum_specifier): Remove comment.
3327 2008-09-24 Michael J. Eager <eager@eagercon.com>
3329 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
3331 * config/rs6000/rs6000.c (rs6000_override_options): Move
3332 rs6000_init_hard_regno_mode_ok after all options changed.
3333 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
3334 (rs6000_handle_option): Process -msingle-float, -mdouble-float,
3335 -msimple-fpu flags. Add warning messages if single FP not configured.
3336 (rs6000_file_start): Output gnu_attribute for single-float.
3337 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
3338 (rs6000_legitimize_address): Likewise.
3339 (rs6000_legitimize_reload_address): Likewise.
3340 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
3341 TARGET_SINGLE_FLOAT.
3342 (function_arg_advance): Likewise.
3343 (function_arg): Likewise.
3344 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
3345 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
3346 TARGET_SINGLE_FLOAT.
3347 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
3348 (rs6000_emit_prologue): Likewise.
3349 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
3350 TARGET_SINGLE_FLOAT.
3351 (rs6000_libcall_value): Likewise.
3352 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
3353 (TARGET_DOUBLE_FLOAT): New default to 1
3354 (TARGET_SIMPLE_FPU): New default to 0
3355 (TARGET_SINGLE_FPU): New default to 0
3356 (TARGET_SINGLE_FLOAT_MODE): New.
3357 (TARGET_DOUBLE_FLOAT_MODE): New.
3358 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
3359 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
3361 * config/rs6000/rs6000.md (define_mode_iterator): Condition on
3362 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
3363 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
3364 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
3365 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
3366 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
3367 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
3368 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
3369 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
3370 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
3371 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
3372 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
3373 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
3374 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
3375 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
3376 cmptf_internal1, *cmptf_internal2): Condition on
3377 TARGET_DOUBLE_FLOAT.
3378 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
3379 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
3380 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
3381 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
3382 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
3383 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
3384 TARGET_SINGLE_FLOAT.
3385 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
3386 * config/rs6000/rs6000.opt (-msingle-float): New.
3387 (-mdouble-float): New.
3388 (-msimple-fpu): New.
3389 * doc/invoke.texi (RS/6000 and PowerPC Options): Add
3390 -msingle-float, -mdouble-float, -msimple-fpu options.
3391 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
3392 _SOFT_DOUBLE for -msingle-float.
3393 * config.gcc: New config for target=powerpc-xilinx-eabi.
3395 2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
3397 * config/sparc/constraints.md: New file.
3398 * config/sparc/sparc.md: Include it.
3399 * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
3400 (sparc_extra_constraint_check): Delete.
3401 * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
3402 (memory_ok_for_ldd): New predicate.
3403 (sparc_extra_constraint_check): Delete.
3404 * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
3405 (CONST_OK_FOR_LETTER_P): Likewise.
3406 (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
3407 (EXTRA_CONSTRAINT): Likewise.
3409 2008-08-23 Steve Ellcey <sje@cup.hp.com>
3411 * regrename.c (do_replace): Copy REG_POINTER value to new reg.
3413 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
3415 * alias.c (find_base_value): Use FIND_BASE_TERM.
3416 * doc/tm.texi (FIND_BASE_TERM): Update documentation.
3418 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
3420 * config/i386/i386.c: Include cselib.h.
3421 (ix86_pic_register_p): New function.
3422 (ix86_delegitimize_address): Use it to check for the PIC register.
3424 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
3426 * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
3427 * config/i386/i386.c (ix86_find_base_term): Don't check for
3428 SYMBOL_REF and LABEL_REF.
3430 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
3432 * config/i386/i386.c (ix86_delegitimize_address): Wrap the
3433 constant PLUS in a CONST.
3435 2008-09-23 Kai Tietz <kai.tietz@onevision.com>
3437 * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
3438 check for sibcall support for w64.
3440 2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
3442 * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
3444 2008-09-23 Aldy Hernandez <aldyh@redhat.com>