1 2008-10-24 Richard Sandiford <rdsandiford@googlemail.com>
3 * config/mips/mips.c (mips_canonicalize_move_class): New function.
4 (mips_move_to_gpr_cost): Likewise.
5 (mips_move_from_gpr_cost): Likewise.
6 (mips_register_move_cost): Make more fine-grained.
8 2008-10-23 Tobias Grosser <grosser@fim.uni-passau.de>
10 * graphite.c (graphite_apply_transformations): Check for
12 * toplev.c (process_options): Add graphite_identity.
13 * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
15 2008-10-23 Bernd Schmidt <bernd.schmidt@analog.com>
17 * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
18 mulhisihl and mulhisihh builtins.
20 From Jie Zhang <jie.zhang@analog.com>
21 * config/bfin/bfin.md (composev2hi): Put operands into vector
24 2008-10-22 Chao-ying Fu <fu@mips.com>
26 * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
28 2008-10-22 Bernd Schmidt <bernd.schmidt@analog.com>
30 From Mike Frysinger <michael.frysinger@analog.com>
31 * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
32 BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
33 * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
34 and bf518. Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
35 Add 0.6 for bf533, bf532, and bf531. Add 0.5 for bf538 and bf539.
36 Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
37 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
38 for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
39 for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518. Define
40 __ADSPBF51x__ for all of them.
41 * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
42 -mcpu bf512, bf514, bf516, and bf518.
43 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
44 bf512-none, bf514-none, bf516-none, and bf518-none.
45 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
46 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
47 * doc/invoke.texi (Blackfin Options): Document that
48 -mcpu now accepts bf512, bf514, bf516, and bf518.
50 2008-10-22 Jakub Jelinek <jakub@redhat.com>
53 * fold-const.c (build_range_type): For 1 .. signed_max
54 range call build_nonstandard_inter_type if signed_type_for
55 returned a type with bigger precision.
57 2008-10-22 Richard Guenther <rguenther@suse.de>
59 * tree.def (COMPLEX_TYPE): Constrain element type.
60 * tree.c (build_complex_type): Assert that.
61 * tree-ssa-structalias.c (could_have_pointers): Complex types
64 2008-10-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
67 * c-typeck.c (convert_for_assignment): Do not give declaration's
68 location for builtins. Spell out which type was expected and which
71 2008-10-22 Nick Clifton <nickc@redhat.com>
73 * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define. Do not allow
74 the fdpic register to be a target when running in fdpic mode.
76 2008-10-22 Rafael Espindola <espindola@google.com>
78 * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
79 newly created statements.
81 2008-10-22 Kaz Kojima <kkojima@gcc.gnu.org>
84 * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
85 * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
86 * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
88 2008-10-22 Jakub Jelinek <jakub@redhat.com>
91 * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
92 Adjust -mcmodel=medium description for 2005-07-31 changes.
94 2008-10-22 Jan Hubicka <jh@suse.cz>
95 Jakub Jelinek <jakub@redhat.com>
98 * doc/invoke.texi: Remove references to obsoleted -d dumps.
100 2008-10-21 Richard Henderson <rth@redhat.com>
103 * emit-rtl.c (get_spill_slot_decl): Export.
104 * emit-rtl.h (get_spill_slot_decl): Declare.
105 * var-tracking.c (vt_add_function_parameters): Relax assertion
106 on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
108 2008-10-21 Bob Wilson <bob.wilson@acm.org>
110 * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
111 REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
114 2008-10-21 Adam Nemet <anemet@caviumnetworks.com>
117 * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
118 processed by get_maxval_strlen.
120 2008-10-21 David Edelsohn <edelsohn@gnu.org>
123 * tree.c (get_file_function_name): Copy first_global_object_name.
124 Centralize call to clean_symbol_name.
126 2008-10-21 Sandra Loosemore <sandra@codesourcery.com>
128 * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
129 * config/svr4.h (SVR4_ASM_SPEC): New.
130 (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
131 * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
133 * doc/invoke.texi (Option Summary): Add -T to linker options.
134 (Link Options): Document -T.
136 2008-10-21 Jakub Jelinek <jakub@redhat.com>
138 * tree-inline.c (tree_inlinable_function_p): Remove tuples
141 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from
145 * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
147 2008-10-20 Daniel Berlin <dberlin@dberlin.org>
149 * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
152 2008-10-20 Tobias Schlüter <tobi@gcc.gnu.org>
154 * doc/install.texi: Fix typos in previous patch.
156 2008-10-19 Tobias Schlüter <tobi@gcc.gnu.org>
158 * doc/install.texi: Document in-tree building of gcc and mpfr.
160 2008-10-19 Richard Guenther <rguenther@suse.de>
162 * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
164 2008-10-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
167 * c-decl.c (finish_enum): Convert non-integer enumerators to enum
169 (build_enumerator): Convert enumerators that fit in integer to
172 2008-10-18 Uros Bizjak <ubizjak@gmail.com>
174 * config/i386/i386.md (unnamed peephole2): Do not force memory
175 operands of arith or logical instructions into registers for
176 non-TARGET_READ_MODIFY targets.
178 (ffs_cmove): Change operand 0 predicate to register_operand.
179 Change operand 1 predicate to nonimmediate_operand.
181 (*ffs_no_cmove): Change operand 0 predicate to register_operand.
183 2008-10-18 Richard Guenther <rguenther@suse.de>
185 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
186 VIEW_CONVERT_EXPR case against invalid gimple.
188 2008-10-17 Andreas Krebbel <krebbel1@de.ibm.com>
190 * c-parser.c (c_parser_binary_expression): Silence the
191 uninitialized variable warning emitted for binary_loc.
193 2008-10-16 Daniel Berlin <dberlin@dberlin.org>
195 * tree-ssa-pre.c (phi_translate_set): Add constants to phi
198 2008-10-16 Joseph Myers <joseph@codesourcery.com>
201 * c-typeck.c (build_unary_op): Use omit_one_operand for
202 IMAGPART_EXPR of real argument.
204 2008-10-16 Jakub Jelinek <jakub@redhat.com>
206 PR tree-optimization/37664
207 * fold-const.c (fold_binary): When optimizing comparison with
208 highest or lowest type's value, don't consider TREE_OVERFLOW.
210 2008-10-16 David Edelsohn <edelsohn@gnu.org>
213 * Makefile.in (coverage.o): Depend on $(TM_P_H).
214 * coverage.c: Include tm_p.h.
215 * config/rs6000/x-aix (jc1): Override LDFLAGS.
216 * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
217 dollar signs from PREFIX.
218 * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
219 instead of manual strip_name_encoding.
221 2008-10-16 Richard Guenther <rguenther@suse.de>
224 * tree-ssa.c (useless_type_conversion_p_1): Do not treat
225 volatile qualified functions or methods as relevant.
227 2008-10-16 Jakub Jelinek <jakub@redhat.com>
229 PR tree-optimization/37525
230 * tree.c (int_fits_type_p): Rewrite using double_int. Zero extend
231 sizetype unsigned constants, both in the case of C and bounds.
233 2008-10-15 Jan Hubicka <jh@suse.cz>
235 * ira-emit.c (change_regs): Return false when replacing reg by
238 2008-10-14 Vladimir Makarov <vmakarov@redhat.com>
241 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
242 HARD_REGNO_CALL_PART_CLOBBERED.
244 2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
247 * ira-lives.c (mark_early_clobbers): Remove.
248 (make_pseudo_conflict, check_and_make_def_use_conflicts,
249 check_and_make_def_conflicts,
250 make_early_clobber_and_input_conflicts,
251 mark_hard_reg_early_clobbers): New functions.
252 (process_bb_node_lives): Call
253 make_early_clobber_and_input_conflicts and
254 mark_hard_reg_early_clobbers. Make hard register inputs live again.
256 * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
257 early clobbers of pseudo-registers.
259 2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
262 * ira-build.c (ira_flattening): Recalculate
263 ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
264 from the scratch instead of the propagation.
266 2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
268 * doc/rtl.texi (const_double): Remove the "addr" operand.
269 Describe CONST_DOUBLE_* macros under const_double rather
271 (const_fixed): Fix the operand description.
272 (const): Add an @findex directive.
273 (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
274 after the constant rtl table.
275 (fix): Combine floating-point and fixed-point descriptions.
277 * sched-deps.c (sched_analyze_2): Remove reference to
280 2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
282 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
284 * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
285 for UNSPEC_GOTSYM_OFFs.
286 * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
287 (add_GOT_to_pic_reg): Use it.
288 * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
290 2008-10-15 Jan Sjodin <jan.sjodin@amd.com>
291 Harsha Jagasia <harsha.jagasia@amd.com>
293 PR tree-optimization/37485
294 * graphite.c (gmp_cst_to_tree): Moved.
295 (iv_stack_entry_is_constant): New.
296 (iv_stack_entry_is_iv): New.
297 (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
298 (loop_iv_stack_insert_constant): New.
299 (loop_iv_stack_pop): Use new datatpype.
300 (loop_iv_stack_get_iv): Same.
301 (loop_iv_stack_get_iv_from_name): Same.
302 (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
303 (loop_iv_stack_patch_for_consts): New.
304 (loop_iv_stack_remove_constants): New.
305 (graphite_create_new_loop): Use loop_iv_stack_push_iv.
306 (translate_clast): Call loop_iv_stack_patch_for_consts and
307 loop_iv_stack_remove_constants.
308 (gloog): Use new datatype. Redirect construction edge to end
309 block to avoid accidental deletion.
310 * graphite.h (enum iv_stack_entry_kind): New. Tag for data in
312 (union iv_stack_entry_data): New. Data in iv stack entry.
313 (struct iv_stack_entry): New. Datatype for iv stack entries.
315 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
317 * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
318 * graphite.c (free_scop): Same.
320 (free_scattering): New.
321 (build_cloog_prog): Call free_scattering.
322 (patch_phis_for_virtual_defs): Fix memleak.
323 (graphite_trans_bb_strip_mine): Same.
326 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
327 Harsha Jagasia <harsha.jagasia@amd.com>
329 PR tree-optimization/37828
330 * graphite.c (graphite_trans_loop_block): Do not loop block
333 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
335 PR tree-optimization/37686
336 * tree-loop-linear.c (linear_transform_loops): Build a
337 loop nest vector. Pass it to lambda_compute_access_matrices.
338 * tree-data-ref.h (struct access_matrix): Store the loop nest
339 relative to which it encodes the information.
340 (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
341 (am_vector_index_for_loop): Reimplemented: iterate over the
342 loop nest for finding the loop index in the access matrix.
343 (lambda_compute_access_matrices): Update declaration.
344 * lambda-code.c (build_access_matrix): Pass the loop nest and
346 (lambda_compute_access_matrices): Same.
348 2008-10-15 Andreas Krebbel <krebbel1@de.ibm.com>
350 * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
351 * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
352 TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
353 already implies hard float. Also fix several insn condition
354 with TARGET_DFP which shall require TARGET_HARD_DFP instead.
356 2008-10-15 David Edelsohn <edelsohn@gnu.org>
359 Based on patches by Laurent Vivier.
360 * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
361 * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
362 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
363 dollar sign to underscore.
364 (ASM_OUTPUT_EXTERNAL): Same.
365 (ASM_OUTPUT_LABELREF): New.
366 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
368 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
369 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
370 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
371 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
373 2008-10-15 Jakub Jelinek <jakub@redhat.com>
375 PR tree-optimization/36881
376 * tree-switch-conversion.c (check_final_bb): For flag_pic, check
377 that each value doesn't need runtime relocations, for !flag_pic
378 check that each value is just a valid initializer constant.
380 2008-10-14 Richard Sandiford <rdsandiford@googlemail.com>
382 * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
383 LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
384 COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
385 Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
387 (REG_CLASS_NAMES): Update accordingly.
388 (REG_CLASS_CONTENTS): Likewise. Use the class name in the comments,
389 rather than an unpredictable descriptive string.
390 * config/mips/mips.c (mips_register_move_cost): Remove comment.
391 (mips_register_move_cost): Check for specific COP*_REGS classes,
392 instead of ALL_COP_AND_GR_REGS.
393 (mips_ira_cover_classes): New function.
394 (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
395 (TARGET_IRA_COVER_CLASSES): Define.
397 2008-10-14 Douglas Gregor <doug.gregor@gmail.com>
400 * tree.c (build_type_attribute_qual_variant): Hash on the
401 unqualified type, and don't overwrite an existing
402 (type_hash_eq): Make the TYPE_NAME of the types significant, to
403 allow distinguishing between wchar_t and its underlying type. This
404 also means that we'll retain a little more typedef information.
406 2008-10-14 Andrey Belevantsev <abel@ispras.ru>
407 Dmitry Melnik <dm@ispras.ru>
408 Dmitry Zhurikhin <zhur@ispras.ru>
409 Alexander Monakov <amonakov@ispras.ru>
410 Maxim Kuvyrkov <maxim@codesourcery.com>
412 * target.h (struct gcc_target): Update prototypes of needs_block_p
414 * haifa-sched.c (create_check_block_twin): Update calls to the above.
415 * sel-sched.c (create_speculation_check): Likewise.
416 * doc/tm.texi: Provide documentation for new target hooks.
418 * config/ia64/ia64.c: Include sel-sched.h. Rewrite speculation hooks.
419 (ia64_gen_spec_insn): Removed.
420 (get_spec_check_gen_function, insn_can_be_in_speculative_p,
421 ia64_gen_spec_check): New static functions.
422 (ia64_alloc_sched_context, ia64_init_sched_context,
423 ia64_set_sched_context, ia64_clear_sched_context,
424 ia64_free_sched_context, ia64_get_insn_spec_ds,
425 ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
426 (ia64_needs_block_p): Change prototype.
427 (ia64_gen_check): Rename to ia64_gen_spec_check.
428 (ia64_adjust_cost): Rename to ia64_adjust_cost_2. Add new parameter
429 into declaration, add special memory dependencies handling.
430 (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
431 TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
432 TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
433 TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
434 Define new target hooks.
435 (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
436 (ia64_optimization_options): Turn on selective scheduling with -O3,
437 disable -fauto-inc-dec. Set mflag_sched_control_spec to true by default
438 with selective scheduling.
439 (ia64_override_options): Initialize align_loops and align_functions
440 to 32 and 64, respectively. Set global selective scheduling flags
441 according to target-dependent flags.
442 (rtx_needs_barrier): Support UNSPEC_LDS_A.
443 (group_barrier_needed): Use new mstop-bit-before-check flag.
445 (dfa_state_size): Make global.
446 (spec_check_no, max_uid): Remove.
447 (mem_ops_in_group, current_cycle): New variables.
448 (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
449 Initialize new variables.
450 (is_load_p, record_memory_reference): New functions.
451 (ia64_dfa_sched_reorder): Lower priority of loads when limit is
453 (ia64_variable_issue): Change use of current_sched_info to
454 sched_deps_info. Update comment. Note if a load or a store is issued.
455 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
456 advance if maximal number of loads or stores was issued on current
458 (scheduled_good_insn): New static helper function.
459 (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
460 a group barrier is needed. Fix vertical spacing. Guard the code
461 doing state transition with last_scheduled_insn check.
462 Mark that a stop bit should be before current insn if there was a
463 cycle advance. Update current_cycle and mem_ops_in_group.
464 (ia64_h_i_d_extended): Change use of current_sched_info to
465 sched_deps_info. Reallocate stops_p by larger chunks.
466 (struct _ia64_sched_context): New structure.
467 (ia64_sched_context_t): New typedef.
468 (ia64_alloc_sched_context, ia64_init_sched_context,
469 ia64_set_sched_context, ia64_clear_sched_context,
470 ia64_free_sched_context): New static functions.
471 (gen_func_t): New typedef.
472 (get_spec_load_gen_function): New function.
473 (SPEC_GEN_EXTEND_OFFSET): Declare.
474 (ia64_set_sched_flags): Check common_sched_info instead of *flags.
475 (get_mode_no_for_insn): Change the condition that prevents use of
476 special hardware registers so it can now handle pseudos.
477 (get_spec_unspec_code): New function.
478 (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
479 ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
480 (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
481 during selective scheduling.
482 (ia64_speculate_insn): Use ds_get_speculation_types when
483 determining whether we need to change the pattern.
484 (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
485 (ia64_spec_check_src_p): Support new speculation/check codes.
486 (struct bundle_state): New field.
487 (issue_nops_and_insn): Initialize it.
488 (insert_bundle_state): Minimize mid-bundle stop bits.
489 (important_for_bundling_p): New function.
490 (get_next_important_insn): Use important_for_bundling_p.
491 (bundling): When shifting TImode from unimportant insns, ignore
492 also group barriers. Assert that best state is found before
493 the backward bundling pass. Print number of mid-bundle stop bits.
494 Minimize mid-bundle stop bits. Check correct calculation of
495 mid-bundle stop bits.
496 (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
497 (final_emit_insn_group_barriers): Emit stop bits before insns starting
499 (sel2_run): New variable.
500 (ia64_reorg): When flag_selective_scheduling2 is set, run the selective
501 scheduling pass instead of schedule_ebbs.
503 * config/ia64/ia64.md (speculable1, speculable2): New attributes.
504 (UNSPEC_LDS_A): New UNSPEC.
505 (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
506 movti_internal, movsf_internal, movdf_internal,
507 movxf_internal): Make visible. Add speculable* attributes.
508 (output_c_nc): New mode attribute.
509 (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
510 mov<mode>_nc, zero_extend<mode>di2_nc,
511 advanced_load_check_nc_<mode>): New insns.
512 (zero_extend*): Add speculable* attributes.
514 * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
515 (msched-stop-bits-after-every-cycle): Likewise.
516 (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
518 (msched-spec-verbose): Remove.
519 (msched-prefer-non-data-spec-insns,
520 msched-prefer-non-control-spec-insns,
521 msched-count-spec-in-critical-path,
522 msel-sched-dont-check-control-spec): Use Target Report Var
523 instead of Common Report Var.
525 * config/ia64/itanium2.md: Remove incorrect bypass.
527 * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
529 2008-10-14 Jakub Jelinek <jakub@redhat.com>
532 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
535 2008-10-14 Ben Elliston <bje@au.ibm.com>
537 * config/rs6000/rs6000.md (cell_micro): Fix formatting.
539 2008-10-13 Joseph Myers <joseph@codesourcery.com>
541 * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
544 2008-10-13 Matthias Klose <doko@ubuntu.com>
546 * config/pa/linux-atomic.c: Work around missing header file
547 for hppa64-linux-gnu targets.
549 2008-10-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
550 Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
551 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
552 Grace Cao <grace_cao@playstation.sony.com>
554 * doc/invoke.texi (-mgen-cell-microcode): Document.
555 (-mwarn-cell-microcode): Document.
556 * cfglayout.c (locator_location): Export.
557 * rtl.h (locator_location): Define prototype.
558 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
560 * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
561 * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
562 (mwarn-cell-microcode): New option.
563 * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
564 (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
565 cell and not already set.
566 Turn off string instructions if not generating cell microcode.
567 (rs6000_final_prescan_insn): New function that warns about microcoded
569 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
570 * config/rs6000/rs6000.md
571 Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
572 the instruction would have been microcoded on the Cell. Set cell_micro
573 to always on unnamed patterns for the string instructions.
574 (cell_micro): Update definition, remove load/store conditional
576 (sign_extend:DI): Define new pattern for non microcoded version.
577 (sign_extend:SI): Likewise.
578 (compare (div:P)): Set cell_micro to not.
579 (andsi3): Define as an expand.
580 (andsi3_mc): New pattern.
581 (andsi3_nomc): New pattern.
582 (andsi3_internal0_nomc): New pattern.
583 (andsi3_internal2): Rename to ...
584 (andsi3_internal2_mc): this and enable iff generating microcode.
585 (andsi3_internal3): Rename to ...
586 (andsi3_internal3_mc): this and enable iff generating microcode.
587 (andsi3_internal4): Enable iif generating microcode.
588 (andsi3_internal5): Rename to ..
589 (andsi3_internal5_mc): this and enable iff generating microcode.
590 (andsi3_internal5_nomc): New pattern.
591 (extzvdi_internal1): Enable iff generating microcode.
592 (extzvdi_internal2): Likewise.
593 (rotlsi3_internal7): Set cell_micro to always if non immediate form.
594 (anddi3): Change to expand.
595 (anddi3_mc): Rename from anddi3.
596 (anddi3_no_mc): New pattern.
597 (anddi3_internal2): Rename to ..
598 (anddi3_internal2_mc): this and enable iff generating microcode.
599 (anddi3_internal2_nomc): New pattern.
600 (anddi3_internal3): Rename to ..
601 (anddi3_internal3_mc): this and enable iff generating microcode.
602 (anddi3_internal3_nomc): New pattern.
603 (movti_string): Set cell_micro to always if TARGET_STRING.
604 (stmsi8): Set cell_micro to always.
610 (stmsi8_power): Likewise.
611 (stmsi7_power): Likewise.
612 (stmsi6_power): Likewise.
613 (stmsi5_power): Likewise.
614 (stmsi4_power): Likewise.
615 (stmsi3_power): Likewise.
616 (movsi_update2): Enable iff generating microcode.
617 (movhi_update3): Likewise.
618 (lmw): Set cell_micro to always.
620 2008-10-13 Richard Sandiford <rdsandiford@googlemail.com>
622 * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
623 * config/s390/s390.c (machine_function): Remove
624 decomposed_literal_pool_addresses_ok_p.
625 (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
626 the difference of two labels.
627 (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
628 (s390_pool_offset): New function.
629 (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
630 (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
632 2008-10-13 Nathan Froyd <froydnj@codesourcery.com>
634 * doc/install.texi (powerpc-*-*): Require binutils 2.15.
635 (powerpc*-*-linux-gnu*): Describe.
636 * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
637 * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
638 config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
639 config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
640 config/rs6000/e500crtres32gpr.asm,
641 config/rs6000/e500crtres64gpr.asm,
642 config/rs6000/e500crtres64gprctr.asm,
643 config/rs6000/e500crtrest32gpr.asm,
644 config/rs6000/e500crtrest64gpr.asm,
645 config/rs6000/e500crtresx32gpr.asm,
646 config/rs6000/e500crtresx64gpr.asm,
647 config/rs6000/e500crtsav32gpr.asm,
648 config/rs6000/e500crtsav64gpr.asm,
649 config/rs6000/e500crtsav64gprctr.asm,
650 config/rs6000/e500crtsavg32gpr.asm,
651 config/rs6000/e500crtsavg64gpr.asm,
652 config/rs6000/e500crtsavg64gprctr.asm: Use it.
653 * config/rs6000/crtsavres.asm: Really remove.
655 2008-10-13 Kai Tietz <kai.tietz@onevision.com>
658 * c-format.c (convert_format_name_to_system_name): Use
659 TARGET_OVERRIDES_FORMAT_INIT.
660 * config.gcc (extra_options): Add for mingw targets mingw.opt.
661 * config/i386/mingw.opt: New.
662 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
663 * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
664 (ms_printf_length_specs): Removed const specifier.
665 * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
666 * doc/invoke.texi (Wno-pedantic-ms-format): New.
668 2008-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
670 * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
671 * doc/install.texi: Bump recommended MPFR to 2.3.2.
673 2008-10-12 Kenneth Zadeck <zadeck@naturalbridge.com>
676 * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
677 sure that ref has valid bb.
679 2008-10-12 Richard Henderson <rth@redhat.com>
682 * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
683 * alias.c (value_addr_p, stack_addr_p): Remove.
684 (nonoverlapping_memrefs_p): Remove IRA special case.
685 * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
686 * emit-rtl.h (set_mem_attrs_for_spill): Declare.
687 * reload1.c (alter_reg): Use it.
689 2008-10-12 Uros Bizjak <ubizjak@gmail.com>
691 * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
692 of registers instead of eax, ebx, ecx and edx. Use for loop
693 and check register for non-zero value before the call
694 to decode_caches_intel.
696 2008-10-11 Kenneth Zadeck <zadeck@naturalbridge.com>
698 PR rtl-optimization/37448
699 * df.h: (df_ref_class): New enum.
700 (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
701 (struct df_ref): Replaced with union df_ref_d.
702 (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
703 New members of df_ref_d union.
704 (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
705 DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
706 DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
707 DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
708 DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
709 DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
710 (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
711 (df_scan_bb_info, df_bb_regno_first_def_find,
712 df_bb_regno_last_def_find, df_find_def, df_find_use,
713 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
714 debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
715 df_ref_create, df_ref_remove, df_compute_accessed_bytes,
716 df_get_artificial_defs, df_get_artificial_uses, union_defs)
717 Replaced struct df_ref * with df_ref.
718 * df-scan.c (df_collection_rec, df_null_ref_rec,
719 df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
720 df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
721 df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
722 df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
723 df_reorganize_refs_by_reg_by_reg,
724 df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
725 df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
726 df_sort_and_compress_refs, df_install_ref, df_install_refs,
727 df_ref_record, df_get_conditional_uses, df_get_call_refs,
728 df_bb_refs_record, df_exit_block_uses_collect,
729 df_record_exit_block_uses, df_reg_chain_mark,
730 df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
731 df_ref * with df_ref.
732 (df_ref_record, df_uses_record, df_ref_create_structure): Added
733 df_ref_class parameter.
734 (df_scan_problem_data): Added new pools for different types of refs.
735 (df_scan_free_internal, df_scan_alloc, df_free_ref,
736 df_ref_create_structure): Processed new ref pools.
737 (df_scan_start_dump): Added counts of refs and insns.
738 (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
739 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
740 df_entry_block_defs_collect, df_exit_block_uses_collect): Added
741 code to pass df_ref_class down to ref creation functions.
742 (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
743 df_reg_chain_mark): Use macros to hide references to df_refs.
744 (df_ref_chain_change_bb): Removed.
745 (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
746 (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
747 Enhanced to understand df_ref union structure.
748 * fwprop.c (local_ref_killed_between_p, use_killed_between,
749 all_uses_available_at, update_df, try_fwprop_subst,
750 forward_propagate_subreg, forward_propagate_and_simplify,
751 forward_propagate_into, fwprop, fwprop_addr): Replaced struct
752 df_ref * with df_ref.
753 (use_killed_between, all_uses_available_at): Use macros to hide
754 references to df_refs.
755 * regstat.c (regstat_bb_compute_ri,
756 regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
758 * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
759 see_handle_relevant_refs, see_analyze_one_def,
760 see_update_relevancy, see_propagate_extensions_to_uses): Replaced
761 struct df_ref * with df_ref.
762 * ra-conflict.c (record_one_conflict, clear_reg_in_live,
763 global_conflicts): Replaced struct df_ref * with df_ref.
764 * ddg.c (create_ddg_dep_from_intra_loop_link,
765 add_cross_iteration_register_deps, build_inter_loop_deps):
766 Replaced struct df_ref * with df_ref.
767 (create_ddg_dep_from_intra_loop_link,
768 add_cross_iteration_register_deps): Use macros to hide references
770 * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
771 df_ref * with df_ref.
772 * df-core.c (df_bb_regno_first_def_find,
773 df_bb_regno_last_def_find, df_find_def, df_find_use,
774 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
775 debug_df_ref): Replaced struct df_ref * with df_ref.
776 (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
777 * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
779 * web.c (union_defs, entry_register, replace_ref, web_main):
780 Replaced struct df_ref * with df_ref.
781 (union_defs, replace_ref): Use macros to hide references to df_refs.
782 * global.c (compute_regs_asm_clobbered, build_insn_chain):
783 Replaced struct df_ref * with df_ref.
784 * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
785 * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets, ):
786 Replaced struct df_ref * with df_ref.
787 * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
788 mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
790 * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
791 * df-byte-scan.c (df_compute_accessed_bytes_extract,
792 df_compute_accessed_bytes_strict_low_part,
793 df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
794 Replaced struct df_ref * with df_ref.
795 (df_compute_accessed_bytes): Use macros to hide references to df_refs.
796 * init-regs.c (initialize_uninitialized_regs): Replaced struct
797 df_ref * with df_ref.
798 * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
799 check_dependency, check_dependencies, record_uses): Replaced
800 struct df_ref * with df_ref.
801 (invariant_for_use, check_dependency): Use macros to hide
802 references to df_refs.
803 * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
804 get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
805 iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
806 (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
807 references to df_refs.
808 * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
810 * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
811 * df-problems.c (df_rd_bb_local_compute_process_def,
812 df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
813 df_chain_unlink_1, df_chain_unlink, df_chain_copy,
814 df_chain_remove_problem, df_chain_create_bb_process_use,
815 df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
816 df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
817 df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
818 df_byte_lr_simulate_artificial_refs_at_top,
819 df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
820 df_note_bb_compute, df_note_add_problem, df_simulate_defs,
821 df_simulate_uses, df_simulate_artificial_refs_at_end,
822 df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
824 (df_chain_dump): Use macros to hide references to df_refs.
825 * config/mips/mips.c (r10k_simplify_address): Replaced struct
826 df_ref * with df_ref.
827 * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
828 mark_artificial_uses, mark_reg_dependencies,
829 byte_dce_process_block): Replaced struct df_ref * with df_ref.
831 2008-10-11 Eric Botcazou <ebotcazou@adacore.com>
833 * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
835 (array_ref_element_size): Likewise.
836 (array_ref_low_bound): Likewise.
837 (array_ref_up_bound): Likewise.
838 * expr.c (contains_packed_reference): Likewise.
839 (array_ref_element_size): Likewise.
840 (array_ref_low_bound): Likewise.
841 (array_ref_up_bound): Likewise.
842 * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
843 with ARRAY_RANGE_REF.
844 (idx_find_step): Likewise.
845 (idx_record_use): Likewise.
846 (strip_offset_1): Likewise.
847 (idx_remove_ssa_names): Likewise.
849 2008-10-11 Uros Bizjak <ubizjak@gmail.com>
850 Andi Kleen <ak@linux.intel.com>
852 * config/i386/cpuid.h (__cpuid_count): New defines.
853 * config/i386/driver-i386.c (struct cache_desc): New structure.
854 (describe_cache): Use struct cache_desc to pass cache descriptions.
855 (detect_l2_cache): Ditto. Rename from decode_l2_cache.
856 (detect_caches_amd): Use struct cache_desc to describe caches.
857 (decode_caches_intel): Use struct cache_desc to pass cache
858 descriptions. Update descriptions to match latest (rev -032,
859 December 2007) CPUID documentation. Do not check valid bit here.
860 Check for Xeon MP value 0x49 problems.
861 (detect_caches_cpuid2): New function, split from detect_caches_intel.
862 Check valid bit before calling decode_caches_intel. Detect number
863 of times to repeat CPUID instruction.
864 (detect_caches_cpuid4): New function.
865 (detect_caches_intel): Depending on max_level, call
866 detect_caches_cpuid2 or detect_caches_cpuid4. Call detect_l2_cache
867 only when other methods fail to provide valid L2 cache description.
869 2008-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
872 * pa.md (call, call_value): Generate an rtx for register r4 and pass
873 it to PIC call patterns.
874 (call_symref_pic): Revise pattern to expose PIC register save. Remove
875 code generation and attributes from pattern. Change peephole2 to split
876 for noreturn case. Revise split pattern for non noreturn case.
877 (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
878 call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
879 * pa.c (attr_length_call): Simplify extraction of call rtx. Add some
882 2008-10-11 David Edelsohn <edelsohn@gnu.org>
884 * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
885 (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
887 (divdf3): Reformat long line.
889 2008-10-11 Michael J. Eager <eager@eagercon.com>
891 * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
893 (rs6000_handle_option): Process -mfpu options.
894 * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
895 (enum fpu_type_t): New.
896 * config/rs6000/rs6000.md (attr fp_type): New. Include xfpu.md.
897 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
899 (floatsisf2): Remove TARGET_SINGLE_FPU condition.
900 (floatdidf2): Add TARGET_SINGLE_FPU condition.
901 * config/rs6000/rs6000.opt (-mfpu): New.
903 * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
904 * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
905 * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
906 * gcc/config.gcc: powerpc-xilinx-eabi target: New.
907 * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
909 2008-10-11 Jakub Jelinek <jakub@redhat.com>
912 * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
913 LO_SUM on Darwin if mode has just one unit.
915 2008-10-10 H.J. Lu <hongjiu.lu@intel.com>
918 * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
919 has been optimized out.
921 2008-10-10 Richard Sandiford <rdsandiford@googlemail.com>
923 * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
924 instead of PIC_DIRECT_ADDR_P.
925 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
926 (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
927 (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
928 (PIC_OFFSET_P): Rename to...
929 (PCREL_SYMOFF_P): ...this.
930 (PIC_DIRECT_ADDR_P): Delete.
931 (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
933 (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
934 single argument. Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
935 UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
936 * config/sh/sh.c (print_operand): Remove CONST handling.
937 (unspec_caller_rtx_p): Rewrite to use split_const and check
938 the operands of UNSPEC bases.
939 (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
940 with (unspec [A B] UNSPEC_SYMOFF).
941 (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
943 (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
944 * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
945 (UNSPEC_EXTRACT_U16): Likewise.
946 (UNSPEC_SYMOFF): Likewise.
947 (UNSPEC_PCREL_SYMOFF): Likewise.
948 (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
950 (movsi_const_16bit): Likewise.
951 (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
952 (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
953 with (unspec [A B] UNSPEC_PCREL_SYMOFF).
954 (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
955 with (unspec [A B] UNSPEC_SYMOFF).
956 (symPLT_label2reg): Replace (minus A (minus B pc)) with
957 (unspec [A B] PCREL_UNSPEC_SYMOFF).
958 * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
959 (Csu): Likewise UNSPEC_EXTRACT_U16.
960 (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
961 (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
963 2008-10-10 Stepan Kasal <skasal@redhat.com>
965 * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
966 for loop strip mining and loop blocking.
968 2008-10-10 Alexandre Oliva <aoliva@redhat.com>
970 * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
971 vary types depending on debug info.
973 2008-10-10 Alexandre Oliva <aoliva@redhat.com>
975 * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
976 before ensuring it's already computed.
978 2008-10-09 Jakub Jelinek <jakub@redhat.com>
980 * rtl.h (locator_eq): New decl.
981 * cfglayout.c (locator_scope): New function.
982 (insn_scope): Use it.
983 (locator_eq): New function.
984 (fixup_reorder_chain): Search for last insn in src bb
985 that has locator set or first insn in dest bb. Use
986 locator_eq instead of == to compare locators.
987 * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
988 * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
989 == to compare locators.
991 * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
993 * gimple-low.c (lower_function_body, lower_gimple_return,
994 lower_builtin_setjmp): Set gimple_block on the newly created stmts.
995 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
996 goto_block on edges if goto_locus is known.
999 * tree.h (get_object_alignment): Declare.
1000 * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
1001 get_object_alignment if needed.
1002 * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand handling
1004 (get_object_alignment): ... here. New function. Try harder to
1005 determine alignment from get_inner_reference returned offset.
1007 2008-10-08 Jakub Jelinek <jakub@redhat.com>
1009 * graphite.c (gloog): Don't call find_unreachable_blocks
1010 before delte_unreachable_blocks.
1012 * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
1013 goto_locus of true_edge into RTL locator.
1015 2008-10-08 Uros Bizjak <ubizjak@gmail.com>
1017 * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
1018 (*jcc_btdi_mask_rex64): Ditto.
1020 (*jcc_btsi_mask): Ditto.
1021 (*jcc_btsi_1): Ditto.
1022 (*jcc_btsi_mask_1): Ditto.
1024 2008-10-08 Paul Brook <paul@codesourcery.com>
1026 * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
1027 compatible profiler (__gnu_mcount_nc).
1028 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1030 2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
1032 * config/i386/i386.c (initial_ix86_tune_features): Add
1033 X86_TUNE_USE_VECTOR_FP_CONVERTS.
1034 * config/i386/i386.h (ix86_tune_indices): Likewise.
1035 (TARGET_USE_VECTOR_FP_CONVERTS): New.
1037 * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
1038 instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
1039 for FP to FP splitters.
1041 2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
1043 * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
1046 2008-10-08 Jakub Jelinek <jakub@redhat.com>
1050 PR rtl-optimization/37341
1051 * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
1052 to ORIG_BB, pass through ORIG_BB recursively.
1053 (cse_condition_code_reg): Adjust caller.
1055 2008-10-08 Kai Tietz <kai.tietz@onevision.com>
1057 * sdbout.c (sdbout_one_type): Treat the value type
1058 CONST_DECL for enumerals.
1060 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1062 * config/i386/i386.md: Remove trailing white spaces.
1064 2008-10-07 Kenneth Zadeck <zadeck@naturalbridge.com>
1066 PR rtl-optimization/37448
1067 * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
1068 (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
1070 (struct output_info) [count]: Renamed total_created and made
1072 (struct output_info) [size]: Renamed total_allocated and made
1074 (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
1075 Properly keep track of desc->size.
1076 (print_statistics, dump_alloc_pool_statistics): Enhance the
1077 printing of statistics to print the number of elements and to use
1080 2008-10-07 Jakub Jelinek <jakub@redhat.com>
1083 * opts.h (CL_SAVE): Move up to flags range.
1084 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
1085 CL_COMMON): Renumber.
1086 (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
1087 * opts.c (common_handle_option): Revert last change.
1089 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1091 * config/i386/i386-protos.h (ix86_schedule): New.
1093 * config/i386/i386.c (ix86_schedule): New.
1094 (override_options): Add schedule to processor_alias_table. Set
1095 ix86_schedule from the schedule field in processor_alias_table.
1096 (ix86_function_specific_save): Save ix86_schedule.
1097 (ix86_function_specific_restore): Restore ix86_schedule.
1099 * config/i386/i386.md (cpu): Map to ix86_schedule instead of
1100 ix86_tune. Add none and remove i386, i486, pentium4, nocona
1103 * config/i386/i386.opt: Add schedule.
1105 * config/i386/ppro.md: Remove generic32.
1107 2008-10-07 Simon Martin <simartin@users.sourceforge.net>
1110 * expr.c (count_type_elements): Handle ERROR_MARK.
1112 2008-10-07 Jakub Jelinek <jakub@redhat.com>
1117 * basic-block.h (struct edge_def): Add goto_block field.
1118 * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
1119 one insn with locus corresponding to edge's goto_locus if !optimize.
1120 * profile.c (branch_prob): Copy edge's goto_block.
1121 * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
1123 (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
1124 locator in between the merged basic blocks if !optimize and needed.
1125 * cfgexpand.c (expand_gimple_cond): Convert goto_block and
1126 goto_locus into RTL locator. For unconditional jump use that
1127 locator for the jump insn.
1128 (expand_gimple_cond): Convert goto_block and goto_locus into
1129 RTL locator for all remaining edges. For unconditional jump
1130 use that locator for the jump insn.
1131 * cfgcleanup.c (try_forward_edges): Avoid the optimization if
1132 there is more than one edge or insn locator along the forwarding
1133 edges and !optimize. If there is just one, set e->goto_locus.
1134 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
1136 (move_block_to_fn): Adjust edge's goto_block.
1138 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1141 * expmed.c (expand_mult): Properly check DImode constant in
1144 2008-10-07 Jakub Jelinek <jakub@redhat.com>
1147 * dwarf2out.c (common_block_die_table): New variable.
1148 (common_block_die_table_hash, common_block_die_table_eq): New
1150 (gen_variable_die): Look up a DW_TAG_common_block die for a particular
1151 COMMON block in the current scope rather than globally. Optimize
1152 DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
1153 DW_OP_addr SYMBOL_REF+off.
1155 2008-10-07 Eric Botcazou <ebotcazou@adacore.com>
1157 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
1158 Return true for non-addressable GIMPLE operands.
1160 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1163 * config/i386/i386.c (initial_ix86_tune_features): Remove
1164 X86_TUNE_USE_BIT_TEST.
1165 * config/i386/i386.h (ix86_tune_indices): Likewise.
1166 (TARGET_USE_BIT_TEST): Removed.
1168 2008-10-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1170 * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
1172 2008-10-06 Adam Nemet <anemet@caviumnetworks.com>
1174 * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
1175 (mul<mode>3_mul3): ... into this new template.
1177 2008-10-06 Aldy Hernandez <aldyh@redhat.com>
1179 * gimplify.c (gimplify_arg): Add location argument. Use it.
1180 (gimplify_call_expr): Pass location to gimplify_arg.
1181 (gimplify_modify_expr_to_memcpy): Same.
1182 (gimplify_modify_expr_to_memset): Same.
1184 2008-10-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
1186 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1187 Update calls to build_unary_op and build_indirect_ref for location
1190 2008-10-06 Aldy Hernandez <aldyh@redhat.com>
1193 * c-decl.c (finish_decl): Pass input_location to build_unary_op.
1194 * c-typeck.c (array_to_pointer_conversion): Pass location to
1196 (function_to_pointer_conversion): Use error_at and warning_at.
1197 (build_indirect_ref): Same.
1198 (build_array_ref): Pass location to build_binary_op.
1199 (parser_build_unary_op): Do not set location after calling
1201 (build_unary_op): Add location argument. Use it throughout. Set
1202 EXPR_LOCATION before returning new tree.
1203 (build_modify_expr): Same.
1204 (build_binary_op): Use location throughout. Set EXPR_LOCATION before
1206 * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
1207 build_indirect_ref, build_modify_expr.
1208 (c_finish_omp_for): Same. Use error_at instead of error.
1209 * c-common.c (c_common_truthvalue_conversion): Pass location to
1211 (warn_for_div_by_zero): Add location argument.
1212 * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
1213 build_unary_op, warn_for_div_by_zero.
1214 * c-parser.c (c_parser_typeof_specifier): Use
1215 protected_set_expr_location.
1216 (c_parser_statement_after_labels): Same.
1217 (c_parser_condition): Same.
1218 (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
1219 (c_parser_conditional_expression): Use protected_set_expr_location.
1220 (c_parser_unary_expression): Pass location to build_indirect_ref.
1221 (c_parser_postfix_expression_after_primary): Pass location to
1222 build_indirect_ref, build_unary_op.
1223 (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
1225 2008-10-06 Joshua Kinard <kumba@gentoo.org>
1227 * doc/invoke.texi: List r1x000 family under the -march MIPS option.
1228 * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
1229 * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
1231 (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
1232 (mips_issue_rate): Handle PROCESSOR_R10000.
1233 * config/mips/mips.md (cpu): Add r10000.
1235 * config/mips/10000.md: New file.
1237 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
1239 * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
1240 * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
1241 * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
1243 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
1245 * config/darwin-protos.h (machopic_function_base_name): Delete.
1246 (machopic_function_base_sym): Likewise.
1247 (machopic_gen_offset): Declare.
1248 * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
1249 (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
1250 * config/darwin.c (machopic_function_base_name): Delete.
1251 (machopic_function_base_sym): Likewise.
1252 (gen_pic_offset): Rename to...
1253 (machopic_gen_offset): ...this and remove the pic_base argument.
1254 Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
1255 is needed. Create an UNSPEC_MACHOPIC_OFFSET if so, and set
1256 crtl->uses_pic_offset_table.
1257 (machopic_indirect_data_reference): Use new machopic_gen_offset
1259 (machopic_legitimize_pic_address): Likewise.
1260 (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
1262 * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
1263 MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
1264 * config/i386/i386.c (output_set_got): Likewise.
1265 (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
1267 (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
1268 (legitimate_address_p): Likewise.
1269 (output_pic_addr_const): Likewise.
1270 (output_addr_const_extra): Likewise.
1271 (ix86_delegitimize_address): Expect darwin_local_data_pic to
1272 match an UNSPEC rather than a MINUS.
1273 * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
1274 (builtin_setjmp_receiver): Use machopic_gen_offset.
1275 * config/i386/predicates.md (pic_symbolic_operand): Handle
1276 UNSPEC_MACHOPIC_OFFSET.
1278 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
1279 Use machopic_gen_offset and machopic_operand_p.
1280 (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
1281 (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
1282 * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
1283 (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
1284 Set crtl->uses_pic_offset_table.
1286 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
1288 * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
1290 * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
1291 * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
1292 * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
1293 (constant_pool_expr_p): Use split_const and check the base.
1294 (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
1296 (legitimate_constant_pool_address_p): Check toc_relative_p
1297 instead of constant_pool_expr_p.
1298 (print_operand_address): Always use output_addr_const for
1299 constant pool addresses.
1300 (rs6000_output_addr_const_extra): New function.
1301 (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
1303 2008-10-06 Vladimir Makarov <vmakarov@redhat.com>
1307 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
1308 (mark_ref_live, mark_ref_dead): Use them.
1309 (def_conflicts_with_inputs_p): Remove.
1310 (mark_early_clobbers): New function.
1311 (process_bb_node_lives): Call preprocess_constraints and
1312 mark_early_clobbers.
1314 * doc/rtx.texi (clobber): Change how RA deals with clobbers.
1316 2008-10-06 Danny Smith <dannysmith@users.sourceforge.net>
1318 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
1319 lib with -mthread switch.
1321 2008-10-05 Dodji Seketeli <dodji@redhat.com>
1324 * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
1325 function in two, making it call a new and reusable
1326 dwarf2out_imported_module_or_decl() that takes the containing
1327 BLOCK of the declaration in argument.
1328 (dwarf2out_imported_module_or_decl_real): New function.
1329 (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
1330 IMPORTED_DECL in account.
1331 * tree.def: Added IMPORTED_DECL node type.
1332 * tree.h: Added accessors for IMPORTED_DECL nodes.
1333 * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
1335 2008-10-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1337 * doc/gimple.texi: Fix some typos, wrap some long lines,
1338 fix some broken wraps with continuations.
1339 * tree-ssa-reassoc.c: Fix comment typos.
1341 2000-10-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1344 * pa.c (legitimize_pic_address): Force function labels to memory in
1347 2008-10-04 Anton Blanchard <anton@samba.org>
1349 * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
1350 (rs6000_split_atomic_op): Same.
1351 (rs6000_split_compare_and_swap): Same.
1352 (rs6000_split_compare_and_swapqhi): Same.
1354 2008-10-04 Richard Guenther <rguenther@suse.de>
1356 * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
1357 instead of pointer equality.
1358 (vn_nary_op_eq): Likewise.
1360 2008-10-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
1362 * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT
1364 (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
1365 TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
1367 2008-10-03 Danny Smith <dannysmith@users.sourceforge.net>
1369 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1370 Revert previous change.
1372 2008-10-03 Tom Tromey <tromey@redhat.com>
1374 * stringpool.c (ggc_alloc_string): Terminate string.
1376 2008-10-03 Jakub Jelinek <jakub@redhat.com>
1378 * gimplify.c (gimplify_function_tree): For -finstrument-functions
1379 use gimple_bind_{,set_}block instead of gimple_{,set_}block.
1380 * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
1383 * gimplify.c (declare_vars): Use gimple_bind_block instead of
1386 2008-10-03 Pascal Obry <obry@adacore.com>
1388 * gcov.c (create_file_names): Properly handle UNIX and DOS
1389 directory separators.
1390 (make_gcov_file_name): Likewise + convert the ':' DOS drive
1391 separator to '~' to ensure clean filenames on Windows.
1393 2008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
1395 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1396 Add a null terminator to the stripped name.
1398 2008-10-02 David Edelsohn <edelsohn@gnu.org>
1400 * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
1401 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1402 (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
1403 TARGET_SINGLE_FLOAT. Revert SCALAR_FLOAT_MODE_P condition.
1404 (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1405 (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
1406 TARGET_SINGLE_FLOAT.
1408 2008-10-02 Daniel Jacobowitz <dan@codesourcery.com>
1410 * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
1412 2008-10-02 Richard Guenther <rguenther@suse.de>
1415 * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
1416 and VECTOR_TYPE recurse with useless_type_conversion_p which
1417 properly handles void pointer conversion.
1419 2008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
1422 * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
1423 (REAL_LIBGCC_SPEC): New. Always include -lgcc.
1425 2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
1427 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1428 Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
1429 ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
1430 they translate to non builtins.
1431 * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
1432 opaque_ftype_opaque. Define builtins __builtin_vec_splats,
1433 __builtin_vec_promote, __builtin_vec_extract, and
1434 __builtin_vec_insert.
1435 * config/rs6000/rs6000.h (enum rs6000_builtins): Add
1436 ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
1437 ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
1438 * config/rs6000/altivec.h (vec_extract): Define
1439 (vec_insert): Define.
1440 (vec_splats): Define.
1441 (vec_promote): Define.
1443 2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
1444 Yukishige Shibata <shibata@rd.scei.sony.co.jp>
1445 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
1447 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
1449 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
1450 prototype. Add new parameter, blk.
1451 Use BLKmode for the MEM if blk is true.
1452 (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
1453 ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
1454 ALTIVEC_BUILTIN_STVRXL.
1455 Update usage of altivec_expand_lv_builtin.
1456 Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
1457 ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
1458 (altivec_init_builtins): If compiling for the Cell, also define the
1460 * config/rs6000/rs6000.h (rs6000_builtins): Define
1461 ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
1462 ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
1463 ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
1464 ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
1465 ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
1466 ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
1467 ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
1468 * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
1469 UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
1470 UNSPEC_STVRX, and UNSPEC_STVRXL.
1471 (altivec_lvlx): New pattern.
1472 (altivec_lvlxl): New pattern.
1473 (altivec_lvrx): New pattern.
1474 (altivec_lvrxl): New pattern.
1475 (altivec_stvlx): New pattern.
1476 (altivec_stvlxl): New pattern.
1477 (altivec_stvrx): New pattern.
1478 (altivec_stvrxl): New pattern.
1479 * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
1480 (vec_lvlxl): Likewise.
1481 (vec_lvrx): Define if PPU is defined.
1482 (vec_lvrxl): Likewise.
1483 (vec_stvlx): Define if PPU is defined.
1484 (vec_stvlxl): Likewise.
1485 (vec_stvrx): Define if PPU is defined.
1486 (vec_stvrxl): Likewise.
1488 2008-10-01 Geert Bosch <bosch@adacore.com>
1490 * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
1492 2008-10-01 Richard Guenther <rguenther@suse.de>
1494 PR tree-optimization/37617
1495 * tree-ssa-pre.c (create_expression_by_pieces): During FRE
1496 do not add to the NEW_SETS.
1498 2008-10-01 Richard Guenther <rguenther@suse.de>
1501 * tree-vrp.c (execute_vrp): If we optimized away the default
1502 case make sure to promote the label that got in place of it
1503 to a default case label.
1505 2008-10-01 Richard Henderson <rth@redhat.com>
1508 * tree-complex.c (set_component_ssa_name): Don't optimize
1509 is_gimple_min_invariant values with ssa_names in abnormal phis.
1511 2008-09-30 Paolo Bonzini <bonzini@gnu.org>
1513 PR tree-optimization/37662
1514 * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
1515 commutative binary operation if they are in the wrong order and
1516 fold_build2 produces non-GIMPLE.
1518 2008-09-30 Jakub Jelinek <jakub@redhat.com>
1520 PR tree-optimization/37662
1521 PR tree-optimization/37663
1522 * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
1523 get_value_range with non-SSA_NAME. Don't assert operands have been
1524 folded, instead just bail out.
1526 2008-09-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
1528 * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
1530 2008-09-30 Richard Guenther <rguenther@suse.de>
1533 * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
1534 build restrict-qualified pointers.
1535 (vectorizable_store): Move alias check later.
1536 (vectorizable_load): Likewise.
1538 2008-09-30 Paolo Bonzini <bonzini@gnu.org>
1540 * c-common.c (empty_if_body_warning): Remove.
1541 * c-common.h (empty_if_body_warning): Remove.
1542 * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
1543 here the -Wempty-body warning for `if' and `else' statements.
1544 * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
1546 2008-09-29 H.J. Lu <hongjiu.lu@intel.com>
1548 * config/i386/i386.opt: Add msse2avx.
1550 * config/i386/linux.h (ASM_SPEC): New. Support -msse2avx.
1551 * config/i386/linux64.h (ASM_SPEC): Likewise.
1553 * doc/invoke.texi: Document -msse2avx.
1555 2008-09-29 Eric Botcazou <ebotcazou@adacore.com>
1557 * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
1559 2008-09-29 Joseph Myers <joseph@codesourcery.com>
1561 * ifcvt.c (noce_emit_store_flag): If using condition from original
1562 jump, reverse it if if_info->cond was reversed.
1564 2008-09-29 Eric Botcazou <ebotcazou@adacore.com>
1566 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1567 non-constant memory if it cannot be forced to constant memory.
1568 Overhaul surrounding code and factor out common condition.
1570 2008-09-29 Jeff Law <law@redhat.com>
1572 * reload1.c (alter_reg): Add missing curly braces.
1574 2008-09-29 Michael J. Eager <eager@eagercon.com>
1576 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
1578 * config/rs6000/rs6000.c (rs6000_override_options): Move
1579 rs6000_init_hard_regno_mode_ok after all options changed.
1580 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
1581 (rs6000_handle_option): Process -msingle-float, -mdouble-float,
1582 -msimple-fpu flags. Add warning messages if single FP not configured.
1583 (rs6000_file_start): Output gnu_attribute for single-float.
1584 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
1585 (rs6000_legitimize_address): Likewise.
1586 (rs6000_legitimize_reload_address): Likewise.
1587 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
1588 TARGET_SINGLE_FLOAT.
1589 (function_arg_advance): Likewise (partial conversion).
1590 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
1591 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
1592 TARGET_SINGLE_FLOAT.
1593 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
1594 (rs6000_emit_prologue): Likewise.
1595 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
1596 TARGET_SINGLE_FLOAT.
1597 (rs6000_libcall_value): Likewise.
1598 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
1599 (TARGET_DOUBLE_FLOAT): New default to 1
1600 (TARGET_SIMPLE_FPU): New default to 0
1601 (TARGET_SINGLE_FPU): New default to 0
1602 (TARGET_SINGLE_FLOAT_MODE): New.
1603 (TARGET_DOUBLE_FLOAT_MODE): New.
1604 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
1605 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
1607 * config/rs6000/rs6000.md (define_mode_iterator): Condition on
1608 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1609 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
1610 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
1611 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
1612 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
1613 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
1614 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
1615 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
1616 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
1617 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
1618 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
1619 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
1620 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
1621 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
1622 cmptf_internal1, *cmptf_internal2): Condition on
1623 TARGET_DOUBLE_FLOAT.
1624 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
1625 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
1626 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
1627 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
1628 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
1629 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
1630 TARGET_SINGLE_FLOAT.
1631 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
1632 * config/rs6000/rs6000.opt (-msingle-float): New.
1633 (-mdouble-float): New.
1634 (-msimple-fpu): New.
1635 * doc/invoke.texi (RS/6000 and PowerPC Options): Add
1636 -msingle-float, -mdouble-float, -msimple-fpu options.
1637 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
1638 _SOFT_DOUBLE for -msingle-float.
1639 * config.gcc: New config for target=powerpc-xilinx-eabi.
1641 2008-09-29 Tobias Grosser <grosser@fim.uni-passau.de>
1643 * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
1644 have exit and entry.
1645 (new_scop): Take entry and exit edge to define new SCoP.
1646 (sd_region_p): New structure used during SCoP detection.
1647 (move_scops): Delete.
1648 (move_sd_regions): New.
1649 (scopdet_info): Change the definition from edges back to basic_blocks.
1650 (scopdet_edge_info): Work on basic_blocks and rename to
1651 scopdet_basic_block_info.
1652 (split_difficult_bb): At the moment removed. We should later
1653 add it at another place.
1654 (build_scops_1): Work on basic_blocks.
1655 (bb_in_sd_region): New.
1656 (find_single_entry_edge): New.
1657 (find_single_exit_edge): New.
1658 (create_single_entry_edge): New.
1659 (sd_region_without_exit): New.
1660 (create_single_exit_edge): New.
1661 (unmark_exit_edges): New.
1662 (mark_exit_edges): New.
1663 (create_sese_edges): New.
1664 (build_graphite_scops): New.
1665 (build_scops): Make SCoPs SESE.
1666 (limit_scops): Use the new functions.
1668 2008-09-29 Hans-Peter Nilsson <hp@axis.com>
1670 * config/cris/cris.h (IRA_COVER_CLASSES): Define.
1672 2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
1675 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
1676 address to a register before taking the lower part.
1678 2008-09-28 Kaz Kojima <kkojima@gcc.gnu.org>
1680 * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
1683 2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
1684 Kaushal Kantawala <kaushal_kantawala@playstation.sony.com>
1687 * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
1688 the newly created variable.
1689 Create a VECTOR_CST of all 1s for vector types.
1691 2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
1694 * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
1696 2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
1698 * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
1699 order to convert between modes.
1700 (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
1702 2008-09-27 Kaz Kojima <kkojima@gcc.gnu.org>
1704 * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
1707 2008-09-26 Vladimir Makarov <vmakarov@redhat.com>
1710 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
1714 2008-09-26 Adam Nemet <anemet@caviumnetworks.com>
1716 * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
1717 ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
1718 them to yield false with MIPS16.
1720 2008-09-26 Jakub Jelinek <jakub@redhat.com>
1723 * dwarf2out.c (tls_mem_loc_descriptor): New function.
1724 (mem_loc_descriptor): Use it for MEM. For PLUS fail if second
1725 mem_loc_descriptor failed. Accept UNSPEC.
1726 (loc_descriptor): Use tls_mem_loc_descriptor for MEM. For PARALLEL
1727 fail if one of the loc_descriptor calls for pieces failed.
1728 (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
1729 as long as they bind locally. For COMPONENT_REF, ARRAY_REF etc. fail
1730 if loc_descriptor_from_tree_1 on offset failed.
1733 * opts.c (common_handle_option): Don't call print_specific_help with
1734 CL_SAVE as first argument.
1736 2008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
1737 Steve Ellcey <sje@cup.hp.com>
1739 * configure: Regenerate for new libtool.
1740 * aclocal.m4: Ditto.
1742 2008-09-26 Pat Haugen <pthaugen@us.ibm.com>
1744 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
1745 alias set on MEM when saving stack pointer.
1746 * config/rs6000/rs6000.md (allocate_stack): Likewise
1748 2008-09-26 Dorit Nuzman <dorit@il.ibm.com>
1750 PR tree-optimization/37574
1751 * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
1752 * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
1753 instead of vector_type for constants. Take computation out of loop.
1754 (vect_get_vec_def_for_operand): Use only vectype for constant case,
1755 and use only vector_type for invariant case.
1756 (get_initial_def_for_reduction): Use vectype instead of vector_type.
1758 2008-09-25 Jakub Jelinek <jakub@redhat.com>
1761 * c-common.c (handle_weakref_attribute): Ignore the attribute unless
1762 the decl is a VAR_DECL or FUNCTION_DECL.
1764 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
1767 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
1768 (mark_ref_live, mark_ref_dead): Use them.
1769 (def_conflicts_with_inputs_p): Remove.
1770 (mark_early_clobbers): New function.
1771 (process_bb_node_lives): Call preprocess_constraints and
1772 mark_early_clobbers.
1774 * doc/rtl.texi (clobber): Change how RA deals with clobbers.
1776 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
1779 * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
1780 (ira_compress_allocno_live_ranges): New prototype.
1782 * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
1783 (coalesced_allocnos_living_at_program_points): New.
1784 (coalesced_allocnos_live_at_points_p,
1785 set_coalesced_allocnos_live_points): New functions.
1786 (coalesce_spill_slots): Rewrite.
1788 * ira-lives.c (remove_some_program_points_and_update_live_ranges,
1789 ira_compress_allocno_live_ranges): New functions.
1791 * ira-build.c (ira_flattening): Call
1792 ira_compress_allocno_live_ranges.
1795 2008-09-25 H.J. Lu <hongjiu.lu@intel.com>
1797 * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
1800 2008-09-25 Richard Sandiford <rdsandiford@googlemail.com>
1802 * combine.c (make_compound_operation): Handle the 'E' format.
1803 (count_rtxs): Likewise.
1804 (update_table_tick): Likewise.
1805 (get_last_value_validate): Likewise.
1807 2008-09-25 Eric Botcazou <ebotcazou@adacore.com>
1809 * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
1811 2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
1813 * matrix-reorg.c (transform_allocation_sites): Initializers
1814 added to avoid the warning.
1816 2008-09-25 Martin Jambor <mjambor@suse.cz>
1818 * cgraph.c (free_nodes): New variable.
1819 (NEXT_FREE_NODE): New macro.
1820 (cgraph_create_node): Reuse nodes from the free list. Do not
1821 update uid if doing so.
1822 (cgraph_remove_node): Add the node to the free list.
1824 2008-09-25 Gerald Pfeifer <gerald@pfeifer.com>
1826 * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1828 2008-09-24 Richard Henderson <rth@redhat.com>
1830 * dwarf2.h (DW_OP_GNU_encoded_addr): New.
1831 * unwind-dw2.c (execute_stack_op): Handle it.
1833 2008-09-24 David Edelsohn <edelsohn@gnu.org>
1836 2008-09-24 Michael J. Eager <eager@eagercon.com>
1838 2008-09-24 Aldy Hernandez <aldyh@redhat.com>
1840 * c-common.c (fname_decl): New location argument.
1841 * c-common.h (fname_decl): Same.
1842 * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
1844 (c_parser_typeof_specifier): Same.
1845 (c_parser_parms_list_declarator): Same.
1846 (c_parser_asm_string_literal): Same.
1847 (c_parser_compound_statement_nostart): Same.
1848 (c_parser_label): Same.
1849 (c_parser_do_statement): Same.
1850 (c_parser_asm_statement): Same.
1851 (c_parser_unary_expression): Same.
1852 (c_parser_sizeof_expression): Same.
1853 (c_parser_postfix_expression): Same.
1854 (c_parser_pragma): Same.
1855 (c_parser_omp_clause_collapse): Same.
1856 (c_parser_omp_clause_num_threads): Same.
1857 (c_parser_omp_clause_schedule): Same.
1858 (c_parser_omp_all_clauses): Same.
1859 (c_parser_omp_sections_scope): Same.
1860 (c_parser_omp_for_loop): Same. Pass condition's location to
1861 c_objc_common_truthvalue_conversion.
1862 (c_parser_enum_specifier): Remove comment.
1864 2008-09-24 Michael J. Eager <eager@eagercon.com>
1866 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
1868 * config/rs6000/rs6000.c (rs6000_override_options): Move
1869 rs6000_init_hard_regno_mode_ok after all options changed.
1870 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
1871 (rs6000_handle_option): Process -msingle-float, -mdouble-float,
1872 -msimple-fpu flags. Add warning messages if single FP not configured.
1873 (rs6000_file_start): Output gnu_attribute for single-float.
1874 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
1875 (rs6000_legitimize_address): Likewise.
1876 (rs6000_legitimize_reload_address): Likewise.
1877 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
1878 TARGET_SINGLE_FLOAT.
1879 (function_arg_advance): Likewise.
1880 (function_arg): Likewise.
1881 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
1882 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
1883 TARGET_SINGLE_FLOAT.
1884 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
1885 (rs6000_emit_prologue): Likewise.
1886 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
1887 TARGET_SINGLE_FLOAT.
1888 (rs6000_libcall_value): Likewise.
1889 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
1890 (TARGET_DOUBLE_FLOAT): New default to 1
1891 (TARGET_SIMPLE_FPU): New default to 0
1892 (TARGET_SINGLE_FPU): New default to 0
1893 (TARGET_SINGLE_FLOAT_MODE): New.
1894 (TARGET_DOUBLE_FLOAT_MODE): New.
1895 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
1896 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
1898 * config/rs6000/rs6000.md (define_mode_iterator): Condition on
1899 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1900 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
1901 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
1902 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
1903 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
1904 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
1905 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
1906 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
1907 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
1908 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
1909 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
1910 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
1911 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
1912 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
1913 cmptf_internal1, *cmptf_internal2): Condition on
1914 TARGET_DOUBLE_FLOAT.
1915 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
1916 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
1917 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
1918 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
1919 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
1920 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
1921 TARGET_SINGLE_FLOAT.
1922 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
1923 * config/rs6000/rs6000.opt (-msingle-float): New.
1924 (-mdouble-float): New.
1925 (-msimple-fpu): New.
1926 * doc/invoke.texi (RS/6000 and PowerPC Options): Add
1927 -msingle-float, -mdouble-float, -msimple-fpu options.
1928 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
1929 _SOFT_DOUBLE for -msingle-float.
1930 * config.gcc: New config for target=powerpc-xilinx-eabi.
1932 2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
1934 * config/sparc/constraints.md: New file.
1935 * config/sparc/sparc.md: Include it.
1936 * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
1937 (sparc_extra_constraint_check): Delete.
1938 * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
1939 (memory_ok_for_ldd): New predicate.
1940 (sparc_extra_constraint_check): Delete.
1941 * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
1942 (CONST_OK_FOR_LETTER_P): Likewise.
1943 (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
1944 (EXTRA_CONSTRAINT): Likewise.
1946 2008-08-23 Steve Ellcey <sje@cup.hp.com>
1948 * regrename.c (do_replace): Copy REG_POINTER value to new reg.
1950 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
1952 * alias.c (find_base_value): Use FIND_BASE_TERM.
1953 * doc/tm.texi (FIND_BASE_TERM): Update documentation.
1955 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
1957 * config/i386/i386.c: Include cselib.h.
1958 (ix86_pic_register_p): New function.
1959 (ix86_delegitimize_address): Use it to check for the PIC register.
1961 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
1963 * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
1964 * config/i386/i386.c (ix86_find_base_term): Don't check for
1965 SYMBOL_REF and LABEL_REF.
1967 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
1969 * config/i386/i386.c (ix86_delegitimize_address): Wrap the
1970 constant PLUS in a CONST.
1972 2008-09-23 Kai Tietz <kai.tietz@onevision.com>
1974 * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
1975 check for sibcall support for w64.
1977 2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
1979 * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
1981 2008-09-23 Aldy Hernandez <aldyh@redhat.com>
1983 * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
1984 parser_build_binary_op.
1985 * c-decl.c (build_enumerator): Pass location to build_binary_op.
1986 * c-typeck.c (build_array_ref): Same.
1987 (parser_build_unary_op): New location argument.
1988 (pointer_diff): Pass location to build_binary_op,
1989 c_objc_common_truthvalue_conversion.
1990 (build_modify_expr): Same.
1991 (build_unary_op): New location argument.
1992 (build_binary_op): New location argument.
1993 (c_objc_common_truthvalue_conversion): Pass location to
1994 c_*common_truthvalue_conversion.
1995 * c-convert.c (convert): Same.
1996 * c-common.c (binary_op_error): New location argument.
1997 (pointer_int_sum): Pass location to build_binary_op.
1998 (c_common_truthvalue_conversion): New location argument.
1999 (warn_for_sign_compare): Same.
2000 * c-common.h: Add location argument to c_common_truthvalue_conversion,
2001 binary_op_error, build_binary_op, warn_for_sign_compare.
2002 * c-parser.c (c_parser_condition): Pass location to
2003 c_*common_truthvalue_conversion.
2004 (c_parser_conditional_expression): Save condition's location and pass
2006 (c_parser_binary_expression): Same, but for the binary operator's
2008 (c_parser_omp_for_loop): Pass location to
2009 c_objc_common_truthvalue_conversion.
2011 2008-09-23 Martin Jambor <mjambor@suse.cz>
2013 * cgraph.c (cgraph_free_edge): Use sizeof(*e).
2014 (cgraph_node_remove_callees): New temporary f. Hold the next item
2016 (cgraph_node_remove_callers): Likewise.
2018 * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
2019 (ipa_node_removal_hook): Likewise.
2021 * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
2022 gimple_call_copy_skip_args and moved to the gimple_call section.
2023 * gimple.c (gimple_copy_call_skip_args): Renamed to
2024 gimple_call_copy_skip_args. Changed al users.
2026 2008-09-22 Vladimir Makarov <vmakarov@redhat.com>
2028 * ira-color.c (start_allocno_priorities): Rename to
2029 setup_allocno_priorities. Use costs and
2030 ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
2031 range lengths. Get rid off doubles.
2032 (ira_fast_allocations): Call start_allocno_priorities.
2034 2008-09-22 David Daney <ddaney@avtrex.com>
2037 * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
2038 register if TARGET_LONG_CALLS.
2040 2008-09-22 Richard Guenther <rguenther@suse.de>
2042 PR tree-optimization/37145
2043 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
2044 value-numbering union accesses with their offset and size only.
2045 (visit_reference_op_load): Fix simplification of inserted conversions.
2046 * tree-ssa-pre.c (find_or_generate_expression): Do not
2047 recursively generate expressions if running FRE.
2049 2008-09-22 Adam Nemet <anemet@caviumnetworks.com>
2051 * config/mips/mips.h (ISA_HAS_BADDU): New macro.
2052 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
2055 2008-09-22 Richard Guenther <rguenther@suse.de>
2057 PR tree-optimization/37145
2058 * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
2059 (phi_translate_1): Constant fold references.
2061 2008-09-22 Ira Rosen <irar@il.ibm.com>
2063 PR tree-optimization/37482
2064 * tree-vectorizer.h (struct _slp_instance): Add new field.
2065 (SLP_INSTANCE_FIRST_LOAD_STMT): New.
2066 (get_earlier_stmt): New function.
2067 * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
2069 (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
2070 * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
2071 asserts that GSI points to the scalar statement being vectorized.
2072 Set new statement location according to GSI.
2073 (vect_schedule_slp_instance): Use GSI of
2074 SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
2076 2008-09-21 Jan Hubicka <jh@suse.cz>
2078 * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
2079 (ipcp_insert_stage): Update dead_nodes bitmap.
2081 2008-09-22 Danny Smith <dannysmith@users.sourceforge.net>
2084 * config/i386/t-cygming (SHLIB_LC): Remove.
2085 (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
2086 * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
2088 2008-09-22 Hans-Peter Nilsson <hp@axis.com>
2092 * final.c (mark_symbol_ref_as_used): New helper function.
2093 (output_operand): Instead of just looking inside MEMs for
2094 SYMBOL_REFs, use new helper function and for_each_rtx.
2095 * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
2096 to after weak-handling. Don't mark decls with TREE_STATIC as weak.
2097 Make head comment more general.
2098 * config/darwin.c (machopic_output_indirection): Handle weak
2099 references here, like in assemble_external.
2101 2008-09-21 Eric Botcazou <ebotcazou@adacore.com>
2103 * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
2104 (sparc_emit_float_lib_cmp): Change return type.
2105 * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
2106 (gen_compare_operator): New function.
2107 (sparc_emit_float_lib_cmp): Return the new operator to be used in
2108 the comparison sequence. Minor tweaks.
2109 * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
2110 that the final operator and the result of sparc_emit_float_lib_cmp
2111 match for software TFmode; use emit_insn in lieu of emit_jump_insn.
2112 (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
2113 buneq, bunge, bunle, bltgt): Assert that the final operator and the
2114 result of sparc_emit_float_lib_cmp match for software TFmode.
2115 (movqicc, movhicc, movsicc, movdicc): Merge into...
2116 (mov<I:mode>cc): ...this.
2117 (movsfcc, movdfcc, movtfcc): Merge into...
2118 (mov<F:mode>cc): ...this.
2119 (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
2121 (mov<I:mode>_cc_v9): ...this.
2122 (movdi_cc_sp64_trunc): Delete.
2123 (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
2124 movdi_cc_reg_sp64): Merge into...
2125 (mov<I:mode>_cc_reg_sp64): ...this.
2126 (movsf_cc_sp64): Rename into...
2127 (movsf_cc_v9): ...this.
2128 (movdf_cc_sp64): Rename into...
2129 (movdf_cc_v9): ...this.
2130 (movtf_cc_hq_sp64): Rename into...
2131 (movtf_cc_hq_v9): ...this.
2132 (movtf_cc_sp64): Rename into...
2133 (movtf_cc_v9): ...this. Adjust for renaming of movdf_cc_sp64.
2135 2008-09-21 Diego Novillo <dnovillo@google.com>
2137 * doc/gccint.texi: Include generic.texi and gimple.texi.
2139 * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
2140 (GIMPLE): Move to gimple.texi.
2141 (Annotations): Remove references to to stmt_ann_t and
2143 (SSA Operands): Rename from 'Statement Operands'.
2144 * doc/generic.texi: New.
2145 * doc/gimple.texi: New.
2146 * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
2147 * Makefile.in (TEXI_GCCINT_FILES):
2148 * gimple.c (gimple_copy_call_skip_args): Rename from
2149 giple_copy_call_skip_args. Update all users.
2150 * doc/gimple.texi (gimple_copy_call_skip_args): Document.
2152 2008-09-21 Ira Rosen <irar@il.ibm.com>
2154 PR tree-optimization/37539
2155 * tree-vect-transform.c (vect_transform_strided_load): Save vector
2156 statement in related statement field only for the first load of the
2157 group of loads with the same data reference.
2159 2008-09-20 Adam Nemet <anemet@caviumnetworks.com>
2161 * config/mips/mips.h (TUNE_OCTEON): New macro.
2162 * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
2163 (mips_multipass_dfa_lookahead): Return 2 for Octeon.
2164 * config/mips/octeon.md: New file.
2165 * config/mips/mips.md: Include octeon.md. Restore
2166 semi-alphabetical order of include files.
2168 2008-09-20 H.J. Lu <hongjiu.lu@intel.com>
2171 * config/i386/i386.md (*jcc_fused_1): Removed.
2172 (*jcc_fused_2): Likewise.
2173 (*jcc_fused_3): Likewise.
2174 (*jcc_fused_4): Likewise.
2176 2008-09-20 Richard Sandiford <rdsandiford@googlemail.com>
2178 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
2179 (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
2180 * target.h (gcc_target): Add ira_cover_classes.
2181 * ira.c: Remove IRA_COVER_CLASSES guards.
2182 (setup_cover_and_important_classes): Use targetm.ira_cover_classes
2183 instead of IRA_COVER_CLASSES.
2184 (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
2185 (setup_class_translate): Likewise.
2186 (setup_reg_class_intersect_union): Likewise.
2187 (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
2188 test of targetm.ira_cover_classes.
2189 * opts.c (decode_options): Use targetm.ira_cover_classes instead
2190 of IRA_COVER_CLASSES.
2191 * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
2192 (TARGET_INITIALIZER): Include it.
2193 * targhooks.h (default_ira_cover_classes): Declare.
2194 * targhooks.c (default_ira_cover_classes): New function.
2196 2008-09-19 Bob Wilson <bob.wilson@acm.org>
2198 * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
2200 2008-09-19 Ian Lance Taylor <iant@google.com>
2202 * varasm.c (narrowing_initializer_constant_valid_p): Return
2203 NULL_TREE if ENDTYPE is not an integer.
2205 2008-09-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2208 * tree-ssa.c (execute_update_addresses_taken): Also update
2209 DECL_GIMPLE_REG_P for vector and complex types.
2211 2008-09-19 Andrew MacLeod <amacleod@redhat.com>
2212 Jan Hubicka <jh@suse.cz>
2215 * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
2216 empty before freeing them.
2217 (find_replaceable_exprs): Move asserts to free_temp_expr_table.
2219 2008-09-18 Bob Wilson <bob.wilson@acm.org>
2221 * configure.ac: Add HAVE_AS_TLS check for Xtensa.
2222 * config/xtensa/predicates.md (tls_symbol_operand): New.
2223 * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
2224 (TARGET_CANNOT_FORCE_MEM): Define.
2225 (xtensa_tls_symbol_p): New.
2226 (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
2227 (xtensa_legitimate_address_p): Disallow constant pool TLS references.
2228 (xtensa_tls_module_base): New.
2229 (xtensa_call_tls_desc): New.
2230 (xtensa_legitimize_tls_address): New.
2231 (xtensa_legitimize_address): Handle TLS symbols.
2232 (xtensa_tls_referenced_p_1): New.
2233 (xtensa_tls_referenced_p): New.
2234 (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
2236 (XTENSA_BUILTIN_THREAD_POINTER): New.
2237 (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
2238 (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
2239 builtin. Add declarations for __builtin_thread_pointer and
2240 __builtin_set_thread_pointer.
2241 (xtensa_fold_builtin): Recognize new builtins.
2242 (xtensa_expand_builtin): Expand new builtins.
2243 * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
2244 (TARGET_THREADPTR): Define.
2245 (HAVE_AS_TLS): Define default value.
2246 (LEGITIMATE_CONSTANT_P): Disallow TLS references.
2247 * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
2248 (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
2249 (UNSPECV_SET_TP): New.
2250 (sym_TPOFF, sym_DTPOFF): New.
2251 (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
2252 * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
2253 * configure: Regenerated.
2255 2008-09-18 H.J. Lu <hongjiu.lu@intel.com>
2258 * config/ia64/ia64.c (ia64_optimization_options): Move
2259 checking and setting flag_schedule_insns_after_reload and
2260 ia64_flag_schedule_insns2 back to ...
2261 (ia64_override_options): Here.
2263 2008-09-18 Andrew Pinski <andrew_pinski@playstation.sony.com>
2266 * loop-doloop.c (doloop_modify): New argument zero_extend_p and
2267 zero extend count after the correction to it is done.
2268 (doloop_optimize): Update call to doloop_modify, don't zero extend
2271 2008-09-18 Martin Jambor <mjambor@suse.cz>
2273 * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
2275 * ipa-prop.c: Correct comments.
2276 * ipa-prop.h: Likewise.
2278 2008-09-18 Jan Hubicka <jh@suse.cz>
2281 * ipa-reference.c (ipa_reference_local_vars_info_d,
2282 ipa_reference_global_vars_info_d,
2283 ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2284 ipa_reference_vars_info_t): Move here from ipa-reference.h
2285 (node_duplication_hook_holder, node_removal_hook_holder): New.
2286 (get_reference_vars_info_from_cgraph): Rename to ...
2287 (get_reference_vars_info): ... this one, use cgraph uids.
2288 (get_local_reference_vars_info, get_global_reference_vars_info):
2289 Use cgraph instead of decl.
2290 (ipa_reference_get_read_local, ipa_reference_get_written_local):
2292 (ipa_reference_get_read_global, ipa_reference_get_not_read_global
2293 ipa_reference_get_written_global,
2294 ipa_reference_get_not_written_global): Use cgraph argument.
2295 (check_call): Simplify avail check.
2296 (scan_stmt_for_static_refs): Update.
2297 (propagate_bits): Update.
2298 (merge_callee_local_info): Remove.
2299 (init_function_info): Use cgraph nodes.
2300 (clean_function_local_data): Break out from ...
2301 (clean_function): ... here.
2302 (copy_local_bitmap, copy_global_bitmap): New functions.
2303 (duplicate_node_data, remove_node_data): New functions.
2304 (generate_summary): Register hooks; use visibility instead of
2306 (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
2307 * ipa-reference.h (ipa_reference_local_vars_info_d,
2308 ipa_reference_global_vars_info_d,
2309 ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2310 ipa_reference_vars_info_t): Move to ipa-reference.c
2311 (ipa_reference_get_read_local, ipa_reference_get_written_local):
2313 (ipa_reference_get_read_global, ipa_reference_get_written_global,
2314 ipa_reference_get_not_read_global,
2315 ipa_reference_get_not_written_global): Update prototype.
2316 * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
2317 (init_state): Remove.
2318 (node_duplication_hook_holder, node_removal_hook_holder): New.
2319 (get_function_state, set_function_state): Use VECtor.
2320 (analyze_function): Check body availability.
2321 (add_new_function): Likewise.
2322 (duplicate_node_data, remove_node_data): New.
2323 (generate_summary): Register hooks; do not care about clones.
2324 (propafate): Do not care about clones; recursive functions are
2326 * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
2327 * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
2328 * edge_duplication_hook_holder, node_duplication_hook_holder): Make
2330 * tree-flow.h (function_ann_d): Remove reference_vars_info.
2331 * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
2332 Update call of ipa-reference accesors.
2334 2008-09-18 Simon Baldwin <simonb@google.com>
2336 * c-opts.c (c_common_handle_option): Add handling for
2337 -Wbuiltin-macro-redefined command line option.
2338 * c.opt: Added builtin-macro-redefined option.
2339 * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
2342 2008-09-18 Richard Guenther <rguenther@suse.de>
2344 PR tree-optimization/37258
2345 * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
2346 and signedness for integral types.
2347 (vn_phi_eq): Require compatible types.
2349 2008-09-18 Jakub Jelinek <jakub@redhat.com>
2352 * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
2353 TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
2355 * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
2356 !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
2357 ggc_free other TREE_LIST nodes from that chain.
2358 * function.c (instantiate_decls): Instantiate also DECL_RTL
2359 of vars in cfun->local_decls, free that list afterwards.
2361 2008-09-18 Eric Botcazou <ebotcazou@adacore.com>
2363 * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
2364 * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
2366 2008-09-18 Andrew MacLeod <amacleod@redhat.com>
2368 * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
2369 * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
2371 2008-09-18 Andrew MacLeod <amacleod@redhat.com>
2373 PR tree-optimization/37102
2374 * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
2375 from a node. Check to see if another PHI is dead.
2376 (eliminate_useless_phis): Rename from eliminate_virtual_phis and
2377 remove real PHIs which have no uses.
2378 (rewrite_out_of_ssa): Call eliminate_useless_phis.
2380 2008-09-18 Richard Guenther <rguenther@suse.de>
2383 * tree-cfg.c (remove_useless_stmts_1): Remove
2384 GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
2386 2008-09-18 Nick Clifton <nickc@redhat.com>
2388 * config/frv/frv.h (IRA_COVER_CLASSES): Define.
2389 (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
2390 to frv_secondary_reload_class.
2391 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2392 * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
2393 (frv_secondary_reload_class): Omit unused parameter.
2394 (frv_secondary_reload): New function. Handle the case when
2395 secondary_reload_class() is called before the reload_(in|out)
2396 _optabs have been initialised.
2397 * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
2399 * config/frv/frv.md: Define an exclusion set between fr550_m0
2402 2008-09-18 Richard Guenther <rguenther@suse.de>
2404 PR tree-optimization/37456
2405 * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
2406 want to insert after ends a BB insert on the single fallthru
2409 2008-09-18 Andreas Krebbel <krebbel1@de.ibm.com>
2411 * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
2412 Mention -march=z9-109, z9-ec and z10.
2414 2008-09-18 Uros Bizjak <ubizjak@gmail.com>
2416 PR rtl-optimization/37544
2417 * regrename.c (maybe_mode_change): Exit early when copy_mode
2418 is narrower than orig_mode and narrower than new_mode.
2420 2008-09-18 Alexander Monakov <amonakov@ispras.ru>
2423 * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
2425 * sched-rgn.c (ref_counts): Remove.
2426 (insn_referenced): New static variable.
2427 (INSN_REF_COUNT): Remove.
2428 (sched_run_compute_dependencies): Use insn_referenced instead of
2430 (add_branch_dependences): Likewise. Delete dead assignment.
2432 2008-09-17 Adam Nemet <anemet@caviumnetworks.com>
2434 * haifa-sched.c (dep_cost_1): Recognize the producer even if the
2435 consumer is an asm. Add comment why this is important.
2436 (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
2437 recog_memoized (insn) < 0" assert. Put ENABLE_CHECKING around it.
2439 2008-09-17 Joseph Myers <joseph@codesourcery.com>
2441 * expr.c (emit_group_store): Do not shift before moving via a
2444 2008-09-17 Eric Botcazou <ebotcazou@adacore.com>
2446 * varasm.c (initializer_constant_valid_p): Forbid view-conversions
2447 from aggregate to non-aggregate type if the bit pattern is not fully
2448 preserved afterwards.
2450 2008-09-17 Richard Guenther <rguenther@suse.de>
2452 * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
2453 (verify_gimple_assign): ... this. Split into ...
2454 (verify_gimple_assign_unary): ... this,
2455 (verify_gimple_assign_binary): ... that,
2456 (verify_gimple_assign_single): ... and this.
2457 (verify_types_in_gimple_stmt): Call verify_gimple_assign.
2458 Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
2459 (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
2460 (verify_types_in_gimple_reference): Be forgiving with
2462 (verify_gimple_phi): Deal with virtual operands.
2464 * tree.def (PREDICT_EXPR): Change to tcc_expression.
2466 2008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
2468 * tree.c (get_callee_fndecl): Don't call the language hook.
2469 * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
2470 * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
2471 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
2473 2008-09-17 Jakub Jelinek <jakub@redhat.com>
2475 * tree.c (protected_set_expr_location): Don't unnecessarily
2476 check for error_mark_node.
2478 2008-09-17 Art Haas <ahaas@impactweather.com>
2480 * ipa-reference.c (analyze_function): Declare step only if
2481 ENABLE_CHECKING is defined.
2483 2008-09-17 Jan Hubicka <jh@suse.cz>
2486 * tree.h (DECL_INLINE): remove.
2487 (DECL_DECLARED_INLINE_P): Update docs.
2488 (DECL_NO_INLINE_WARNING_P): new.
2489 (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
2490 * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
2492 2008-09-17 Jakub Jelinek <jakub@redhat.com>
2493 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2496 * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
2499 2008-09-17 Jan Hubicka <jh@suse.cz>
2501 * ipa-reference.c (ipa_obstack): Remove.
2502 (local_info_obstack, global_info_obstack): New.
2503 (add_static_var): We now handle variables only.
2504 (mark_address_taken, mark_load, mark_store): New functions based on ...
2505 (check_operand): ... remove.
2506 (get_asm_stmt_operands): Rename to ...
2507 (check_asm_memory_clobber): ... this. Look only for memory clobber.
2508 (scan_stmt_for_static_refs): Rewrite.
2509 (scan_op_for_static_refs): Rename to ...
2510 (scan_initializer_for_static_refs): do not look for VAR_DECL
2511 initializers; stop recursion on types and decls.
2512 (ipa_init): Use proper obstacks.
2513 (analyze_variable): Use scan_initializer_for_static_refs.
2514 (init_function_info): Use local obstack.
2515 (analyze_function): Simplify.
2516 (add_new_function): We don't need visited_nodes obstack.
2517 (generate_summary): Use proper obstacks; cleanup after propagation.
2519 2008-09-17 Richard Guenther <rguenther@suse.de>
2522 PR tree-optimization/37491
2523 * alias.c (get_alias_set): Use the canonical type.
2524 * tree-vect-transform.c (vectorizable_store): Use the type of
2525 the lhs for the vector type. Adjust checking.
2526 (vectorizable_load): Adjust checking.
2528 2008-09-16 Jakub Jelinek <jakub@redhat.com>
2529 Adam Nemet <anemet@caviumnetworks.com>
2531 PR rtl-optimization/37483
2532 * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
2533 if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
2534 Rearrange code to better match the original comment. Check
2535 t_unconditional first. Improve comment.
2537 2008-09-16 Jakub Jelinek <jakub@redhat.com>
2540 * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
2541 GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
2544 * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
2545 GIMPLE_TRY if cleanup sequence is empty.
2547 2008-09-16 Andrew Pinski <andrew_pinski@playstation.sony.com>
2550 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
2551 eliminate IV if the cost are the same.
2553 2008-09-16 Richard Guenther <rguenther@suse.de>
2556 * tree-sra.c (sra_build_assignment): Do not call the gimplifier
2559 2008-09-16 Richard Guenther <rguenther@suse.de>
2561 PR tree-optimization/37508
2562 * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
2564 2008-09-15 Kaz Kojima <kkojima@gcc.gnu.org>
2566 * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
2568 2008-09-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
2570 * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
2571 use gen_floatdidf2 directly.
2572 (floatunssidf2): Likewise.
2573 (floatsidf_ppc64_mfpgpr): Remove.
2574 (floatsidf_ppc64): Remove.
2575 (floatunssidf_ppc64): Remove.
2577 2008-09-15 Jakub Jelinek <jakub@redhat.com>
2579 * ira-color.c (finish_cost_update): Free update_cost_queue_elems
2580 rather than update_cost_queue.
2582 * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
2583 in every call starting with the second one, instead of only when
2584 alias_bitmap_obstack.elements != NULL.
2586 * tree-predcom.c (filter_suitable_components): Free all refs in
2587 act->refs vector before calling release_component.
2588 (add_ref_to_chain): Free ref if not adding it to chain->refs.
2590 * tree-data-ref.c (free_subscripts): Free all subscript objects.
2592 * tree-loop-linear.c (linear_transform_loops): Initialize
2593 lambda_obstack only after calling perfect_loop_nest_depth.
2594 Goto free_and_continue instead of just continue for later failures.
2597 * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
2600 * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
2602 2008-09-14 Andreas Schwab <schwab@suse.de>
2604 * tree-call-cdce.c (check_target_format): Accept Motorola formats.
2606 2008-09-14 Jan Hubicka <jh@suse.cz>
2608 * invoke.texi (-fconserve-stack): Document.
2609 * opts.c (decode_options): Handle conserve_stack.
2610 * common.opt (fconvserve_stack): New.
2612 2008-09-14 David Edelsohn <edelsohn@gnu.org>
2614 * config.host: Add x-aix to host_xmake_file.
2615 * config/rs6000/t-aix52: Do not override LDFLAGS.
2616 * config/rs6000/x-aix: New file.
2618 2008-09-14 Andy Hutchinson <hutchinsonandy@aim.com>
2624 * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
2625 is not recognized as a valid register usage. Allow REG_X to be used
2627 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
2628 forces a reload when using a base register.
2630 2008-09-14 Danny Smith <dannysmith@users.sourceforge.net>
2632 * config/i386/cygming-crtend.c (register_frame_ctor): If
2633 DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
2634 directly with atexit.
2635 (deregister_frame_ctor): Rename to ...
2636 (deregister_frame_dtor): Use to call __gcc_deregister_frame
2637 if !DEFAULT_USE_CXA_ATEXIT.
2639 2008-09-13 Jan Hubicka <jh@suse.cz>
2641 * cgraph.c: Include value-prof.h
2642 * Makefile.in (cgraph.o): Add value-prof.h dependency.
2644 2008-09-13 Jan Hubicka <jh@suse.cz>
2647 * tree-profile.c (add_abnormal_goto_call_edges): New function.
2648 (tree_gen_interval_profiler, tree_gen_pow2_profiler,
2649 tree_gen_one_value_profiler, tree_gen_average_profiler,
2650 tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
2652 2008-09-13 Jan Hubicka <jh@suse.cz>
2654 * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
2655 too many bytes on misalligned blocks.
2657 2008-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2659 * doc/cfg.texi: Fix some typos.
2660 * doc/extend.texi: Likewise.
2661 * doc/install.texi: Likewise.
2662 * doc/invoke.texi: Likewise.
2663 * doc/rtl.texi: Likewise.
2664 * doc/tree-ssa.texi: Likewise.
2666 2008-09-13 Richard Guenther <rguenther@suse.de>
2669 * tree-nested.c (finalize_nesting_tree_1): Generate valid
2670 gimple stores for memory rhs.
2672 2008-09-13 H.J. Lu <hongjiu.lu@intel.com>
2674 PR rtl-optimization/37489
2675 * cse.c (fold_rtx): Don't return const_true_rtx for float
2676 compare if FLOAT_STORE_FLAG_VALUE is undefined.
2678 2008-09-13 Jan Hubicka <jh@suse.cz>
2680 PR tree-optimization/37392
2681 * tree-inline.c (remap_gimple_stmt): Do not remap return value.
2683 2008-09-13 Martin Jambor <mjambor@suse.cz>
2684 Jan Hubicka <jh@suse.cz>
2686 * cgraph.c (free_edges): New variable.
2687 (NEXT_FREE_EDGE): New macro.
2688 (cgraph_free_edge): New function.
2689 (cgraph_remove_edge): Call cgraph_remove_edge_1.
2690 (cgraph_node_remove_callees): Likewise.
2691 (cgraph_node_remove_callers): Likewise.
2692 (cgraph_create_edge): Reuse edges from the free list. Do not
2693 update uid if doing so.
2694 (cgraph_remove_*_hook): Add free call.
2696 2008-09-13 Richard Sandiford <rdsandiford@googlemail.com>
2698 * ira-color.c (conflict_allocno_vec): Delete.
2699 (update_cost_queue_elem): New structure.
2700 (update_cost_queue): New variable.
2701 (update_cost_queue_tail): Likewise.
2702 (update_cost_queue_elems): Likewise.
2703 (allocno_update_cost_check): Delete.
2704 (initiate_cost_update): Allocate update_cost_queue_elems
2705 instead of allocno_update_cost_check.
2706 (finish_cost_update): Update the free()s accordingly.
2707 (start_update_cost): New function.
2708 (queue_update_cost): Likewise.
2709 (get_next_update_cost): Likewise.
2710 (update_copy_costs_1): Inline into...
2711 (update_copy_costs): ...here. Use a queue instead of recursive calls.
2712 Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
2713 once we've established they are equal. Don't allocate update
2714 costs if there is nothing to add to them.
2715 (update_conflict_hard_regno_costs): Remove ALLOCNO and
2716 DIVISOR arguments. Use a queue instead of recursive calls;
2717 process all the allocnos in the initial queue, rather than
2719 (assign_hard_reg): Use queue_update_cost instead of
2720 conflict_allocno_vec. Queue coalesced allocnos instead
2721 of calling update_conflict_hard_regno_costs for each one.
2722 Just call update_conflict_hard_regno_costs once for the
2724 (ira_color): Remove conflict_allocno_vec handling.
2726 2008-09-12 Sebastian Pop <sebastian.pop@amd.com>
2728 PR tree-optimization/37484
2729 * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
2730 (save_var_name): Same.
2731 (initialize_cloog_names): Same.
2732 (initialize_cloog_names): Same.
2734 2008-09-12 Sebastian Pop <sebastian.pop@amd.com>
2736 * tree-scalar-evolution.c (set_instantiated_value): Set
2739 2008-09-12 Vladimir Makarov <vmakarov@redhat.com>
2743 * ira-build.c (common_loop_tree_node_dominator): Remove.
2744 (copy_live_ranges_to_removed_store_destinations): New function.
2745 (regno_top_level_allocno_map): Move to top level from ...
2746 (ira_flattening): ... here. Use
2747 copy_live_ranges_to_removed_store_destinations.
2749 * ira-emit.c (generate_edge_moves): Fix a comment.
2751 2008-09-12 Anatoly Sokolov <aesok@post.ru>
2754 * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
2755 scratch register after 'set' pattern.
2757 2008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2759 * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
2760 information passed to mark_reg_pointer.
2761 * explow.c (force_reg): Likewise.
2763 2008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2765 * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
2766 when building for the celledp architecture.
2768 2008-09-12 Richard Guenther <rguenther@suse.de>
2770 * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
2772 2008-09-12 Eric Botcazou <ebotcazou@adacore.com>
2774 PR rtl-optimization/37424
2775 * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
2776 the regnos instead of the addresses.
2778 2008-09-11 Janis Johnson <janis187@us.ibm.com>
2780 * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
2782 2008-09-11 Richard Guenther <rguenther@suse.de>
2784 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
2785 entering the weaker equivalence recording.
2787 * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
2789 2008-09-11 Jeff Law <law@redhat.com>
2791 * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
2792 by assign_stack_local on the IRA path for stack slot sharing
2793 as well as the non-IRA path.
2795 2008-09-11 Uros Bizjak <ubizjak@gmail.com>
2797 * config/i386/i386.h: Fix whitespace issues.
2799 2008-09-11 Martin Jambor <mjambor@suse.cz>
2801 * ipa-prop.h (struct ipa_param_flags): Removed.
2802 (struct ipa_param_descriptor): New structure.
2803 (struct ipa_node_params): ipcp_lattices, param_decls and
2804 param_flags moved to ipa_param_description.
2805 (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
2806 descriptors. Renamed all users.
2807 (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
2808 changed to access descriptors. Renamed all users.
2809 (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
2810 to access descriptors. Renamed all users.
2811 * ipa-cp.c (ipcp_init_cloned_node): Call
2812 ipa_initialize_node_params instead of ipa_count_formal_params and
2813 ipa_create_param_decls_array.
2814 (ipcp_analyze_node): Likewise.
2815 (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
2816 descriptors. Renamed all users.
2817 (ipcp_initialize_node_lattices): Remove allocation.
2818 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
2819 ipa_initialize_node_params instead of ipa_count_formal_params and
2820 ipa_create_param_decls_array.
2821 * ipa-prop.c (ipa_create_param_decls_array): Renamed to
2822 ipa_populate_param_decls, made static, added parameter info,
2823 renamed mt to node, removed allocation, changed to use
2825 (ipa_count_formal_params): Made static, added parameter info,
2827 (ipa_initialize_node_params): New function.
2828 (ipa_check_stmt_modifications): Changed to use descriptors.
2829 (ipa_detect_param_modifications): Removed allocation, changed to
2831 (ipa_note_param_call): Changed to use descriptors.
2832 (ipa_analyze_params_uses): Removed allocation.
2833 (ipa_free_node_params_substructures): Changed to use descriptors.
2834 (ipa_edge_duplication_hook): Use the unused attribute.
2835 (ipa_node_duplication_hook): Use the unused attribute, changed to
2836 use descriptors, changed to duplicate descriptors.
2838 * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
2839 changed all callers. Call ipa_propagate_indirect_call_infos if doing
2840 indirect inlining. Made static.
2841 (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
2842 functions called only once.
2843 (cgraph_decide_recursive_inlining): Don't call
2844 ipa_propagate_indirect_call_infos, pass new_edges to
2845 cgraph_mark_inline_edge instead.
2846 (cgraph_decide_inlining_of_small_functions): Don't call
2847 ipa_propagate_indirect_call_infos, pass new_edges to
2848 cgraph_mark_inline_edge instead.
2849 (cgraph_decide_inlining): Don't call
2850 ipa_propagate_indirect_call_infos.
2851 * ipa-prop.c: Check that vectors are allocated.
2853 * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
2854 iff a new cgraph edges have been created.
2855 (cgraph_decide_inlining): New variable redo_always_inline.
2856 Flattening and always_inlining loop until callgraph stabilizes.
2857 * ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
2858 true iff new cgraph edges have been created.
2859 (propagate_info_to_inlined_callees): Likewise.
2860 (ipa_propagate_indirect_call_infos): Likewise.
2862 2008-09-11 Richard Guenther <rguenther@suse.de>
2864 * tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
2865 (set_prologue_iterations): Likewise.
2866 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
2868 (vect_update_init_of_dr): Likewise.
2869 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
2871 * fold-const.c (fold_unary): Do not generate calculations
2874 2008-09-11 Paolo Bonzini <bonzini@gnu.org>
2876 * dojump.c (do_jump) [BIT_AND_EXPR]: Move below. Fall through to
2877 TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
2878 (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
2880 * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
2882 * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
2883 VRP's simplify_stmt_using_ranges. Do simplify_stmt_using_ranges
2884 before finalizing the changes.
2885 * tree-vrp.c (extract_range_from_binary_expr): Add limited support
2887 (simplify_truth_ops_using_ranges): New.
2888 (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
2889 simplify_cond_using_ranges, simplify_switch_using_ranges): Return
2890 whether a simplification was made.
2891 (simplify_stmt_using_ranges): Ditto, and accept a GSI. For GS_ASSIGN,
2892 use a switch statement and also call simplify_truth_ops_using_ranges.
2894 2008-09-11 Jan Hubicka <jh@suse.cz>
2896 * ggc-common.c (loc_array): Make static.
2897 * dce.c (rest_of_handle_ud_dce): Free worklist.
2899 2008-09-11 Jan Hubicka <jh@suse.cz>
2901 * cgraph.c (cgraph_release_function_body): Plug memory leak on
2902 ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
2903 function so we are sure we do not dangle it forever.
2904 * function.c (outer_function_chain, find_function_data): Remove.
2905 (function_context_stack): New.
2906 (push_function_context, pop_function_context): Update.
2907 * function.h (struct function): Remove pointer outer.
2908 (outer_function_chain, find_function_data): Remove.
2909 * stmt.c (force_label_rtx): Remove dead call of find_function_data.
2911 2008-09-11 Jan Hubicka <jh@suse.cz>
2914 * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
2916 2008-09-11 Jan Hubicka <jh@suse.cz>
2918 * tree-ssa-pre.c (phi_translate_1): Fix memory leak
2920 2008-09-11 Jan Hubicka <jh@suse.cz>
2922 * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
2923 (free_var_map_entry): New function.
2924 (redirect_edge_var_map_destroy): Use it.
2926 2008-09-11 Jan Hubicka <jh@suse.cz>
2929 * tree-inline.c (add_lexical_block): Replace with ...
2930 (prepend_lexical_block): ... prepend at begginig.
2931 (remap_blocks): Use it and reverse later.
2932 (expand_call_inline): Use prepend_lexical_block.
2934 2008-09-11 Jan Hubicka <jh@suse.cz>
2936 * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
2938 2008-09-11 Jan Hubicka <jh@suse.cz>
2940 * function.c (free_after_compilation): Call insn_locators_free.
2941 * cfglayout.c (insn_locators_free): New function.
2942 * rtl.h (insn_locators_free): Declare.
2944 2008-09-11 Jan Hubicka <jh@suse.cz>
2946 * ifcvt.c (check_cond_move_block): Make regs argument pointer to
2948 (cond_move_process_if_block): Update call.
2950 2008-09-11 Jan Hubicka <jh@suse.cz>
2952 * toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
2953 * vec.c: Include hashtab.h
2954 (vec_descriptor, ptr_hash_entry): New structures.
2955 (vec_desc_hash, vec_ptr_map): New static variables.
2956 (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
2957 register_overhead, free_overhead, vec_heap_free): New functions.
2958 (vec_gc_o_reserve_1): ggc_free when resizing to 0.
2959 (vec_heap_o_reserve_1): free when resizing to 0; add statistics.
2960 (cmp_statistic, add_statistics, dump_vec_loc_statistics):
2963 2008-09-11 Ira Rosen <irar@il.ibm.com>
2965 PR tree-optimization/37474
2966 * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
2967 length of load permutation.
2969 2008-09-11 Andreas Schwab <schwab@suse.de>
2971 * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
2973 2008-09-11 Jakub Jelinek <jakub@redhat.com>
2976 * expmed.c (extract_low_bits): Avoid creating invalid subregs.
2977 * dse.c (find_shift_sequence): Use extract_low_bits instead of
2978 simplify_gen_subreg.
2980 2008-09-11 Ira Rosen <irar@il.ibm.com>
2982 * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
2985 2008-09-10 Jakub Jelinek <jakub@redhat.com>
2988 * gimplify.c (gimplify_body): Call default_rtl_profile.
2991 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
2992 instead of tok->val.node if not expanding to something else. Handle
2993 intervening CPP_PADDING tokens.
2994 (altivec_categorize_keyword): Remove unneeded comparisons.
2996 2008-09-10 Richard Guenther <rguenther@suse.de>
2998 * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
3000 2008-09-10 Richard Guenther <rguenther@suse.de>
3003 * tree-inline.c (insert_init_stmt): Make sure to not
3004 insert invalid gimple stores.
3006 2008-09-10 Sebastian Pop <sebastian.pop@amd.com>
3008 PR tree-optimization/37388
3009 * toplev.c (process_options): Fail and warn when graphite
3010 flags are used, but the compiler has not been configured
3011 with graphite libraries.
3012 * graphite.c (graphite_transform_loops): Remove printfs
3013 to dump_file for the case when graphite is not available.
3015 2008-09-10 H.J. Lu <hongjiu.lu@intel.com>
3018 * config/i386/i386.c (ix86_expand_vector_init_interleave): Force
3019 the even element into register.
3020 (ix86_expand_vector_init_general): Don't use
3021 ix86_expand_vector_init_interleave on V16QImode and V8HImode
3022 if we can't move from GPR to SSE register directly.
3024 2008-09-10 Bernd Schmidt <bernd.schmidt@analog.com>
3026 * config/bfin/bfin.c (workaround_speculation): Correct algorithm to
3027 not lose track of the number of NOPs needed. Number of NOPs needed
3028 for sync vs. loads workaround was switched; corrected. Run second
3029 pass for all workarounds. No NOPs needed after call insns. Change
3030 second pass to use find_next_insn_start and find_load helpers in order
3031 to properly detect parallel insns.
3032 * config/bfin/bfin.md (cbranch_with_nops): Increase length.
3034 2008-09-10 Jan Hubicka <jh@suse.cz>
3036 * value-prof.c (gimple_ic): Fix tuplification bug.
3037 * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
3040 2008-09-10 Jakub Jelinek <jakub@redhat.com>
3042 PR tree-optimization/37353
3043 * tree-call-cdce.c (cond_dead_built_in_calls): Remove.
3044 (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
3045 calls instead of cond_dead_built_in_calls.
3046 (tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
3047 initalize the vector only before adding first entry. Use VEC_safe_push
3048 instead of VEC_quick_push. Pass cond_dead_built_in_calls to
3049 shrink_wrap_conditional_dead_built_in_calls call.
3051 2008-09-10 Ira Rosen <irar@il.ibm.com>
3053 PR tree-optimization/37385
3054 * tree-vect-transform.c (vect_create_data_ref_ptr): Add a new
3055 argument, and use it as a vector type if not NULL.
3056 (vectorizable_store): Call vect_create_data_ref_ptr with the type of
3058 (vect_setup_realignment): Call vect_create_data_ref_ptr with
3059 additional argument.
3060 (vectorizable_load): Likewise.
3062 2008-09-10 Jakub Jelinek <jakub@redhat.com>
3064 * config/i386/i386.md (SWI32): New mode iterator.
3065 (jcc_fused_1, jcc_fused_2, jcc_fused_3, jcc_fused_4): Use it instead
3068 2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
3070 PR rtl-optimization/37435
3071 * caller-save.c (insert_restore, insert_save): Check the mode by
3074 2008-09-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3077 * dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for
3079 (dw2_output_indirect_constant_1): Use unstripped name in symbol
3082 2008-09-09 Sandra Loosemore <sandra@codesourcery.com>
3084 * doc/invoke.texi (ARM Options): Correct errors in discussion
3085 of -mfloat-abi, -mhard-float, and -msoft-float.
3087 2008-09-09 Jakub Jelinek <jakub@redhat.com>
3088 Jan Hubicka <jh@suse.cz>
3091 * tree-inline.c (copy_bb): Insert stmt into copy_basic_block before
3092 calling gimple_regimplify_operands on it. Iterate over all newly
3093 added statements, not just the last one.
3094 (insert_init_stmt): Insert stmt into seq first, then call
3095 gimple_regimplify_operands on it. Don't create new gimplification
3096 context, nor find referenced vars.
3098 2008-09-09 Jakub Jelinek <jakub@redhat.com>
3101 * ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument
3102 to pointer to vector pointer.
3103 * ipa-prop.c (ipa_propagate_indirect_call_infos,
3104 propagate_info_to_inlined_callees): Likewise.
3105 (update_call_notes_after_inlining): Likewise. Push new indirect edge
3106 to *new_edges instead of new_edges. Reread IPA_EDGE_REF after
3107 ipa_check_create_edge_args.
3108 * ipa-inline.c (cgraph_decide_recursive_inlining): Change last
3109 argument to pointer to vector pointer.
3110 (cgraph_decide_inlining_of_small_function): Adjust
3111 cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos
3115 * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
3116 optimizing for size, not speed.
3118 PR rtl-optimization/37408
3119 * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
3120 if parm is promoted.
3122 2008-09-09 Sebastian Pop <sebastian.pop@amd.com>
3124 PR tree-optimization/37375
3125 * tree-scalar-evolution.c (scev_info_str): Add field
3127 (new_scev_info_str, eq_scev_info, find_var_scev_info,
3128 set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
3129 set_instantiated_value): Pass instantiated_below.
3130 (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls
3132 (instantiate_scev_1, instantiate_scev): Pass a basic block above which
3133 the definitions are not instantiated.
3135 * tree-scalar-evolution.h (instantiate_scev): Update declaration.
3136 (block_before_loop): New.
3137 * tree-data-ref.c (dr_analyze_indices): Update uses of
3139 * graphite.c (block_before_scop): New.
3140 (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
3141 basic block, not a loop for determining the parameters.
3142 (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
3144 (idx_record_params, find_params_in_bb, find_scop_parameters,
3145 build_loop_iteration_domains, add_conditions_to_domain): Update calls
3146 to instantiate_scev.
3148 * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
3150 2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
3154 * ira-build.c (ira_create_allocno): Setup frequency to 0.
3156 * ira-color.c (update_conflict_hard_regno_costs): Remove assert.
3157 Check zero freq and increase if necessary.
3159 2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
3161 * ira-conflicts.c (process_regs_for_copy): Check that the hard
3162 regno is in the right range. Add comments.
3164 2008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3166 * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
3168 * mips-tfile.c (copy_object): Cast alloca result to int *.
3169 * mips-tdump.c (print_symbol): Cast xmalloc return values to
3171 Rename class to sclass.
3172 (read_tfile): Cast read_seek return values to proper types.
3173 Cast xcalloc return value to proper type.
3175 2008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3177 * config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ...
3178 * config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here.
3179 * config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here.
3181 2008-09-09 Jan Hubicka <jh@suse.cz>
3183 * profile.c (is_edge_inconsistent): Add debug output; ignore
3184 negative count on fake edges.
3185 (is_inconsistent): Add debug output.
3187 2008-09-09 Andrey Belevantsev <abel@ispras.ru>
3189 * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
3191 (choose_ready): When first insn is chosen from the ready list, also
3194 2008-09-09 Andrey Belevantsev <abel@ispras.ru>
3196 PR rtl-optimization/37360
3197 * haifa-sched.c (max_issue): Do not assert that we never issue more
3198 insns than issue_rate. Add comment.
3200 2008-09-09 Richard Guenther <rguenther@suse.de>
3202 * tree-cfg.c (verify_types_in_gimple_op): Remove.
3203 (verify_types_in_gimple_call): Rename to ...
3204 (verify_gimple_call): ... this. Enhance.
3205 (verify_types_in_gimple_cond): Remove.
3206 (verify_gimple_comparison): New function ...
3207 (verify_types_in_gimple_assign): ... split out from here.
3208 (verify_types_in_gimple_return): Rename to ...
3209 (verify_gimple_return): ... this. Enhance.
3210 (verify_types_in_gimple_switch): Rename to ...
3211 (verify_gimple_switch): ... this. Enhance.
3212 (verify_gimple_goto): New function.
3213 (verify_types_in_gimple_phi): Rename to ...
3214 (verify_gimple_phi): ... this. Enhance.
3215 (verify_types_in_gimple_stmt): Adjust calls to helper functions.
3216 Fold in single-statement cases from verify_types_in_gimple_seq_2.
3217 (verify_types_in_gimple_seq_2): Remove cases handled in
3218 verify_types_in_gimple_stmt.
3220 2008-09-09 Bernd Schmidt <bernd.schmidt@analog.com>
3222 * config/bfin/bfin.c (n_regs_to_save): New static variable.
3223 (push_multiple_operation, pop_multiple_operation): Set it.
3224 (workaround_rts_anomaly): New function.
3225 (workaround_speculation): New function, broken out of bfin_reorg.
3226 (bfin_reorg): Call the new functions.
3228 2008-09-09 Richard Guenther <rguenther@suse.de>
3232 * gimplify.c (gimplify_conversion): Change conversions of
3233 non-register type to VIEW_CONVERT_EXPRs.
3234 (gimplify_addr_expr): If we need to make the operand
3235 addressable make sure to use a properly initialized
3236 temporary for that so it gets a valid gimple store.
3238 2008-09-09 Aldy Hernandez <aldyh@redhat.com>
3240 * function.h (struct function): Add function_start_locus.
3241 * cfgexpand.c (gimple_expand_cfg): Use it.
3242 * c-parser.c (c_parser_declaration_or_fndef): Set it.
3244 2008-09-09 Richard Guenther <rguenther@suse.de>
3246 PR tree-optimization/37433
3247 * tree-ssa-ccp.c (ccp_fold): Properly guard folding of
3250 2008-09-09 Richard Guenther <rguenther@suse.de>
3252 PR tree-optimization/37387
3253 * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
3254 and bits to a common type.
3256 2008-09-09 Nick Clifton <nickc@redhat.com>
3258 * config/v850/v850.md (return): Restore frame size restriction.
3260 2008-09-09 Paolo Bonzini <bonzini@gnu.org>
3262 * c-common.c (c_expand_decl): Remove.
3263 * c-common.h (anon_aggr_type_p): Remove prototype.
3264 (DECL_ANON_UNION_ELEMS): Remove.
3265 * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
3266 * c-decl.c (anon_aggr_type_p): Remove.
3267 * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
3268 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
3269 * langhooks.h (struct lang_hooks): Remove expand_decl.
3270 * langhooks.c (lhd_expand_decl): Remove.
3271 * stmt.c (expand_anon_union_decl): Remove.
3272 * tree.h (expand_anon_union_decl): Remove prototype.
3274 2008-08-09 Andy Hutchinson <hutchinsonandy@aim.com>
3277 * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
3279 * config/avr/avr.md (QISI) : Define mode iterator.
3280 (negated_tst<mode>) : Redefine as split using mode macro.
3281 (reversed_tstqi): Define insn as reversed compare with zero.
3282 (reversed_tsthi): Ditto.
3283 (reversed_tstsi): Ditto.
3285 2008-09-08 Jakub Jelinek <jakub@redhat.com>
3288 * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
3289 call stmt by new_call, clear gimple_bb on stmt after gsi_replace.
3292 * predict.c (optimize_function_for_size_p): Don't segfault if
3294 * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
3295 tree_swap_operands_p): Don't test cfun != NULL before calling
3296 optimize_function_for_s*_p.
3298 2008-09-08 Eric Botcazou <ebotcazou@adacore.com>
3300 * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
3303 2008-09-08 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
3305 * crx/crx.h (IRA_COVER_CLASSES): Define.
3307 2008-09-08 Jakub Jelinek <jakub@redhat.com>
3310 * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
3311 even when a stmt has been gimple_modified_p, but after fold_stmt is
3312 not any longer. Remove unneeded may_have_exposed_new_symbols
3315 2008-09-08 Richard Guenther <rguenther@suse.de>
3317 PR tree-optimization/37421
3318 * tree-ssa-sccvn.c (visit_copy): Make sure to fully
3321 2008-09-08 Jakub Jelinek <jakub@redhat.com>
3324 * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
3326 2008-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3329 * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
3330 * pa-hpux10.h (LINK_SPEC): Likewise.
3331 * pa-hpux11.h (LINK_SPEC): Likewise.
3333 2008-09-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3335 * pa32-regs.h (IRA_COVER_CLASSES): Define.
3336 * pa64-regs.h (IRA_COVER_CLASSES): Define.
3338 2008-09-07 Helge Deller <deller@gmx.de>
3340 * pa/linux-atomic.c: New file.
3341 * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
3342 * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
3344 2008-09-07 Richard Guenther <rguenther@suse.de>
3345 Ira Rosen <irar@il.ibm.com>
3347 PR tree-optimization/36630
3348 * tree-vect-transform.c (vect_update_ivs_after_vectorizer):
3349 Call STRIP_NOPS before calling evolution_part_in_loop_num.
3351 2008-09-07 Dorit Nuzman <dorit@il.ibm.com>
3352 Ira Rosen <irar@il.ibm.com>
3354 PR tree-optimization/35642
3355 * config/rs6000/altivec.md (mulv8hi3): Implement.
3357 2008-09-06 Jeff Law <law@redhat.com>
3359 * h8300/h8300.h (IRA_COVER_CLASSES): Define.
3361 2008-09-06 Jan Hubicka <jh@suse.cz>
3363 PR tree-optimization/14703
3364 * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
3366 * passes.c (init_optimization_passes): Recompute inline parameters.
3368 2008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
3370 * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
3373 2008-09-06 Richard Sandiford <rdsandiford@goolemail.com>
3374 Peter Fuerst <post@pfrst.de>
3376 * doc/invoke.texi: Document -mr10k-cache-barrier=.
3377 * doc/extend.texi: Document __builtin_mips_cache.
3378 * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
3379 * config/mips/mips.opt (mr10k-cache-barrier=): New option.
3380 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
3381 __GCC_HAVE_BUILTIN_MIPS_CACHE.
3382 (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
3383 * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
3384 (set_push_mips_isas): New variable.
3385 (mips_r10k_cache_barrier): New variable.
3386 (cache): New availability predicate.
3387 (mips_builtins): Add an entry for __builtin_mips_cache.
3388 (mips_build_cvpointer_type): New function.
3389 (MIPS_ATYPE_CVPOINTER): New macro.
3390 (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
3392 (r10k_simplified_address_p, r10k_simplify_address)
3393 (r10k_uncached_address_p, r10k_safe_address_p)
3394 (r10k_needs_protection_p_1, r10k_needs_protection_p_store)
3395 (r10k_needs_protection_p_call, r10k_needs_protection_p)
3396 (r10k_insert_cache_barriers): New functions.
3397 (mips_reorg_process_insns): Delete cache barriers after a
3398 branch-likely instruction.
3399 (mips_reorg): Call r10k_insert_cache_barriers.
3400 (mips_handle_option): Handle OPT_mr10k_cache_barrier_.
3401 * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
3402 (UNSPEC_R10K_CACHE_BARRIER): Likewise.
3403 (mips_cache, r10k_cache_barrier): New define_insns.
3405 2008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
3407 * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
3408 * ira-color.c (setup_allocno_left_conflicts_num): Use
3409 hard_reg_set_equal_p instead of a comparison with
3410 ira_zero_hard_reg_set.
3411 * ira.c (setup_reg_subclasses): Likewise.
3412 (setup_cover_and_important_classes): Likewise.
3413 (setup_class_translate): Likewise.
3414 (setup_reg_class_intersect_union): Likewise.
3415 (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
3416 (ira_init_once): Don't initialize them.
3418 2008-09-05 Vladimir Makarov <vmakarov@redhat.com>
3420 * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
3422 2008-09-05 Vladimir Makarov <vmakarov@redhat.com>
3424 * ira-color.c (ira_fast_allocation): Permit global allocno allocation.
3426 2008-09-05 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3428 Improved branch hints, safe hints, and scheduling.
3430 * haifa-sched.c (sched_emit_insn) : Define.
3431 * sched-int.h (sched_emit_insn) : Add prototype.
3432 * doc/invoke.texi (-mdual-nops, -mhint-max-nops,
3433 -mhint-max-distance -msafe-hints) : Document.
3434 * config/spu/spu.c (spu_flag_var_tracking): New.
3435 (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
3436 TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
3437 TARGET_ASM_FILE_START): Define.
3438 (TARGET_SCHED_ADJUST_PRIORITY): Remove.
3439 (STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
3440 (spu_emit_branch_hint): Add blocks argument.
3441 (insert_branch_hints, insert_nops): Remove.
3442 (pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
3443 uses_ls_unit, spu_sched_init_global, spu_sched_init,
3444 spu_sched_reorder, asm_file_start): New functions.
3445 (clock_var, spu_sched_length, pipe0_clock,
3446 pipe1_clock, prev_clock_var, prev_priority,
3447 spu_ls_first, prev_ls_clock): New static variables.
3448 * config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
3449 * config/spu.md (iprefetch): Add operand, make it clobber MEM.
3450 (nopn_nv): Add a non-volatile version of nop.
3451 * config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
3452 -mhint-max-distance, -msafe-hints): New options.
3454 2008-09-05 Janis Johnson <janis187@us.ibm.com>
3455 Samuel Tardieu <sam@rfc1149.net>
3457 * opts.c (decode_options): Combine nested if statements.
3460 * opts.c (decode_options): Handle more relationships among
3461 unit-at-a-time, toplevel-reorder, and section-anchors.
3463 2008-09-05 David Daney <ddaney@avtrex.com>
3465 * doc/install.texi (--enable-reduced-reflection): Document new option.
3467 2008-09-05 Bob Wilson <bob.wilson@acm.org>
3469 * config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use
3471 (constantpool_operand): New.
3472 (move_operand): Disallow sub-word modes for the constant pool.
3473 * config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define.
3474 (xtensa_secondary_reload_class): Replace with....
3475 (xtensa_secondary_reload): this function. Remove SIGN_EXTEND check.
3476 Set icode for sub-word reloads from the constant pool.
3477 * config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete.
3478 (SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
3479 * config/xtensa/xtensa.md (reload<mode>_literal): New.
3480 * config/xtensa/xtensa-protos.h: Update prototypes.
3482 2008-09-05 Joseph Myers <joseph@codesourcery.com>
3484 * config/mips/mips.h (enum reg_class): Add FRAME_REGS.
3485 (REG_CLASS_NAMES): Update.
3486 (REG_CLASS_CONTENTS): Update.
3487 * config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
3488 of ALL_REGS for regs 77 and 78.
3489 * function.c (instantiate_virtual_regs_in_insn): Assert that
3490 return value of simplify_gen_subreg is not NULL.
3492 2008-09-05 Paolo Bonzini <bonzini@gnu.org>
3494 * emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
3495 (gen_rtvec_v): Fix coding standards.
3497 2008-09-04 Jan Hubicka <jh@suse.cz>
3499 * i386.c (decide_alg): Be more conservative about optimizing for size.
3501 2008-09-04 Ian Lance Taylor <iant@google.com>
3503 * varasm.c (narrowing_initializer_constant_valid_p): New
3505 (initializer_constant_valid_p): Call it.
3507 2008-09-04 Jeff Law <law@redhat.com>
3509 * fold-const.c (native_encode_real): Fix computation of WORDS.
3510 (native_interpret_real): Likewise.
3512 2008-09-04 Janis Johnson <janis187@us.ibm.com>
3514 * config/rs6000/t-rs6000: Remove target gt-rs6000.h.
3516 2008-09-04 Vladimir Makarov <vmakarov@redhat.com>
3518 * ira-conflicts.c (process_regs_for_copy): Check insn to check
3519 that the cost is already taken into account in ira-costs.c
3521 * ira-int.h (ira_debug_copy, ira_debug_copies): New.
3523 * ira-build.c (print_copy, print_copies, ira_debug_copy,
3524 ira_debug_copies): New.
3525 (ira_bulid): Call print_copies.
3527 * doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
3529 2008-09-04 Samuel Tardieu <sam@rfc1149.net>
3532 * config/rs6000/rs6000.c (optimization_options): Remove check of
3533 flag_toplevel_order.
3535 2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
3537 * config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro.
3538 * config/mips/mips.c (mips_expand_scc): Also expand seq and sne if
3539 second operand is a reg_imm10_operand.
3540 * config/mips/mips.md (*seq_<GPR:mode><GPR2:mode>_seq,
3541 *sne_<GPR:mode><GPR2:mode>_sne): New patterns.
3542 (*seq_<GPR:mode><GPR2:mode>): Rename to
3543 *seq_zero_<GPR:mode><GPR2:mode>. Don't match if
3545 (*seq_<GPR:mode><GPR2:mode>_mips16): Rename to
3546 *seq_zero_<GPR:mode><GPR2:mode>_mip16. Don't match if
3548 (*sne_<GPR:mode><GPR2:mode>): Rename to
3549 *sne_zero_<GPR:mode><GPR2:mode>. Don't match if
3552 2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
3554 * config/mips/mips.h (ISA_HAS_EXTS): New macro.
3555 * config/mips/mips.md (*ashr_trunc<mode>): Name the pattern
3556 combining an arithmetic right shift by more than 31 and a
3557 trunction. Don't match for out-of-range shift amounts. Set
3558 attribute mode to <MODE>.
3559 (*lshr32_trunc<mode>): Name the pattern combining a logical right
3560 shift by 32 and and a truncation. Set attribute mode to <MODE>.
3561 (*<optab>_trunc<mode>_exts): New pattern for truncated right
3562 shifts by less than 32.
3563 (extv): Change predicate on first operand to accept registers.
3564 Change predicate of the other operands from immediate_operand to
3565 const_int_operand. Expand exts when source is a register.
3566 (extzv): Change predicate of the constant operands from
3567 immediate_operand to const_int_operand.
3568 (extzv<mode>): Change predicate of the constant operands from
3569 immediate_operand to const_int_operand and no constraint. Also
3571 (*extzv_trunc<mode>_exts): New pattern.
3573 2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
3575 * config/mips/mips.h (ISA_HAS_CINS): New macro.
3576 * config/mips/mips-protos.h (mask_low_and_shift_p,
3577 mask_low_and_shift_len): Declare.
3578 * config/mips/mips.c (mask_low_and_shift_p,
3579 mask_low_and_shift_len): New functions.
3580 (mips_print_operand): Handle new operand prefix "m".
3581 * config/mips/mips.md (*cins<mode>): New pattern.
3583 2008-09-04 Bernd Schmidt <bernd.schmidt@analog.com>
3585 * config/bfin/bfin.c (gen_one_bundle): Don't create new nops when
3586 optimizing for size.
3588 2008-09-04 Richard Sandiford <rdsandiford@googlemail.com>
3590 * df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM
3591 regardless of epilogue_completed.
3593 2008-09-04 Vladimir Makarov <vmakarov@redhat.com>
3596 * ira-lives.c (process_bb_node_lives): Check setjmp.
3598 2008-09-04 Richard Sandiford <rdsandiford@googlemail.com>
3601 * ira-build.c (form_loop_tree): Reverse BB walk.
3602 (create_bb_allocnos): Likewise.
3603 * ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
3604 (mark_reg_store): Rename to...
3605 (mark_ref_live): ...this and take a df_ref argument instead of
3606 note_stores arguments. Assert that we have a register.
3607 (mark_reg_clobber): Delete.
3608 (def_conflicts_with_inputs_p): New function.
3609 (mark_reg_conflicts): Delete.
3610 (mark_reg_death): Rename to...
3611 (mark_ref_dead): ...this and take a df_ref argument instead of
3612 a register. Assert that we have a register.
3613 (process_bb_node_lives): Hoist frequency calculation out of
3614 instruction walk. Convert from a forwards scan to a backwards scan.
3615 Use DF_REF_USES and DF_REF_DEFS instead of register notes and
3616 note_stores. Remove EH_RETURN_DATA_REGNO and regs_set handling.
3617 (create_allocno_live_ranges): Don't create regs_set.
3619 2008-09-04 Ian Lance Taylor <iant@google.com>
3621 * rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND
3622 or REG_LABEL_TARGET.
3623 * calls.c (emit_library_call_value_1): Use MEM_P rather than
3624 comparing MODE with MEM.
3625 * gimple.c (gimple_build_predict): Cast END_PREDICTORS before
3626 comparing with GF_PREDICT_TAKEN.
3627 (gimple_get_lhs): Change code to enum gimple_code.
3628 (gimple_set_lhs): Likewise.
3629 * ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE.
3630 * omp-low.c (find_omp_clause): Change kind parameter to enum
3632 * tree-flow.h (find_omp_clause): Update declaration.
3633 * regrename.c (clear_dead_regs): Change kind parameter to enum
3635 * reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
3637 * see.c (see_get_extension_data): Change return type to enum
3638 entry_type. Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to
3639 SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF.
3640 (see_gen_normalized_extension): Change extension_code parameter to
3642 (see_seek_pre_extension_expr): Change extension_code to enum
3644 (see_merge_one_def_extension): Likewise.
3645 (see_handle_relevant_defs): Likewise.
3646 (see_handle_relevant_uses): Likewise.
3647 (see_analyze_one_def): Likewise.
3648 * tree-cfg.c (need_fake_edge_p): Compare gimple code with
3649 GIMPLE_ASM rather than ASM_EXPR.
3650 * tree-ssa-alias.c (is_escape_site): Compare gimple code with
3651 GIMPLE_RETURN rather than RETURN_EXPR.
3652 * tree-ssa-ccp.c (likely_value): Change code to enum gimple_code.
3653 (evaluate_stmt): Likewise.
3654 * tree-vect-analyze.c (vect_analyze_operations): Change relevance
3655 to enum vect_relevant.
3656 (vect_mark_stmts_to_be_vectorized): Change assertion to not
3657 compare gimple codes with tree codes.
3659 2008-09-04 Paul Brook <paul@codesourcery.com>
3661 * config/arm/arm.c (arm_size_rtx_costs): Call cost function.
3663 2008-09-04 Bernd Schmidt <bernd.schmidt@analog.com>
3665 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null
3666 pointer check lost in the recent no-unit-at-a-time patch.
3668 2008-09-04 Jan Hubicka <jh@suse.cz>
3671 * tree-switch-conversion.c (check_final_bb): Accept only IP
3674 2008-09-04 Jan Hubicka <jh@suse.cz>
3676 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
3678 (vrp_evaluate_conditional_warnv_with_ops): ... this one. Add
3679 using_ranges argument.
3680 (vrp_evaluate_conditional): Avoid bogus warning for type range.
3681 (vrp_visit_cond_stmt): Update call of
3682 vrp_evaluate_conditional_warnv_with_ops
3684 2008-09-04 Jan Hubicka <jh@suse.cz>
3686 PR tree-optimization/37345
3687 PR tree-optimization/37358
3688 PR tree-optimization/37357
3689 * tree.c (build_function_type_skip_args): Build distinct type copy;
3691 (build_function_decl_skip_args): Set type of new decl not orig decl;
3692 clear DECL_VINDEX for methods turned into functions.
3694 2008-09-04 Nick Clifton <nickc@redhat.com>
3696 * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler check.
3697 * configure: Regenerate.
3698 * config.in: Regenerate.
3699 * config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
3700 alignment field, if it is supported.
3702 2008-09-04 Kai Tietz <kai.tietz@onevision.com>
3704 * config/i386/t-mingw32 (SHLIB_LC): Change order of import
3707 2008-09-03 David Edelsohn <edelsohn@gnu.org>
3709 * config/rs6000/rs6000.c (processor_target_table): Do not
3710 enable VMX for POWER6.
3712 2008-09-03 Anton Blanchard <anton@samba.org>
3714 * config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not
3715 emit memory barrier before operation.
3717 2008-09-03 John David Anglin <dave.anglin@nrc.cnrc.gc.ca>
3720 * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call
3721 default_elf_asm_output_external.
3723 2008-09-03 Jeff Law <law@redhat.com>
3725 * h8300.c (expand_a_shift): Avoid invalid RTL sharing.
3727 2008-09-03 Richard Henderson <rth@redhat.com>
3729 * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
3730 memory barrier to below the test-and-set.
3731 (alpha_split_lock_test_and_set_12): Likewise.
3733 2008-09-03 Vladimir Makarov <vmakarov@redhat.com>
3737 * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
3740 * ira-color.c (print_loop_title): Use all_allocnos.
3741 (color_pass): Ditto. Don't add border_allocnos. Check that
3742 subloop allocno in the correspdoning bitmap all_allocnos.
3744 * ira-emit.c (change_loop): Use all_allocnos.
3746 * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node): Ditto.
3747 (ira_create_allocno): Set up all_allocnos bit for the created allocno.
3748 (create_cap_allocno): Remove setting mentioned_allocnos.
3749 (create_insn_allocnos): Ditto.
3750 (remove_unnecessary_allocnos): Use all_allocnos.
3751 (check_allocno_creation): Check that allocnos are in the
3752 corresponding bitmap all_allocnos.
3754 2008-09-03 Vladimir Makarov <vmakarov@redhat.com>
3758 * ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New.
3759 (process_regs_for_copy): Process subregs. Refine check when cost
3760 is taken into account in ira-costs.c.
3761 (process_reg_shuffles): Use REG_SUBREG_P.
3762 (add_insn_allocno_copies): Ditto. Ignore modes.
3764 * ira-color.c (conflict_allocno_vec): New.
3765 (COST_HOP_DIVISOR): New macro.
3766 (update_copy_costs_1): Use it.
3767 (update_conflict_hard_regno_costs): New function.
3768 (assign_hard_reg): Use it.
3769 (ira_color): Allocate and free conflict_allocno_vec.
3771 2008-09-03 Vladimir Makarov <vmakarov@redhat.com>
3775 * ira-int.h (ira_sort_insn_chain): Remove.
3777 * ira.c (basic_block_order_nums, chain_insn_order,
3778 chain_freq_compare, chain_bb_compare, ira_sort_insn_chain): Remove.
3779 (ira): Don't call ira_sort_insn_chain.
3781 * reload1.c (reload): Don't call ira_sort_insn_chain.
3783 2008-09-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
3786 * cgraphunit.c (update_call_expr): Remove eh regions from statements
3787 which become non throw.
3788 (cgraph_function_versioning): Also clear DECL_WEAK. Call
3789 update_call_expr after updating the flags on the decl.
3791 2008-09-03 Jan Hubicka <jh@suse.cz>
3793 PR tree-optimization/37315
3794 * cgraph.c (cgraph_create_edge): Use gimple_has_body_p.
3795 * cgraphunit.c (verify_cgraph_node): drop gimple_body check.
3796 (cgraph_analyze_functions): Use node->analyzed
3797 (cgraph_mark_functions_to_output): Likewise.
3798 (cgraph_expand_function): All functions can be released after
3800 (cgraph_optimize): Use gimple_has_body_p.
3801 * ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag.
3802 (cgraph_decide_inlining_incrementally): Likewise.
3803 (inline_transform): Inline transform.
3804 * tree-inline.c (initialize_cfun): Do now shallow copy structure;
3806 (inlinable_function_p): Drop gimple_body check.
3807 (expand_call_inline): Use gimple_has_body_p.
3808 * gimple.c (gimple_has_body_p): New.
3809 * gimple.h (gimple_has_body_p): Add prototype.
3810 * tree-cfg.c (execute_build_cfg): Remove gimple_body.
3811 (dump_function_to_file): Use gimple_has_body_p check.
3813 2008-09-03 Jakub Jelinek <jakub@redhat.com>
3816 * gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
3818 * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.
3820 2008-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
3822 From Michael Frysinger <michael.frysinger@analog.com>
3823 * config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524,
3824 bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549. Add 0.2
3827 2008-09-03 Hari Sandanagobalane <hariharan@picochip.com>
3830 * doc/extend.texi: Document picoChip builtin functions.
3831 * doc/invoke.texi: Document picoChip options.
3832 * doc/contrib.texi: Add picoChip contribution.
3833 * doc/md.texi: Document picoChip constraints.
3834 * config.gcc: Add picochip-*-*.
3835 * config/picochip/: Add new port.
3837 2008-09-03 Richard Guenther <rguenther@suse.de>
3839 PR tree-optimization/37328
3840 * tree-sra.c (sra_build_assignment): Gimplify properly.
3841 (generate_copy_inout): Take the correct stmt as definition,
3842 remove bogus assert.
3844 2008-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
3846 * config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit
3849 From Michael Frysinger <michael.frysinger@analog.com>
3850 * config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning.
3852 2008-09-03 Danny Smith <dannysmith@usrs.sourceforge.net>
3854 * gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is defined.
3855 (__gthread_setspecific): Revert 2008-08-31 change to
3856 __GTHREAD_HIDE_W32API case. Apply it to !__GTHREAD_HIDE_W32API case.
3858 2008-09-02 Aldy Hernandez <aldyh@redhat.com>
3860 * diagnostic.c (error_at): New.
3861 * toplev.h (error_at): New prototype.
3862 * c-typeck.c (build_array_ref): Call error_at instead of error.
3863 Pass location to pedwarn.
3865 2008-09-02 Adam Nemet <anemet@caviumnetworks.com>
3867 * sel-sched.c (sel_hard_regno_rename_ok): Mark arguments unused.
3869 2008-09-02 Jakub Jelinek <jakub@redhat.com>
3871 * dwarf2out.c (tree_add_const_value_attribute): Only handle
3872 VAR_DECL and CONST_DECL.
3874 2008-09-02 H.J. Lu <hongjiu.lu@intel.com>
3875 Jakub Jelinek <jakub@redhat.com>
3877 * config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
3878 (setup_incoming_varargs_64): Assume cum != NULL. Set/check
3879 ix86_varargs_gpr_size and ix86_varargs_fpr_size. Use
3880 ix86_varargs_gpr_size instead of X86_64_REGPARM_MAX.
3881 Don't set ix86_save_varrargs_registers.
3882 (ix86_setup_incoming_varargs): Assume cum != NULL.
3883 (ix86_va_start): Check ix86_varargs_gpr_size and
3884 ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
3885 cfun->va_list_fpr_size, respectively. Subtract 8*X86_64_REGPARM_MAX
3886 from frame pointer if ix86_varargs_gpr_size == 0.
3887 (ix86_compute_frame_layout): Updated.
3888 * config/i386/i386.h (ix86_save_varrargs_registers): Removed.
3889 (ix86_varargs_gpr_size): Define.
3890 (ix86_varargs_fpr_size): Likewise.
3891 (machine_function): Remove save_varrargs_registers.
3892 Add varargs_gpr_size and varargs_fpr_size.
3894 2008-09-02 Jakub Jelinek <jakub@redhat.com>
3896 * config/alpha/alpha.c (va_list_skip_additions,
3897 alpha_stdarg_optimize_hook, alpha_gimplify_va_arg_1): Tuplify.
3898 (alpha_gimplify_va_arg): Call unshare_expr on second use of
3901 PR tree-optimization/36766
3902 * tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing
3903 for already removed basic blocks.
3906 * real.c (real_maxval): Clear a lower bit to make real_maxval
3907 match get_max_float for IBM long double format.
3909 2008-09-02 Andreas Schwab <schwab@suse.de>
3911 * configure.ac: Use m4_quote to quote the expansion of m4_do.
3912 * configure: Regenerate.
3914 2008-09-02 Richard Sandiford <rdsandiford@googlemail.com>
3916 * simplify-rtx.c (simplify_binary_operation_1): Check for CONST,
3917 SYMBOL_REF and LABEL_REF when applying plus_constant, instead of
3918 checking for a non-VOID CONSTANT_P.
3920 2008-09-02 Jan Hubicka <jh@suse.cz>
3922 * predict.c (pass_strip_predict_hints): Avoid bugs dump file.
3923 * expmed.c (expand_divmod): Fix test of smod_pow2_cheap and
3926 2008-09-02 H.J. Lu <hongjiu.lu@intel.com>
3928 * expr.c (emit_group_store): Don't assert stack temp mode size.
3930 2008-09-02 Sebastian Pop <sebastian.pop@amd.com>
3931 Tobias Grosser <grosser@fim.uni-passau.de>
3932 Jan Sjodin <jan.sjodin@amd.com>
3933 Harsha Jagasia <harsha.jagasia@amd.com>
3934 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
3935 Konrad Trifunovic <konrad.trifunovic@inria.fr>
3936 Adrien Eliche <aeliche@isty.uvsq.fr>
3938 Merge from graphite branch.
3941 * tree-loop-linear.c (perfect_loop_nest_depth): Export.
3942 * doc/invoke.texi (-floop-block, -floop-interchange,
3943 -floop-strip-mine): Document new flags.
3944 * tree-into-ssa.c (gimple_vec): Moved...
3945 * tree-loop-distribution.c (rdg_component): Moved...
3946 * cfgloopmanip.c: Include tree-flow.h.
3947 (update_dominators_in_loop): New.
3948 (create_empty_if_region_on_edge): New.
3949 (create_empty_loop_on_edge): New.
3950 (loopify): Use update_dominators_in_loop.
3951 * tree-pass.h (pass_graphite_transforms): Declared.
3952 * configure: Regenerate.
3953 * tree-phinodes.c (make_phi_node): Export.
3954 (add_phi_node_to_bb): New, split from create_phi_node.
3955 * tree-chrec.c (for_each_scev_op): New.
3956 * tree-chrec.h (for_each_scev_op): Declared.
3957 * tree-ssa-loop-ivopts.c (get_phi_with_result): New.
3958 (remove_statement): Call get_phi_with_result.
3959 * config.in (HAVE_cloog): Undef.
3960 * gdbinit.in (pgg): New.
3961 * timevar.def (TV_GRAPHITE_TRANSFORMS): New.
3962 * tree-ssa-loop.c (graphite_transforms): New.
3963 (gate_graphite_transforms): New.
3964 (pass_graphite_transforms): New.
3965 * configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
3966 HAVE_cloog): Defined.
3967 * tree-vectorizer.c (rename_variables_in_bb): Export.
3968 * tree-data-ref.c (dr_may_alias_p): Export.
3969 (stmt_simple_memref_p): New.
3970 (find_data_references_in_stmt): Export.
3971 (find_data_references_in_loop): Export.
3972 (create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
3973 (create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
3974 (create_rdg_vertices): Export.
3975 (build_empty_rdg): New.
3976 (build_rdg): Call build_empty_rdg. Free dependence_relations.
3977 * tree-data-ref.h (rdg_component): ... here.
3979 (struct data_reference): Add a field scop.
3981 (find_data_references_in_loop): Declared.
3982 (find_data_references_in_stmt): Declared.
3983 (create_rdg_vertices): Declared.
3984 (dr_may_alias_p): Declared.
3985 (stmt_simple_memref_p): Declared.
3986 (struct rdg_edge): Add a field ddr_p relation.
3987 (build_empty_rdg): Declared.
3988 * lambda.h (lambda_matrix): Declare a VEC of.
3989 (find_induction_var_from_exit_cond): Declared.
3990 (lambda_vector_compare): New.
3991 * common.opt (fgraphite, floop-strip-mine,
3992 floop-interchange, floop-block): New flags.
3993 * lambda-code.c (find_induction_var_from_exit_cond): Export.
3994 * cfgloop.c (is_loop_exit): New.
3995 * cfgloop.h (is_loop_exit): Declared.
3996 (create_empty_if_region_on_edge): Declared.
3997 (create_empty_loop_on_edge): Declared.
3998 * tree-flow.h (add_phi_node_to_bb): Declared.
3999 (make_phi_node): Declared.
4000 (rename_variables_in_bb): Declared.
4001 (perfect_loop_nest_depth): Declared.
4002 (graphite_transform_loops): Declared.
4003 * Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
4004 (graphite.o-warn): Add -Wno-error.
4005 (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
4006 (LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
4007 (INCLUDES): Add PPLINC, CLOOGINC.
4008 (OBJS-common): Add graphite.o.
4009 (graphite.o): Add rule.
4010 * gimple.h (gimple_vec): ... here.
4011 * tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
4012 * passes.c (init_optimization_passes): Schedule
4013 pass_graphite_transforms.