1 2008-10-22 Rafael Espindola <espindola@google.com>
3 * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
4 newly created statements.
6 2008-10-22 Kaz Kojima <kkojima@gcc.gnu.org>
9 * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
10 * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
11 * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
13 2008-10-22 Jakub Jelinek <jakub@redhat.com>
16 * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
17 Adjust -mcmodel=medium description for 2005-07-31 changes.
19 2008-10-22 Jan Hubicka <jh@suse.cz>
20 Jakub Jelinek <jakub@redhat.com>
23 * doc/invoke.texi: Remove references to obsoleted -d dumps.
25 2008-10-21 Richard Henderson <rth@redhat.com>
28 * emit-rtl.c (get_spill_slot_decl): Export.
29 * emit-rtl.h (get_spill_slot_decl): Declare.
30 * var-tracking.c (vt_add_function_parameters): Relax assertion
31 on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
33 2008-10-21 Bob Wilson <bob.wilson@acm.org>
35 * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
36 REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
39 2008-10-21 Adam Nemet <anemet@caviumnetworks.com>
42 * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
43 processed by get_maxval_strlen.
45 2008-10-21 David Edelsohn <edelsohn@gnu.org>
48 * tree.c (get_file_function_name): Copy first_global_object_name.
49 Centralize call to clean_symbol_name.
51 2008-10-21 Sandra Loosemore <sandra@codesourcery.com>
53 * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
54 * config/svr4.h (SVR4_ASM_SPEC): New.
55 (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
56 * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
58 * doc/invoke.texi (Option Summary): Add -T to linker options.
59 (Link Options): Document -T.
61 2008-10-21 Jakub Jelinek <jakub@redhat.com>
63 * tree-inline.c (tree_inlinable_function_p): Remove tuples
66 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from
70 * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
72 2008-10-20 Daniel Berlin <dberlin@dberlin.org>
74 * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
77 2008-10-20 Tobias Schlüter <tobi@gcc.gnu.org>
79 * doc/install.texi: Fix typos in previous patch.
81 2008-10-19 Tobias Schlüter <tobi@gcc.gnu.org>
83 * doc/install.texi: Document in-tree building of gcc and mpfr.
85 2008-10-19 Richard Guenther <rguenther@suse.de>
87 * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
89 2008-10-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
92 * c-decl.c (finish_enum): Convert non-integer enumerators to enum
94 (build_enumerator): Convert enumerators that fit in integer to
97 2008-10-18 Uros Bizjak <ubizjak@gmail.com>
99 * config/i386/i386.md (unnamed peephole2): Do not force memory
100 operands of arith or logical instructions into registers for
101 non-TARGET_READ_MODIFY targets.
103 (ffs_cmove): Change operand 0 predicate to register_operand.
104 Change operand 1 predicate to nonimmediate_operand.
106 (*ffs_no_cmove): Change operand 0 predicate to register_operand.
108 2008-10-18 Richard Guenther <rguenther@suse.de>
110 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
111 VIEW_CONVERT_EXPR case against invalid gimple.
113 2008-10-17 Andreas Krebbel <krebbel1@de.ibm.com>
115 * c-parser.c (c_parser_binary_expression): Silence the
116 uninitialized variable warning emitted for binary_loc.
118 2008-10-16 Daniel Berlin <dberlin@dberlin.org>
120 * tree-ssa-pre.c (phi_translate_set): Add constants to phi
123 2008-10-16 Joseph Myers <joseph@codesourcery.com>
126 * c-typeck.c (build_unary_op): Use omit_one_operand for
127 IMAGPART_EXPR of real argument.
129 2008-10-16 Jakub Jelinek <jakub@redhat.com>
131 PR tree-optimization/37664
132 * fold-const.c (fold_binary): When optimizing comparison with
133 highest or lowest type's value, don't consider TREE_OVERFLOW.
135 2008-10-16 David Edelsohn <edelsohn@gnu.org>
138 * Makefile.in (coverage.o): Depend on $(TM_P_H).
139 * coverage.c: Include tm_p.h.
140 * config/rs6000/x-aix (jc1): Override LDFLAGS.
141 * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
142 dollar signs from PREFIX.
143 * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
144 instead of manual strip_name_encoding.
146 2008-10-16 Richard Guenther <rguenther@suse.de>
149 * tree-ssa.c (useless_type_conversion_p_1): Do not treat
150 volatile qualified functions or methods as relevant.
152 2008-10-16 Jakub Jelinek <jakub@redhat.com>
154 PR tree-optimization/37525
155 * tree.c (int_fits_type_p): Rewrite using double_int. Zero extend
156 sizetype unsigned constants, both in the case of C and bounds.
158 2008-10-15 Jan Hubicka <jh@suse.cz>
160 * ira-emit.c (change_regs): Return false when replacing reg by
163 2008-10-14 Vladimir Makarov <vmakarov@redhat.com>
166 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
167 HARD_REGNO_CALL_PART_CLOBBERED.
169 2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
172 * ira-lives.c (mark_early_clobbers): Remove.
173 (make_pseudo_conflict, check_and_make_def_use_conflicts,
174 check_and_make_def_conflicts,
175 make_early_clobber_and_input_conflicts,
176 mark_hard_reg_early_clobbers): New functions.
177 (process_bb_node_lives): Call
178 make_early_clobber_and_input_conflicts and
179 mark_hard_reg_early_clobbers. Make hard register inputs live again.
181 * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
182 early clobbers of pseudo-registers.
184 2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
187 * ira-build.c (ira_flattening): Recalculate
188 ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
189 from the scratch instead of the propagation.
191 2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
193 * doc/rtl.texi (const_double): Remove the "addr" operand.
194 Describe CONST_DOUBLE_* macros under const_double rather
196 (const_fixed): Fix the operand description.
197 (const): Add an @findex directive.
198 (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
199 after the constant rtl table.
200 (fix): Combine floating-point and fixed-point descriptions.
202 * sched-deps.c (sched_analyze_2): Remove reference to
205 2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
207 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
209 * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
210 for UNSPEC_GOTSYM_OFFs.
211 * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
212 (add_GOT_to_pic_reg): Use it.
213 * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
215 2008-10-15 Jan Sjodin <jan.sjodin@amd.com>
216 Harsha Jagasia <harsha.jagasia@amd.com>
218 PR tree-optimization/37485
219 * graphite.c (gmp_cst_to_tree): Moved.
220 (iv_stack_entry_is_constant): New.
221 (iv_stack_entry_is_iv): New.
222 (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
223 (loop_iv_stack_insert_constant): New.
224 (loop_iv_stack_pop): Use new datatpype.
225 (loop_iv_stack_get_iv): Same.
226 (loop_iv_stack_get_iv_from_name): Same.
227 (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
228 (loop_iv_stack_patch_for_consts): New.
229 (loop_iv_stack_remove_constants): New.
230 (graphite_create_new_loop): Use loop_iv_stack_push_iv.
231 (translate_clast): Call loop_iv_stack_patch_for_consts and
232 loop_iv_stack_remove_constants.
233 (gloog): Use new datatype. Redirect construction edge to end
234 block to avoid accidental deletion.
235 * graphite.h (enum iv_stack_entry_kind): New. Tag for data in
237 (union iv_stack_entry_data): New. Data in iv stack entry.
238 (struct iv_stack_entry): New. Datatype for iv stack entries.
240 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
242 * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
243 * graphite.c (free_scop): Same.
245 (free_scattering): New.
246 (build_cloog_prog): Call free_scattering.
247 (patch_phis_for_virtual_defs): Fix memleak.
248 (graphite_trans_bb_strip_mine): Same.
251 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
252 Harsha Jagasia <harsha.jagasia@amd.com>
254 PR tree-optimization/37828
255 * graphite.c (graphite_trans_loop_block): Do not loop block
258 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
260 PR tree-optimization/37686
261 * tree-loop-linear.c (linear_transform_loops): Build a
262 loop nest vector. Pass it to lambda_compute_access_matrices.
263 * tree-data-ref.h (struct access_matrix): Store the loop nest
264 relative to which it encodes the information.
265 (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
266 (am_vector_index_for_loop): Reimplemented: iterate over the
267 loop nest for finding the loop index in the access matrix.
268 (lambda_compute_access_matrices): Update declaration.
269 * lambda-code.c (build_access_matrix): Pass the loop nest and
271 (lambda_compute_access_matrices): Same.
273 2008-10-15 Andreas Krebbel <krebbel1@de.ibm.com>
275 * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
276 * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
277 TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
278 already implies hard float. Also fix several insn condition
279 with TARGET_DFP which shall require TARGET_HARD_DFP instead.
281 2008-10-15 David Edelsohn <edelsohn@gnu.org>
284 Based on patches by Laurent Vivier.
285 * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
286 * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
287 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
288 dollar sign to underscore.
289 (ASM_OUTPUT_EXTERNAL): Same.
290 (ASM_OUTPUT_LABELREF): New.
291 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
293 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
294 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
295 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
296 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
298 2008-10-15 Jakub Jelinek <jakub@redhat.com>
300 PR tree-optimization/36881
301 * tree-switch-conversion.c (check_final_bb): For flag_pic, check
302 that each value doesn't need runtime relocations, for !flag_pic
303 check that each value is just a valid initializer constant.
305 2008-10-14 Richard Sandiford <rdsandiford@googlemail.com>
307 * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
308 LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
309 COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
310 Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
312 (REG_CLASS_NAMES): Update accordingly.
313 (REG_CLASS_CONTENTS): Likewise. Use the class name in the comments,
314 rather than an unpredictable descriptive string.
315 * config/mips/mips.c (mips_register_move_cost): Remove comment.
316 (mips_register_move_cost): Check for specific COP*_REGS classes,
317 instead of ALL_COP_AND_GR_REGS.
318 (mips_ira_cover_classes): New function.
319 (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
320 (TARGET_IRA_COVER_CLASSES): Define.
322 2008-10-14 Douglas Gregor <doug.gregor@gmail.com>
325 * tree.c (build_type_attribute_qual_variant): Hash on the
326 unqualified type, and don't overwrite an existing
327 (type_hash_eq): Make the TYPE_NAME of the types significant, to
328 allow distinguishing between wchar_t and its underlying type. This
329 also means that we'll retain a little more typedef information.
331 2008-10-14 Andrey Belevantsev <abel@ispras.ru>
332 Dmitry Melnik <dm@ispras.ru>
333 Dmitry Zhurikhin <zhur@ispras.ru>
334 Alexander Monakov <amonakov@ispras.ru>
335 Maxim Kuvyrkov <maxim@codesourcery.com>
337 * target.h (struct gcc_target): Update prototypes of needs_block_p
339 * haifa-sched.c (create_check_block_twin): Update calls to the above.
340 * sel-sched.c (create_speculation_check): Likewise.
341 * doc/tm.texi: Provide documentation for new target hooks.
343 * config/ia64/ia64.c: Include sel-sched.h. Rewrite speculation hooks.
344 (ia64_gen_spec_insn): Removed.
345 (get_spec_check_gen_function, insn_can_be_in_speculative_p,
346 ia64_gen_spec_check): New static functions.
347 (ia64_alloc_sched_context, ia64_init_sched_context,
348 ia64_set_sched_context, ia64_clear_sched_context,
349 ia64_free_sched_context, ia64_get_insn_spec_ds,
350 ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
351 (ia64_needs_block_p): Change prototype.
352 (ia64_gen_check): Rename to ia64_gen_spec_check.
353 (ia64_adjust_cost): Rename to ia64_adjust_cost_2. Add new parameter
354 into declaration, add special memory dependencies handling.
355 (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
356 TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
357 TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
358 TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
359 Define new target hooks.
360 (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
361 (ia64_optimization_options): Turn on selective scheduling with -O3,
362 disable -fauto-inc-dec. Set mflag_sched_control_spec to true by default
363 with selective scheduling.
364 (ia64_override_options): Initialize align_loops and align_functions
365 to 32 and 64, respectively. Set global selective scheduling flags
366 according to target-dependent flags.
367 (rtx_needs_barrier): Support UNSPEC_LDS_A.
368 (group_barrier_needed): Use new mstop-bit-before-check flag.
370 (dfa_state_size): Make global.
371 (spec_check_no, max_uid): Remove.
372 (mem_ops_in_group, current_cycle): New variables.
373 (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
374 Initialize new variables.
375 (is_load_p, record_memory_reference): New functions.
376 (ia64_dfa_sched_reorder): Lower priority of loads when limit is
378 (ia64_variable_issue): Change use of current_sched_info to
379 sched_deps_info. Update comment. Note if a load or a store is issued.
380 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
381 advance if maximal number of loads or stores was issued on current
383 (scheduled_good_insn): New static helper function.
384 (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
385 a group barrier is needed. Fix vertical spacing. Guard the code
386 doing state transition with last_scheduled_insn check.
387 Mark that a stop bit should be before current insn if there was a
388 cycle advance. Update current_cycle and mem_ops_in_group.
389 (ia64_h_i_d_extended): Change use of current_sched_info to
390 sched_deps_info. Reallocate stops_p by larger chunks.
391 (struct _ia64_sched_context): New structure.
392 (ia64_sched_context_t): New typedef.
393 (ia64_alloc_sched_context, ia64_init_sched_context,
394 ia64_set_sched_context, ia64_clear_sched_context,
395 ia64_free_sched_context): New static functions.
396 (gen_func_t): New typedef.
397 (get_spec_load_gen_function): New function.
398 (SPEC_GEN_EXTEND_OFFSET): Declare.
399 (ia64_set_sched_flags): Check common_sched_info instead of *flags.
400 (get_mode_no_for_insn): Change the condition that prevents use of
401 special hardware registers so it can now handle pseudos.
402 (get_spec_unspec_code): New function.
403 (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
404 ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
405 (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
406 during selective scheduling.
407 (ia64_speculate_insn): Use ds_get_speculation_types when
408 determining whether we need to change the pattern.
409 (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
410 (ia64_spec_check_src_p): Support new speculation/check codes.
411 (struct bundle_state): New field.
412 (issue_nops_and_insn): Initialize it.
413 (insert_bundle_state): Minimize mid-bundle stop bits.
414 (important_for_bundling_p): New function.
415 (get_next_important_insn): Use important_for_bundling_p.
416 (bundling): When shifting TImode from unimportant insns, ignore
417 also group barriers. Assert that best state is found before
418 the backward bundling pass. Print number of mid-bundle stop bits.
419 Minimize mid-bundle stop bits. Check correct calculation of
420 mid-bundle stop bits.
421 (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
422 (final_emit_insn_group_barriers): Emit stop bits before insns starting
424 (sel2_run): New variable.
425 (ia64_reorg): When flag_selective_scheduling2 is set, run the selective
426 scheduling pass instead of schedule_ebbs.
428 * config/ia64/ia64.md (speculable1, speculable2): New attributes.
429 (UNSPEC_LDS_A): New UNSPEC.
430 (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
431 movti_internal, movsf_internal, movdf_internal,
432 movxf_internal): Make visible. Add speculable* attributes.
433 (output_c_nc): New mode attribute.
434 (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
435 mov<mode>_nc, zero_extend<mode>di2_nc,
436 advanced_load_check_nc_<mode>): New insns.
437 (zero_extend*): Add speculable* attributes.
439 * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
440 (msched-stop-bits-after-every-cycle): Likewise.
441 (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
443 (msched-spec-verbose): Remove.
444 (msched-prefer-non-data-spec-insns,
445 msched-prefer-non-control-spec-insns,
446 msched-count-spec-in-critical-path,
447 msel-sched-dont-check-control-spec): Use Target Report Var
448 instead of Common Report Var.
450 * config/ia64/itanium2.md: Remove incorrect bypass.
452 * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
454 2008-10-14 Jakub Jelinek <jakub@redhat.com>
457 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
460 2008-10-14 Ben Elliston <bje@au.ibm.com>
462 * config/rs6000/rs6000.md (cell_micro): Fix formatting.
464 2008-10-13 Joseph Myers <joseph@codesourcery.com>
466 * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
469 2008-10-13 Matthias Klose <doko@ubuntu.com>
471 * config/pa/linux-atomic.c: Work around missing header file
472 for hppa64-linux-gnu targets.
474 2008-10-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
475 Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
476 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
477 Grace Cao <grace_cao@playstation.sony.com>
479 * doc/invoke.texi (-mgen-cell-microcode): Document.
480 (-mwarn-cell-microcode): Document.
481 * cfglayout.c (locator_location): Export.
482 * rtl.h (locator_location): Define prototype.
483 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
485 * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
486 * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
487 (mwarn-cell-microcode): New option.
488 * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
489 (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
490 cell and not already set.
491 Turn off string instructions if not generating cell microcode.
492 (rs6000_final_prescan_insn): New function that warns about microcoded
494 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
495 * config/rs6000/rs6000.md
496 Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
497 the instruction would have been microcoded on the Cell. Set cell_micro
498 to always on unnamed patterns for the string instructions.
499 (cell_micro): Update definition, remove load/store conditional
501 (sign_extend:DI): Define new pattern for non microcoded version.
502 (sign_extend:SI): Likewise.
503 (compare (div:P)): Set cell_micro to not.
504 (andsi3): Define as an expand.
505 (andsi3_mc): New pattern.
506 (andsi3_nomc): New pattern.
507 (andsi3_internal0_nomc): New pattern.
508 (andsi3_internal2): Rename to ...
509 (andsi3_internal2_mc): this and enable iff generating microcode.
510 (andsi3_internal3): Rename to ...
511 (andsi3_internal3_mc): this and enable iff generating microcode.
512 (andsi3_internal4): Enable iif generating microcode.
513 (andsi3_internal5): Rename to ..
514 (andsi3_internal5_mc): this and enable iff generating microcode.
515 (andsi3_internal5_nomc): New pattern.
516 (extzvdi_internal1): Enable iff generating microcode.
517 (extzvdi_internal2): Likewise.
518 (rotlsi3_internal7): Set cell_micro to always if non immediate form.
519 (anddi3): Change to expand.
520 (anddi3_mc): Rename from anddi3.
521 (anddi3_no_mc): New pattern.
522 (anddi3_internal2): Rename to ..
523 (anddi3_internal2_mc): this and enable iff generating microcode.
524 (anddi3_internal2_nomc): New pattern.
525 (anddi3_internal3): Rename to ..
526 (anddi3_internal3_mc): this and enable iff generating microcode.
527 (anddi3_internal3_nomc): New pattern.
528 (movti_string): Set cell_micro to always if TARGET_STRING.
529 (stmsi8): Set cell_micro to always.
535 (stmsi8_power): Likewise.
536 (stmsi7_power): Likewise.
537 (stmsi6_power): Likewise.
538 (stmsi5_power): Likewise.
539 (stmsi4_power): Likewise.
540 (stmsi3_power): Likewise.
541 (movsi_update2): Enable iff generating microcode.
542 (movhi_update3): Likewise.
543 (lmw): Set cell_micro to always.
545 2008-10-13 Richard Sandiford <rdsandiford@googlemail.com>
547 * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
548 * config/s390/s390.c (machine_function): Remove
549 decomposed_literal_pool_addresses_ok_p.
550 (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
551 the difference of two labels.
552 (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
553 (s390_pool_offset): New function.
554 (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
555 (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
557 2008-10-13 Nathan Froyd <froydnj@codesourcery.com>
559 * doc/install.texi (powerpc-*-*): Require binutils 2.15.
560 (powerpc*-*-linux-gnu*): Describe.
561 * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
562 * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
563 config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
564 config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
565 config/rs6000/e500crtres32gpr.asm,
566 config/rs6000/e500crtres64gpr.asm,
567 config/rs6000/e500crtres64gprctr.asm,
568 config/rs6000/e500crtrest32gpr.asm,
569 config/rs6000/e500crtrest64gpr.asm,
570 config/rs6000/e500crtresx32gpr.asm,
571 config/rs6000/e500crtresx64gpr.asm,
572 config/rs6000/e500crtsav32gpr.asm,
573 config/rs6000/e500crtsav64gpr.asm,
574 config/rs6000/e500crtsav64gprctr.asm,
575 config/rs6000/e500crtsavg32gpr.asm,
576 config/rs6000/e500crtsavg64gpr.asm,
577 config/rs6000/e500crtsavg64gprctr.asm: Use it.
578 * config/rs6000/crtsavres.asm: Really remove.
580 2008-10-13 Kai Tietz <kai.tietz@onevision.com>
583 * c-format.c (convert_format_name_to_system_name): Use
584 TARGET_OVERRIDES_FORMAT_INIT.
585 * config.gcc (extra_options): Add for mingw targets mingw.opt.
586 * config/i386/mingw.opt: New.
587 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
588 * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
589 (ms_printf_length_specs): Removed const specifier.
590 * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
591 * doc/invoke.texi (Wno-pedantic-ms-format): New.
593 2008-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
595 * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
596 * doc/install.texi: Bump recommended MPFR to 2.3.2.
598 2008-10-12 Kenneth Zadeck <zadeck@naturalbridge.com>
601 * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
602 sure that ref has valid bb.
604 2008-10-12 Richard Henderson <rth@redhat.com>
607 * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
608 * alias.c (value_addr_p, stack_addr_p): Remove.
609 (nonoverlapping_memrefs_p): Remove IRA special case.
610 * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
611 * emit-rtl.h (set_mem_attrs_for_spill): Declare.
612 * reload1.c (alter_reg): Use it.
614 2008-10-12 Uros Bizjak <ubizjak@gmail.com>
616 * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
617 of registers instead of eax, ebx, ecx and edx. Use for loop
618 and check register for non-zero value before the call
619 to decode_caches_intel.
621 2008-10-11 Kenneth Zadeck <zadeck@naturalbridge.com>
623 PR rtl-optimization/37448
624 * df.h: (df_ref_class): New enum.
625 (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
626 (struct df_ref): Replaced with union df_ref_d.
627 (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
628 New members of df_ref_d union.
629 (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
630 DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
631 DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
632 DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
633 DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
634 DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
635 (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
636 (df_scan_bb_info, df_bb_regno_first_def_find,
637 df_bb_regno_last_def_find, df_find_def, df_find_use,
638 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
639 debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
640 df_ref_create, df_ref_remove, df_compute_accessed_bytes,
641 df_get_artificial_defs, df_get_artificial_uses, union_defs)
642 Replaced struct df_ref * with df_ref.
643 * df-scan.c (df_collection_rec, df_null_ref_rec,
644 df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
645 df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
646 df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
647 df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
648 df_reorganize_refs_by_reg_by_reg,
649 df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
650 df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
651 df_sort_and_compress_refs, df_install_ref, df_install_refs,
652 df_ref_record, df_get_conditional_uses, df_get_call_refs,
653 df_bb_refs_record, df_exit_block_uses_collect,
654 df_record_exit_block_uses, df_reg_chain_mark,
655 df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
656 df_ref * with df_ref.
657 (df_ref_record, df_uses_record, df_ref_create_structure): Added
658 df_ref_class parameter.
659 (df_scan_problem_data): Added new pools for different types of refs.
660 (df_scan_free_internal, df_scan_alloc, df_free_ref,
661 df_ref_create_structure): Processed new ref pools.
662 (df_scan_start_dump): Added counts of refs and insns.
663 (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
664 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
665 df_entry_block_defs_collect, df_exit_block_uses_collect): Added
666 code to pass df_ref_class down to ref creation functions.
667 (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
668 df_reg_chain_mark): Use macros to hide references to df_refs.
669 (df_ref_chain_change_bb): Removed.
670 (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
671 (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
672 Enhanced to understand df_ref union structure.
673 * fwprop.c (local_ref_killed_between_p, use_killed_between,
674 all_uses_available_at, update_df, try_fwprop_subst,
675 forward_propagate_subreg, forward_propagate_and_simplify,
676 forward_propagate_into, fwprop, fwprop_addr): Replaced struct
677 df_ref * with df_ref.
678 (use_killed_between, all_uses_available_at): Use macros to hide
679 references to df_refs.
680 * regstat.c (regstat_bb_compute_ri,
681 regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
683 * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
684 see_handle_relevant_refs, see_analyze_one_def,
685 see_update_relevancy, see_propagate_extensions_to_uses): Replaced
686 struct df_ref * with df_ref.
687 * ra-conflict.c (record_one_conflict, clear_reg_in_live,
688 global_conflicts): Replaced struct df_ref * with df_ref.
689 * ddg.c (create_ddg_dep_from_intra_loop_link,
690 add_cross_iteration_register_deps, build_inter_loop_deps):
691 Replaced struct df_ref * with df_ref.
692 (create_ddg_dep_from_intra_loop_link,
693 add_cross_iteration_register_deps): Use macros to hide references
695 * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
696 df_ref * with df_ref.
697 * df-core.c (df_bb_regno_first_def_find,
698 df_bb_regno_last_def_find, df_find_def, df_find_use,
699 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
700 debug_df_ref): Replaced struct df_ref * with df_ref.
701 (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
702 * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
704 * web.c (union_defs, entry_register, replace_ref, web_main):
705 Replaced struct df_ref * with df_ref.
706 (union_defs, replace_ref): Use macros to hide references to df_refs.
707 * global.c (compute_regs_asm_clobbered, build_insn_chain):
708 Replaced struct df_ref * with df_ref.
709 * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
710 * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets, ):
711 Replaced struct df_ref * with df_ref.
712 * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
713 mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
715 * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
716 * df-byte-scan.c (df_compute_accessed_bytes_extract,
717 df_compute_accessed_bytes_strict_low_part,
718 df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
719 Replaced struct df_ref * with df_ref.
720 (df_compute_accessed_bytes): Use macros to hide references to df_refs.
721 * init-regs.c (initialize_uninitialized_regs): Replaced struct
722 df_ref * with df_ref.
723 * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
724 check_dependency, check_dependencies, record_uses): Replaced
725 struct df_ref * with df_ref.
726 (invariant_for_use, check_dependency): Use macros to hide
727 references to df_refs.
728 * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
729 get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
730 iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
731 (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
732 references to df_refs.
733 * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
735 * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
736 * df-problems.c (df_rd_bb_local_compute_process_def,
737 df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
738 df_chain_unlink_1, df_chain_unlink, df_chain_copy,
739 df_chain_remove_problem, df_chain_create_bb_process_use,
740 df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
741 df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
742 df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
743 df_byte_lr_simulate_artificial_refs_at_top,
744 df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
745 df_note_bb_compute, df_note_add_problem, df_simulate_defs,
746 df_simulate_uses, df_simulate_artificial_refs_at_end,
747 df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
749 (df_chain_dump): Use macros to hide references to df_refs.
750 * config/mips/mips.c (r10k_simplify_address): Replaced struct
751 df_ref * with df_ref.
752 * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
753 mark_artificial_uses, mark_reg_dependencies,
754 byte_dce_process_block): Replaced struct df_ref * with df_ref.
756 2008-10-11 Eric Botcazou <ebotcazou@adacore.com>
758 * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
760 (array_ref_element_size): Likewise.
761 (array_ref_low_bound): Likewise.
762 (array_ref_up_bound): Likewise.
763 * expr.c (contains_packed_reference): Likewise.
764 (array_ref_element_size): Likewise.
765 (array_ref_low_bound): Likewise.
766 (array_ref_up_bound): Likewise.
767 * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
768 with ARRAY_RANGE_REF.
769 (idx_find_step): Likewise.
770 (idx_record_use): Likewise.
771 (strip_offset_1): Likewise.
772 (idx_remove_ssa_names): Likewise.
774 2008-10-11 Uros Bizjak <ubizjak@gmail.com>
775 Andi Kleen <ak@linux.intel.com>
777 * config/i386/cpuid.h (__cpuid_count): New defines.
778 * config/i386/driver-i386.c (struct cache_desc): New structure.
779 (describe_cache): Use struct cache_desc to pass cache descriptions.
780 (detect_l2_cache): Ditto. Rename from decode_l2_cache.
781 (detect_caches_amd): Use struct cache_desc to describe caches.
782 (decode_caches_intel): Use struct cache_desc to pass cache
783 descriptions. Update descriptions to match latest (rev -032,
784 December 2007) CPUID documentation. Do not check valid bit here.
785 Check for Xeon MP value 0x49 problems.
786 (detect_caches_cpuid2): New function, split from detect_caches_intel.
787 Check valid bit before calling decode_caches_intel. Detect number
788 of times to repeat CPUID instruction.
789 (detect_caches_cpuid4): New function.
790 (detect_caches_intel): Depending on max_level, call
791 detect_caches_cpuid2 or detect_caches_cpuid4. Call detect_l2_cache
792 only when other methods fail to provide valid L2 cache description.
794 2008-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
797 * pa.md (call, call_value): Generate an rtx for register r4 and pass
798 it to PIC call patterns.
799 (call_symref_pic): Revise pattern to expose PIC register save. Remove
800 code generation and attributes from pattern. Change peephole2 to split
801 for noreturn case. Revise split pattern for non noreturn case.
802 (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
803 call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
804 * pa.c (attr_length_call): Simplify extraction of call rtx. Add some
807 2008-10-11 David Edelsohn <edelsohn@gnu.org>
809 * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
810 (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
812 (divdf3): Reformat long line.
814 2008-10-11 Michael J. Eager <eager@eagercon.com>
816 * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
818 (rs6000_handle_option): Process -mfpu options.
819 * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
820 (enum fpu_type_t): New.
821 * config/rs6000/rs6000.md (attr fp_type): New. Include xfpu.md.
822 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
824 (floatsisf2): Remove TARGET_SINGLE_FPU condition.
825 (floatdidf2): Add TARGET_SINGLE_FPU condition.
826 * config/rs6000/rs6000.opt (-mfpu): New.
828 * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
829 * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
830 * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
831 * gcc/config.gcc: powerpc-xilinx-eabi target: New.
832 * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
834 2008-10-11 Jakub Jelinek <jakub@redhat.com>
837 * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
838 LO_SUM on Darwin if mode has just one unit.
840 2008-10-10 H.J. Lu <hongjiu.lu@intel.com>
843 * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
844 has been optimized out.
846 2008-10-10 Richard Sandiford <rdsandiford@googlemail.com>
848 * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
849 instead of PIC_DIRECT_ADDR_P.
850 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
851 (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
852 (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
853 (PIC_OFFSET_P): Rename to...
854 (PCREL_SYMOFF_P): ...this.
855 (PIC_DIRECT_ADDR_P): Delete.
856 (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
858 (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
859 single argument. Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
860 UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
861 * config/sh/sh.c (print_operand): Remove CONST handling.
862 (unspec_caller_rtx_p): Rewrite to use split_const and check
863 the operands of UNSPEC bases.
864 (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
865 with (unspec [A B] UNSPEC_SYMOFF).
866 (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
868 (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
869 * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
870 (UNSPEC_EXTRACT_U16): Likewise.
871 (UNSPEC_SYMOFF): Likewise.
872 (UNSPEC_PCREL_SYMOFF): Likewise.
873 (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
875 (movsi_const_16bit): Likewise.
876 (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
877 (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
878 with (unspec [A B] UNSPEC_PCREL_SYMOFF).
879 (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
880 with (unspec [A B] UNSPEC_SYMOFF).
881 (symPLT_label2reg): Replace (minus A (minus B pc)) with
882 (unspec [A B] PCREL_UNSPEC_SYMOFF).
883 * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
884 (Csu): Likewise UNSPEC_EXTRACT_U16.
885 (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
886 (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
888 2008-10-10 Stepan Kasal <skasal@redhat.com>
890 * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
891 for loop strip mining and loop blocking.
893 2008-10-10 Alexandre Oliva <aoliva@redhat.com>
895 * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
896 vary types depending on debug info.
898 2008-10-10 Alexandre Oliva <aoliva@redhat.com>
900 * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
901 before ensuring it's already computed.
903 2008-10-09 Jakub Jelinek <jakub@redhat.com>
905 * rtl.h (locator_eq): New decl.
906 * cfglayout.c (locator_scope): New function.
907 (insn_scope): Use it.
908 (locator_eq): New function.
909 (fixup_reorder_chain): Search for last insn in src bb
910 that has locator set or first insn in dest bb. Use
911 locator_eq instead of == to compare locators.
912 * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
913 * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
914 == to compare locators.
916 * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
918 * gimple-low.c (lower_function_body, lower_gimple_return,
919 lower_builtin_setjmp): Set gimple_block on the newly created stmts.
920 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
921 goto_block on edges if goto_locus is known.
924 * tree.h (get_object_alignment): Declare.
925 * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
926 get_object_alignment if needed.
927 * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand handling
929 (get_object_alignment): ... here. New function. Try harder to
930 determine alignment from get_inner_reference returned offset.
932 2008-10-08 Jakub Jelinek <jakub@redhat.com>
934 * graphite.c (gloog): Don't call find_unreachable_blocks
935 before delte_unreachable_blocks.
937 * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
938 goto_locus of true_edge into RTL locator.
940 2008-10-08 Uros Bizjak <ubizjak@gmail.com>
942 * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
943 (*jcc_btdi_mask_rex64): Ditto.
945 (*jcc_btsi_mask): Ditto.
946 (*jcc_btsi_1): Ditto.
947 (*jcc_btsi_mask_1): Ditto.
949 2008-10-08 Paul Brook <paul@codesourcery.com>
951 * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
952 compatible profiler (__gnu_mcount_nc).
953 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
955 2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
957 * config/i386/i386.c (initial_ix86_tune_features): Add
958 X86_TUNE_USE_VECTOR_FP_CONVERTS.
959 * config/i386/i386.h (ix86_tune_indices): Likewise.
960 (TARGET_USE_VECTOR_FP_CONVERTS): New.
962 * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
963 instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
964 for FP to FP splitters.
966 2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
968 * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
971 2008-10-08 Jakub Jelinek <jakub@redhat.com>
975 PR rtl-optimization/37341
976 * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
977 to ORIG_BB, pass through ORIG_BB recursively.
978 (cse_condition_code_reg): Adjust caller.
980 2008-10-08 Kai Tietz <kai.tietz@onevision.com>
982 * sdbout.c (sdbout_one_type): Treat the value type
983 CONST_DECL for enumerals.
985 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
987 * config/i386/i386.md: Remove trailing white spaces.
989 2008-10-07 Kenneth Zadeck <zadeck@naturalbridge.com>
991 PR rtl-optimization/37448
992 * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
993 (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
995 (struct output_info) [count]: Renamed total_created and made
997 (struct output_info) [size]: Renamed total_allocated and made
999 (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
1000 Properly keep track of desc->size.
1001 (print_statistics, dump_alloc_pool_statistics): Enhance the
1002 printing of statistics to print the number of elements and to use
1005 2008-10-07 Jakub Jelinek <jakub@redhat.com>
1008 * opts.h (CL_SAVE): Move up to flags range.
1009 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
1010 CL_COMMON): Renumber.
1011 (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
1012 * opts.c (common_handle_option): Revert last change.
1014 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1016 * config/i386/i386-protos.h (ix86_schedule): New.
1018 * config/i386/i386.c (ix86_schedule): New.
1019 (override_options): Add schedule to processor_alias_table. Set
1020 ix86_schedule from the schedule field in processor_alias_table.
1021 (ix86_function_specific_save): Save ix86_schedule.
1022 (ix86_function_specific_restore): Restore ix86_schedule.
1024 * config/i386/i386.md (cpu): Map to ix86_schedule instead of
1025 ix86_tune. Add none and remove i386, i486, pentium4, nocona
1028 * config/i386/i386.opt: Add schedule.
1030 * config/i386/ppro.md: Remove generic32.
1032 2008-10-07 Simon Martin <simartin@users.sourceforge.net>
1035 * expr.c (count_type_elements): Handle ERROR_MARK.
1037 2008-10-07 Jakub Jelinek <jakub@redhat.com>
1042 * basic-block.h (struct edge_def): Add goto_block field.
1043 * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
1044 one insn with locus corresponding to edge's goto_locus if !optimize.
1045 * profile.c (branch_prob): Copy edge's goto_block.
1046 * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
1048 (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
1049 locator in between the merged basic blocks if !optimize and needed.
1050 * cfgexpand.c (expand_gimple_cond): Convert goto_block and
1051 goto_locus into RTL locator. For unconditional jump use that
1052 locator for the jump insn.
1053 (expand_gimple_cond): Convert goto_block and goto_locus into
1054 RTL locator for all remaining edges. For unconditional jump
1055 use that locator for the jump insn.
1056 * cfgcleanup.c (try_forward_edges): Avoid the optimization if
1057 there is more than one edge or insn locator along the forwarding
1058 edges and !optimize. If there is just one, set e->goto_locus.
1059 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
1061 (move_block_to_fn): Adjust edge's goto_block.
1063 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1066 * expmed.c (expand_mult): Properly check DImode constant in
1069 2008-10-07 Jakub Jelinek <jakub@redhat.com>
1072 * dwarf2out.c (common_block_die_table): New variable.
1073 (common_block_die_table_hash, common_block_die_table_eq): New
1075 (gen_variable_die): Look up a DW_TAG_common_block die for a particular
1076 COMMON block in the current scope rather than globally. Optimize
1077 DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
1078 DW_OP_addr SYMBOL_REF+off.
1080 2008-10-07 Eric Botcazou <ebotcazou@adacore.com>
1082 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
1083 Return true for non-addressable GIMPLE operands.
1085 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1088 * config/i386/i386.c (initial_ix86_tune_features): Remove
1089 X86_TUNE_USE_BIT_TEST.
1090 * config/i386/i386.h (ix86_tune_indices): Likewise.
1091 (TARGET_USE_BIT_TEST): Removed.
1093 2008-10-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1095 * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
1097 2008-10-06 Adam Nemet <anemet@caviumnetworks.com>
1099 * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
1100 (mul<mode>3_mul3): ... into this new template.
1102 2008-10-06 Aldy Hernandez <aldyh@redhat.com>
1104 * gimplify.c (gimplify_arg): Add location argument. Use it.
1105 (gimplify_call_expr): Pass location to gimplify_arg.
1106 (gimplify_modify_expr_to_memcpy): Same.
1107 (gimplify_modify_expr_to_memset): Same.
1109 2008-10-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
1111 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1112 Update calls to build_unary_op and build_indirect_ref for location
1115 2008-10-06 Aldy Hernandez <aldyh@redhat.com>
1118 * c-decl.c (finish_decl): Pass input_location to build_unary_op.
1119 * c-typeck.c (array_to_pointer_conversion): Pass location to
1121 (function_to_pointer_conversion): Use error_at and warning_at.
1122 (build_indirect_ref): Same.
1123 (build_array_ref): Pass location to build_binary_op.
1124 (parser_build_unary_op): Do not set location after calling
1126 (build_unary_op): Add location argument. Use it throughout. Set
1127 EXPR_LOCATION before returning new tree.
1128 (build_modify_expr): Same.
1129 (build_binary_op): Use location throughout. Set EXPR_LOCATION before
1131 * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
1132 build_indirect_ref, build_modify_expr.
1133 (c_finish_omp_for): Same. Use error_at instead of error.
1134 * c-common.c (c_common_truthvalue_conversion): Pass location to
1136 (warn_for_div_by_zero): Add location argument.
1137 * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
1138 build_unary_op, warn_for_div_by_zero.
1139 * c-parser.c (c_parser_typeof_specifier): Use
1140 protected_set_expr_location.
1141 (c_parser_statement_after_labels): Same.
1142 (c_parser_condition): Same.
1143 (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
1144 (c_parser_conditional_expression): Use protected_set_expr_location.
1145 (c_parser_unary_expression): Pass location to build_indirect_ref.
1146 (c_parser_postfix_expression_after_primary): Pass location to
1147 build_indirect_ref, build_unary_op.
1148 (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
1150 2008-10-06 Joshua Kinard <kumba@gentoo.org>
1152 * doc/invoke.texi: List r1x000 family under the -march MIPS option.
1153 * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
1154 * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
1156 (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
1157 (mips_issue_rate): Handle PROCESSOR_R10000.
1158 * config/mips/mips.md (cpu): Add r10000.
1160 * config/mips/10000.md: New file.
1162 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
1164 * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
1165 * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
1166 * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
1168 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
1170 * config/darwin-protos.h (machopic_function_base_name): Delete.
1171 (machopic_function_base_sym): Likewise.
1172 (machopic_gen_offset): Declare.
1173 * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
1174 (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
1175 * config/darwin.c (machopic_function_base_name): Delete.
1176 (machopic_function_base_sym): Likewise.
1177 (gen_pic_offset): Rename to...
1178 (machopic_gen_offset): ...this and remove the pic_base argument.
1179 Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
1180 is needed. Create an UNSPEC_MACHOPIC_OFFSET if so, and set
1181 crtl->uses_pic_offset_table.
1182 (machopic_indirect_data_reference): Use new machopic_gen_offset
1184 (machopic_legitimize_pic_address): Likewise.
1185 (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
1187 * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
1188 MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
1189 * config/i386/i386.c (output_set_got): Likewise.
1190 (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
1192 (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
1193 (legitimate_address_p): Likewise.
1194 (output_pic_addr_const): Likewise.
1195 (output_addr_const_extra): Likewise.
1196 (ix86_delegitimize_address): Expect darwin_local_data_pic to
1197 match an UNSPEC rather than a MINUS.
1198 * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
1199 (builtin_setjmp_receiver): Use machopic_gen_offset.
1200 * config/i386/predicates.md (pic_symbolic_operand): Handle
1201 UNSPEC_MACHOPIC_OFFSET.
1203 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
1204 Use machopic_gen_offset and machopic_operand_p.
1205 (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
1206 (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
1207 * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
1208 (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
1209 Set crtl->uses_pic_offset_table.
1211 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
1213 * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
1215 * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
1216 * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
1217 * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
1218 (constant_pool_expr_p): Use split_const and check the base.
1219 (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
1221 (legitimate_constant_pool_address_p): Check toc_relative_p
1222 instead of constant_pool_expr_p.
1223 (print_operand_address): Always use output_addr_const for
1224 constant pool addresses.
1225 (rs6000_output_addr_const_extra): New function.
1226 (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
1228 2008-10-06 Vladimir Makarov <vmakarov@redhat.com>
1232 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
1233 (mark_ref_live, mark_ref_dead): Use them.
1234 (def_conflicts_with_inputs_p): Remove.
1235 (mark_early_clobbers): New function.
1236 (process_bb_node_lives): Call preprocess_constraints and
1237 mark_early_clobbers.
1239 * doc/rtx.texi (clobber): Change how RA deals with clobbers.
1241 2008-10-06 Danny Smith <dannysmith@users.sourceforge.net>
1243 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
1244 lib with -mthread switch.
1246 2008-10-05 Dodji Seketeli <dodji@redhat.com>
1249 * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
1250 function in two, making it call a new and reusable
1251 dwarf2out_imported_module_or_decl() that takes the containing
1252 BLOCK of the declaration in argument.
1253 (dwarf2out_imported_module_or_decl_real): New function.
1254 (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
1255 IMPORTED_DECL in account.
1256 * tree.def: Added IMPORTED_DECL node type.
1257 * tree.h: Added accessors for IMPORTED_DECL nodes.
1258 * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
1260 2008-10-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1262 * doc/gimple.texi: Fix some typos, wrap some long lines,
1263 fix some broken wraps with continuations.
1264 * tree-ssa-reassoc.c: Fix comment typos.
1266 2000-10-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1269 * pa.c (legitimize_pic_address): Force function labels to memory in
1272 2008-10-04 Anton Blanchard <anton@samba.org>
1274 * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
1275 (rs6000_split_atomic_op): Same.
1276 (rs6000_split_compare_and_swap): Same.
1277 (rs6000_split_compare_and_swapqhi): Same.
1279 2008-10-04 Richard Guenther <rguenther@suse.de>
1281 * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
1282 instead of pointer equality.
1283 (vn_nary_op_eq): Likewise.
1285 2008-10-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
1287 * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT
1289 (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
1290 TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
1292 2008-10-03 Danny Smith <dannysmith@users.sourceforge.net>
1294 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1295 Revert previous change.
1297 2008-10-03 Tom Tromey <tromey@redhat.com>
1299 * stringpool.c (ggc_alloc_string): Terminate string.
1301 2008-10-03 Jakub Jelinek <jakub@redhat.com>
1303 * gimplify.c (gimplify_function_tree): For -finstrument-functions
1304 use gimple_bind_{,set_}block instead of gimple_{,set_}block.
1305 * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
1308 * gimplify.c (declare_vars): Use gimple_bind_block instead of
1311 2008-10-03 Pascal Obry <obry@adacore.com>
1313 * gcov.c (create_file_names): Properly handle UNIX and DOS
1314 directory separators.
1315 (make_gcov_file_name): Likewise + convert the ':' DOS drive
1316 separator to '~' to ensure clean filenames on Windows.
1318 2008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
1320 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1321 Add a null terminator to the stripped name.
1323 2008-10-02 David Edelsohn <edelsohn@gnu.org>
1325 * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
1326 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1327 (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
1328 TARGET_SINGLE_FLOAT. Revert SCALAR_FLOAT_MODE_P condition.
1329 (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1330 (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
1331 TARGET_SINGLE_FLOAT.
1333 2008-10-02 Daniel Jacobowitz <dan@codesourcery.com>
1335 * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
1337 2008-10-02 Richard Guenther <rguenther@suse.de>
1340 * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
1341 and VECTOR_TYPE recurse with useless_type_conversion_p which
1342 properly handles void pointer conversion.
1344 2008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
1347 * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
1348 (REAL_LIBGCC_SPEC): New. Always include -lgcc.
1350 2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
1352 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1353 Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
1354 ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
1355 they translate to non builtins.
1356 * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
1357 opaque_ftype_opaque. Define builtins __builtin_vec_splats,
1358 __builtin_vec_promote, __builtin_vec_extract, and
1359 __builtin_vec_insert.
1360 * config/rs6000/rs6000.h (enum rs6000_builtins): Add
1361 ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
1362 ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
1363 * config/rs6000/altivec.h (vec_extract): Define
1364 (vec_insert): Define.
1365 (vec_splats): Define.
1366 (vec_promote): Define.
1368 2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
1369 Yukishige Shibata <shibata@rd.scei.sony.co.jp>
1370 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
1372 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
1374 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
1375 prototype. Add new parameter, blk.
1376 Use BLKmode for the MEM if blk is true.
1377 (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
1378 ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
1379 ALTIVEC_BUILTIN_STVRXL.
1380 Update usage of altivec_expand_lv_builtin.
1381 Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
1382 ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
1383 (altivec_init_builtins): If compiling for the Cell, also define the
1385 * config/rs6000/rs6000.h (rs6000_builtins): Define
1386 ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
1387 ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
1388 ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
1389 ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
1390 ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
1391 ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
1392 ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
1393 * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
1394 UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
1395 UNSPEC_STVRX, and UNSPEC_STVRXL.
1396 (altivec_lvlx): New pattern.
1397 (altivec_lvlxl): New pattern.
1398 (altivec_lvrx): New pattern.
1399 (altivec_lvrxl): New pattern.
1400 (altivec_stvlx): New pattern.
1401 (altivec_stvlxl): New pattern.
1402 (altivec_stvrx): New pattern.
1403 (altivec_stvrxl): New pattern.
1404 * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
1405 (vec_lvlxl): Likewise.
1406 (vec_lvrx): Define if PPU is defined.
1407 (vec_lvrxl): Likewise.
1408 (vec_stvlx): Define if PPU is defined.
1409 (vec_stvlxl): Likewise.
1410 (vec_stvrx): Define if PPU is defined.
1411 (vec_stvrxl): Likewise.
1413 2008-10-01 Geert Bosch <bosch@adacore.com>
1415 * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
1417 2008-10-01 Richard Guenther <rguenther@suse.de>
1419 PR tree-optimization/37617
1420 * tree-ssa-pre.c (create_expression_by_pieces): During FRE
1421 do not add to the NEW_SETS.
1423 2008-10-01 Richard Guenther <rguenther@suse.de>
1426 * tree-vrp.c (execute_vrp): If we optimized away the default
1427 case make sure to promote the label that got in place of it
1428 to a default case label.
1430 2008-10-01 Richard Henderson <rth@redhat.com>
1433 * tree-complex.c (set_component_ssa_name): Don't optimize
1434 is_gimple_min_invariant values with ssa_names in abnormal phis.
1436 2008-09-30 Paolo Bonzini <bonzini@gnu.org>
1438 PR tree-optimization/37662
1439 * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
1440 commutative binary operation if they are in the wrong order and
1441 fold_build2 produces non-GIMPLE.
1443 2008-09-30 Jakub Jelinek <jakub@redhat.com>
1445 PR tree-optimization/37662
1446 PR tree-optimization/37663
1447 * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
1448 get_value_range with non-SSA_NAME. Don't assert operands have been
1449 folded, instead just bail out.
1451 2008-09-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
1453 * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
1455 2008-09-30 Richard Guenther <rguenther@suse.de>
1458 * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
1459 build restrict-qualified pointers.
1460 (vectorizable_store): Move alias check later.
1461 (vectorizable_load): Likewise.
1463 2008-09-30 Paolo Bonzini <bonzini@gnu.org>
1465 * c-common.c (empty_if_body_warning): Remove.
1466 * c-common.h (empty_if_body_warning): Remove.
1467 * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
1468 here the -Wempty-body warning for `if' and `else' statements.
1469 * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
1471 2008-09-29 H.J. Lu <hongjiu.lu@intel.com>
1473 * config/i386/i386.opt: Add msse2avx.
1475 * config/i386/linux.h (ASM_SPEC): New. Support -msse2avx.
1476 * config/i386/linux64.h (ASM_SPEC): Likewise.
1478 * doc/invoke.texi: Document -msse2avx.
1480 2008-09-29 Eric Botcazou <ebotcazou@adacore.com>
1482 * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
1484 2008-09-29 Joseph Myers <joseph@codesourcery.com>
1486 * ifcvt.c (noce_emit_store_flag): If using condition from original
1487 jump, reverse it if if_info->cond was reversed.
1489 2008-09-29 Eric Botcazou <ebotcazou@adacore.com>
1491 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1492 non-constant memory if it cannot be forced to constant memory.
1493 Overhaul surrounding code and factor out common condition.
1495 2008-09-29 Jeff Law <law@redhat.com>
1497 * reload1.c (alter_reg): Add missing curly braces.
1499 2008-09-29 Michael J. Eager <eager@eagercon.com>
1501 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
1503 * config/rs6000/rs6000.c (rs6000_override_options): Move
1504 rs6000_init_hard_regno_mode_ok after all options changed.
1505 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
1506 (rs6000_handle_option): Process -msingle-float, -mdouble-float,
1507 -msimple-fpu flags. Add warning messages if single FP not configured.
1508 (rs6000_file_start): Output gnu_attribute for single-float.
1509 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
1510 (rs6000_legitimize_address): Likewise.
1511 (rs6000_legitimize_reload_address): Likewise.
1512 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
1513 TARGET_SINGLE_FLOAT.
1514 (function_arg_advance): Likewise (partial conversion).
1515 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
1516 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
1517 TARGET_SINGLE_FLOAT.
1518 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
1519 (rs6000_emit_prologue): Likewise.
1520 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
1521 TARGET_SINGLE_FLOAT.
1522 (rs6000_libcall_value): Likewise.
1523 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
1524 (TARGET_DOUBLE_FLOAT): New default to 1
1525 (TARGET_SIMPLE_FPU): New default to 0
1526 (TARGET_SINGLE_FPU): New default to 0
1527 (TARGET_SINGLE_FLOAT_MODE): New.
1528 (TARGET_DOUBLE_FLOAT_MODE): New.
1529 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
1530 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
1532 * config/rs6000/rs6000.md (define_mode_iterator): Condition on
1533 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1534 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
1535 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
1536 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
1537 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
1538 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
1539 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
1540 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
1541 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
1542 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
1543 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
1544 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
1545 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
1546 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
1547 cmptf_internal1, *cmptf_internal2): Condition on
1548 TARGET_DOUBLE_FLOAT.
1549 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
1550 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
1551 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
1552 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
1553 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
1554 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
1555 TARGET_SINGLE_FLOAT.
1556 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
1557 * config/rs6000/rs6000.opt (-msingle-float): New.
1558 (-mdouble-float): New.
1559 (-msimple-fpu): New.
1560 * doc/invoke.texi (RS/6000 and PowerPC Options): Add
1561 -msingle-float, -mdouble-float, -msimple-fpu options.
1562 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
1563 _SOFT_DOUBLE for -msingle-float.
1564 * config.gcc: New config for target=powerpc-xilinx-eabi.
1566 2008-09-29 Tobias Grosser <grosser@fim.uni-passau.de>
1568 * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
1569 have exit and entry.
1570 (new_scop): Take entry and exit edge to define new SCoP.
1571 (sd_region_p): New structure used during SCoP detection.
1572 (move_scops): Delete.
1573 (move_sd_regions): New.
1574 (scopdet_info): Change the definition from edges back to basic_blocks.
1575 (scopdet_edge_info): Work on basic_blocks and rename to
1576 scopdet_basic_block_info.
1577 (split_difficult_bb): At the moment removed. We should later
1578 add it at another place.
1579 (build_scops_1): Work on basic_blocks.
1580 (bb_in_sd_region): New.
1581 (find_single_entry_edge): New.
1582 (find_single_exit_edge): New.
1583 (create_single_entry_edge): New.
1584 (sd_region_without_exit): New.
1585 (create_single_exit_edge): New.
1586 (unmark_exit_edges): New.
1587 (mark_exit_edges): New.
1588 (create_sese_edges): New.
1589 (build_graphite_scops): New.
1590 (build_scops): Make SCoPs SESE.
1591 (limit_scops): Use the new functions.
1593 2008-09-29 Hans-Peter Nilsson <hp@axis.com>
1595 * config/cris/cris.h (IRA_COVER_CLASSES): Define.
1597 2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
1600 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
1601 address to a register before taking the lower part.
1603 2008-09-28 Kaz Kojima <kkojima@gcc.gnu.org>
1605 * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
1608 2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
1609 Kaushal Kantawala <kaushal_kantawala@playstation.sony.com>
1612 * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
1613 the newly created variable.
1614 Create a VECTOR_CST of all 1s for vector types.
1616 2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
1619 * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
1621 2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
1623 * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
1624 order to convert between modes.
1625 (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
1627 2008-09-27 Kaz Kojima <kkojima@gcc.gnu.org>
1629 * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
1632 2008-09-26 Vladimir Makarov <vmakarov@redhat.com>
1635 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
1639 2008-09-26 Adam Nemet <anemet@caviumnetworks.com>
1641 * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
1642 ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
1643 them to yield false with MIPS16.
1645 2008-09-26 Jakub Jelinek <jakub@redhat.com>
1648 * dwarf2out.c (tls_mem_loc_descriptor): New function.
1649 (mem_loc_descriptor): Use it for MEM. For PLUS fail if second
1650 mem_loc_descriptor failed. Accept UNSPEC.
1651 (loc_descriptor): Use tls_mem_loc_descriptor for MEM. For PARALLEL
1652 fail if one of the loc_descriptor calls for pieces failed.
1653 (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
1654 as long as they bind locally. For COMPONENT_REF, ARRAY_REF etc. fail
1655 if loc_descriptor_from_tree_1 on offset failed.
1658 * opts.c (common_handle_option): Don't call print_specific_help with
1659 CL_SAVE as first argument.
1661 2008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
1662 Steve Ellcey <sje@cup.hp.com>
1664 * configure: Regenerate for new libtool.
1665 * aclocal.m4: Ditto.
1667 2008-09-26 Pat Haugen <pthaugen@us.ibm.com>
1669 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
1670 alias set on MEM when saving stack pointer.
1671 * config/rs6000/rs6000.md (allocate_stack): Likewise
1673 2008-09-26 Dorit Nuzman <dorit@il.ibm.com>
1675 PR tree-optimization/37574
1676 * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
1677 * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
1678 instead of vector_type for constants. Take computation out of loop.
1679 (vect_get_vec_def_for_operand): Use only vectype for constant case,
1680 and use only vector_type for invariant case.
1681 (get_initial_def_for_reduction): Use vectype instead of vector_type.
1683 2008-09-25 Jakub Jelinek <jakub@redhat.com>
1686 * c-common.c (handle_weakref_attribute): Ignore the attribute unless
1687 the decl is a VAR_DECL or FUNCTION_DECL.
1689 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
1692 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
1693 (mark_ref_live, mark_ref_dead): Use them.
1694 (def_conflicts_with_inputs_p): Remove.
1695 (mark_early_clobbers): New function.
1696 (process_bb_node_lives): Call preprocess_constraints and
1697 mark_early_clobbers.
1699 * doc/rtl.texi (clobber): Change how RA deals with clobbers.
1701 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
1704 * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
1705 (ira_compress_allocno_live_ranges): New prototype.
1707 * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
1708 (coalesced_allocnos_living_at_program_points): New.
1709 (coalesced_allocnos_live_at_points_p,
1710 set_coalesced_allocnos_live_points): New functions.
1711 (coalesce_spill_slots): Rewrite.
1713 * ira-lives.c (remove_some_program_points_and_update_live_ranges,
1714 ira_compress_allocno_live_ranges): New functions.
1716 * ira-build.c (ira_flattening): Call
1717 ira_compress_allocno_live_ranges.
1720 2008-09-25 H.J. Lu <hongjiu.lu@intel.com>
1722 * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
1725 2008-09-25 Richard Sandiford <rdsandiford@googlemail.com>
1727 * combine.c (make_compound_operation): Handle the 'E' format.
1728 (count_rtxs): Likewise.
1729 (update_table_tick): Likewise.
1730 (get_last_value_validate): Likewise.
1732 2008-09-25 Eric Botcazou <ebotcazou@adacore.com>
1734 * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
1736 2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
1738 * matrix-reorg.c (transform_allocation_sites): Initializers
1739 added to avoid the warning.
1741 2008-09-25 Martin Jambor <mjambor@suse.cz>
1743 * cgraph.c (free_nodes): New variable.
1744 (NEXT_FREE_NODE): New macro.
1745 (cgraph_create_node): Reuse nodes from the free list. Do not
1746 update uid if doing so.
1747 (cgraph_remove_node): Add the node to the free list.
1749 2008-09-25 Gerald Pfeifer <gerald@pfeifer.com>
1751 * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1753 2008-09-24 Richard Henderson <rth@redhat.com>
1755 * dwarf2.h (DW_OP_GNU_encoded_addr): New.
1756 * unwind-dw2.c (execute_stack_op): Handle it.
1758 2008-09-24 David Edelsohn <edelsohn@gnu.org>
1761 2008-09-24 Michael J. Eager <eager@eagercon.com>
1763 2008-09-24 Aldy Hernandez <aldyh@redhat.com>
1765 * c-common.c (fname_decl): New location argument.
1766 * c-common.h (fname_decl): Same.
1767 * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
1769 (c_parser_typeof_specifier): Same.
1770 (c_parser_parms_list_declarator): Same.
1771 (c_parser_asm_string_literal): Same.
1772 (c_parser_compound_statement_nostart): Same.
1773 (c_parser_label): Same.
1774 (c_parser_do_statement): Same.
1775 (c_parser_asm_statement): Same.
1776 (c_parser_unary_expression): Same.
1777 (c_parser_sizeof_expression): Same.
1778 (c_parser_postfix_expression): Same.
1779 (c_parser_pragma): Same.
1780 (c_parser_omp_clause_collapse): Same.
1781 (c_parser_omp_clause_num_threads): Same.
1782 (c_parser_omp_clause_schedule): Same.
1783 (c_parser_omp_all_clauses): Same.
1784 (c_parser_omp_sections_scope): Same.
1785 (c_parser_omp_for_loop): Same. Pass condition's location to
1786 c_objc_common_truthvalue_conversion.
1787 (c_parser_enum_specifier): Remove comment.
1789 2008-09-24 Michael J. Eager <eager@eagercon.com>
1791 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
1793 * config/rs6000/rs6000.c (rs6000_override_options): Move
1794 rs6000_init_hard_regno_mode_ok after all options changed.
1795 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
1796 (rs6000_handle_option): Process -msingle-float, -mdouble-float,
1797 -msimple-fpu flags. Add warning messages if single FP not configured.
1798 (rs6000_file_start): Output gnu_attribute for single-float.
1799 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
1800 (rs6000_legitimize_address): Likewise.
1801 (rs6000_legitimize_reload_address): Likewise.
1802 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
1803 TARGET_SINGLE_FLOAT.
1804 (function_arg_advance): Likewise.
1805 (function_arg): Likewise.
1806 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
1807 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
1808 TARGET_SINGLE_FLOAT.
1809 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
1810 (rs6000_emit_prologue): Likewise.
1811 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
1812 TARGET_SINGLE_FLOAT.
1813 (rs6000_libcall_value): Likewise.
1814 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
1815 (TARGET_DOUBLE_FLOAT): New default to 1
1816 (TARGET_SIMPLE_FPU): New default to 0
1817 (TARGET_SINGLE_FPU): New default to 0
1818 (TARGET_SINGLE_FLOAT_MODE): New.
1819 (TARGET_DOUBLE_FLOAT_MODE): New.
1820 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
1821 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
1823 * config/rs6000/rs6000.md (define_mode_iterator): Condition on
1824 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1825 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
1826 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
1827 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
1828 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
1829 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
1830 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
1831 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
1832 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
1833 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
1834 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
1835 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
1836 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
1837 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
1838 cmptf_internal1, *cmptf_internal2): Condition on
1839 TARGET_DOUBLE_FLOAT.
1840 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
1841 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
1842 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
1843 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
1844 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
1845 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
1846 TARGET_SINGLE_FLOAT.
1847 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
1848 * config/rs6000/rs6000.opt (-msingle-float): New.
1849 (-mdouble-float): New.
1850 (-msimple-fpu): New.
1851 * doc/invoke.texi (RS/6000 and PowerPC Options): Add
1852 -msingle-float, -mdouble-float, -msimple-fpu options.
1853 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
1854 _SOFT_DOUBLE for -msingle-float.
1855 * config.gcc: New config for target=powerpc-xilinx-eabi.
1857 2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
1859 * config/sparc/constraints.md: New file.
1860 * config/sparc/sparc.md: Include it.
1861 * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
1862 (sparc_extra_constraint_check): Delete.
1863 * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
1864 (memory_ok_for_ldd): New predicate.
1865 (sparc_extra_constraint_check): Delete.
1866 * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
1867 (CONST_OK_FOR_LETTER_P): Likewise.
1868 (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
1869 (EXTRA_CONSTRAINT): Likewise.
1871 2008-08-23 Steve Ellcey <sje@cup.hp.com>
1873 * regrename.c (do_replace): Copy REG_POINTER value to new reg.
1875 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
1877 * alias.c (find_base_value): Use FIND_BASE_TERM.
1878 * doc/tm.texi (FIND_BASE_TERM): Update documentation.
1880 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
1882 * config/i386/i386.c: Include cselib.h.
1883 (ix86_pic_register_p): New function.
1884 (ix86_delegitimize_address): Use it to check for the PIC register.
1886 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
1888 * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
1889 * config/i386/i386.c (ix86_find_base_term): Don't check for
1890 SYMBOL_REF and LABEL_REF.
1892 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
1894 * config/i386/i386.c (ix86_delegitimize_address): Wrap the
1895 constant PLUS in a CONST.
1897 2008-09-23 Kai Tietz <kai.tietz@onevision.com>
1899 * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
1900 check for sibcall support for w64.
1902 2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
1904 * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
1906 2008-09-23 Aldy Hernandez <aldyh@redhat.com>
1908 * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
1909 parser_build_binary_op.
1910 * c-decl.c (build_enumerator): Pass location to build_binary_op.
1911 * c-typeck.c (build_array_ref): Same.
1912 (parser_build_unary_op): New location argument.
1913 (pointer_diff): Pass location to build_binary_op,
1914 c_objc_common_truthvalue_conversion.
1915 (build_modify_expr): Same.
1916 (build_unary_op): New location argument.
1917 (build_binary_op): New location argument.
1918 (c_objc_common_truthvalue_conversion): Pass location to
1919 c_*common_truthvalue_conversion.
1920 * c-convert.c (convert): Same.
1921 * c-common.c (binary_op_error): New location argument.
1922 (pointer_int_sum): Pass location to build_binary_op.
1923 (c_common_truthvalue_conversion): New location argument.
1924 (warn_for_sign_compare): Same.
1925 * c-common.h: Add location argument to c_common_truthvalue_conversion,
1926 binary_op_error, build_binary_op, warn_for_sign_compare.
1927 * c-parser.c (c_parser_condition): Pass location to
1928 c_*common_truthvalue_conversion.
1929 (c_parser_conditional_expression): Save condition's location and pass
1931 (c_parser_binary_expression): Same, but for the binary operator's
1933 (c_parser_omp_for_loop): Pass location to
1934 c_objc_common_truthvalue_conversion.
1936 2008-09-23 Martin Jambor <mjambor@suse.cz>
1938 * cgraph.c (cgraph_free_edge): Use sizeof(*e).
1939 (cgraph_node_remove_callees): New temporary f. Hold the next item
1941 (cgraph_node_remove_callers): Likewise.
1943 * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
1944 (ipa_node_removal_hook): Likewise.
1946 * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
1947 gimple_call_copy_skip_args and moved to the gimple_call section.
1948 * gimple.c (gimple_copy_call_skip_args): Renamed to
1949 gimple_call_copy_skip_args. Changed al users.
1951 2008-09-22 Vladimir Makarov <vmakarov@redhat.com>
1953 * ira-color.c (start_allocno_priorities): Rename to
1954 setup_allocno_priorities. Use costs and
1955 ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
1956 range lengths. Get rid off doubles.
1957 (ira_fast_allocations): Call start_allocno_priorities.
1959 2008-09-22 David Daney <ddaney@avtrex.com>
1962 * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
1963 register if TARGET_LONG_CALLS.
1965 2008-09-22 Richard Guenther <rguenther@suse.de>
1967 PR tree-optimization/37145
1968 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
1969 value-numbering union accesses with their offset and size only.
1970 (visit_reference_op_load): Fix simplification of inserted conversions.
1971 * tree-ssa-pre.c (find_or_generate_expression): Do not
1972 recursively generate expressions if running FRE.
1974 2008-09-22 Adam Nemet <anemet@caviumnetworks.com>
1976 * config/mips/mips.h (ISA_HAS_BADDU): New macro.
1977 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
1980 2008-09-22 Richard Guenther <rguenther@suse.de>
1982 PR tree-optimization/37145
1983 * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
1984 (phi_translate_1): Constant fold references.
1986 2008-09-22 Ira Rosen <irar@il.ibm.com>
1988 PR tree-optimization/37482
1989 * tree-vectorizer.h (struct _slp_instance): Add new field.
1990 (SLP_INSTANCE_FIRST_LOAD_STMT): New.
1991 (get_earlier_stmt): New function.
1992 * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
1994 (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
1995 * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
1996 asserts that GSI points to the scalar statement being vectorized.
1997 Set new statement location according to GSI.
1998 (vect_schedule_slp_instance): Use GSI of
1999 SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
2001 2008-09-21 Jan Hubicka <jh@suse.cz>
2003 * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
2004 (ipcp_insert_stage): Update dead_nodes bitmap.
2006 2008-09-22 Danny Smith <dannysmith@users.sourceforge.net>
2009 * config/i386/t-cygming (SHLIB_LC): Remove.
2010 (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
2011 * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
2013 2008-09-22 Hans-Peter Nilsson <hp@axis.com>
2017 * final.c (mark_symbol_ref_as_used): New helper function.
2018 (output_operand): Instead of just looking inside MEMs for
2019 SYMBOL_REFs, use new helper function and for_each_rtx.
2020 * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
2021 to after weak-handling. Don't mark decls with TREE_STATIC as weak.
2022 Make head comment more general.
2023 * config/darwin.c (machopic_output_indirection): Handle weak
2024 references here, like in assemble_external.
2026 2008-09-21 Eric Botcazou <ebotcazou@adacore.com>
2028 * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
2029 (sparc_emit_float_lib_cmp): Change return type.
2030 * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
2031 (gen_compare_operator): New function.
2032 (sparc_emit_float_lib_cmp): Return the new operator to be used in
2033 the comparison sequence. Minor tweaks.
2034 * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
2035 that the final operator and the result of sparc_emit_float_lib_cmp
2036 match for software TFmode; use emit_insn in lieu of emit_jump_insn.
2037 (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
2038 buneq, bunge, bunle, bltgt): Assert that the final operator and the
2039 result of sparc_emit_float_lib_cmp match for software TFmode.
2040 (movqicc, movhicc, movsicc, movdicc): Merge into...
2041 (mov<I:mode>cc): ...this.
2042 (movsfcc, movdfcc, movtfcc): Merge into...
2043 (mov<F:mode>cc): ...this.
2044 (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
2046 (mov<I:mode>_cc_v9): ...this.
2047 (movdi_cc_sp64_trunc): Delete.
2048 (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
2049 movdi_cc_reg_sp64): Merge into...
2050 (mov<I:mode>_cc_reg_sp64): ...this.
2051 (movsf_cc_sp64): Rename into...
2052 (movsf_cc_v9): ...this.
2053 (movdf_cc_sp64): Rename into...
2054 (movdf_cc_v9): ...this.
2055 (movtf_cc_hq_sp64): Rename into...
2056 (movtf_cc_hq_v9): ...this.
2057 (movtf_cc_sp64): Rename into...
2058 (movtf_cc_v9): ...this. Adjust for renaming of movdf_cc_sp64.
2060 2008-09-21 Diego Novillo <dnovillo@google.com>
2062 * doc/gccint.texi: Include generic.texi and gimple.texi.
2064 * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
2065 (GIMPLE): Move to gimple.texi.
2066 (Annotations): Remove references to to stmt_ann_t and
2068 (SSA Operands): Rename from 'Statement Operands'.
2069 * doc/generic.texi: New.
2070 * doc/gimple.texi: New.
2071 * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
2072 * Makefile.in (TEXI_GCCINT_FILES):
2073 * gimple.c (gimple_copy_call_skip_args): Rename from
2074 giple_copy_call_skip_args. Update all users.
2075 * doc/gimple.texi (gimple_copy_call_skip_args): Document.
2077 2008-09-21 Ira Rosen <irar@il.ibm.com>
2079 PR tree-optimization/37539
2080 * tree-vect-transform.c (vect_transform_strided_load): Save vector
2081 statement in related statement field only for the first load of the
2082 group of loads with the same data reference.
2084 2008-09-20 Adam Nemet <anemet@caviumnetworks.com>
2086 * config/mips/mips.h (TUNE_OCTEON): New macro.
2087 * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
2088 (mips_multipass_dfa_lookahead): Return 2 for Octeon.
2089 * config/mips/octeon.md: New file.
2090 * config/mips/mips.md: Include octeon.md. Restore
2091 semi-alphabetical order of include files.
2093 2008-09-20 H.J. Lu <hongjiu.lu@intel.com>
2096 * config/i386/i386.md (*jcc_fused_1): Removed.
2097 (*jcc_fused_2): Likewise.
2098 (*jcc_fused_3): Likewise.
2099 (*jcc_fused_4): Likewise.
2101 2008-09-20 Richard Sandiford <rdsandiford@googlemail.com>
2103 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
2104 (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
2105 * target.h (gcc_target): Add ira_cover_classes.
2106 * ira.c: Remove IRA_COVER_CLASSES guards.
2107 (setup_cover_and_important_classes): Use targetm.ira_cover_classes
2108 instead of IRA_COVER_CLASSES.
2109 (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
2110 (setup_class_translate): Likewise.
2111 (setup_reg_class_intersect_union): Likewise.
2112 (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
2113 test of targetm.ira_cover_classes.
2114 * opts.c (decode_options): Use targetm.ira_cover_classes instead
2115 of IRA_COVER_CLASSES.
2116 * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
2117 (TARGET_INITIALIZER): Include it.
2118 * targhooks.h (default_ira_cover_classes): Declare.
2119 * targhooks.c (default_ira_cover_classes): New function.
2121 2008-09-19 Bob Wilson <bob.wilson@acm.org>
2123 * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
2125 2008-09-19 Ian Lance Taylor <iant@google.com>
2127 * varasm.c (narrowing_initializer_constant_valid_p): Return
2128 NULL_TREE if ENDTYPE is not an integer.
2130 2008-09-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2133 * tree-ssa.c (execute_update_addresses_taken): Also update
2134 DECL_GIMPLE_REG_P for vector and complex types.
2136 2008-09-19 Andrew MacLeod <amacleod@redhat.com>
2137 Jan Hubicka <jh@suse.cz>
2140 * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
2141 empty before freeing them.
2142 (find_replaceable_exprs): Move asserts to free_temp_expr_table.
2144 2008-09-18 Bob Wilson <bob.wilson@acm.org>
2146 * configure.ac: Add HAVE_AS_TLS check for Xtensa.
2147 * config/xtensa/predicates.md (tls_symbol_operand): New.
2148 * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
2149 (TARGET_CANNOT_FORCE_MEM): Define.
2150 (xtensa_tls_symbol_p): New.
2151 (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
2152 (xtensa_legitimate_address_p): Disallow constant pool TLS references.
2153 (xtensa_tls_module_base): New.
2154 (xtensa_call_tls_desc): New.
2155 (xtensa_legitimize_tls_address): New.
2156 (xtensa_legitimize_address): Handle TLS symbols.
2157 (xtensa_tls_referenced_p_1): New.
2158 (xtensa_tls_referenced_p): New.
2159 (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
2161 (XTENSA_BUILTIN_THREAD_POINTER): New.
2162 (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
2163 (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
2164 builtin. Add declarations for __builtin_thread_pointer and
2165 __builtin_set_thread_pointer.
2166 (xtensa_fold_builtin): Recognize new builtins.
2167 (xtensa_expand_builtin): Expand new builtins.
2168 * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
2169 (TARGET_THREADPTR): Define.
2170 (HAVE_AS_TLS): Define default value.
2171 (LEGITIMATE_CONSTANT_P): Disallow TLS references.
2172 * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
2173 (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
2174 (UNSPECV_SET_TP): New.
2175 (sym_TPOFF, sym_DTPOFF): New.
2176 (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
2177 * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
2178 * configure: Regenerated.
2180 2008-09-18 H.J. Lu <hongjiu.lu@intel.com>
2183 * config/ia64/ia64.c (ia64_optimization_options): Move
2184 checking and setting flag_schedule_insns_after_reload and
2185 ia64_flag_schedule_insns2 back to ...
2186 (ia64_override_options): Here.
2188 2008-09-18 Andrew Pinski <andrew_pinski@playstation.sony.com>
2191 * loop-doloop.c (doloop_modify): New argument zero_extend_p and
2192 zero extend count after the correction to it is done.
2193 (doloop_optimize): Update call to doloop_modify, don't zero extend
2196 2008-09-18 Martin Jambor <mjambor@suse.cz>
2198 * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
2200 * ipa-prop.c: Correct comments.
2201 * ipa-prop.h: Likewise.
2203 2008-09-18 Jan Hubicka <jh@suse.cz>
2206 * ipa-reference.c (ipa_reference_local_vars_info_d,
2207 ipa_reference_global_vars_info_d,
2208 ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2209 ipa_reference_vars_info_t): Move here from ipa-reference.h
2210 (node_duplication_hook_holder, node_removal_hook_holder): New.
2211 (get_reference_vars_info_from_cgraph): Rename to ...
2212 (get_reference_vars_info): ... this one, use cgraph uids.
2213 (get_local_reference_vars_info, get_global_reference_vars_info):
2214 Use cgraph instead of decl.
2215 (ipa_reference_get_read_local, ipa_reference_get_written_local):
2217 (ipa_reference_get_read_global, ipa_reference_get_not_read_global
2218 ipa_reference_get_written_global,
2219 ipa_reference_get_not_written_global): Use cgraph argument.
2220 (check_call): Simplify avail check.
2221 (scan_stmt_for_static_refs): Update.
2222 (propagate_bits): Update.
2223 (merge_callee_local_info): Remove.
2224 (init_function_info): Use cgraph nodes.
2225 (clean_function_local_data): Break out from ...
2226 (clean_function): ... here.
2227 (copy_local_bitmap, copy_global_bitmap): New functions.
2228 (duplicate_node_data, remove_node_data): New functions.
2229 (generate_summary): Register hooks; use visibility instead of
2231 (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
2232 * ipa-reference.h (ipa_reference_local_vars_info_d,
2233 ipa_reference_global_vars_info_d,
2234 ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2235 ipa_reference_vars_info_t): Move to ipa-reference.c
2236 (ipa_reference_get_read_local, ipa_reference_get_written_local):
2238 (ipa_reference_get_read_global, ipa_reference_get_written_global,
2239 ipa_reference_get_not_read_global,
2240 ipa_reference_get_not_written_global): Update prototype.
2241 * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
2242 (init_state): Remove.
2243 (node_duplication_hook_holder, node_removal_hook_holder): New.
2244 (get_function_state, set_function_state): Use VECtor.
2245 (analyze_function): Check body availability.
2246 (add_new_function): Likewise.
2247 (duplicate_node_data, remove_node_data): New.
2248 (generate_summary): Register hooks; do not care about clones.
2249 (propafate): Do not care about clones; recursive functions are
2251 * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
2252 * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
2253 * edge_duplication_hook_holder, node_duplication_hook_holder): Make
2255 * tree-flow.h (function_ann_d): Remove reference_vars_info.
2256 * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
2257 Update call of ipa-reference accesors.
2259 2008-09-18 Simon Baldwin <simonb@google.com>
2261 * c-opts.c (c_common_handle_option): Add handling for
2262 -Wbuiltin-macro-redefined command line option.
2263 * c.opt: Added builtin-macro-redefined option.
2264 * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
2267 2008-09-18 Richard Guenther <rguenther@suse.de>
2269 PR tree-optimization/37258
2270 * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
2271 and signedness for integral types.
2272 (vn_phi_eq): Require compatible types.
2274 2008-09-18 Jakub Jelinek <jakub@redhat.com>
2277 * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
2278 TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
2280 * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
2281 !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
2282 ggc_free other TREE_LIST nodes from that chain.
2283 * function.c (instantiate_decls): Instantiate also DECL_RTL
2284 of vars in cfun->local_decls, free that list afterwards.
2286 2008-09-18 Eric Botcazou <ebotcazou@adacore.com>
2288 * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
2289 * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
2291 2008-09-18 Andrew MacLeod <amacleod@redhat.com>
2293 * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
2294 * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
2296 2008-09-18 Andrew MacLeod <amacleod@redhat.com>
2298 PR tree-optimization/37102
2299 * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
2300 from a node. Check to see if another PHI is dead.
2301 (eliminate_useless_phis): Rename from eliminate_virtual_phis and
2302 remove real PHIs which have no uses.
2303 (rewrite_out_of_ssa): Call eliminate_useless_phis.
2305 2008-09-18 Richard Guenther <rguenther@suse.de>
2308 * tree-cfg.c (remove_useless_stmts_1): Remove
2309 GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
2311 2008-09-18 Nick Clifton <nickc@redhat.com>
2313 * config/frv/frv.h (IRA_COVER_CLASSES): Define.
2314 (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
2315 to frv_secondary_reload_class.
2316 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2317 * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
2318 (frv_secondary_reload_class): Omit unused parameter.
2319 (frv_secondary_reload): New function. Handle the case when
2320 secondary_reload_class() is called before the reload_(in|out)
2321 _optabs have been initialised.
2322 * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
2324 * config/frv/frv.md: Define an exclusion set between fr550_m0
2327 2008-09-18 Richard Guenther <rguenther@suse.de>
2329 PR tree-optimization/37456
2330 * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
2331 want to insert after ends a BB insert on the single fallthru
2334 2008-09-18 Andreas Krebbel <krebbel1@de.ibm.com>
2336 * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
2337 Mention -march=z9-109, z9-ec and z10.
2339 2008-09-18 Uros Bizjak <ubizjak@gmail.com>
2341 PR rtl-optimization/37544
2342 * regrename.c (maybe_mode_change): Exit early when copy_mode
2343 is narrower than orig_mode and narrower than new_mode.
2345 2008-09-18 Alexander Monakov <amonakov@ispras.ru>
2348 * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
2350 * sched-rgn.c (ref_counts): Remove.
2351 (insn_referenced): New static variable.
2352 (INSN_REF_COUNT): Remove.
2353 (sched_run_compute_dependencies): Use insn_referenced instead of
2355 (add_branch_dependences): Likewise. Delete dead assignment.
2357 2008-09-17 Adam Nemet <anemet@caviumnetworks.com>
2359 * haifa-sched.c (dep_cost_1): Recognize the producer even if the
2360 consumer is an asm. Add comment why this is important.
2361 (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
2362 recog_memoized (insn) < 0" assert. Put ENABLE_CHECKING around it.
2364 2008-09-17 Joseph Myers <joseph@codesourcery.com>
2366 * expr.c (emit_group_store): Do not shift before moving via a
2369 2008-09-17 Eric Botcazou <ebotcazou@adacore.com>
2371 * varasm.c (initializer_constant_valid_p): Forbid view-conversions
2372 from aggregate to non-aggregate type if the bit pattern is not fully
2373 preserved afterwards.
2375 2008-09-17 Richard Guenther <rguenther@suse.de>
2377 * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
2378 (verify_gimple_assign): ... this. Split into ...
2379 (verify_gimple_assign_unary): ... this,
2380 (verify_gimple_assign_binary): ... that,
2381 (verify_gimple_assign_single): ... and this.
2382 (verify_types_in_gimple_stmt): Call verify_gimple_assign.
2383 Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
2384 (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
2385 (verify_types_in_gimple_reference): Be forgiving with
2387 (verify_gimple_phi): Deal with virtual operands.
2389 * tree.def (PREDICT_EXPR): Change to tcc_expression.
2391 2008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
2393 * tree.c (get_callee_fndecl): Don't call the language hook.
2394 * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
2395 * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
2396 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
2398 2008-09-17 Jakub Jelinek <jakub@redhat.com>
2400 * tree.c (protected_set_expr_location): Don't unnecessarily
2401 check for error_mark_node.
2403 2008-09-17 Art Haas <ahaas@impactweather.com>
2405 * ipa-reference.c (analyze_function): Declare step only if
2406 ENABLE_CHECKING is defined.
2408 2008-09-17 Jan Hubicka <jh@suse.cz>
2411 * tree.h (DECL_INLINE): remove.
2412 (DECL_DECLARED_INLINE_P): Update docs.
2413 (DECL_NO_INLINE_WARNING_P): new.
2414 (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
2415 * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
2417 2008-09-17 Jakub Jelinek <jakub@redhat.com>
2418 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2421 * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
2424 2008-09-17 Jan Hubicka <jh@suse.cz>
2426 * ipa-reference.c (ipa_obstack): Remove.
2427 (local_info_obstack, global_info_obstack): New.
2428 (add_static_var): We now handle variables only.
2429 (mark_address_taken, mark_load, mark_store): New functions based on ...
2430 (check_operand): ... remove.
2431 (get_asm_stmt_operands): Rename to ...
2432 (check_asm_memory_clobber): ... this. Look only for memory clobber.
2433 (scan_stmt_for_static_refs): Rewrite.
2434 (scan_op_for_static_refs): Rename to ...
2435 (scan_initializer_for_static_refs): do not look for VAR_DECL
2436 initializers; stop recursion on types and decls.
2437 (ipa_init): Use proper obstacks.
2438 (analyze_variable): Use scan_initializer_for_static_refs.
2439 (init_function_info): Use local obstack.
2440 (analyze_function): Simplify.
2441 (add_new_function): We don't need visited_nodes obstack.
2442 (generate_summary): Use proper obstacks; cleanup after propagation.
2444 2008-09-17 Richard Guenther <rguenther@suse.de>
2447 PR tree-optimization/37491
2448 * alias.c (get_alias_set): Use the canonical type.
2449 * tree-vect-transform.c (vectorizable_store): Use the type of
2450 the lhs for the vector type. Adjust checking.
2451 (vectorizable_load): Adjust checking.
2453 2008-09-16 Jakub Jelinek <jakub@redhat.com>
2454 Adam Nemet <anemet@caviumnetworks.com>
2456 PR rtl-optimization/37483
2457 * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
2458 if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
2459 Rearrange code to better match the original comment. Check
2460 t_unconditional first. Improve comment.
2462 2008-09-16 Jakub Jelinek <jakub@redhat.com>
2465 * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
2466 GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
2469 * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
2470 GIMPLE_TRY if cleanup sequence is empty.
2472 2008-09-16 Andrew Pinski <andrew_pinski@playstation.sony.com>
2475 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
2476 eliminate IV if the cost are the same.
2478 2008-09-16 Richard Guenther <rguenther@suse.de>
2481 * tree-sra.c (sra_build_assignment): Do not call the gimplifier
2484 2008-09-16 Richard Guenther <rguenther@suse.de>
2486 PR tree-optimization/37508
2487 * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
2489 2008-09-15 Kaz Kojima <kkojima@gcc.gnu.org>
2491 * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
2493 2008-09-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
2495 * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
2496 use gen_floatdidf2 directly.
2497 (floatunssidf2): Likewise.
2498 (floatsidf_ppc64_mfpgpr): Remove.
2499 (floatsidf_ppc64): Remove.
2500 (floatunssidf_ppc64): Remove.
2502 2008-09-15 Jakub Jelinek <jakub@redhat.com>
2504 * ira-color.c (finish_cost_update): Free update_cost_queue_elems
2505 rather than update_cost_queue.
2507 * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
2508 in every call starting with the second one, instead of only when
2509 alias_bitmap_obstack.elements != NULL.
2511 * tree-predcom.c (filter_suitable_components): Free all refs in
2512 act->refs vector before calling release_component.
2513 (add_ref_to_chain): Free ref if not adding it to chain->refs.
2515 * tree-data-ref.c (free_subscripts): Free all subscript objects.
2517 * tree-loop-linear.c (linear_transform_loops): Initialize
2518 lambda_obstack only after calling perfect_loop_nest_depth.
2519 Goto free_and_continue instead of just continue for later failures.
2522 * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
2525 * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
2527 2008-09-14 Andreas Schwab <schwab@suse.de>
2529 * tree-call-cdce.c (check_target_format): Accept Motorola formats.
2531 2008-09-14 Jan Hubicka <jh@suse.cz>
2533 * invoke.texi (-fconserve-stack): Document.
2534 * opts.c (decode_options): Handle conserve_stack.
2535 * common.opt (fconvserve_stack): New.
2537 2008-09-14 David Edelsohn <edelsohn@gnu.org>
2539 * config.host: Add x-aix to host_xmake_file.
2540 * config/rs6000/t-aix52: Do not override LDFLAGS.
2541 * config/rs6000/x-aix: New file.
2543 2008-09-14 Andy Hutchinson <hutchinsonandy@aim.com>
2549 * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
2550 is not recognized as a valid register usage. Allow REG_X to be used
2552 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
2553 forces a reload when using a base register.
2555 2008-09-14 Danny Smith <dannysmith@users.sourceforge.net>
2557 * config/i386/cygming-crtend.c (register_frame_ctor): If
2558 DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
2559 directly with atexit.
2560 (deregister_frame_ctor): Rename to ...
2561 (deregister_frame_dtor): Use to call __gcc_deregister_frame
2562 if !DEFAULT_USE_CXA_ATEXIT.
2564 2008-09-13 Jan Hubicka <jh@suse.cz>
2566 * cgraph.c: Include value-prof.h
2567 * Makefile.in (cgraph.o): Add value-prof.h dependency.
2569 2008-09-13 Jan Hubicka <jh@suse.cz>
2572 * tree-profile.c (add_abnormal_goto_call_edges): New function.
2573 (tree_gen_interval_profiler, tree_gen_pow2_profiler,
2574 tree_gen_one_value_profiler, tree_gen_average_profiler,
2575 tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
2577 2008-09-13 Jan Hubicka <jh@suse.cz>
2579 * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
2580 too many bytes on misalligned blocks.
2582 2008-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2584 * doc/cfg.texi: Fix some typos.
2585 * doc/extend.texi: Likewise.
2586 * doc/install.texi: Likewise.
2587 * doc/invoke.texi: Likewise.
2588 * doc/rtl.texi: Likewise.
2589 * doc/tree-ssa.texi: Likewise.
2591 2008-09-13 Richard Guenther <rguenther@suse.de>
2594 * tree-nested.c (finalize_nesting_tree_1): Generate valid
2595 gimple stores for memory rhs.
2597 2008-09-13 H.J. Lu <hongjiu.lu@intel.com>
2599 PR rtl-optimization/37489
2600 * cse.c (fold_rtx): Don't return const_true_rtx for float
2601 compare if FLOAT_STORE_FLAG_VALUE is undefined.
2603 2008-09-13 Jan Hubicka <jh@suse.cz>
2605 PR tree-optimization/37392
2606 * tree-inline.c (remap_gimple_stmt): Do not remap return value.
2608 2008-09-13 Martin Jambor <mjambor@suse.cz>
2609 Jan Hubicka <jh@suse.cz>
2611 * cgraph.c (free_edges): New variable.
2612 (NEXT_FREE_EDGE): New macro.
2613 (cgraph_free_edge): New function.
2614 (cgraph_remove_edge): Call cgraph_remove_edge_1.
2615 (cgraph_node_remove_callees): Likewise.
2616 (cgraph_node_remove_callers): Likewise.
2617 (cgraph_create_edge): Reuse edges from the free list. Do not
2618 update uid if doing so.
2619 (cgraph_remove_*_hook): Add free call.
2621 2008-09-13 Richard Sandiford <rdsandiford@googlemail.com>
2623 * ira-color.c (conflict_allocno_vec): Delete.
2624 (update_cost_queue_elem): New structure.
2625 (update_cost_queue): New variable.
2626 (update_cost_queue_tail): Likewise.
2627 (update_cost_queue_elems): Likewise.
2628 (allocno_update_cost_check): Delete.
2629 (initiate_cost_update): Allocate update_cost_queue_elems
2630 instead of allocno_update_cost_check.
2631 (finish_cost_update): Update the free()s accordingly.
2632 (start_update_cost): New function.
2633 (queue_update_cost): Likewise.
2634 (get_next_update_cost): Likewise.
2635 (update_copy_costs_1): Inline into...
2636 (update_copy_costs): ...here. Use a queue instead of recursive calls.
2637 Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
2638 once we've established they are equal. Don't allocate update
2639 costs if there is nothing to add to them.
2640 (update_conflict_hard_regno_costs): Remove ALLOCNO and
2641 DIVISOR arguments. Use a queue instead of recursive calls;
2642 process all the allocnos in the initial queue, rather than
2644 (assign_hard_reg): Use queue_update_cost instead of
2645 conflict_allocno_vec. Queue coalesced allocnos instead
2646 of calling update_conflict_hard_regno_costs for each one.
2647 Just call update_conflict_hard_regno_costs once for the
2649 (ira_color): Remove conflict_allocno_vec handling.
2651 2008-09-12 Sebastian Pop <sebastian.pop@amd.com>
2653 PR tree-optimization/37484
2654 * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
2655 (save_var_name): Same.
2656 (initialize_cloog_names): Same.
2657 (initialize_cloog_names): Same.
2659 2008-09-12 Sebastian Pop <sebastian.pop@amd.com>
2661 * tree-scalar-evolution.c (set_instantiated_value): Set
2664 2008-09-12 Vladimir Makarov <vmakarov@redhat.com>
2668 * ira-build.c (common_loop_tree_node_dominator): Remove.
2669 (copy_live_ranges_to_removed_store_destinations): New function.
2670 (regno_top_level_allocno_map): Move to top level from ...
2671 (ira_flattening): ... here. Use
2672 copy_live_ranges_to_removed_store_destinations.
2674 * ira-emit.c (generate_edge_moves): Fix a comment.
2676 2008-09-12 Anatoly Sokolov <aesok@post.ru>
2679 * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
2680 scratch register after 'set' pattern.
2682 2008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2684 * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
2685 information passed to mark_reg_pointer.
2686 * explow.c (force_reg): Likewise.
2688 2008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2690 * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
2691 when building for the celledp architecture.
2693 2008-09-12 Richard Guenther <rguenther@suse.de>
2695 * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
2697 2008-09-12 Eric Botcazou <ebotcazou@adacore.com>
2699 PR rtl-optimization/37424
2700 * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
2701 the regnos instead of the addresses.
2703 2008-09-11 Janis Johnson <janis187@us.ibm.com>
2705 * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
2707 2008-09-11 Richard Guenther <rguenther@suse.de>
2709 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
2710 entering the weaker equivalence recording.
2712 * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
2714 2008-09-11 Jeff Law <law@redhat.com>
2716 * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
2717 by assign_stack_local on the IRA path for stack slot sharing
2718 as well as the non-IRA path.
2720 2008-09-11 Uros Bizjak <ubizjak@gmail.com>
2722 * config/i386/i386.h: Fix whitespace issues.
2724 2008-09-11 Martin Jambor <mjambor@suse.cz>
2726 * ipa-prop.h (struct ipa_param_flags): Removed.
2727 (struct ipa_param_descriptor): New structure.
2728 (struct ipa_node_params): ipcp_lattices, param_decls and
2729 param_flags moved to ipa_param_description.
2730 (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
2731 descriptors. Renamed all users.
2732 (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
2733 changed to access descriptors. Renamed all users.
2734 (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
2735 to access descriptors. Renamed all users.
2736 * ipa-cp.c (ipcp_init_cloned_node): Call
2737 ipa_initialize_node_params instead of ipa_count_formal_params and
2738 ipa_create_param_decls_array.
2739 (ipcp_analyze_node): Likewise.
2740 (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
2741 descriptors. Renamed all users.
2742 (ipcp_initialize_node_lattices): Remove allocation.
2743 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
2744 ipa_initialize_node_params instead of ipa_count_formal_params and
2745 ipa_create_param_decls_array.
2746 * ipa-prop.c (ipa_create_param_decls_array): Renamed to
2747 ipa_populate_param_decls, made static, added parameter info,
2748 renamed mt to node, removed allocation, changed to use
2750 (ipa_count_formal_params): Made static, added parameter info,
2752 (ipa_initialize_node_params): New function.
2753 (ipa_check_stmt_modifications): Changed to use descriptors.
2754 (ipa_detect_param_modifications): Removed allocation, changed to
2756 (ipa_note_param_call): Changed to use descriptors.
2757 (ipa_analyze_params_uses): Removed allocation.
2758 (ipa_free_node_params_substructures): Changed to use descriptors.
2759 (ipa_edge_duplication_hook): Use the unused attribute.
2760 (ipa_node_duplication_hook): Use the unused attribute, changed to
2761 use descriptors, changed to duplicate descriptors.
2763 * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
2764 changed all callers. Call ipa_propagate_indirect_call_infos if doing
2765 indirect inlining. Made static.
2766 (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
2767 functions called only once.
2768 (cgraph_decide_recursive_inlining): Don't call
2769 ipa_propagate_indirect_call_infos, pass new_edges to
2770 cgraph_mark_inline_edge instead.
2771 (cgraph_decide_inlining_of_small_functions): Don't call
2772 ipa_propagate_indirect_call_infos, pass new_edges to
2773 cgraph_mark_inline_edge instead.
2774 (cgraph_decide_inlining): Don't call
2775 ipa_propagate_indirect_call_infos.
2776 * ipa-prop.c: Check that vectors are allocated.
2778 * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
2779 iff a new cgraph edges have been created.
2780 (cgraph_decide_inlining): New variable redo_always_inline.
2781 Flattening and always_inlining loop until callgraph stabilizes.
2782 * ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
2783 true iff new cgraph edges have been created.
2784 (propagate_info_to_inlined_callees): Likewise.
2785 (ipa_propagate_indirect_call_infos): Likewise.
2787 2008-09-11 Richard Guenther <rguenther@suse.de>
2789 * tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
2790 (set_prologue_iterations): Likewise.
2791 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
2793 (vect_update_init_of_dr): Likewise.
2794 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
2796 * fold-const.c (fold_unary): Do not generate calculations
2799 2008-09-11 Paolo Bonzini <bonzini@gnu.org>
2801 * dojump.c (do_jump) [BIT_AND_EXPR]: Move below. Fall through to
2802 TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
2803 (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
2805 * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
2807 * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
2808 VRP's simplify_stmt_using_ranges. Do simplify_stmt_using_ranges
2809 before finalizing the changes.
2810 * tree-vrp.c (extract_range_from_binary_expr): Add limited support
2812 (simplify_truth_ops_using_ranges): New.
2813 (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
2814 simplify_cond_using_ranges, simplify_switch_using_ranges): Return
2815 whether a simplification was made.
2816 (simplify_stmt_using_ranges): Ditto, and accept a GSI. For GS_ASSIGN,
2817 use a switch statement and also call simplify_truth_ops_using_ranges.
2819 2008-09-11 Jan Hubicka <jh@suse.cz>
2821 * ggc-common.c (loc_array): Make static.
2822 * dce.c (rest_of_handle_ud_dce): Free worklist.
2824 2008-09-11 Jan Hubicka <jh@suse.cz>
2826 * cgraph.c (cgraph_release_function_body): Plug memory leak on
2827 ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
2828 function so we are sure we do not dangle it forever.
2829 * function.c (outer_function_chain, find_function_data): Remove.
2830 (function_context_stack): New.
2831 (push_function_context, pop_function_context): Update.
2832 * function.h (struct function): Remove pointer outer.
2833 (outer_function_chain, find_function_data): Remove.
2834 * stmt.c (force_label_rtx): Remove dead call of find_function_data.
2836 2008-09-11 Jan Hubicka <jh@suse.cz>
2839 * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
2841 2008-09-11 Jan Hubicka <jh@suse.cz>
2843 * tree-ssa-pre.c (phi_translate_1): Fix memory leak
2845 2008-09-11 Jan Hubicka <jh@suse.cz>
2847 * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
2848 (free_var_map_entry): New function.
2849 (redirect_edge_var_map_destroy): Use it.
2851 2008-09-11 Jan Hubicka <jh@suse.cz>
2854 * tree-inline.c (add_lexical_block): Replace with ...
2855 (prepend_lexical_block): ... prepend at begginig.
2856 (remap_blocks): Use it and reverse later.
2857 (expand_call_inline): Use prepend_lexical_block.
2859 2008-09-11 Jan Hubicka <jh@suse.cz>
2861 * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
2863 2008-09-11 Jan Hubicka <jh@suse.cz>
2865 * function.c (free_after_compilation): Call insn_locators_free.
2866 * cfglayout.c (insn_locators_free): New function.
2867 * rtl.h (insn_locators_free): Declare.
2869 2008-09-11 Jan Hubicka <jh@suse.cz>
2871 * ifcvt.c (check_cond_move_block): Make regs argument pointer to
2873 (cond_move_process_if_block): Update call.
2875 2008-09-11 Jan Hubicka <jh@suse.cz>
2877 * toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
2878 * vec.c: Include hashtab.h
2879 (vec_descriptor, ptr_hash_entry): New structures.
2880 (vec_desc_hash, vec_ptr_map): New static variables.
2881 (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
2882 register_overhead, free_overhead, vec_heap_free): New functions.
2883 (vec_gc_o_reserve_1): ggc_free when resizing to 0.
2884 (vec_heap_o_reserve_1): free when resizing to 0; add statistics.
2885 (cmp_statistic, add_statistics, dump_vec_loc_statistics):
2888 2008-09-11 Ira Rosen <irar@il.ibm.com>
2890 PR tree-optimization/37474
2891 * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
2892 length of load permutation.
2894 2008-09-11 Andreas Schwab <schwab@suse.de>
2896 * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
2898 2008-09-11 Jakub Jelinek <jakub@redhat.com>
2901 * expmed.c (extract_low_bits): Avoid creating invalid subregs.
2902 * dse.c (find_shift_sequence): Use extract_low_bits instead of
2903 simplify_gen_subreg.
2905 2008-09-11 Ira Rosen <irar@il.ibm.com>
2907 * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
2910 2008-09-10 Jakub Jelinek <jakub@redhat.com>
2913 * gimplify.c (gimplify_body): Call default_rtl_profile.
2916 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
2917 instead of tok->val.node if not expanding to something else. Handle
2918 intervening CPP_PADDING tokens.
2919 (altivec_categorize_keyword): Remove unneeded comparisons.
2921 2008-09-10 Richard Guenther <rguenther@suse.de>
2923 * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
2925 2008-09-10 Richard Guenther <rguenther@suse.de>
2928 * tree-inline.c (insert_init_stmt): Make sure to not
2929 insert invalid gimple stores.
2931 2008-09-10 Sebastian Pop <sebastian.pop@amd.com>
2933 PR tree-optimization/37388
2934 * toplev.c (process_options): Fail and warn when graphite
2935 flags are used, but the compiler has not been configured
2936 with graphite libraries.
2937 * graphite.c (graphite_transform_loops): Remove printfs
2938 to dump_file for the case when graphite is not available.
2940 2008-09-10 H.J. Lu <hongjiu.lu@intel.com>
2943 * config/i386/i386.c (ix86_expand_vector_init_interleave): Force
2944 the even element into register.
2945 (ix86_expand_vector_init_general): Don't use
2946 ix86_expand_vector_init_interleave on V16QImode and V8HImode
2947 if we can't move from GPR to SSE register directly.
2949 2008-09-10 Bernd Schmidt <bernd.schmidt@analog.com>
2951 * config/bfin/bfin.c (workaround_speculation): Correct algorithm to
2952 not lose track of the number of NOPs needed. Number of NOPs needed
2953 for sync vs. loads workaround was switched; corrected. Run second
2954 pass for all workarounds. No NOPs needed after call insns. Change
2955 second pass to use find_next_insn_start and find_load helpers in order
2956 to properly detect parallel insns.
2957 * config/bfin/bfin.md (cbranch_with_nops): Increase length.
2959 2008-09-10 Jan Hubicka <jh@suse.cz>
2961 * value-prof.c (gimple_ic): Fix tuplification bug.
2962 * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
2965 2008-09-10 Jakub Jelinek <jakub@redhat.com>
2967 PR tree-optimization/37353
2968 * tree-call-cdce.c (cond_dead_built_in_calls): Remove.
2969 (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
2970 calls instead of cond_dead_built_in_calls.
2971 (tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
2972 initalize the vector only before adding first entry. Use VEC_safe_push
2973 instead of VEC_quick_push. Pass cond_dead_built_in_calls to
2974 shrink_wrap_conditional_dead_built_in_calls call.
2976 2008-09-10 Ira Rosen <irar@il.ibm.com>
2978 PR tree-optimization/37385
2979 * tree-vect-transform.c (vect_create_data_ref_ptr): Add a new
2980 argument, and use it as a vector type if not NULL.
2981 (vectorizable_store): Call vect_create_data_ref_ptr with the type of
2983 (vect_setup_realignment): Call vect_create_data_ref_ptr with
2984 additional argument.
2985 (vectorizable_load): Likewise.
2987 2008-09-10 Jakub Jelinek <jakub@redhat.com>
2989 * config/i386/i386.md (SWI32): New mode iterator.
2990 (jcc_fused_1, jcc_fused_2, jcc_fused_3, jcc_fused_4): Use it instead
2993 2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
2995 PR rtl-optimization/37435
2996 * caller-save.c (insert_restore, insert_save): Check the mode by
2999 2008-09-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3002 * dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for
3004 (dw2_output_indirect_constant_1): Use unstripped name in symbol
3007 2008-09-09 Sandra Loosemore <sandra@codesourcery.com>
3009 * doc/invoke.texi (ARM Options): Correct errors in discussion
3010 of -mfloat-abi, -mhard-float, and -msoft-float.
3012 2008-09-09 Jakub Jelinek <jakub@redhat.com>
3013 Jan Hubicka <jh@suse.cz>
3016 * tree-inline.c (copy_bb): Insert stmt into copy_basic_block before
3017 calling gimple_regimplify_operands on it. Iterate over all newly
3018 added statements, not just the last one.
3019 (insert_init_stmt): Insert stmt into seq first, then call
3020 gimple_regimplify_operands on it. Don't create new gimplification
3021 context, nor find referenced vars.
3023 2008-09-09 Jakub Jelinek <jakub@redhat.com>
3026 * ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument
3027 to pointer to vector pointer.
3028 * ipa-prop.c (ipa_propagate_indirect_call_infos,
3029 propagate_info_to_inlined_callees): Likewise.
3030 (update_call_notes_after_inlining): Likewise. Push new indirect edge
3031 to *new_edges instead of new_edges. Reread IPA_EDGE_REF after
3032 ipa_check_create_edge_args.
3033 * ipa-inline.c (cgraph_decide_recursive_inlining): Change last
3034 argument to pointer to vector pointer.
3035 (cgraph_decide_inlining_of_small_function): Adjust
3036 cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos
3040 * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
3041 optimizing for size, not speed.
3043 PR rtl-optimization/37408
3044 * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
3045 if parm is promoted.
3047 2008-09-09 Sebastian Pop <sebastian.pop@amd.com>
3049 PR tree-optimization/37375
3050 * tree-scalar-evolution.c (scev_info_str): Add field
3052 (new_scev_info_str, eq_scev_info, find_var_scev_info,
3053 set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
3054 set_instantiated_value): Pass instantiated_below.
3055 (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls
3057 (instantiate_scev_1, instantiate_scev): Pass a basic block above which
3058 the definitions are not instantiated.
3060 * tree-scalar-evolution.h (instantiate_scev): Update declaration.
3061 (block_before_loop): New.
3062 * tree-data-ref.c (dr_analyze_indices): Update uses of
3064 * graphite.c (block_before_scop): New.
3065 (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
3066 basic block, not a loop for determining the parameters.
3067 (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
3069 (idx_record_params, find_params_in_bb, find_scop_parameters,
3070 build_loop_iteration_domains, add_conditions_to_domain): Update calls
3071 to instantiate_scev.
3073 * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
3075 2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
3079 * ira-build.c (ira_create_allocno): Setup frequency to 0.
3081 * ira-color.c (update_conflict_hard_regno_costs): Remove assert.
3082 Check zero freq and increase if necessary.
3084 2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
3086 * ira-conflicts.c (process_regs_for_copy): Check that the hard
3087 regno is in the right range. Add comments.
3089 2008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3091 * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
3093 * mips-tfile.c (copy_object): Cast alloca result to int *.
3094 * mips-tdump.c (print_symbol): Cast xmalloc return values to
3096 Rename class to sclass.
3097 (read_tfile): Cast read_seek return values to proper types.
3098 Cast xcalloc return value to proper type.
3100 2008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3102 * config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ...
3103 * config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here.
3104 * config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here.
3106 2008-09-09 Jan Hubicka <jh@suse.cz>
3108 * profile.c (is_edge_inconsistent): Add debug output; ignore
3109 negative count on fake edges.
3110 (is_inconsistent): Add debug output.
3112 2008-09-09 Andrey Belevantsev <abel@ispras.ru>
3114 * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
3116 (choose_ready): When first insn is chosen from the ready list, also
3119 2008-09-09 Andrey Belevantsev <abel@ispras.ru>
3121 PR rtl-optimization/37360
3122 * haifa-sched.c (max_issue): Do not assert that we never issue more
3123 insns than issue_rate. Add comment.
3125 2008-09-09 Richard Guenther <rguenther@suse.de>
3127 * tree-cfg.c (verify_types_in_gimple_op): Remove.
3128 (verify_types_in_gimple_call): Rename to ...
3129 (verify_gimple_call): ... this. Enhance.
3130 (verify_types_in_gimple_cond): Remove.
3131 (verify_gimple_comparison): New function ...
3132 (verify_types_in_gimple_assign): ... split out from here.
3133 (verify_types_in_gimple_return): Rename to ...
3134 (verify_gimple_return): ... this. Enhance.
3135 (verify_types_in_gimple_switch): Rename to ...
3136 (verify_gimple_switch): ... this. Enhance.
3137 (verify_gimple_goto): New function.
3138 (verify_types_in_gimple_phi): Rename to ...
3139 (verify_gimple_phi): ... this. Enhance.
3140 (verify_types_in_gimple_stmt): Adjust calls to helper functions.
3141 Fold in single-statement cases from verify_types_in_gimple_seq_2.
3142 (verify_types_in_gimple_seq_2): Remove cases handled in
3143 verify_types_in_gimple_stmt.
3145 2008-09-09 Bernd Schmidt <bernd.schmidt@analog.com>
3147 * config/bfin/bfin.c (n_regs_to_save): New static variable.
3148 (push_multiple_operation, pop_multiple_operation): Set it.
3149 (workaround_rts_anomaly): New function.
3150 (workaround_speculation): New function, broken out of bfin_reorg.
3151 (bfin_reorg): Call the new functions.
3153 2008-09-09 Richard Guenther <rguenther@suse.de>
3157 * gimplify.c (gimplify_conversion): Change conversions of
3158 non-register type to VIEW_CONVERT_EXPRs.
3159 (gimplify_addr_expr): If we need to make the operand
3160 addressable make sure to use a properly initialized
3161 temporary for that so it gets a valid gimple store.
3163 2008-09-09 Aldy Hernandez <aldyh@redhat.com>
3165 * function.h (struct function): Add function_start_locus.
3166 * cfgexpand.c (gimple_expand_cfg): Use it.
3167 * c-parser.c (c_parser_declaration_or_fndef): Set it.
3169 2008-09-09 Richard Guenther <rguenther@suse.de>
3171 PR tree-optimization/37433
3172 * tree-ssa-ccp.c (ccp_fold): Properly guard folding of
3175 2008-09-09 Richard Guenther <rguenther@suse.de>
3177 PR tree-optimization/37387
3178 * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
3179 and bits to a common type.
3181 2008-09-09 Nick Clifton <nickc@redhat.com>
3183 * config/v850/v850.md (return): Restore frame size restriction.
3185 2008-09-09 Paolo Bonzini <bonzini@gnu.org>
3187 * c-common.c (c_expand_decl): Remove.
3188 * c-common.h (anon_aggr_type_p): Remove prototype.
3189 (DECL_ANON_UNION_ELEMS): Remove.
3190 * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
3191 * c-decl.c (anon_aggr_type_p): Remove.
3192 * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
3193 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
3194 * langhooks.h (struct lang_hooks): Remove expand_decl.
3195 * langhooks.c (lhd_expand_decl): Remove.
3196 * stmt.c (expand_anon_union_decl): Remove.
3197 * tree.h (expand_anon_union_decl): Remove prototype.
3199 2008-08-09 Andy Hutchinson <hutchinsonandy@aim.com>
3202 * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
3204 * config/avr/avr.md (QISI) : Define mode iterator.
3205 (negated_tst<mode>) : Redefine as split using mode macro.
3206 (reversed_tstqi): Define insn as reversed compare with zero.
3207 (reversed_tsthi): Ditto.
3208 (reversed_tstsi): Ditto.
3210 2008-09-08 Jakub Jelinek <jakub@redhat.com>
3213 * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
3214 call stmt by new_call, clear gimple_bb on stmt after gsi_replace.
3217 * predict.c (optimize_function_for_size_p): Don't segfault if
3219 * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
3220 tree_swap_operands_p): Don't test cfun != NULL before calling
3221 optimize_function_for_s*_p.
3223 2008-09-08 Eric Botcazou <ebotcazou@adacore.com>
3225 * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
3228 2008-09-08 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
3230 * crx/crx.h (IRA_COVER_CLASSES): Define.
3232 2008-09-08 Jakub Jelinek <jakub@redhat.com>
3235 * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
3236 even when a stmt has been gimple_modified_p, but after fold_stmt is
3237 not any longer. Remove unneeded may_have_exposed_new_symbols
3240 2008-09-08 Richard Guenther <rguenther@suse.de>
3242 PR tree-optimization/37421
3243 * tree-ssa-sccvn.c (visit_copy): Make sure to fully
3246 2008-09-08 Jakub Jelinek <jakub@redhat.com>
3249 * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
3251 2008-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3254 * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
3255 * pa-hpux10.h (LINK_SPEC): Likewise.
3256 * pa-hpux11.h (LINK_SPEC): Likewise.
3258 2008-09-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3260 * pa32-regs.h (IRA_COVER_CLASSES): Define.
3261 * pa64-regs.h (IRA_COVER_CLASSES): Define.
3263 2008-09-07 Helge Deller <deller@gmx.de>
3265 * pa/linux-atomic.c: New file.
3266 * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
3267 * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
3269 2008-09-07 Richard Guenther <rguenther@suse.de>
3270 Ira Rosen <irar@il.ibm.com>
3272 PR tree-optimization/36630
3273 * tree-vect-transform.c (vect_update_ivs_after_vectorizer):
3274 Call STRIP_NOPS before calling evolution_part_in_loop_num.
3276 2008-09-07 Dorit Nuzman <dorit@il.ibm.com>
3277 Ira Rosen <irar@il.ibm.com>
3279 PR tree-optimization/35642
3280 * config/rs6000/altivec.md (mulv8hi3): Implement.
3282 2008-09-06 Jeff Law <law@redhat.com>
3284 * h8300/h8300.h (IRA_COVER_CLASSES): Define.
3286 2008-09-06 Jan Hubicka <jh@suse.cz>
3288 PR tree-optimization/14703
3289 * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
3291 * passes.c (init_optimization_passes): Recompute inline parameters.
3293 2008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
3295 * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
3298 2008-09-06 Richard Sandiford <rdsandiford@goolemail.com>
3299 Peter Fuerst <post@pfrst.de>
3301 * doc/invoke.texi: Document -mr10k-cache-barrier=.
3302 * doc/extend.texi: Document __builtin_mips_cache.
3303 * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
3304 * config/mips/mips.opt (mr10k-cache-barrier=): New option.
3305 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
3306 __GCC_HAVE_BUILTIN_MIPS_CACHE.
3307 (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
3308 * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
3309 (set_push_mips_isas): New variable.
3310 (mips_r10k_cache_barrier): New variable.
3311 (cache): New availability predicate.
3312 (mips_builtins): Add an entry for __builtin_mips_cache.
3313 (mips_build_cvpointer_type): New function.
3314 (MIPS_ATYPE_CVPOINTER): New macro.
3315 (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
3317 (r10k_simplified_address_p, r10k_simplify_address)
3318 (r10k_uncached_address_p, r10k_safe_address_p)
3319 (r10k_needs_protection_p_1, r10k_needs_protection_p_store)
3320 (r10k_needs_protection_p_call, r10k_needs_protection_p)
3321 (r10k_insert_cache_barriers): New functions.
3322 (mips_reorg_process_insns): Delete cache barriers after a
3323 branch-likely instruction.
3324 (mips_reorg): Call r10k_insert_cache_barriers.
3325 (mips_handle_option): Handle OPT_mr10k_cache_barrier_.
3326 * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
3327 (UNSPEC_R10K_CACHE_BARRIER): Likewise.
3328 (mips_cache, r10k_cache_barrier): New define_insns.
3330 2008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
3332 * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
3333 * ira-color.c (setup_allocno_left_conflicts_num): Use
3334 hard_reg_set_equal_p instead of a comparison with
3335 ira_zero_hard_reg_set.
3336 * ira.c (setup_reg_subclasses): Likewise.
3337 (setup_cover_and_important_classes): Likewise.
3338 (setup_class_translate): Likewise.
3339 (setup_reg_class_intersect_union): Likewise.
3340 (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
3341 (ira_init_once): Don't initialize them.
3343 2008-09-05 Vladimir Makarov <vmakarov@redhat.com>
3345 * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
3347 2008-09-05 Vladimir Makarov <vmakarov@redhat.com>
3349 * ira-color.c (ira_fast_allocation): Permit global allocno allocation.
3351 2008-09-05 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3353 Improved branch hints, safe hints, and scheduling.
3355 * haifa-sched.c (sched_emit_insn) : Define.
3356 * sched-int.h (sched_emit_insn) : Add prototype.
3357 * doc/invoke.texi (-mdual-nops, -mhint-max-nops,
3358 -mhint-max-distance -msafe-hints) : Document.
3359 * config/spu/spu.c (spu_flag_var_tracking): New.
3360 (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
3361 TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
3362 TARGET_ASM_FILE_START): Define.
3363 (TARGET_SCHED_ADJUST_PRIORITY): Remove.
3364 (STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
3365 (spu_emit_branch_hint): Add blocks argument.
3366 (insert_branch_hints, insert_nops): Remove.
3367 (pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
3368 uses_ls_unit, spu_sched_init_global, spu_sched_init,
3369 spu_sched_reorder, asm_file_start): New functions.
3370 (clock_var, spu_sched_length, pipe0_clock,
3371 pipe1_clock, prev_clock_var, prev_priority,
3372 spu_ls_first, prev_ls_clock): New static variables.
3373 * config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
3374 * config/spu.md (iprefetch): Add operand, make it clobber MEM.
3375 (nopn_nv): Add a non-volatile version of nop.
3376 * config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
3377 -mhint-max-distance, -msafe-hints): New options.
3379 2008-09-05 Janis Johnson <janis187@us.ibm.com>
3380 Samuel Tardieu <sam@rfc1149.net>
3382 * opts.c (decode_options): Combine nested if statements.
3385 * opts.c (decode_options): Handle more relationships among
3386 unit-at-a-time, toplevel-reorder, and section-anchors.
3388 2008-09-05 David Daney <ddaney@avtrex.com>
3390 * doc/install.texi (--enable-reduced-reflection): Document new option.
3392 2008-09-05 Bob Wilson <bob.wilson@acm.org>
3394 * config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use
3396 (constantpool_operand): New.
3397 (move_operand): Disallow sub-word modes for the constant pool.
3398 * config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define.
3399 (xtensa_secondary_reload_class): Replace with....
3400 (xtensa_secondary_reload): this function. Remove SIGN_EXTEND check.
3401 Set icode for sub-word reloads from the constant pool.
3402 * config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete.
3403 (SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
3404 * config/xtensa/xtensa.md (reload<mode>_literal): New.
3405 * config/xtensa/xtensa-protos.h: Update prototypes.
3407 2008-09-05 Joseph Myers <joseph@codesourcery.com>
3409 * config/mips/mips.h (enum reg_class): Add FRAME_REGS.
3410 (REG_CLASS_NAMES): Update.
3411 (REG_CLASS_CONTENTS): Update.
3412 * config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
3413 of ALL_REGS for regs 77 and 78.
3414 * function.c (instantiate_virtual_regs_in_insn): Assert that
3415 return value of simplify_gen_subreg is not NULL.
3417 2008-09-05 Paolo Bonzini <bonzini@gnu.org>
3419 * emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
3420 (gen_rtvec_v): Fix coding standards.
3422 2008-09-04 Jan Hubicka <jh@suse.cz>
3424 * i386.c (decide_alg): Be more conservative about optimizing for size.
3426 2008-09-04 Ian Lance Taylor <iant@google.com>
3428 * varasm.c (narrowing_initializer_constant_valid_p): New