1 2008-10-10 Alexandre Oliva <aoliva@redhat.com>
3 * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
4 vary types depending on debug info.
6 2008-10-10 Alexandre Oliva <aoliva@redhat.com>
8 * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
9 before ensuring it's already computed.
11 2008-10-09 Jakub Jelinek <jakub@redhat.com>
13 * rtl.h (locator_eq): New decl.
14 * cfglayout.c (locator_scope): New function.
16 (locator_eq): New function.
17 (fixup_reorder_chain): Search for last insn in src bb
18 that has locator set or first insn in dest bb. Use
19 locator_eq instead of == to compare locators.
20 * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
21 * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
22 == to compare locators.
24 * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
26 * gimple-low.c (lower_function_body, lower_gimple_return,
27 lower_builtin_setjmp): Set gimple_block on the newly created stmts.
28 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
29 goto_block on edges if goto_locus is known.
32 * tree.h (get_object_alignment): Declare.
33 * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
34 get_object_alignment if needed.
35 * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand handling
37 (get_object_alignment): ... here. New function. Try harder to
38 determine alignment from get_inner_reference returned offset.
40 2008-10-08 Jakub Jelinek <jakub@redhat.com>
42 * graphite.c (gloog): Don't call find_unreachable_blocks
43 before delte_unreachable_blocks.
45 * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
46 goto_locus of true_edge into RTL locator.
48 2008-10-08 Uros Bizjak <ubizjak@gmail.com>
50 * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
51 (*jcc_btdi_mask_rex64): Ditto.
53 (*jcc_btsi_mask): Ditto.
55 (*jcc_btsi_mask_1): Ditto.
57 2008-10-08 Paul Brook <paul@codesourcery.com>
59 * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
60 compatible profiler (__gnu_mcount_nc).
61 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
63 2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
65 * config/i386/i386.c (initial_ix86_tune_features): Add
66 X86_TUNE_USE_VECTOR_FP_CONVERTS.
67 * config/i386/i386.h (ix86_tune_indices): Likewise.
68 (TARGET_USE_VECTOR_FP_CONVERTS): New.
70 * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
71 instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
72 for FP to FP splitters.
74 2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
76 * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
79 2008-10-08 Jakub Jelinek <jakub@redhat.com>
83 PR rtl-optimization/37341
84 * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
85 to ORIG_BB, pass through ORIG_BB recursively.
86 (cse_condition_code_reg): Adjust caller.
88 2008-10-08 Kai Tietz <kai.tietz@onevision.com>
90 * sdbout.c (sdbout_one_type): Treat the value type
91 CONST_DECL for enumerals.
93 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
95 * config/i386/i386.md: Remove trailing white spaces.
97 2008-10-07 Kenneth Zadeck <zadeck@naturalbridge.com>
99 PR rtl-optimization/37448
100 * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
101 (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
103 (struct output_info) [count]: Renamed total_created and made
105 (struct output_info) [size]: Renamed total_allocated and made
107 (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
108 Properly keep track of desc->size.
109 (print_statistics, dump_alloc_pool_statistics): Enhance the
110 printing of statistics to print the number of elements and to use
113 2008-10-07 Jakub Jelinek <jakub@redhat.com>
116 * opts.h (CL_SAVE): Move up to flags range.
117 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
118 CL_COMMON): Renumber.
119 (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
120 * opts.c (common_handle_option): Revert last change.
122 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
124 * config/i386/i386-protos.h (ix86_schedule): New.
126 * config/i386/i386.c (ix86_schedule): New.
127 (override_options): Add schedule to processor_alias_table. Set
128 ix86_schedule from the schedule field in processor_alias_table.
129 (ix86_function_specific_save): Save ix86_schedule.
130 (ix86_function_specific_restore): Restore ix86_schedule.
132 * config/i386/i386.md (cpu): Map to ix86_schedule instead of
133 ix86_tune. Add none and remove i386, i486, pentium4, nocona
136 * config/i386/i386.opt: Add schedule.
138 * config/i386/ppro.md: Remove generic32.
140 2008-10-07 Simon Martin <simartin@users.sourceforge.net>
143 * expr.c (count_type_elements): Handle ERROR_MARK.
145 2008-10-07 Jakub Jelinek <jakub@redhat.com>
150 * basic-block.h (struct edge_def): Add goto_block field.
151 * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
152 one insn with locus corresponding to edge's goto_locus if !optimize.
153 * profile.c (branch_prob): Copy edge's goto_block.
154 * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
156 (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
157 locator in between the merged basic blocks if !optimize and needed.
158 * cfgexpand.c (expand_gimple_cond): Convert goto_block and
159 goto_locus into RTL locator. For unconditional jump use that
160 locator for the jump insn.
161 (expand_gimple_cond): Convert goto_block and goto_locus into
162 RTL locator for all remaining edges. For unconditional jump
163 use that locator for the jump insn.
164 * cfgcleanup.c (try_forward_edges): Avoid the optimization if
165 there is more than one edge or insn locator along the forwarding
166 edges and !optimize. If there is just one, set e->goto_locus.
167 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
169 (move_block_to_fn): Adjust edge's goto_block.
171 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
174 * expmed.c (expand_mult): Properly check DImode constant in
177 2008-10-07 Jakub Jelinek <jakub@redhat.com>
180 * dwarf2out.c (common_block_die_table): New variable.
181 (common_block_die_table_hash, common_block_die_table_eq): New
183 (gen_variable_die): Look up a DW_TAG_common_block die for a particular
184 COMMON block in the current scope rather than globally. Optimize
185 DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
186 DW_OP_addr SYMBOL_REF+off.
188 2008-10-07 Eric Botcazou <ebotcazou@adacore.com>
190 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
191 Return true for non-addressable GIMPLE operands.
193 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
196 * config/i386/i386.c (initial_ix86_tune_features): Remove
197 X86_TUNE_USE_BIT_TEST.
198 * config/i386/i386.h (ix86_tune_indices): Likewise.
199 (TARGET_USE_BIT_TEST): Removed.
201 2008-10-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
203 * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
205 2008-10-06 Adam Nemet <anemet@caviumnetworks.com>
207 * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
208 (mul<mode>3_mul3): ... into this new template.
210 2008-10-06 Aldy Hernandez <aldyh@redhat.com>
212 * gimplify.c (gimplify_arg): Add location argument. Use it.
213 (gimplify_call_expr): Pass location to gimplify_arg.
214 (gimplify_modify_expr_to_memcpy): Same.
215 (gimplify_modify_expr_to_memset): Same.
217 2008-10-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
219 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
220 Update calls to build_unary_op and build_indirect_ref for location
223 2008-10-06 Aldy Hernandez <aldyh@redhat.com>
226 * c-decl.c (finish_decl): Pass input_location to build_unary_op.
227 * c-typeck.c (array_to_pointer_conversion): Pass location to
229 (function_to_pointer_conversion): Use error_at and warning_at.
230 (build_indirect_ref): Same.
231 (build_array_ref): Pass location to build_binary_op.
232 (parser_build_unary_op): Do not set location after calling
234 (build_unary_op): Add location argument. Use it throughout. Set
235 EXPR_LOCATION before returning new tree.
236 (build_modify_expr): Same.
237 (build_binary_op): Use location throughout. Set EXPR_LOCATION before
239 * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
240 build_indirect_ref, build_modify_expr.
241 (c_finish_omp_for): Same. Use error_at instead of error.
242 * c-common.c (c_common_truthvalue_conversion): Pass location to
244 (warn_for_div_by_zero): Add location argument.
245 * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
246 build_unary_op, warn_for_div_by_zero.
247 * c-parser.c (c_parser_typeof_specifier): Use
248 protected_set_expr_location.
249 (c_parser_statement_after_labels): Same.
250 (c_parser_condition): Same.
251 (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
252 (c_parser_conditional_expression): Use protected_set_expr_location.
253 (c_parser_unary_expression): Pass location to build_indirect_ref.
254 (c_parser_postfix_expression_after_primary): Pass location to
255 build_indirect_ref, build_unary_op.
256 (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
258 2008-10-06 Joshua Kinard <kumba@gentoo.org>
260 * doc/invoke.texi: List r1x000 family under the -march MIPS option.
261 * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
262 * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
264 (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
265 (mips_issue_rate): Handle PROCESSOR_R10000.
266 * config/mips/mips.md (cpu): Add r10000.
268 * config/mips/10000.md: New file.
270 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
272 * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
273 * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
274 * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
276 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
278 * config/darwin-protos.h (machopic_function_base_name): Delete.
279 (machopic_function_base_sym): Likewise.
280 (machopic_gen_offset): Declare.
281 * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
282 (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
283 * config/darwin.c (machopic_function_base_name): Delete.
284 (machopic_function_base_sym): Likewise.
285 (gen_pic_offset): Rename to...
286 (machopic_gen_offset): ...this and remove the pic_base argument.
287 Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
288 is needed. Create an UNSPEC_MACHOPIC_OFFSET if so, and set
289 crtl->uses_pic_offset_table.
290 (machopic_indirect_data_reference): Use new machopic_gen_offset
292 (machopic_legitimize_pic_address): Likewise.
293 (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
295 * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
296 MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
297 * config/i386/i386.c (output_set_got): Likewise.
298 (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
300 (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
301 (legitimate_address_p): Likewise.
302 (output_pic_addr_const): Likewise.
303 (output_addr_const_extra): Likewise.
304 (ix86_delegitimize_address): Expect darwin_local_data_pic to
305 match an UNSPEC rather than a MINUS.
306 * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
307 (builtin_setjmp_receiver): Use machopic_gen_offset.
308 * config/i386/predicates.md (pic_symbolic_operand): Handle
309 UNSPEC_MACHOPIC_OFFSET.
311 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
312 Use machopic_gen_offset and machopic_operand_p.
313 (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
314 (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
315 * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
316 (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
317 Set crtl->uses_pic_offset_table.
319 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
321 * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
323 * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
324 * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
325 * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
326 (constant_pool_expr_p): Use split_const and check the base.
327 (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
329 (legitimate_constant_pool_address_p): Check toc_relative_p
330 instead of constant_pool_expr_p.
331 (print_operand_address): Always use output_addr_const for
332 constant pool addresses.
333 (rs6000_output_addr_const_extra): New function.
334 (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
336 2008-10-06 Vladimir Makarov <vmakarov@redhat.com>
340 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
341 (mark_ref_live, mark_ref_dead): Use them.
342 (def_conflicts_with_inputs_p): Remove.
343 (mark_early_clobbers): New function.
344 (process_bb_node_lives): Call preprocess_constraints and
347 * doc/rtx.texi (clobber): Change how RA deals with clobbers.
349 2008-10-06 Danny Smith <dannysmith@users.sourceforge.net>
351 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
352 lib with -mthread switch.
354 2008-10-05 Dodji Seketeli <dodji@redhat.com>
357 * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
358 function in two, making it call a new and reusable
359 dwarf2out_imported_module_or_decl() that takes the containing
360 BLOCK of the declaration in argument.
361 (dwarf2out_imported_module_or_decl_real): New function.
362 (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
363 IMPORTED_DECL in account.
364 * tree.def: Added IMPORTED_DECL node type.
365 * tree.h: Added accessors for IMPORTED_DECL nodes.
366 * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
368 2008-10-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
370 * doc/gimple.texi: Fix some typos, wrap some long lines,
371 fix some broken wraps with continuations.
372 * tree-ssa-reassoc.c: Fix comment typos.
374 2000-10-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
377 * pa.c (legitimize_pic_address): Force function labels to memory in
380 2008-10-04 Anton Blanchard <anton@samba.org>
382 * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
383 (rs6000_split_atomic_op): Same.
384 (rs6000_split_compare_and_swap): Same.
385 (rs6000_split_compare_and_swapqhi): Same.
387 2008-10-04 Richard Guenther <rguenther@suse.de>
389 * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
390 instead of pointer equality.
391 (vn_nary_op_eq): Likewise.
393 2008-10-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
395 * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT
397 (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
398 TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
400 2008-10-03 Danny Smith <dannysmith@users.sourceforge.net>
402 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
403 Revert previous change.
405 2008-10-03 Tom Tromey <tromey@redhat.com>
407 * stringpool.c (ggc_alloc_string): Terminate string.
409 2008-10-03 Jakub Jelinek <jakub@redhat.com>
411 * gimplify.c (gimplify_function_tree): For -finstrument-functions
412 use gimple_bind_{,set_}block instead of gimple_{,set_}block.
413 * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
416 * gimplify.c (declare_vars): Use gimple_bind_block instead of
419 2008-10-03 Pascal Obry <obry@adacore.com>
421 * gcov.c (create_file_names): Properly handle UNIX and DOS
422 directory separators.
423 (make_gcov_file_name): Likewise + convert the ':' DOS drive
424 separator to '~' to ensure clean filenames on Windows.
426 2008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
428 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
429 Add a null terminator to the stripped name.
431 2008-10-02 David Edelsohn <edelsohn@gnu.org>
433 * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
434 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
435 (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
436 TARGET_SINGLE_FLOAT. Revert SCALAR_FLOAT_MODE_P condition.
437 (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
438 (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
441 2008-10-02 Daniel Jacobowitz <dan@codesourcery.com>
443 * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
445 2008-10-02 Richard Guenther <rguenther@suse.de>
448 * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
449 and VECTOR_TYPE recurse with useless_type_conversion_p which
450 properly handles void pointer conversion.
452 2008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
455 * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
456 (REAL_LIBGCC_SPEC): New. Always include -lgcc.
458 2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
460 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
461 Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
462 ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
463 they translate to non builtins.
464 * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
465 opaque_ftype_opaque. Define builtins __builtin_vec_splats,
466 __builtin_vec_promote, __builtin_vec_extract, and
467 __builtin_vec_insert.
468 * config/rs6000/rs6000.h (enum rs6000_builtins): Add
469 ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
470 ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
471 * config/rs6000/altivec.h (vec_extract): Define
472 (vec_insert): Define.
473 (vec_splats): Define.
474 (vec_promote): Define.
476 2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
477 Yukishige Shibata <shibata@rd.scei.sony.co.jp>
478 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
480 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
482 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
483 prototype. Add new parameter, blk.
484 Use BLKmode for the MEM if blk is true.
485 (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
486 ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
487 ALTIVEC_BUILTIN_STVRXL.
488 Update usage of altivec_expand_lv_builtin.
489 Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
490 ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
491 (altivec_init_builtins): If compiling for the Cell, also define the
493 * config/rs6000/rs6000.h (rs6000_builtins): Define
494 ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
495 ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
496 ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
497 ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
498 ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
499 ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
500 ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
501 * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
502 UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
503 UNSPEC_STVRX, and UNSPEC_STVRXL.
504 (altivec_lvlx): New pattern.
505 (altivec_lvlxl): New pattern.
506 (altivec_lvrx): New pattern.
507 (altivec_lvrxl): New pattern.
508 (altivec_stvlx): New pattern.
509 (altivec_stvlxl): New pattern.
510 (altivec_stvrx): New pattern.
511 (altivec_stvrxl): New pattern.
512 * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
513 (vec_lvlxl): Likewise.
514 (vec_lvrx): Define if PPU is defined.
515 (vec_lvrxl): Likewise.
516 (vec_stvlx): Define if PPU is defined.
517 (vec_stvlxl): Likewise.
518 (vec_stvrx): Define if PPU is defined.
519 (vec_stvrxl): Likewise.
521 2008-10-01 Geert Bosch <bosch@adacore.com>
523 * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
525 2008-10-01 Richard Guenther <rguenther@suse.de>
527 PR tree-optimization/37617
528 * tree-ssa-pre.c (create_expression_by_pieces): During FRE
529 do not add to the NEW_SETS.
531 2008-10-01 Richard Guenther <rguenther@suse.de>
534 * tree-vrp.c (execute_vrp): If we optimized away the default
535 case make sure to promote the label that got in place of it
536 to a default case label.
538 2008-10-01 Richard Henderson <rth@redhat.com>
541 * tree-complex.c (set_component_ssa_name): Don't optimize
542 is_gimple_min_invariant values with ssa_names in abnormal phis.
544 2008-09-30 Paolo Bonzini <bonzini@gnu.org>
546 PR tree-optimization/37662
547 * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
548 commutative binary operation if they are in the wrong order and
549 fold_build2 produces non-GIMPLE.
551 2008-09-30 Jakub Jelinek <jakub@redhat.com>
553 PR tree-optimization/37662
554 PR tree-optimization/37663
555 * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
556 get_value_range with non-SSA_NAME. Don't assert operands have been
557 folded, instead just bail out.
559 2008-09-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
561 * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
563 2008-09-30 Richard Guenther <rguenther@suse.de>
566 * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
567 build restrict-qualified pointers.
568 (vectorizable_store): Move alias check later.
569 (vectorizable_load): Likewise.
571 2008-09-30 Paolo Bonzini <bonzini@gnu.org>
573 * c-common.c (empty_if_body_warning): Remove.
574 * c-common.h (empty_if_body_warning): Remove.
575 * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
576 here the -Wempty-body warning for `if' and `else' statements.
577 * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
579 2008-09-29 H.J. Lu <hongjiu.lu@intel.com>
581 * config/i386/i386.opt: Add msse2avx.
583 * config/i386/linux.h (ASM_SPEC): New. Support -msse2avx.
584 * config/i386/linux64.h (ASM_SPEC): Likewise.
586 * doc/invoke.texi: Document -msse2avx.
588 2008-09-29 Eric Botcazou <ebotcazou@adacore.com>
590 * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
592 2008-09-29 Joseph Myers <joseph@codesourcery.com>
594 * ifcvt.c (noce_emit_store_flag): If using condition from original
595 jump, reverse it if if_info->cond was reversed.
597 2008-09-29 Eric Botcazou <ebotcazou@adacore.com>
599 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
600 non-constant memory if it cannot be forced to constant memory.
601 Overhaul surrounding code and factor out common condition.
603 2008-09-29 Jeff Law <law@redhat.com>
605 * reload1.c (alter_reg): Add missing curly braces.
607 2008-09-29 Michael J. Eager <eager@eagercon.com>
609 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
611 * config/rs6000/rs6000.c (rs6000_override_options): Move
612 rs6000_init_hard_regno_mode_ok after all options changed.
613 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
614 (rs6000_handle_option): Process -msingle-float, -mdouble-float,
615 -msimple-fpu flags. Add warning messages if single FP not configured.
616 (rs6000_file_start): Output gnu_attribute for single-float.
617 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
618 (rs6000_legitimize_address): Likewise.
619 (rs6000_legitimize_reload_address): Likewise.
620 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
622 (function_arg_advance): Likewise (partial conversion).
623 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
624 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
626 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
627 (rs6000_emit_prologue): Likewise.
628 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
630 (rs6000_libcall_value): Likewise.
631 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
632 (TARGET_DOUBLE_FLOAT): New default to 1
633 (TARGET_SIMPLE_FPU): New default to 0
634 (TARGET_SINGLE_FPU): New default to 0
635 (TARGET_SINGLE_FLOAT_MODE): New.
636 (TARGET_DOUBLE_FLOAT_MODE): New.
637 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
638 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
640 * config/rs6000/rs6000.md (define_mode_iterator): Condition on
641 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
642 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
643 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
644 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
645 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
646 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
647 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
648 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
649 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
650 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
651 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
652 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
653 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
654 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
655 cmptf_internal1, *cmptf_internal2): Condition on
657 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
658 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
659 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
660 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
661 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
662 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
664 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
665 * config/rs6000/rs6000.opt (-msingle-float): New.
666 (-mdouble-float): New.
668 * doc/invoke.texi (RS/6000 and PowerPC Options): Add
669 -msingle-float, -mdouble-float, -msimple-fpu options.
670 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
671 _SOFT_DOUBLE for -msingle-float.
672 * config.gcc: New config for target=powerpc-xilinx-eabi.
674 2008-09-29 Tobias Grosser <grosser@fim.uni-passau.de>
676 * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
678 (new_scop): Take entry and exit edge to define new SCoP.
679 (sd_region_p): New structure used during SCoP detection.
680 (move_scops): Delete.
681 (move_sd_regions): New.
682 (scopdet_info): Change the definition from edges back to basic_blocks.
683 (scopdet_edge_info): Work on basic_blocks and rename to
684 scopdet_basic_block_info.
685 (split_difficult_bb): At the moment removed. We should later
686 add it at another place.
687 (build_scops_1): Work on basic_blocks.
688 (bb_in_sd_region): New.
689 (find_single_entry_edge): New.
690 (find_single_exit_edge): New.
691 (create_single_entry_edge): New.
692 (sd_region_without_exit): New.
693 (create_single_exit_edge): New.
694 (unmark_exit_edges): New.
695 (mark_exit_edges): New.
696 (create_sese_edges): New.
697 (build_graphite_scops): New.
698 (build_scops): Make SCoPs SESE.
699 (limit_scops): Use the new functions.
701 2008-09-29 Hans-Peter Nilsson <hp@axis.com>
703 * config/cris/cris.h (IRA_COVER_CLASSES): Define.
705 2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
708 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
709 address to a register before taking the lower part.
711 2008-09-28 Kaz Kojima <kkojima@gcc.gnu.org>
713 * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
716 2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
717 Kaushal Kantawala <kaushal_kantawala@playstation.sony.com>
720 * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
721 the newly created variable.
722 Create a VECTOR_CST of all 1s for vector types.
724 2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
727 * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
729 2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
731 * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
732 order to convert between modes.
733 (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
735 2008-09-27 Kaz Kojima <kkojima@gcc.gnu.org>
737 * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
740 2008-09-26 Vladimir Makarov <vmakarov@redhat.com>
743 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
747 2008-09-26 Adam Nemet <anemet@caviumnetworks.com>
749 * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
750 ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
751 them to yield false with MIPS16.
753 2008-09-26 Jakub Jelinek <jakub@redhat.com>
756 * dwarf2out.c (tls_mem_loc_descriptor): New function.
757 (mem_loc_descriptor): Use it for MEM. For PLUS fail if second
758 mem_loc_descriptor failed. Accept UNSPEC.
759 (loc_descriptor): Use tls_mem_loc_descriptor for MEM. For PARALLEL
760 fail if one of the loc_descriptor calls for pieces failed.
761 (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
762 as long as they bind locally. For COMPONENT_REF, ARRAY_REF etc. fail
763 if loc_descriptor_from_tree_1 on offset failed.
766 * opts.c (common_handle_option): Don't call print_specific_help with
767 CL_SAVE as first argument.
769 2008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
770 Steve Ellcey <sje@cup.hp.com>
772 * configure: Regenerate for new libtool.
775 2008-09-26 Pat Haugen <pthaugen@us.ibm.com>
777 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
778 alias set on MEM when saving stack pointer.
779 * config/rs6000/rs6000.md (allocate_stack): Likewise
781 2008-09-26 Dorit Nuzman <dorit@il.ibm.com>
783 PR tree-optimization/37574
784 * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
785 * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
786 instead of vector_type for constants. Take computation out of loop.
787 (vect_get_vec_def_for_operand): Use only vectype for constant case,
788 and use only vector_type for invariant case.
789 (get_initial_def_for_reduction): Use vectype instead of vector_type.
791 2008-09-25 Jakub Jelinek <jakub@redhat.com>
794 * c-common.c (handle_weakref_attribute): Ignore the attribute unless
795 the decl is a VAR_DECL or FUNCTION_DECL.
797 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
800 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
801 (mark_ref_live, mark_ref_dead): Use them.
802 (def_conflicts_with_inputs_p): Remove.
803 (mark_early_clobbers): New function.
804 (process_bb_node_lives): Call preprocess_constraints and
807 * doc/rtl.texi (clobber): Change how RA deals with clobbers.
809 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
812 * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
813 (ira_compress_allocno_live_ranges): New prototype.
815 * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
816 (coalesced_allocnos_living_at_program_points): New.
817 (coalesced_allocnos_live_at_points_p,
818 set_coalesced_allocnos_live_points): New functions.
819 (coalesce_spill_slots): Rewrite.
821 * ira-lives.c (remove_some_program_points_and_update_live_ranges,
822 ira_compress_allocno_live_ranges): New functions.
824 * ira-build.c (ira_flattening): Call
825 ira_compress_allocno_live_ranges.
828 2008-09-25 H.J. Lu <hongjiu.lu@intel.com>
830 * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
833 2008-09-25 Richard Sandiford <rdsandiford@googlemail.com>
835 * combine.c (make_compound_operation): Handle the 'E' format.
836 (count_rtxs): Likewise.
837 (update_table_tick): Likewise.
838 (get_last_value_validate): Likewise.
840 2008-09-25 Eric Botcazou <ebotcazou@adacore.com>
842 * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
844 2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
846 * matrix-reorg.c (transform_allocation_sites): Initializers
847 added to avoid the warning.
849 2008-09-25 Martin Jambor <mjambor@suse.cz>
851 * cgraph.c (free_nodes): New variable.
852 (NEXT_FREE_NODE): New macro.
853 (cgraph_create_node): Reuse nodes from the free list. Do not
854 update uid if doing so.
855 (cgraph_remove_node): Add the node to the free list.
857 2008-09-25 Gerald Pfeifer <gerald@pfeifer.com>
859 * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
861 2008-09-24 Richard Henderson <rth@redhat.com>
863 * dwarf2.h (DW_OP_GNU_encoded_addr): New.
864 * unwind-dw2.c (execute_stack_op): Handle it.
866 2008-09-24 David Edelsohn <edelsohn@gnu.org>
869 2008-09-24 Michael J. Eager <eager@eagercon.com>
871 2008-09-24 Aldy Hernandez <aldyh@redhat.com>
873 * c-common.c (fname_decl): New location argument.
874 * c-common.h (fname_decl): Same.
875 * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
877 (c_parser_typeof_specifier): Same.
878 (c_parser_parms_list_declarator): Same.
879 (c_parser_asm_string_literal): Same.
880 (c_parser_compound_statement_nostart): Same.
881 (c_parser_label): Same.
882 (c_parser_do_statement): Same.
883 (c_parser_asm_statement): Same.
884 (c_parser_unary_expression): Same.
885 (c_parser_sizeof_expression): Same.
886 (c_parser_postfix_expression): Same.
887 (c_parser_pragma): Same.
888 (c_parser_omp_clause_collapse): Same.
889 (c_parser_omp_clause_num_threads): Same.
890 (c_parser_omp_clause_schedule): Same.
891 (c_parser_omp_all_clauses): Same.
892 (c_parser_omp_sections_scope): Same.
893 (c_parser_omp_for_loop): Same. Pass condition's location to
894 c_objc_common_truthvalue_conversion.
895 (c_parser_enum_specifier): Remove comment.
897 2008-09-24 Michael J. Eager <eager@eagercon.com>
899 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
901 * config/rs6000/rs6000.c (rs6000_override_options): Move
902 rs6000_init_hard_regno_mode_ok after all options changed.
903 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
904 (rs6000_handle_option): Process -msingle-float, -mdouble-float,
905 -msimple-fpu flags. Add warning messages if single FP not configured.
906 (rs6000_file_start): Output gnu_attribute for single-float.
907 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
908 (rs6000_legitimize_address): Likewise.
909 (rs6000_legitimize_reload_address): Likewise.
910 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
912 (function_arg_advance): Likewise.
913 (function_arg): Likewise.
914 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
915 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
917 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
918 (rs6000_emit_prologue): Likewise.
919 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
921 (rs6000_libcall_value): Likewise.
922 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
923 (TARGET_DOUBLE_FLOAT): New default to 1
924 (TARGET_SIMPLE_FPU): New default to 0
925 (TARGET_SINGLE_FPU): New default to 0
926 (TARGET_SINGLE_FLOAT_MODE): New.
927 (TARGET_DOUBLE_FLOAT_MODE): New.
928 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
929 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
931 * config/rs6000/rs6000.md (define_mode_iterator): Condition on
932 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
933 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
934 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
935 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
936 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
937 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
938 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
939 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
940 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
941 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
942 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
943 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
944 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
945 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
946 cmptf_internal1, *cmptf_internal2): Condition on
948 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
949 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
950 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
951 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
952 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
953 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
955 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
956 * config/rs6000/rs6000.opt (-msingle-float): New.
957 (-mdouble-float): New.
959 * doc/invoke.texi (RS/6000 and PowerPC Options): Add
960 -msingle-float, -mdouble-float, -msimple-fpu options.
961 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
962 _SOFT_DOUBLE for -msingle-float.
963 * config.gcc: New config for target=powerpc-xilinx-eabi.
965 2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
967 * config/sparc/constraints.md: New file.
968 * config/sparc/sparc.md: Include it.
969 * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
970 (sparc_extra_constraint_check): Delete.
971 * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
972 (memory_ok_for_ldd): New predicate.
973 (sparc_extra_constraint_check): Delete.
974 * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
975 (CONST_OK_FOR_LETTER_P): Likewise.
976 (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
977 (EXTRA_CONSTRAINT): Likewise.
979 2008-08-23 Steve Ellcey <sje@cup.hp.com>
981 * regrename.c (do_replace): Copy REG_POINTER value to new reg.
983 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
985 * alias.c (find_base_value): Use FIND_BASE_TERM.
986 * doc/tm.texi (FIND_BASE_TERM): Update documentation.
988 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
990 * config/i386/i386.c: Include cselib.h.
991 (ix86_pic_register_p): New function.
992 (ix86_delegitimize_address): Use it to check for the PIC register.
994 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
996 * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
997 * config/i386/i386.c (ix86_find_base_term): Don't check for
998 SYMBOL_REF and LABEL_REF.
1000 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
1002 * config/i386/i386.c (ix86_delegitimize_address): Wrap the
1003 constant PLUS in a CONST.
1005 2008-09-23 Kai Tietz <kai.tietz@onevision.com>
1007 * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
1008 check for sibcall support for w64.
1010 2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
1012 * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
1014 2008-09-23 Aldy Hernandez <aldyh@redhat.com>
1016 * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
1017 parser_build_binary_op.
1018 * c-decl.c (build_enumerator): Pass location to build_binary_op.
1019 * c-typeck.c (build_array_ref): Same.
1020 (parser_build_unary_op): New location argument.
1021 (pointer_diff): Pass location to build_binary_op,
1022 c_objc_common_truthvalue_conversion.
1023 (build_modify_expr): Same.
1024 (build_unary_op): New location argument.
1025 (build_binary_op): New location argument.
1026 (c_objc_common_truthvalue_conversion): Pass location to
1027 c_*common_truthvalue_conversion.
1028 * c-convert.c (convert): Same.
1029 * c-common.c (binary_op_error): New location argument.
1030 (pointer_int_sum): Pass location to build_binary_op.
1031 (c_common_truthvalue_conversion): New location argument.
1032 (warn_for_sign_compare): Same.
1033 * c-common.h: Add location argument to c_common_truthvalue_conversion,
1034 binary_op_error, build_binary_op, warn_for_sign_compare.
1035 * c-parser.c (c_parser_condition): Pass location to
1036 c_*common_truthvalue_conversion.
1037 (c_parser_conditional_expression): Save condition's location and pass
1039 (c_parser_binary_expression): Same, but for the binary operator's
1041 (c_parser_omp_for_loop): Pass location to
1042 c_objc_common_truthvalue_conversion.
1044 2008-09-23 Martin Jambor <mjambor@suse.cz>
1046 * cgraph.c (cgraph_free_edge): Use sizeof(*e).
1047 (cgraph_node_remove_callees): New temporary f. Hold the next item
1049 (cgraph_node_remove_callers): Likewise.
1051 * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
1052 (ipa_node_removal_hook): Likewise.
1054 * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
1055 gimple_call_copy_skip_args and moved to the gimple_call section.
1056 * gimple.c (gimple_copy_call_skip_args): Renamed to
1057 gimple_call_copy_skip_args. Changed al users.
1059 2008-09-22 Vladimir Makarov <vmakarov@redhat.com>
1061 * ira-color.c (start_allocno_priorities): Rename to
1062 setup_allocno_priorities. Use costs and
1063 ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
1064 range lengths. Get rid off doubles.
1065 (ira_fast_allocations): Call start_allocno_priorities.
1067 2008-09-22 David Daney <ddaney@avtrex.com>
1070 * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
1071 register if TARGET_LONG_CALLS.
1073 2008-09-22 Richard Guenther <rguenther@suse.de>
1075 PR tree-optimization/37145
1076 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
1077 value-numbering union accesses with their offset and size only.
1078 (visit_reference_op_load): Fix simplification of inserted conversions.
1079 * tree-ssa-pre.c (find_or_generate_expression): Do not
1080 recursively generate expressions if running FRE.
1082 2008-09-22 Adam Nemet <anemet@caviumnetworks.com>
1084 * config/mips/mips.h (ISA_HAS_BADDU): New macro.
1085 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
1088 2008-09-22 Richard Guenther <rguenther@suse.de>
1090 PR tree-optimization/37145
1091 * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
1092 (phi_translate_1): Constant fold references.
1094 2008-09-22 Ira Rosen <irar@il.ibm.com>
1096 PR tree-optimization/37482
1097 * tree-vectorizer.h (struct _slp_instance): Add new field.
1098 (SLP_INSTANCE_FIRST_LOAD_STMT): New.
1099 (get_earlier_stmt): New function.
1100 * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
1102 (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
1103 * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
1104 asserts that GSI points to the scalar statement being vectorized.
1105 Set new statement location according to GSI.
1106 (vect_schedule_slp_instance): Use GSI of
1107 SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
1109 2008-09-21 Jan Hubicka <jh@suse.cz>
1111 * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
1112 (ipcp_insert_stage): Update dead_nodes bitmap.
1114 2008-09-22 Danny Smith <dannysmith@users.sourceforge.net>
1117 * config/i386/t-cygming (SHLIB_LC): Remove.
1118 (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
1119 * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
1121 2008-09-22 Hans-Peter Nilsson <hp@axis.com>
1125 * final.c (mark_symbol_ref_as_used): New helper function.
1126 (output_operand): Instead of just looking inside MEMs for
1127 SYMBOL_REFs, use new helper function and for_each_rtx.
1128 * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
1129 to after weak-handling. Don't mark decls with TREE_STATIC as weak.
1130 Make head comment more general.
1131 * config/darwin.c (machopic_output_indirection): Handle weak
1132 references here, like in assemble_external.
1134 2008-09-21 Eric Botcazou <ebotcazou@adacore.com>
1136 * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
1137 (sparc_emit_float_lib_cmp): Change return type.
1138 * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
1139 (gen_compare_operator): New function.
1140 (sparc_emit_float_lib_cmp): Return the new operator to be used in
1141 the comparison sequence. Minor tweaks.
1142 * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
1143 that the final operator and the result of sparc_emit_float_lib_cmp
1144 match for software TFmode; use emit_insn in lieu of emit_jump_insn.
1145 (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
1146 buneq, bunge, bunle, bltgt): Assert that the final operator and the
1147 result of sparc_emit_float_lib_cmp match for software TFmode.
1148 (movqicc, movhicc, movsicc, movdicc): Merge into...
1149 (mov<I:mode>cc): ...this.
1150 (movsfcc, movdfcc, movtfcc): Merge into...
1151 (mov<F:mode>cc): ...this.
1152 (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
1154 (mov<I:mode>_cc_v9): ...this.
1155 (movdi_cc_sp64_trunc): Delete.
1156 (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
1157 movdi_cc_reg_sp64): Merge into...
1158 (mov<I:mode>_cc_reg_sp64): ...this.
1159 (movsf_cc_sp64): Rename into...
1160 (movsf_cc_v9): ...this.
1161 (movdf_cc_sp64): Rename into...
1162 (movdf_cc_v9): ...this.
1163 (movtf_cc_hq_sp64): Rename into...
1164 (movtf_cc_hq_v9): ...this.
1165 (movtf_cc_sp64): Rename into...
1166 (movtf_cc_v9): ...this. Adjust for renaming of movdf_cc_sp64.
1168 2008-09-21 Diego Novillo <dnovillo@google.com>
1170 * doc/gccint.texi: Include generic.texi and gimple.texi.
1172 * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
1173 (GIMPLE): Move to gimple.texi.
1174 (Annotations): Remove references to to stmt_ann_t and
1176 (SSA Operands): Rename from 'Statement Operands'.
1177 * doc/generic.texi: New.
1178 * doc/gimple.texi: New.
1179 * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
1180 * Makefile.in (TEXI_GCCINT_FILES):
1181 * gimple.c (gimple_copy_call_skip_args): Rename from
1182 giple_copy_call_skip_args. Update all users.
1183 * doc/gimple.texi (gimple_copy_call_skip_args): Document.
1185 2008-09-21 Ira Rosen <irar@il.ibm.com>
1187 PR tree-optimization/37539
1188 * tree-vect-transform.c (vect_transform_strided_load): Save vector
1189 statement in related statement field only for the first load of the
1190 group of loads with the same data reference.
1192 2008-09-20 Adam Nemet <anemet@caviumnetworks.com>
1194 * config/mips/mips.h (TUNE_OCTEON): New macro.
1195 * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
1196 (mips_multipass_dfa_lookahead): Return 2 for Octeon.
1197 * config/mips/octeon.md: New file.
1198 * config/mips/mips.md: Include octeon.md. Restore
1199 semi-alphabetical order of include files.
1201 2008-09-20 H.J. Lu <hongjiu.lu@intel.com>
1204 * config/i386/i386.md (*jcc_fused_1): Removed.
1205 (*jcc_fused_2): Likewise.
1206 (*jcc_fused_3): Likewise.
1207 (*jcc_fused_4): Likewise.
1209 2008-09-20 Richard Sandiford <rdsandiford@googlemail.com>
1211 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
1212 (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
1213 * target.h (gcc_target): Add ira_cover_classes.
1214 * ira.c: Remove IRA_COVER_CLASSES guards.
1215 (setup_cover_and_important_classes): Use targetm.ira_cover_classes
1216 instead of IRA_COVER_CLASSES.
1217 (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
1218 (setup_class_translate): Likewise.
1219 (setup_reg_class_intersect_union): Likewise.
1220 (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
1221 test of targetm.ira_cover_classes.
1222 * opts.c (decode_options): Use targetm.ira_cover_classes instead
1223 of IRA_COVER_CLASSES.
1224 * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
1225 (TARGET_INITIALIZER): Include it.
1226 * targhooks.h (default_ira_cover_classes): Declare.
1227 * targhooks.c (default_ira_cover_classes): New function.
1229 2008-09-19 Bob Wilson <bob.wilson@acm.org>
1231 * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
1233 2008-09-19 Ian Lance Taylor <iant@google.com>
1235 * varasm.c (narrowing_initializer_constant_valid_p): Return
1236 NULL_TREE if ENDTYPE is not an integer.
1238 2008-09-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
1241 * tree-ssa.c (execute_update_addresses_taken): Also update
1242 DECL_GIMPLE_REG_P for vector and complex types.
1244 2008-09-19 Andrew MacLeod <amacleod@redhat.com>
1245 Jan Hubicka <jh@suse.cz>
1248 * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
1249 empty before freeing them.
1250 (find_replaceable_exprs): Move asserts to free_temp_expr_table.
1252 2008-09-18 Bob Wilson <bob.wilson@acm.org>
1254 * configure.ac: Add HAVE_AS_TLS check for Xtensa.
1255 * config/xtensa/predicates.md (tls_symbol_operand): New.
1256 * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
1257 (TARGET_CANNOT_FORCE_MEM): Define.
1258 (xtensa_tls_symbol_p): New.
1259 (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
1260 (xtensa_legitimate_address_p): Disallow constant pool TLS references.
1261 (xtensa_tls_module_base): New.
1262 (xtensa_call_tls_desc): New.
1263 (xtensa_legitimize_tls_address): New.
1264 (xtensa_legitimize_address): Handle TLS symbols.
1265 (xtensa_tls_referenced_p_1): New.
1266 (xtensa_tls_referenced_p): New.
1267 (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
1269 (XTENSA_BUILTIN_THREAD_POINTER): New.
1270 (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
1271 (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
1272 builtin. Add declarations for __builtin_thread_pointer and
1273 __builtin_set_thread_pointer.
1274 (xtensa_fold_builtin): Recognize new builtins.
1275 (xtensa_expand_builtin): Expand new builtins.
1276 * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
1277 (TARGET_THREADPTR): Define.
1278 (HAVE_AS_TLS): Define default value.
1279 (LEGITIMATE_CONSTANT_P): Disallow TLS references.
1280 * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
1281 (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
1282 (UNSPECV_SET_TP): New.
1283 (sym_TPOFF, sym_DTPOFF): New.
1284 (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
1285 * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
1286 * configure: Regenerated.
1288 2008-09-18 H.J. Lu <hongjiu.lu@intel.com>
1291 * config/ia64/ia64.c (ia64_optimization_options): Move
1292 checking and setting flag_schedule_insns_after_reload and
1293 ia64_flag_schedule_insns2 back to ...
1294 (ia64_override_options): Here.
1296 2008-09-18 Andrew Pinski <andrew_pinski@playstation.sony.com>
1299 * loop-doloop.c (doloop_modify): New argument zero_extend_p and
1300 zero extend count after the correction to it is done.
1301 (doloop_optimize): Update call to doloop_modify, don't zero extend
1304 2008-09-18 Martin Jambor <mjambor@suse.cz>
1306 * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
1308 * ipa-prop.c: Correct comments.
1309 * ipa-prop.h: Likewise.
1311 2008-09-18 Jan Hubicka <jh@suse.cz>
1314 * ipa-reference.c (ipa_reference_local_vars_info_d,
1315 ipa_reference_global_vars_info_d,
1316 ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
1317 ipa_reference_vars_info_t): Move here from ipa-reference.h
1318 (node_duplication_hook_holder, node_removal_hook_holder): New.
1319 (get_reference_vars_info_from_cgraph): Rename to ...
1320 (get_reference_vars_info): ... this one, use cgraph uids.
1321 (get_local_reference_vars_info, get_global_reference_vars_info):
1322 Use cgraph instead of decl.
1323 (ipa_reference_get_read_local, ipa_reference_get_written_local):
1325 (ipa_reference_get_read_global, ipa_reference_get_not_read_global
1326 ipa_reference_get_written_global,
1327 ipa_reference_get_not_written_global): Use cgraph argument.
1328 (check_call): Simplify avail check.
1329 (scan_stmt_for_static_refs): Update.
1330 (propagate_bits): Update.
1331 (merge_callee_local_info): Remove.
1332 (init_function_info): Use cgraph nodes.
1333 (clean_function_local_data): Break out from ...
1334 (clean_function): ... here.
1335 (copy_local_bitmap, copy_global_bitmap): New functions.
1336 (duplicate_node_data, remove_node_data): New functions.
1337 (generate_summary): Register hooks; use visibility instead of
1339 (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
1340 * ipa-reference.h (ipa_reference_local_vars_info_d,
1341 ipa_reference_global_vars_info_d,
1342 ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
1343 ipa_reference_vars_info_t): Move to ipa-reference.c
1344 (ipa_reference_get_read_local, ipa_reference_get_written_local):
1346 (ipa_reference_get_read_global, ipa_reference_get_written_global,
1347 ipa_reference_get_not_read_global,
1348 ipa_reference_get_not_written_global): Update prototype.
1349 * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
1350 (init_state): Remove.
1351 (node_duplication_hook_holder, node_removal_hook_holder): New.
1352 (get_function_state, set_function_state): Use VECtor.
1353 (analyze_function): Check body availability.
1354 (add_new_function): Likewise.
1355 (duplicate_node_data, remove_node_data): New.
1356 (generate_summary): Register hooks; do not care about clones.
1357 (propafate): Do not care about clones; recursive functions are
1359 * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
1360 * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
1361 * edge_duplication_hook_holder, node_duplication_hook_holder): Make
1363 * tree-flow.h (function_ann_d): Remove reference_vars_info.
1364 * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
1365 Update call of ipa-reference accesors.
1367 2008-09-18 Simon Baldwin <simonb@google.com>
1369 * c-opts.c (c_common_handle_option): Add handling for
1370 -Wbuiltin-macro-redefined command line option.
1371 * c.opt: Added builtin-macro-redefined option.
1372 * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
1375 2008-09-18 Richard Guenther <rguenther@suse.de>
1377 PR tree-optimization/37258
1378 * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
1379 and signedness for integral types.
1380 (vn_phi_eq): Require compatible types.
1382 2008-09-18 Jakub Jelinek <jakub@redhat.com>
1385 * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
1386 TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
1388 * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
1389 !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
1390 ggc_free other TREE_LIST nodes from that chain.
1391 * function.c (instantiate_decls): Instantiate also DECL_RTL
1392 of vars in cfun->local_decls, free that list afterwards.
1394 2008-09-18 Eric Botcazou <ebotcazou@adacore.com>
1396 * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
1397 * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
1399 2008-09-18 Andrew MacLeod <amacleod@redhat.com>
1401 * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
1402 * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
1404 2008-09-18 Andrew MacLeod <amacleod@redhat.com>
1406 PR tree-optimization/37102
1407 * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
1408 from a node. Check to see if another PHI is dead.
1409 (eliminate_useless_phis): Rename from eliminate_virtual_phis and
1410 remove real PHIs which have no uses.
1411 (rewrite_out_of_ssa): Call eliminate_useless_phis.
1413 2008-09-18 Richard Guenther <rguenther@suse.de>
1416 * tree-cfg.c (remove_useless_stmts_1): Remove
1417 GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
1419 2008-09-18 Nick Clifton <nickc@redhat.com>
1421 * config/frv/frv.h (IRA_COVER_CLASSES): Define.
1422 (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
1423 to frv_secondary_reload_class.
1424 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
1425 * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
1426 (frv_secondary_reload_class): Omit unused parameter.
1427 (frv_secondary_reload): New function. Handle the case when
1428 secondary_reload_class() is called before the reload_(in|out)
1429 _optabs have been initialised.
1430 * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
1432 * config/frv/frv.md: Define an exclusion set between fr550_m0
1435 2008-09-18 Richard Guenther <rguenther@suse.de>
1437 PR tree-optimization/37456
1438 * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
1439 want to insert after ends a BB insert on the single fallthru
1442 2008-09-18 Andreas Krebbel <krebbel1@de.ibm.com>
1444 * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
1445 Mention -march=z9-109, z9-ec and z10.
1447 2008-09-18 Uros Bizjak <ubizjak@gmail.com>
1449 PR rtl-optimization/37544
1450 * regrename.c (maybe_mode_change): Exit early when copy_mode
1451 is narrower than orig_mode and narrower than new_mode.
1453 2008-09-18 Alexander Monakov <amonakov@ispras.ru>
1456 * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
1458 * sched-rgn.c (ref_counts): Remove.
1459 (insn_referenced): New static variable.
1460 (INSN_REF_COUNT): Remove.
1461 (sched_run_compute_dependencies): Use insn_referenced instead of
1463 (add_branch_dependences): Likewise. Delete dead assignment.
1465 2008-09-17 Adam Nemet <anemet@caviumnetworks.com>
1467 * haifa-sched.c (dep_cost_1): Recognize the producer even if the
1468 consumer is an asm. Add comment why this is important.
1469 (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
1470 recog_memoized (insn) < 0" assert. Put ENABLE_CHECKING around it.
1472 2008-09-17 Joseph Myers <joseph@codesourcery.com>
1474 * expr.c (emit_group_store): Do not shift before moving via a
1477 2008-09-17 Eric Botcazou <ebotcazou@adacore.com>
1479 * varasm.c (initializer_constant_valid_p): Forbid view-conversions
1480 from aggregate to non-aggregate type if the bit pattern is not fully
1481 preserved afterwards.
1483 2008-09-17 Richard Guenther <rguenther@suse.de>
1485 * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
1486 (verify_gimple_assign): ... this. Split into ...
1487 (verify_gimple_assign_unary): ... this,
1488 (verify_gimple_assign_binary): ... that,
1489 (verify_gimple_assign_single): ... and this.
1490 (verify_types_in_gimple_stmt): Call verify_gimple_assign.
1491 Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
1492 (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
1493 (verify_types_in_gimple_reference): Be forgiving with
1495 (verify_gimple_phi): Deal with virtual operands.
1497 * tree.def (PREDICT_EXPR): Change to tcc_expression.
1499 2008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
1501 * tree.c (get_callee_fndecl): Don't call the language hook.
1502 * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
1503 * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
1504 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
1506 2008-09-17 Jakub Jelinek <jakub@redhat.com>
1508 * tree.c (protected_set_expr_location): Don't unnecessarily
1509 check for error_mark_node.
1511 2008-09-17 Art Haas <ahaas@impactweather.com>
1513 * ipa-reference.c (analyze_function): Declare step only if
1514 ENABLE_CHECKING is defined.
1516 2008-09-17 Jan Hubicka <jh@suse.cz>
1519 * tree.h (DECL_INLINE): remove.
1520 (DECL_DECLARED_INLINE_P): Update docs.
1521 (DECL_NO_INLINE_WARNING_P): new.
1522 (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
1523 * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
1525 2008-09-17 Jakub Jelinek <jakub@redhat.com>
1526 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1529 * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
1532 2008-09-17 Jan Hubicka <jh@suse.cz>
1534 * ipa-reference.c (ipa_obstack): Remove.
1535 (local_info_obstack, global_info_obstack): New.
1536 (add_static_var): We now handle variables only.
1537 (mark_address_taken, mark_load, mark_store): New functions based on ...
1538 (check_operand): ... remove.
1539 (get_asm_stmt_operands): Rename to ...
1540 (check_asm_memory_clobber): ... this. Look only for memory clobber.
1541 (scan_stmt_for_static_refs): Rewrite.
1542 (scan_op_for_static_refs): Rename to ...
1543 (scan_initializer_for_static_refs): do not look for VAR_DECL
1544 initializers; stop recursion on types and decls.
1545 (ipa_init): Use proper obstacks.
1546 (analyze_variable): Use scan_initializer_for_static_refs.
1547 (init_function_info): Use local obstack.
1548 (analyze_function): Simplify.
1549 (add_new_function): We don't need visited_nodes obstack.
1550 (generate_summary): Use proper obstacks; cleanup after propagation.
1552 2008-09-17 Richard Guenther <rguenther@suse.de>
1555 PR tree-optimization/37491
1556 * alias.c (get_alias_set): Use the canonical type.
1557 * tree-vect-transform.c (vectorizable_store): Use the type of
1558 the lhs for the vector type. Adjust checking.
1559 (vectorizable_load): Adjust checking.
1561 2008-09-16 Jakub Jelinek <jakub@redhat.com>
1562 Adam Nemet <anemet@caviumnetworks.com>
1564 PR rtl-optimization/37483
1565 * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
1566 if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
1567 Rearrange code to better match the original comment. Check
1568 t_unconditional first. Improve comment.
1570 2008-09-16 Jakub Jelinek <jakub@redhat.com>
1573 * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
1574 GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
1577 * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
1578 GIMPLE_TRY if cleanup sequence is empty.
1580 2008-09-16 Andrew Pinski <andrew_pinski@playstation.sony.com>
1583 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
1584 eliminate IV if the cost are the same.
1586 2008-09-16 Richard Guenther <rguenther@suse.de>
1589 * tree-sra.c (sra_build_assignment): Do not call the gimplifier
1592 2008-09-16 Richard Guenther <rguenther@suse.de>
1594 PR tree-optimization/37508
1595 * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
1597 2008-09-15 Kaz Kojima <kkojima@gcc.gnu.org>
1599 * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
1601 2008-09-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
1603 * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
1604 use gen_floatdidf2 directly.
1605 (floatunssidf2): Likewise.
1606 (floatsidf_ppc64_mfpgpr): Remove.
1607 (floatsidf_ppc64): Remove.
1608 (floatunssidf_ppc64): Remove.
1610 2008-09-15 Jakub Jelinek <jakub@redhat.com>
1612 * ira-color.c (finish_cost_update): Free update_cost_queue_elems
1613 rather than update_cost_queue.
1615 * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
1616 in every call starting with the second one, instead of only when
1617 alias_bitmap_obstack.elements != NULL.
1619 * tree-predcom.c (filter_suitable_components): Free all refs in
1620 act->refs vector before calling release_component.
1621 (add_ref_to_chain): Free ref if not adding it to chain->refs.
1623 * tree-data-ref.c (free_subscripts): Free all subscript objects.
1625 * tree-loop-linear.c (linear_transform_loops): Initialize
1626 lambda_obstack only after calling perfect_loop_nest_depth.
1627 Goto free_and_continue instead of just continue for later failures.
1630 * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
1633 * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
1635 2008-09-14 Andreas Schwab <schwab@suse.de>
1637 * tree-call-cdce.c (check_target_format): Accept Motorola formats.
1639 2008-09-14 Jan Hubicka <jh@suse.cz>
1641 * invoke.texi (-fconserve-stack): Document.
1642 * opts.c (decode_options): Handle conserve_stack.
1643 * common.opt (fconvserve_stack): New.
1645 2008-09-14 David Edelsohn <edelsohn@gnu.org>
1647 * config.host: Add x-aix to host_xmake_file.
1648 * config/rs6000/t-aix52: Do not override LDFLAGS.
1649 * config/rs6000/x-aix: New file.
1651 2008-09-14 Andy Hutchinson <hutchinsonandy@aim.com>
1657 * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
1658 is not recognized as a valid register usage. Allow REG_X to be used
1660 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
1661 forces a reload when using a base register.
1663 2008-09-14 Danny Smith <dannysmith@users.sourceforge.net>
1665 * config/i386/cygming-crtend.c (register_frame_ctor): If
1666 DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
1667 directly with atexit.
1668 (deregister_frame_ctor): Rename to ...
1669 (deregister_frame_dtor): Use to call __gcc_deregister_frame
1670 if !DEFAULT_USE_CXA_ATEXIT.
1672 2008-09-13 Jan Hubicka <jh@suse.cz>
1674 * cgraph.c: Include value-prof.h
1675 * Makefile.in (cgraph.o): Add value-prof.h dependency.
1677 2008-09-13 Jan Hubicka <jh@suse.cz>
1680 * tree-profile.c (add_abnormal_goto_call_edges): New function.
1681 (tree_gen_interval_profiler, tree_gen_pow2_profiler,
1682 tree_gen_one_value_profiler, tree_gen_average_profiler,
1683 tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
1685 2008-09-13 Jan Hubicka <jh@suse.cz>
1687 * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
1688 too many bytes on misalligned blocks.
1690 2008-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1692 * doc/cfg.texi: Fix some typos.
1693 * doc/extend.texi: Likewise.
1694 * doc/install.texi: Likewise.
1695 * doc/invoke.texi: Likewise.
1696 * doc/rtl.texi: Likewise.
1697 * doc/tree-ssa.texi: Likewise.
1699 2008-09-13 Richard Guenther <rguenther@suse.de>
1702 * tree-nested.c (finalize_nesting_tree_1): Generate valid
1703 gimple stores for memory rhs.
1705 2008-09-13 H.J. Lu <hongjiu.lu@intel.com>
1707 PR rtl-optimization/37489
1708 * cse.c (fold_rtx): Don't return const_true_rtx for float
1709 compare if FLOAT_STORE_FLAG_VALUE is undefined.
1711 2008-09-13 Jan Hubicka <jh@suse.cz>
1713 PR tree-optimization/37392
1714 * tree-inline.c (remap_gimple_stmt): Do not remap return value.
1716 2008-09-13 Martin Jambor <mjambor@suse.cz>
1717 Jan Hubicka <jh@suse.cz>
1719 * cgraph.c (free_edges): New variable.
1720 (NEXT_FREE_EDGE): New macro.
1721 (cgraph_free_edge): New function.
1722 (cgraph_remove_edge): Call cgraph_remove_edge_1.
1723 (cgraph_node_remove_callees): Likewise.
1724 (cgraph_node_remove_callers): Likewise.
1725 (cgraph_create_edge): Reuse edges from the free list. Do not
1726 update uid if doing so.
1727 (cgraph_remove_*_hook): Add free call.
1729 2008-09-13 Richard Sandiford <rdsandiford@googlemail.com>
1731 * ira-color.c (conflict_allocno_vec): Delete.
1732 (update_cost_queue_elem): New structure.
1733 (update_cost_queue): New variable.
1734 (update_cost_queue_tail): Likewise.
1735 (update_cost_queue_elems): Likewise.
1736 (allocno_update_cost_check): Delete.
1737 (initiate_cost_update): Allocate update_cost_queue_elems
1738 instead of allocno_update_cost_check.
1739 (finish_cost_update): Update the free()s accordingly.
1740 (start_update_cost): New function.
1741 (queue_update_cost): Likewise.
1742 (get_next_update_cost): Likewise.
1743 (update_copy_costs_1): Inline into...
1744 (update_copy_costs): ...here. Use a queue instead of recursive calls.
1745 Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
1746 once we've established they are equal. Don't allocate update
1747 costs if there is nothing to add to them.
1748 (update_conflict_hard_regno_costs): Remove ALLOCNO and
1749 DIVISOR arguments. Use a queue instead of recursive calls;
1750 process all the allocnos in the initial queue, rather than
1752 (assign_hard_reg): Use queue_update_cost instead of
1753 conflict_allocno_vec. Queue coalesced allocnos instead
1754 of calling update_conflict_hard_regno_costs for each one.
1755 Just call update_conflict_hard_regno_costs once for the
1757 (ira_color): Remove conflict_allocno_vec handling.
1759 2008-09-12 Sebastian Pop <sebastian.pop@amd.com>
1761 PR tree-optimization/37484
1762 * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
1763 (save_var_name): Same.
1764 (initialize_cloog_names): Same.
1765 (initialize_cloog_names): Same.
1767 2008-09-12 Sebastian Pop <sebastian.pop@amd.com>
1769 * tree-scalar-evolution.c (set_instantiated_value): Set
1772 2008-09-12 Vladimir Makarov <vmakarov@redhat.com>
1776 * ira-build.c (common_loop_tree_node_dominator): Remove.
1777 (copy_live_ranges_to_removed_store_destinations): New function.
1778 (regno_top_level_allocno_map): Move to top level from ...
1779 (ira_flattening): ... here. Use
1780 copy_live_ranges_to_removed_store_destinations.
1782 * ira-emit.c (generate_edge_moves): Fix a comment.
1784 2008-09-12 Anatoly Sokolov <aesok@post.ru>
1787 * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
1788 scratch register after 'set' pattern.
1790 2008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1792 * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
1793 information passed to mark_reg_pointer.
1794 * explow.c (force_reg): Likewise.
1796 2008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1798 * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
1799 when building for the celledp architecture.
1801 2008-09-12 Richard Guenther <rguenther@suse.de>
1803 * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
1805 2008-09-12 Eric Botcazou <ebotcazou@adacore.com>
1807 PR rtl-optimization/37424
1808 * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
1809 the regnos instead of the addresses.
1811 2008-09-11 Janis Johnson <janis187@us.ibm.com>
1813 * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
1815 2008-09-11 Richard Guenther <rguenther@suse.de>
1817 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
1818 entering the weaker equivalence recording.
1820 * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
1822 2008-09-11 Jeff Law <law@redhat.com>
1824 * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
1825 by assign_stack_local on the IRA path for stack slot sharing
1826 as well as the non-IRA path.
1828 2008-09-11 Uros Bizjak <ubizjak@gmail.com>
1830 * config/i386/i386.h: Fix whitespace issues.
1832 2008-09-11 Martin Jambor <mjambor@suse.cz>
1834 * ipa-prop.h (struct ipa_param_flags): Removed.
1835 (struct ipa_param_descriptor): New structure.
1836 (struct ipa_node_params): ipcp_lattices, param_decls and
1837 param_flags moved to ipa_param_description.
1838 (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
1839 descriptors. Renamed all users.
1840 (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
1841 changed to access descriptors. Renamed all users.
1842 (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
1843 to access descriptors. Renamed all users.
1844 * ipa-cp.c (ipcp_init_cloned_node): Call
1845 ipa_initialize_node_params instead of ipa_count_formal_params and
1846 ipa_create_param_decls_array.
1847 (ipcp_analyze_node): Likewise.
1848 (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
1849 descriptors. Renamed all users.
1850 (ipcp_initialize_node_lattices): Remove allocation.
1851 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
1852 ipa_initialize_node_params instead of ipa_count_formal_params and
1853 ipa_create_param_decls_array.
1854 * ipa-prop.c (ipa_create_param_decls_array): Renamed to
1855 ipa_populate_param_decls, made static, added parameter info,
1856 renamed mt to node, removed allocation, changed to use
1858 (ipa_count_formal_params): Made static, added parameter info,
1860 (ipa_initialize_node_params): New function.
1861 (ipa_check_stmt_modifications): Changed to use descriptors.
1862 (ipa_detect_param_modifications): Removed allocation, changed to
1864 (ipa_note_param_call): Changed to use descriptors.
1865 (ipa_analyze_params_uses): Removed allocation.
1866 (ipa_free_node_params_substructures): Changed to use descriptors.
1867 (ipa_edge_duplication_hook): Use the unused attribute.
1868 (ipa_node_duplication_hook): Use the unused attribute, changed to
1869 use descriptors, changed to duplicate descriptors.
1871 * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
1872 changed all callers. Call ipa_propagate_indirect_call_infos if doing
1873 indirect inlining. Made static.
1874 (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
1875 functions called only once.
1876 (cgraph_decide_recursive_inlining): Don't call
1877 ipa_propagate_indirect_call_infos, pass new_edges to
1878 cgraph_mark_inline_edge instead.
1879 (cgraph_decide_inlining_of_small_functions): Don't call
1880 ipa_propagate_indirect_call_infos, pass new_edges to
1881 cgraph_mark_inline_edge instead.
1882 (cgraph_decide_inlining): Don't call
1883 ipa_propagate_indirect_call_infos.
1884 * ipa-prop.c: Check that vectors are allocated.
1886 * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
1887 iff a new cgraph edges have been created.
1888 (cgraph_decide_inlining): New variable redo_always_inline.
1889 Flattening and always_inlining loop until callgraph stabilizes.
1890 * ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
1891 true iff new cgraph edges have been created.
1892 (propagate_info_to_inlined_callees): Likewise.
1893 (ipa_propagate_indirect_call_infos): Likewise.
1895 2008-09-11 Richard Guenther <rguenther@suse.de>
1897 * tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
1898 (set_prologue_iterations): Likewise.
1899 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
1901 (vect_update_init_of_dr): Likewise.
1902 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
1904 * fold-const.c (fold_unary): Do not generate calculations
1907 2008-09-11 Paolo Bonzini <bonzini@gnu.org>
1909 * dojump.c (do_jump) [BIT_AND_EXPR]: Move below. Fall through to
1910 TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
1911 (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
1913 * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
1915 * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
1916 VRP's simplify_stmt_using_ranges. Do simplify_stmt_using_ranges
1917 before finalizing the changes.
1918 * tree-vrp.c (extract_range_from_binary_expr): Add limited support
1920 (simplify_truth_ops_using_ranges): New.
1921 (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
1922 simplify_cond_using_ranges, simplify_switch_using_ranges): Return
1923 whether a simplification was made.
1924 (simplify_stmt_using_ranges): Ditto, and accept a GSI. For GS_ASSIGN,
1925 use a switch statement and also call simplify_truth_ops_using_ranges.
1927 2008-09-11 Jan Hubicka <jh@suse.cz>
1929 * ggc-common.c (loc_array): Make static.
1930 * dce.c (rest_of_handle_ud_dce): Free worklist.
1932 2008-09-11 Jan Hubicka <jh@suse.cz>
1934 * cgraph.c (cgraph_release_function_body): Plug memory leak on
1935 ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
1936 function so we are sure we do not dangle it forever.
1937 * function.c (outer_function_chain, find_function_data): Remove.
1938 (function_context_stack): New.
1939 (push_function_context, pop_function_context): Update.
1940 * function.h (struct function): Remove pointer outer.
1941 (outer_function_chain, find_function_data): Remove.
1942 * stmt.c (force_label_rtx): Remove dead call of find_function_data.
1944 2008-09-11 Jan Hubicka <jh@suse.cz>
1947 * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
1949 2008-09-11 Jan Hubicka <jh@suse.cz>
1951 * tree-ssa-pre.c (phi_translate_1): Fix memory leak
1953 2008-09-11 Jan Hubicka <jh@suse.cz>
1955 * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
1956 (free_var_map_entry): New function.
1957 (redirect_edge_var_map_destroy): Use it.
1959 2008-09-11 Jan Hubicka <jh@suse.cz>
1962 * tree-inline.c (add_lexical_block): Replace with ...
1963 (prepend_lexical_block): ... prepend at begginig.
1964 (remap_blocks): Use it and reverse later.
1965 (expand_call_inline): Use prepend_lexical_block.
1967 2008-09-11 Jan Hubicka <jh@suse.cz>
1969 * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
1971 2008-09-11 Jan Hubicka <jh@suse.cz>
1973 * function.c (free_after_compilation): Call insn_locators_free.
1974 * cfglayout.c (insn_locators_free): New function.
1975 * rtl.h (insn_locators_free): Declare.
1977 2008-09-11 Jan Hubicka <jh@suse.cz>
1979 * ifcvt.c (check_cond_move_block): Make regs argument pointer to
1981 (cond_move_process_if_block): Update call.
1983 2008-09-11 Jan Hubicka <jh@suse.cz>
1985 * toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
1986 * vec.c: Include hashtab.h
1987 (vec_descriptor, ptr_hash_entry): New structures.
1988 (vec_desc_hash, vec_ptr_map): New static variables.
1989 (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
1990 register_overhead, free_overhead, vec_heap_free): New functions.
1991 (vec_gc_o_reserve_1): ggc_free when resizing to 0.
1992 (vec_heap_o_reserve_1): free when resizing to 0; add statistics.
1993 (cmp_statistic, add_statistics, dump_vec_loc_statistics):
1996 2008-09-11 Ira Rosen <irar@il.ibm.com>
1998 PR tree-optimization/37474
1999 * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
2000 length of load permutation.
2002 2008-09-11 Andreas Schwab <schwab@suse.de>
2004 * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
2006 2008-09-11 Jakub Jelinek <jakub@redhat.com>
2009 * expmed.c (extract_low_bits): Avoid creating invalid subregs.
2010 * dse.c (find_shift_sequence): Use extract_low_bits instead of
2011 simplify_gen_subreg.
2013 2008-09-11 Ira Rosen <irar@il.ibm.com>
2015 * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
2018 2008-09-10 Jakub Jelinek <jakub@redhat.com>
2021 * gimplify.c (gimplify_body): Call default_rtl_profile.
2024 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
2025 instead of tok->val.node if not expanding to something else. Handle
2026 intervening CPP_PADDING tokens.
2027 (altivec_categorize_keyword): Remove unneeded comparisons.
2029 2008-09-10 Richard Guenther <rguenther@suse.de>
2031 * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
2033 2008-09-10 Richard Guenther <rguenther@suse.de>
2036 * tree-inline.c (insert_init_stmt): Make sure to not
2037 insert invalid gimple stores.
2039 2008-09-10 Sebastian Pop <sebastian.pop@amd.com>
2041 PR tree-optimization/37388
2042 * toplev.c (process_options): Fail and warn when graphite
2043 flags are used, but the compiler has not been configured
2044 with graphite libraries.
2045 * graphite.c (graphite_transform_loops): Remove printfs
2046 to dump_file for the case when graphite is not available.
2048 2008-09-10 H.J. Lu <hongjiu.lu@intel.com>
2051 * config/i386/i386.c (ix86_expand_vector_init_interleave): Force
2052 the even element into register.
2053 (ix86_expand_vector_init_general): Don't use
2054 ix86_expand_vector_init_interleave on V16QImode and V8HImode
2055 if we can't move from GPR to SSE register directly.
2057 2008-09-10 Bernd Schmidt <bernd.schmidt@analog.com>
2059 * config/bfin/bfin.c (workaround_speculation): Correct algorithm to
2060 not lose track of the number of NOPs needed. Number of NOPs needed
2061 for sync vs. loads workaround was switched; corrected. Run second
2062 pass for all workarounds. No NOPs needed after call insns. Change
2063 second pass to use find_next_insn_start and find_load helpers in order
2064 to properly detect parallel insns.
2065 * config/bfin/bfin.md (cbranch_with_nops): Increase length.
2067 2008-09-10 Jan Hubicka <jh@suse.cz>
2069 * value-prof.c (gimple_ic): Fix tuplification bug.
2070 * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
2073 2008-09-10 Jakub Jelinek <jakub@redhat.com>
2075 PR tree-optimization/37353
2076 * tree-call-cdce.c (cond_dead_built_in_calls): Remove.
2077 (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
2078 calls instead of cond_dead_built_in_calls.
2079 (tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
2080 initalize the vector only before adding first entry. Use VEC_safe_push
2081 instead of VEC_quick_push. Pass cond_dead_built_in_calls to
2082 shrink_wrap_conditional_dead_built_in_calls call.
2084 2008-09-10 Ira Rosen <irar@il.ibm.com>
2086 PR tree-optimization/37385
2087 * tree-vect-transform.c (vect_create_data_ref_ptr): Add a new
2088 argument, and use it as a vector type if not NULL.
2089 (vectorizable_store): Call vect_create_data_ref_ptr with the type of
2091 (vect_setup_realignment): Call vect_create_data_ref_ptr with
2092 additional argument.
2093 (vectorizable_load): Likewise.
2095 2008-09-10 Jakub Jelinek <jakub@redhat.com>
2097 * config/i386/i386.md (SWI32): New mode iterator.
2098 (jcc_fused_1, jcc_fused_2, jcc_fused_3, jcc_fused_4): Use it instead
2101 2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
2103 PR rtl-optimization/37435
2104 * caller-save.c (insert_restore, insert_save): Check the mode by
2107 2008-09-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2110 * dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for
2112 (dw2_output_indirect_constant_1): Use unstripped name in symbol
2115 2008-09-09 Sandra Loosemore <sandra@codesourcery.com>
2117 * doc/invoke.texi (ARM Options): Correct errors in discussion
2118 of -mfloat-abi, -mhard-float, and -msoft-float.
2120 2008-09-09 Jakub Jelinek <jakub@redhat.com>
2121 Jan Hubicka <jh@suse.cz>
2124 * tree-inline.c (copy_bb): Insert stmt into copy_basic_block before
2125 calling gimple_regimplify_operands on it. Iterate over all newly
2126 added statements, not just the last one.
2127 (insert_init_stmt): Insert stmt into seq first, then call
2128 gimple_regimplify_operands on it. Don't create new gimplification
2129 context, nor find referenced vars.
2131 2008-09-09 Jakub Jelinek <jakub@redhat.com>
2134 * ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument
2135 to pointer to vector pointer.
2136 * ipa-prop.c (ipa_propagate_indirect_call_infos,
2137 propagate_info_to_inlined_callees): Likewise.
2138 (update_call_notes_after_inlining): Likewise. Push new indirect edge
2139 to *new_edges instead of new_edges. Reread IPA_EDGE_REF after
2140 ipa_check_create_edge_args.
2141 * ipa-inline.c (cgraph_decide_recursive_inlining): Change last
2142 argument to pointer to vector pointer.
2143 (cgraph_decide_inlining_of_small_function): Adjust
2144 cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos
2148 * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
2149 optimizing for size, not speed.
2151 PR rtl-optimization/37408
2152 * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
2153 if parm is promoted.
2155 2008-09-09 Sebastian Pop <sebastian.pop@amd.com>
2157 PR tree-optimization/37375
2158 * tree-scalar-evolution.c (scev_info_str): Add field
2160 (new_scev_info_str, eq_scev_info, find_var_scev_info,
2161 set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
2162 set_instantiated_value): Pass instantiated_below.
2163 (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls
2165 (instantiate_scev_1, instantiate_scev): Pass a basic block above which
2166 the definitions are not instantiated.
2168 * tree-scalar-evolution.h (instantiate_scev): Update declaration.
2169 (block_before_loop): New.
2170 * tree-data-ref.c (dr_analyze_indices): Update uses of
2172 * graphite.c (block_before_scop): New.
2173 (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
2174 basic block, not a loop for determining the parameters.
2175 (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
2177 (idx_record_params, find_params_in_bb, find_scop_parameters,
2178 build_loop_iteration_domains, add_conditions_to_domain): Update calls
2179 to instantiate_scev.
2181 * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
2183 2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
2187 * ira-build.c (ira_create_allocno): Setup frequency to 0.
2189 * ira-color.c (update_conflict_hard_regno_costs): Remove assert.
2190 Check zero freq and increase if necessary.
2192 2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
2194 * ira-conflicts.c (process_regs_for_copy): Check that the hard
2195 regno is in the right range. Add comments.
2197 2008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2199 * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
2201 * mips-tfile.c (copy_object): Cast alloca result to int *.
2202 * mips-tdump.c (print_symbol): Cast xmalloc return values to
2204 Rename class to sclass.
2205 (read_tfile): Cast read_seek return values to proper types.
2206 Cast xcalloc return value to proper type.
2208 2008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2210 * config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ...
2211 * config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here.
2212 * config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here.
2214 2008-09-09 Jan Hubicka <jh@suse.cz>
2216 * profile.c (is_edge_inconsistent): Add debug output; ignore
2217 negative count on fake edges.
2218 (is_inconsistent): Add debug output.
2220 2008-09-09 Andrey Belevantsev <abel@ispras.ru>
2222 * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
2224 (choose_ready): When first insn is chosen from the ready list, also
2227 2008-09-09 Andrey Belevantsev <abel@ispras.ru>
2229 PR rtl-optimization/37360
2230 * haifa-sched.c (max_issue): Do not assert that we never issue more
2231 insns than issue_rate. Add comment.
2233 2008-09-09 Richard Guenther <rguenther@suse.de>
2235 * tree-cfg.c (verify_types_in_gimple_op): Remove.
2236 (verify_types_in_gimple_call): Rename to ...
2237 (verify_gimple_call): ... this. Enhance.
2238 (verify_types_in_gimple_cond): Remove.
2239 (verify_gimple_comparison): New function ...
2240 (verify_types_in_gimple_assign): ... split out from here.
2241 (verify_types_in_gimple_return): Rename to ...
2242 (verify_gimple_return): ... this. Enhance.
2243 (verify_types_in_gimple_switch): Rename to ...
2244 (verify_gimple_switch): ... this. Enhance.
2245 (verify_gimple_goto): New function.
2246 (verify_types_in_gimple_phi): Rename to ...
2247 (verify_gimple_phi): ... this. Enhance.
2248 (verify_types_in_gimple_stmt): Adjust calls to helper functions.
2249 Fold in single-statement cases from verify_types_in_gimple_seq_2.
2250 (verify_types_in_gimple_seq_2): Remove cases handled in
2251 verify_types_in_gimple_stmt.
2253 2008-09-09 Bernd Schmidt <bernd.schmidt@analog.com>
2255 * config/bfin/bfin.c (n_regs_to_save): New static variable.
2256 (push_multiple_operation, pop_multiple_operation): Set it.
2257 (workaround_rts_anomaly): New function.
2258 (workaround_speculation): New function, broken out of bfin_reorg.
2259 (bfin_reorg): Call the new functions.
2261 2008-09-09 Richard Guenther <rguenther@suse.de>
2265 * gimplify.c (gimplify_conversion): Change conversions of
2266 non-register type to VIEW_CONVERT_EXPRs.
2267 (gimplify_addr_expr): If we need to make the operand
2268 addressable make sure to use a properly initialized
2269 temporary for that so it gets a valid gimple store.
2271 2008-09-09 Aldy Hernandez <aldyh@redhat.com>
2273 * function.h (struct function): Add function_start_locus.
2274 * cfgexpand.c (gimple_expand_cfg): Use it.
2275 * c-parser.c (c_parser_declaration_or_fndef): Set it.
2277 2008-09-09 Richard Guenther <rguenther@suse.de>
2279 PR tree-optimization/37433
2280 * tree-ssa-ccp.c (ccp_fold): Properly guard folding of
2283 2008-09-09 Richard Guenther <rguenther@suse.de>
2285 PR tree-optimization/37387
2286 * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
2287 and bits to a common type.
2289 2008-09-09 Nick Clifton <nickc@redhat.com>
2291 * config/v850/v850.md (return): Restore frame size restriction.
2293 2008-09-09 Paolo Bonzini <bonzini@gnu.org>
2295 * c-common.c (c_expand_decl): Remove.
2296 * c-common.h (anon_aggr_type_p): Remove prototype.
2297 (DECL_ANON_UNION_ELEMS): Remove.
2298 * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
2299 * c-decl.c (anon_aggr_type_p): Remove.
2300 * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
2301 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
2302 * langhooks.h (struct lang_hooks): Remove expand_decl.
2303 * langhooks.c (lhd_expand_decl): Remove.
2304 * stmt.c (expand_anon_union_decl): Remove.
2305 * tree.h (expand_anon_union_decl): Remove prototype.
2307 2008-08-09 Andy Hutchinson <hutchinsonandy@aim.com>
2310 * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
2312 * config/avr/avr.md (QISI) : Define mode iterator.
2313 (negated_tst<mode>) : Redefine as split using mode macro.
2314 (reversed_tstqi): Define insn as reversed compare with zero.
2315 (reversed_tsthi): Ditto.
2316 (reversed_tstsi): Ditto.
2318 2008-09-08 Jakub Jelinek <jakub@redhat.com>
2321 * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
2322 call stmt by new_call, clear gimple_bb on stmt after gsi_replace.
2325 * predict.c (optimize_function_for_size_p): Don't segfault if
2327 * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
2328 tree_swap_operands_p): Don't test cfun != NULL before calling
2329 optimize_function_for_s*_p.
2331 2008-09-08 Eric Botcazou <ebotcazou@adacore.com>
2333 * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
2336 2008-09-08 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
2338 * crx/crx.h (IRA_COVER_CLASSES): Define.
2340 2008-09-08 Jakub Jelinek <jakub@redhat.com>
2343 * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
2344 even when a stmt has been gimple_modified_p, but after fold_stmt is
2345 not any longer. Remove unneeded may_have_exposed_new_symbols
2348 2008-09-08 Richard Guenther <rguenther@suse.de>
2350 PR tree-optimization/37421
2351 * tree-ssa-sccvn.c (visit_copy): Make sure to fully
2354 2008-09-08 Jakub Jelinek <jakub@redhat.com>
2357 * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
2359 2008-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2362 * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
2363 * pa-hpux10.h (LINK_SPEC): Likewise.
2364 * pa-hpux11.h (LINK_SPEC): Likewise.
2366 2008-09-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2368 * pa32-regs.h (IRA_COVER_CLASSES): Define.
2369 * pa64-regs.h (IRA_COVER_CLASSES): Define.
2371 2008-09-07 Helge Deller <deller@gmx.de>
2373 * pa/linux-atomic.c: New file.
2374 * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
2375 * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
2377 2008-09-07 Richard Guenther <rguenther@suse.de>
2378 Ira Rosen <irar@il.ibm.com>
2380 PR tree-optimization/36630
2381 * tree-vect-transform.c (vect_update_ivs_after_vectorizer):
2382 Call STRIP_NOPS before calling evolution_part_in_loop_num.
2384 2008-09-07 Dorit Nuzman <dorit@il.ibm.com>
2385 Ira Rosen <irar@il.ibm.com>
2387 PR tree-optimization/35642
2388 * config/rs6000/altivec.md (mulv8hi3): Implement.
2390 2008-09-06 Jeff Law <law@redhat.com>
2392 * h8300/h8300.h (IRA_COVER_CLASSES): Define.
2394 2008-09-06 Jan Hubicka <jh@suse.cz>
2396 PR tree-optimization/14703
2397 * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
2399 * passes.c (init_optimization_passes): Recompute inline parameters.
2401 2008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
2403 * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
2406 2008-09-06 Richard Sandiford <rdsandiford@goolemail.com>
2407 Peter Fuerst <post@pfrst.de>
2409 * doc/invoke.texi: Document -mr10k-cache-barrier=.
2410 * doc/extend.texi: Document __builtin_mips_cache.
2411 * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
2412 * config/mips/mips.opt (mr10k-cache-barrier=): New option.
2413 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
2414 __GCC_HAVE_BUILTIN_MIPS_CACHE.
2415 (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
2416 * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
2417 (set_push_mips_isas): New variable.
2418 (mips_r10k_cache_barrier): New variable.
2419 (cache): New availability predicate.
2420 (mips_builtins): Add an entry for __builtin_mips_cache.
2421 (mips_build_cvpointer_type): New function.
2422 (MIPS_ATYPE_CVPOINTER): New macro.
2423 (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
2425 (r10k_simplified_address_p, r10k_simplify_address)
2426 (r10k_uncached_address_p, r10k_safe_address_p)
2427 (r10k_needs_protection_p_1, r10k_needs_protection_p_store)
2428 (r10k_needs_protection_p_call, r10k_needs_protection_p)
2429 (r10k_insert_cache_barriers): New functions.
2430 (mips_reorg_process_insns): Delete cache barriers after a
2431 branch-likely instruction.
2432 (mips_reorg): Call r10k_insert_cache_barriers.
2433 (mips_handle_option): Handle OPT_mr10k_cache_barrier_.
2434 * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
2435 (UNSPEC_R10K_CACHE_BARRIER): Likewise.
2436 (mips_cache, r10k_cache_barrier): New define_insns.
2438 2008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
2440 * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
2441 * ira-color.c (setup_allocno_left_conflicts_num): Use
2442 hard_reg_set_equal_p instead of a comparison with
2443 ira_zero_hard_reg_set.
2444 * ira.c (setup_reg_subclasses): Likewise.
2445 (setup_cover_and_important_classes): Likewise.
2446 (setup_class_translate): Likewise.
2447 (setup_reg_class_intersect_union): Likewise.
2448 (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
2449 (ira_init_once): Don't initialize them.
2451 2008-09-05 Vladimir Makarov <vmakarov@redhat.com>
2453 * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
2455 2008-09-05 Vladimir Makarov <vmakarov@redhat.com>
2457 * ira-color.c (ira_fast_allocation): Permit global allocno allocation.
2459 2008-09-05 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2461 Improved branch hints, safe hints, and scheduling.
2463 * haifa-sched.c (sched_emit_insn) : Define.
2464 * sched-int.h (sched_emit_insn) : Add prototype.
2465 * doc/invoke.texi (-mdual-nops, -mhint-max-nops,
2466 -mhint-max-distance -msafe-hints) : Document.
2467 * config/spu/spu.c (spu_flag_var_tracking): New.
2468 (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
2469 TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
2470 TARGET_ASM_FILE_START): Define.
2471 (TARGET_SCHED_ADJUST_PRIORITY): Remove.
2472 (STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
2473 (spu_emit_branch_hint): Add blocks argument.
2474 (insert_branch_hints, insert_nops): Remove.
2475 (pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
2476 uses_ls_unit, spu_sched_init_global, spu_sched_init,
2477 spu_sched_reorder, asm_file_start): New functions.
2478 (clock_var, spu_sched_length, pipe0_clock,
2479 pipe1_clock, prev_clock_var, prev_priority,
2480 spu_ls_first, prev_ls_clock): New static variables.
2481 * config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
2482 * config/spu.md (iprefetch): Add operand, make it clobber MEM.
2483 (nopn_nv): Add a non-volatile version of nop.
2484 * config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
2485 -mhint-max-distance, -msafe-hints): New options.
2487 2008-09-05 Janis Johnson <janis187@us.ibm.com>
2488 Samuel Tardieu <sam@rfc1149.net>
2490 * opts.c (decode_options): Combine nested if statements.
2493 * opts.c (decode_options): Handle more relationships among
2494 unit-at-a-time, toplevel-reorder, and section-anchors.
2496 2008-09-05 David Daney <ddaney@avtrex.com>
2498 * doc/install.texi (--enable-reduced-reflection): Document new option.
2500 2008-09-05 Bob Wilson <bob.wilson@acm.org>
2502 * config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use
2504 (constantpool_operand): New.
2505 (move_operand): Disallow sub-word modes for the constant pool.
2506 * config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define.
2507 (xtensa_secondary_reload_class): Replace with....
2508 (xtensa_secondary_reload): this function. Remove SIGN_EXTEND check.
2509 Set icode for sub-word reloads from the constant pool.
2510 * config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete.
2511 (SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
2512 * config/xtensa/xtensa.md (reload<mode>_literal): New.
2513 * config/xtensa/xtensa-protos.h: Update prototypes.
2515 2008-09-05 Joseph Myers <joseph@codesourcery.com>
2517 * config/mips/mips.h (enum reg_class): Add FRAME_REGS.
2518 (REG_CLASS_NAMES): Update.
2519 (REG_CLASS_CONTENTS): Update.
2520 * config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
2521 of ALL_REGS for regs 77 and 78.
2522 * function.c (instantiate_virtual_regs_in_insn): Assert that
2523 return value of simplify_gen_subreg is not NULL.
2525 2008-09-05 Paolo Bonzini <bonzini@gnu.org>
2527 * emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
2528 (gen_rtvec_v): Fix coding standards.
2530 2008-09-04 Jan Hubicka <jh@suse.cz>
2532 * i386.c (decide_alg): Be more conservative about optimizing for size.
2534 2008-09-04 Ian Lance Taylor <iant@google.com>
2536 * varasm.c (narrowing_initializer_constant_valid_p): New
2538 (initializer_constant_valid_p): Call it.
2540 2008-09-04 Jeff Law <law@redhat.com>
2542 * fold-const.c (native_encode_real): Fix computation of WORDS.
2543 (native_interpret_real): Likewise.
2545 2008-09-04 Janis Johnson <janis187@us.ibm.com>
2547 * config/rs6000/t-rs6000: Remove target gt-rs6000.h.
2549 2008-09-04 Vladimir Makarov <vmakarov@redhat.com>
2551 * ira-conflicts.c (process_regs_for_copy): Check insn to check
2552 that the cost is already taken into account in ira-costs.c
2554 * ira-int.h (ira_debug_copy, ira_debug_copies): New.
2556 * ira-build.c (print_copy, print_copies, ira_debug_copy,
2557 ira_debug_copies): New.
2558 (ira_bulid): Call print_copies.
2560 * doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
2562 2008-09-04 Samuel Tardieu <sam@rfc1149.net>
2565 * config/rs6000/rs6000.c (optimization_options): Remove check of
2566 flag_toplevel_order.
2568 2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
2570 * config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro.
2571 * config/mips/mips.c (mips_expand_scc): Also expand seq and sne if
2572 second operand is a reg_imm10_operand.
2573 * config/mips/mips.md (*seq_<GPR:mode><GPR2:mode>_seq,
2574 *sne_<GPR:mode><GPR2:mode>_sne): New patterns.
2575 (*seq_<GPR:mode><GPR2:mode>): Rename to
2576 *seq_zero_<GPR:mode><GPR2:mode>. Don't match if
2578 (*seq_<GPR:mode><GPR2:mode>_mips16): Rename to
2579 *seq_zero_<GPR:mode><GPR2:mode>_mip16. Don't match if
2581 (*sne_<GPR:mode><GPR2:mode>): Rename to
2582 *sne_zero_<GPR:mode><GPR2:mode>. Don't match if
2585 2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
2587 * config/mips/mips.h (ISA_HAS_EXTS): New macro.
2588 * config/mips/mips.md (*ashr_trunc<mode>): Name the pattern
2589 combining an arithmetic right shift by more than 31 and a
2590 trunction. Don't match for out-of-range shift amounts. Set
2591 attribute mode to <MODE>.
2592 (*lshr32_trunc<mode>): Name the pattern combining a logical right
2593 shift by 32 and and a truncation. Set attribute mode to <MODE>.
2594 (*<optab>_trunc<mode>_exts): New pattern for truncated right
2595 shifts by less than 32.
2596 (extv): Change predicate on first operand to accept registers.
2597 Change predicate of the other operands from immediate_operand to
2598 const_int_operand. Expand exts when source is a register.
2599 (extzv): Change predicate of the constant operands from
2600 immediate_operand to const_int_operand.
2601 (extzv<mode>): Change predicate of the constant operands from
2602 immediate_operand to const_int_operand and no constraint. Also
2604 (*extzv_trunc<mode>_exts): New pattern.
2606 2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
2608 * config/mips/mips.h (ISA_HAS_CINS): New macro.
2609 * config/mips/mips-protos.h (mask_low_and_shift_p,
2610 mask_low_and_shift_len): Declare.
2611 * config/mips/mips.c (mask_low_and_shift_p,
2612 mask_low_and_shift_len): New functions.
2613 (mips_print_operand): Handle new operand prefix "m".
2614 * config/mips/mips.md (*cins<mode>): New pattern.
2616 2008-09-04 Bernd Schmidt <bernd.schmidt@analog.com>
2618 * config/bfin/bfin.c (gen_one_bundle): Don't create new nops when
2619 optimizing for size.
2621 2008-09-04 Richard Sandiford <rdsandiford@googlemail.com>
2623 * df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM
2624 regardless of epilogue_completed.
2626 2008-09-04 Vladimir Makarov <vmakarov@redhat.com>
2629 * ira-lives.c (process_bb_node_lives): Check setjmp.
2631 2008-09-04 Richard Sandiford <rdsandiford@googlemail.com>
2634 * ira-build.c (form_loop_tree): Reverse BB walk.
2635 (create_bb_allocnos): Likewise.
2636 * ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
2637 (mark_reg_store): Rename to...
2638 (mark_ref_live): ...this and take a df_ref argument instead of
2639 note_stores arguments. Assert that we have a register.
2640 (mark_reg_clobber): Delete.
2641 (def_conflicts_with_inputs_p): New function.
2642 (mark_reg_conflicts): Delete.
2643 (mark_reg_death): Rename to...
2644 (mark_ref_dead): ...this and take a df_ref argument instead of
2645 a register. Assert that we have a register.
2646 (process_bb_node_lives): Hoist frequency calculation out of
2647 instruction walk. Convert from a forwards scan to a backwards scan.
2648 Use DF_REF_USES and DF_REF_DEFS instead of register notes and
2649 note_stores. Remove EH_RETURN_DATA_REGNO and regs_set handling.
2650 (create_allocno_live_ranges): Don't create regs_set.
2652 2008-09-04 Ian Lance Taylor <iant@google.com>
2654 * rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND
2655 or REG_LABEL_TARGET.
2656 * calls.c (emit_library_call_value_1): Use MEM_P rather than
2657 comparing MODE with MEM.
2658 * gimple.c (gimple_build_predict): Cast END_PREDICTORS before
2659 comparing with GF_PREDICT_TAKEN.
2660 (gimple_get_lhs): Change code to enum gimple_code.
2661 (gimple_set_lhs): Likewise.
2662 * ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE.
2663 * omp-low.c (find_omp_clause): Change kind parameter to enum
2665 * tree-flow.h (find_omp_clause): Update declaration.
2666 * regrename.c (clear_dead_regs): Change kind parameter to enum
2668 * reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
2670 * see.c (see_get_extension_data): Change return type to enum
2671 entry_type. Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to
2672 SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF.
2673 (see_gen_normalized_extension): Change extension_code parameter to
2675 (see_seek_pre_extension_expr): Change extension_code to enum
2677 (see_merge_one_def_extension): Likewise.
2678 (see_handle_relevant_defs): Likewise.
2679 (see_handle_relevant_uses): Likewise.
2680 (see_analyze_one_def): Likewise.
2681 * tree-cfg.c (need_fake_edge_p): Compare gimple code with
2682 GIMPLE_ASM rather than ASM_EXPR.
2683 * tree-ssa-alias.c (is_escape_site): Compare gimple code with
2684 GIMPLE_RETURN rather than RETURN_EXPR.
2685 * tree-ssa-ccp.c (likely_value): Change code to enum gimple_code.
2686 (evaluate_stmt): Likewise.
2687 * tree-vect-analyze.c (vect_analyze_operations): Change relevance
2688 to enum vect_relevant.
2689 (vect_mark_stmts_to_be_vectorized): Change assertion to not
2690 compare gimple codes with tree codes.
2692 2008-09-04 Paul Brook <paul@codesourcery.com>
2694 * config/arm/arm.c (arm_size_rtx_costs): Call cost function.
2696 2008-09-04 Bernd Schmidt <bernd.schmidt@analog.com>
2698 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null
2699 pointer check lost in the recent no-unit-at-a-time patch.
2701 2008-09-04 Jan Hubicka <jh@suse.cz>
2704 * tree-switch-conversion.c (check_final_bb): Accept only IP
2707 2008-09-04 Jan Hubicka <jh@suse.cz>
2709 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
2711 (vrp_evaluate_conditional_warnv_with_ops): ... this one. Add
2712 using_ranges argument.
2713 (vrp_evaluate_conditional): Avoid bogus warning for type range.
2714 (vrp_visit_cond_stmt): Update call of
2715 vrp_evaluate_conditional_warnv_with_ops
2717 2008-09-04 Jan Hubicka <jh@suse.cz>
2719 PR tree-optimization/37345
2720 PR tree-optimization/37358
2721 PR tree-optimization/37357
2722 * tree.c (build_function_type_skip_args): Build distinct type copy;
2724 (build_function_decl_skip_args): Set type of new decl not orig decl;
2725 clear DECL_VINDEX for methods turned into functions.
2727 2008-09-04 Nick Clifton <nickc@redhat.com>
2729 * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler check.
2730 * configure: Regenerate.
2731 * config.in: Regenerate.
2732 * config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
2733 alignment field, if it is supported.
2735 2008-09-04 Kai Tietz <kai.tietz@onevision.com>
2737 * config/i386/t-mingw32 (SHLIB_LC): Change order of import
2740 2008-09-03 David Edelsohn <edelsohn@gnu.org>
2742 * config/rs6000/rs6000.c (processor_target_table): Do not
2743 enable VMX for POWER6.
2745 2008-09-03 Anton Blanchard <anton@samba.org>
2747 * config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not
2748 emit memory barrier before operation.
2750 2008-09-03 John David Anglin <dave.anglin@nrc.cnrc.gc.ca>
2753 * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call
2754 default_elf_asm_output_external.
2756 2008-09-03 Jeff Law <law@redhat.com>
2758 * h8300.c (expand_a_shift): Avoid invalid RTL sharing.
2760 2008-09-03 Richard Henderson <rth@redhat.com>
2762 * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
2763 memory barrier to below the test-and-set.
2764 (alpha_split_lock_test_and_set_12): Likewise.
2766 2008-09-03 Vladimir Makarov <vmakarov@redhat.com>
2770 * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
2773 * ira-color.c (print_loop_title): Use all_allocnos.
2774 (color_pass): Ditto. Don't add border_allocnos. Check that
2775 subloop allocno in the correspdoning bitmap all_allocnos.
2777 * ira-emit.c (change_loop): Use all_allocnos.
2779 * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node): Ditto.
2780 (ira_create_allocno): Set up all_allocnos bit for the created allocno.
2781 (create_cap_allocno): Remove setting mentioned_allocnos.
2782 (create_insn_allocnos): Ditto.
2783 (remove_unnecessary_allocnos): Use all_allocnos.
2784 (check_allocno_creation): Check that allocnos are in the
2785 corresponding bitmap all_allocnos.
2787 2008-09-03 Vladimir Makarov <vmakarov@redhat.com>
2791 * ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New.
2792 (process_regs_for_copy): Process subregs. Refine check when cost
2793 is taken into account in ira-costs.c.
2794 (process_reg_shuffles): Use REG_SUBREG_P.
2795 (add_insn_allocno_copies): Ditto. Ignore modes.
2797 * ira-color.c (conflict_allocno_vec): New.
2798 (COST_HOP_DIVISOR): New macro.
2799 (update_copy_costs_1): Use it.
2800 (update_conflict_hard_regno_costs): New function.
2801 (assign_hard_reg): Use it.
2802 (ira_color): Allocate and free conflict_allocno_vec.
2804 2008-09-03 Vladimir Makarov <vmakarov@redhat.com>
2808 * ira-int.h (ira_sort_insn_chain): Remove.
2810 * ira.c (basic_block_order_nums, chain_insn_order,
2811 chain_freq_compare, chain_bb_compare, ira_sort_insn_chain): Remove.
2812 (ira): Don't call ira_sort_insn_chain.
2814 * reload1.c (reload): Don't call ira_sort_insn_chain.
2816 2008-09-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
2819 * cgraphunit.c (update_call_expr): Remove eh regions from statements
2820 which become non throw.
2821 (cgraph_function_versioning): Also clear DECL_WEAK. Call
2822 update_call_expr after updating the flags on the decl.
2824 2008-09-03 Jan Hubicka <jh@suse.cz>
2826 PR tree-optimization/37315
2827 * cgraph.c (cgraph_create_edge): Use gimple_has_body_p.
2828 * cgraphunit.c (verify_cgraph_node): drop gimple_body check.
2829 (cgraph_analyze_functions): Use node->analyzed
2830 (cgraph_mark_functions_to_output): Likewise.
2831 (cgraph_expand_function): All functions can be released after
2833 (cgraph_optimize): Use gimple_has_body_p.
2834 * ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag.
2835 (cgraph_decide_inlining_incrementally): Likewise.
2836 (inline_transform): Inline transform.
2837 * tree-inline.c (initialize_cfun): Do now shallow copy structure;
2839 (inlinable_function_p): Drop gimple_body check.
2840 (expand_call_inline): Use gimple_has_body_p.
2841 * gimple.c (gimple_has_body_p): New.
2842 * gimple.h (gimple_has_body_p): Add prototype.
2843 * tree-cfg.c (execute_build_cfg): Remove gimple_body.
2844 (dump_function_to_file): Use gimple_has_body_p check.
2846 2008-09-03 Jakub Jelinek <jakub@redhat.com>
2849 * gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
2851 * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.
2853 2008-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
2855 From Michael Frysinger <michael.frysinger@analog.com>
2856 * config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524,
2857 bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549. Add 0.2
2860 2008-09-03 Hari Sandanagobalane <hariharan@picochip.com>
2863 * doc/extend.texi: Document picoChip builtin functions.
2864 * doc/invoke.texi: Document picoChip options.
2865 * doc/contrib.texi: Add picoChip contribution.
2866 * doc/md.texi: Document picoChip constraints.
2867 * config.gcc: Add picochip-*-*.
2868 * config/picochip/: Add new port.
2870 2008-09-03 Richard Guenther <rguenther@suse.de>
2872 PR tree-optimization/37328
2873 * tree-sra.c (sra_build_assignment): Gimplify properly.
2874 (generate_copy_inout): Take the correct stmt as definition,
2875 remove bogus assert.
2877 2008-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
2879 * config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit
2882 From Michael Frysinger <michael.frysinger@analog.com>
2883 * config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning.
2885 2008-09-03 Danny Smith <dannysmith@usrs.sourceforge.net>
2887 * gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is defined.
2888 (__gthread_setspecific): Revert 2008-08-31 change to
2889 __GTHREAD_HIDE_W32API case. Apply it to !__GTHREAD_HIDE_W32API case.
2891 2008-09-02 Aldy Hernandez <aldyh@redhat.com>
2893 * diagnostic.c (error_at): New.
2894 * toplev.h (error_at): New prototype.
2895 * c-typeck.c (build_array_ref): Call error_at instead of error.
2896 Pass location to pedwarn.
2898 2008-09-02 Adam Nemet <anemet@caviumnetworks.com>
2900 * sel-sched.c (sel_hard_regno_rename_ok): Mark arguments unused.
2902 2008-09-02 Jakub Jelinek <jakub@redhat.com>
2904 * dwarf2out.c (tree_add_const_value_attribute): Only handle
2905 VAR_DECL and CONST_DECL.
2907 2008-09-02 H.J. Lu <hongjiu.lu@intel.com>
2908 Jakub Jelinek <jakub@redhat.com>
2910 * config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
2911 (setup_incoming_varargs_64): Assume cum != NULL. Set/check
2912 ix86_varargs_gpr_size and ix86_varargs_fpr_size. Use
2913 ix86_varargs_gpr_size instead of X86_64_REGPARM_MAX.
2914 Don't set ix86_save_varrargs_registers.
2915 (ix86_setup_incoming_varargs): Assume cum != NULL.
2916 (ix86_va_start): Check ix86_varargs_gpr_size and
2917 ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
2918 cfun->va_list_fpr_size, respectively. Subtract 8*X86_64_REGPARM_MAX
2919 from frame pointer if ix86_varargs_gpr_size == 0.
2920 (ix86_compute_frame_layout): Updated.
2921 * config/i386/i386.h (ix86_save_varrargs_registers): Removed.
2922 (ix86_varargs_gpr_size): Define.
2923 (ix86_varargs_fpr_size): Likewise.
2924 (machine_function): Remove save_varrargs_registers.
2925 Add varargs_gpr_size and varargs_fpr_size.
2927 2008-09-02 Jakub Jelinek <jakub@redhat.com>
2929 * config/alpha/alpha.c (va_list_skip_additions,
2930 alpha_stdarg_optimize_hook, alpha_gimplify_va_arg_1): Tuplify.
2931 (alpha_gimplify_va_arg): Call unshare_expr on second use of
2934 PR tree-optimization/36766
2935 * tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing
2936 for already removed basic blocks.
2939 * real.c (real_maxval): Clear a lower bit to make real_maxval
2940 match get_max_float for IBM long double format.
2942 2008-09-02 Andreas Schwab <schwab@suse.de>
2944 * configure.ac: Use m4_quote to quote the expansion of m4_do.
2945 * configure: Regenerate.
2947 2008-09-02 Richard Sandiford <rdsandiford@googlemail.com>
2949 * simplify-rtx.c (simplify_binary_operation_1): Check for CONST,
2950 SYMBOL_REF and LABEL_REF when applying plus_constant, instead of
2951 checking for a non-VOID CONSTANT_P.
2953 2008-09-02 Jan Hubicka <jh@suse.cz>
2955 * predict.c (pass_strip_predict_hints): Avoid bugs dump file.
2956 * expmed.c (expand_divmod): Fix test of smod_pow2_cheap and
2959 2008-09-02 H.J. Lu <hongjiu.lu@intel.com>
2961 * expr.c (emit_group_store): Don't assert stack temp mode size.
2963 2008-09-02 Sebastian Pop <sebastian.pop@amd.com>
2964 Tobias Grosser <grosser@fim.uni-passau.de>
2965 Jan Sjodin <jan.sjodin@amd.com>
2966 Harsha Jagasia <harsha.jagasia@amd.com>
2967 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
2968 Konrad Trifunovic <konrad.trifunovic@inria.fr>
2969 Adrien Eliche <aeliche@isty.uvsq.fr>
2971 Merge from graphite branch.
2974 * tree-loop-linear.c (perfect_loop_nest_depth): Export.
2975 * doc/invoke.texi (-floop-block, -floop-interchange,
2976 -floop-strip-mine): Document new flags.
2977 * tree-into-ssa.c (gimple_vec): Moved...
2978 * tree-loop-distribution.c (rdg_component): Moved...
2979 * cfgloopmanip.c: Include tree-flow.h.
2980 (update_dominators_in_loop): New.
2981 (create_empty_if_region_on_edge): New.
2982 (create_empty_loop_on_edge): New.
2983 (loopify): Use update_dominators_in_loop.
2984 * tree-pass.h (pass_graphite_transforms): Declared.
2985 * configure: Regenerate.
2986 * tree-phinodes.c (make_phi_node): Export.
2987 (add_phi_node_to_bb): New, split from create_phi_node.
2988 * tree-chrec.c (for_each_scev_op): New.
2989 * tree-chrec.h (for_each_scev_op): Declared.
2990 * tree-ssa-loop-ivopts.c (get_phi_with_result): New.
2991 (remove_statement): Call get_phi_with_result.
2992 * config.in (HAVE_cloog): Undef.
2993 * gdbinit.in (pgg): New.
2994 * timevar.def (TV_GRAPHITE_TRANSFORMS): New.
2995 * tree-ssa-loop.c (graphite_transforms): New.
2996 (gate_graphite_transforms): New.
2997 (pass_graphite_transforms): New.
2998 * configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
2999 HAVE_cloog): Defined.
3000 * tree-vectorizer.c (rename_variables_in_bb): Export.
3001 * tree-data-ref.c (dr_may_alias_p): Export.
3002 (stmt_simple_memref_p): New.
3003 (find_data_references_in_stmt): Export.
3004 (find_data_references_in_loop): Export.
3005 (create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
3006 (create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
3007 (create_rdg_vertices): Export.
3008 (build_empty_rdg): New.
3009 (build_rdg): Call build_empty_rdg. Free dependence_relations.
3010 * tree-data-ref.h (rdg_component): ... here.
3012 (struct data_reference): Add a field scop.
3014 (find_data_references_in_loop): Declared.
3015 (find_data_references_in_stmt): Declared.
3016 (create_rdg_vertices): Declared.
3017 (dr_may_alias_p): Declared.
3018 (stmt_simple_memref_p): Declared.
3019 (struct rdg_edge): Add a field ddr_p relation.
3020 (build_empty_rdg): Declared.
3021 * lambda.h (lambda_matrix): Declare a VEC of.
3022 (find_induction_var_from_exit_cond): Declared.
3023 (lambda_vector_compare): New.
3024 * common.opt (fgraphite, floop-strip-mine,
3025 floop-interchange, floop-block): New flags.
3026 * lambda-code.c (find_induction_var_from_exit_cond): Export.
3027 * cfgloop.c (is_loop_exit): New.
3028 * cfgloop.h (is_loop_exit): Declared.
3029 (create_empty_if_region_on_edge): Declared.
3030 (create_empty_loop_on_edge): Declared.
3031 * tree-flow.h (add_phi_node_to_bb): Declared.
3032 (make_phi_node): Declared.
3033 (rename_variables_in_bb): Declared.
3034 (perfect_loop_nest_depth): Declared.
3035 (graphite_transform_loops): Declared.
3036 * Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
3037 (graphite.o-warn): Add -Wno-error.
3038 (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
3039 (LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
3040 (INCLUDES): Add PPLINC, CLOOGINC.
3041 (OBJS-common): Add graphite.o.
3042 (graphite.o): Add rule.
3043 * gimple.h (gimple_vec): ... here.
3044 * tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
3045 * passes.c (init_optimization_passes): Schedule
3046 pass_graphite_transforms.
3048 2008-09-02 Samuel Tardieu <sam@rfc1149.net>
3051 * opts.c (decode_options): Move processing of -fno-unit-at-a-time
3052 and -fno-toplevel-reorder after handle_options.
3054 2008-09-02 Paul Brook <paul@codesourcery.com>
3056 * config/arm/arm.c (arm_tune_cortex_a9): Define.
3057 (arm_override_options): Set arm_tune_cortex_a9.
3058 (arm_rtx_costs_1): Make register shifts more expensive on Cortex-A9.
3059 (arm_issue_rate): Handle cortexa9.
3060 * config/arm/arm.h (arm_tune_cortex_a9): Declare.
3061 * config/arm/arm-cores.def: Add cortex-a9.
3062 * config/arm/arm-tune.md: Regenerate.
3063 * config/arm/arm.md: Include cortex-a9.md.
3064 (generic_sched, generic_vfp): Add cortexa9.
3065 * config/arm/cortex-a9.md: New file.
3067 2008-09-02 Richard Guenther <rguenther@suse.de>
3069 PR tree-optimization/37327
3070 * tree-vrp.c (register_new_assert_for): Make sure to not have
3071 TREE_OVERFLOW set on the bound.
3073 2008-09-02 Alexander Monakov <amonakov@ispras.ru>
3075 Fixed typo in date of the 2008-09-01 MOVE_RATIO commit.
3077 * config/ia64/ia64.opt (msched-ar-data-spec): Default to 1.
3078 * config/ia64/ia64.c (ia64_set_sched_flags): Always initialize
3081 2008-09-02 Victor Kaplansky <victork@il.ibm.com>
3083 * gcc/config/spu/spu.md (divdf3): Removed.
3085 2008-09-02 Jakub Jelinek <jakub@redhat.com>
3087 PR tree-optimization/37095
3088 * cgraph.c (cgraph_node): When creating new cgraph node after
3089 assembler_name_hash has been populated, record it in the hash
3092 2008-09-01 Paul Brook <paul@codesourcery.com>
3094 * doc/invoke.texi: Document -mword-relocations.
3095 * config/arm/uclinux-elf.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
3096 * config/arm/symbian.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
3097 * config/arm/vxworks.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
3098 * config/arm/arm.c (arm_split_constant): Use arm_emit_movpair.
3099 (arm_rtx_costs_1, arm_size_rtx_costs): Handle HIGH and LO_SUM.
3100 (arm_emit_movpair): New function.
3101 (arm_print_operand <c>): Handle sybolic addresses.
3102 * config/arm/arm.h (TARGET_USE_MOVT): Define.
3103 (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
3104 * config/arm/arm-protos.h (arm_emit_movpair): Add prototype.
3105 * config/arm/arm.opt: Add -mword-relocations.
3106 * config/arm/arm.md (movsi): Use arm_emit_movpair.
3107 (arm_movt, arm_movw): New.
3109 2008-09-01 Paul Brook <paul@codesourcery.com>
3111 * config/arm/arm.c (arm_override_options): Set arm_abi earlier.
3112 Allow Interworking on ARMv4 EABI based targets.
3113 * config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Define.
3114 (SUBTARGET_EXTRA_ASM_SPEC, LINK_SPEC): Add TARGET_FIX_V4BX_SPEC.
3116 2008-09-01 Paul Brook <paul@codesourcery.com>
3118 * config/arm/thumb2.md (thumb2_negscc): Match the correct operand for
3119 optimized LT0 test. Remove optimization for GT.
3121 2008-09-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3123 * pa64-hpux.h (LIB_SPEC): Link against librt when building static
3124 openmp applications.
3125 * pa-hpux11.h (LIB_SPEC): Likewise.
3127 * ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS
3130 2008-09-01 Jan Hubicka <jh@suse.cz>
3132 * predict.c (maybe_hot_count_p, maybe_hot_edge_p): When profile is
3133 present, use only counts; when guessed use only frequencies.
3134 (estimate_bb_frequencies): Use function_frequency.
3135 * profile.c (compute_branch_probabilities): Exit early when
3136 profile reading failed. Set profile_status.
3137 (branch_prob): Do not set profile_status.
3139 2008-09-01 Aldy Hernandez <aldyh@redhat.com>
3141 * tree.c (protected_set_expr_location): New.
3142 * tree.h (protected_set_expr_location): New prototype.
3143 * c-tree.h (build_array_ref): Add argument.
3144 (parser_build_unary_op): Same.
3145 * c-typeck.c (build_indirect_ref): Handle new location argument.
3146 (build_array_ref): Same.
3147 (parser_build_unary_op): Same.
3148 * gimplify.c (gimplify_asm_expr): Set input_location before calling
3150 * c-omp.c (c_finish_omp_atomic): Pass location when calling
3152 * c-common.c (finish_label_address_expr): Handle new location argument.
3153 * c-common.h (build_indirect_ref): Add argument.
3154 (finish_label_address_expr): Same.
3155 * c-parser.c (c_parser_unary_expression): Pass location to build
3157 (c_parser_postfix_expression): Same.
3159 2008-09-01 Paul Brook <paul@codesourcery.com>
3161 * config/arm/arm.md: Include cortex-r4f.md.
3162 (attr fpu): Update type list.
3163 (attr type): Add fcpys, ffariths, ffarithd, fadds, faddd, fconsts,
3164 fconstd, fcmps and fcmpd.
3165 (attr tune_cortexr4): Define.
3166 (attr generic_sched, attr generic_vfp): Use tune_cortexr4.
3167 * config/arm/vfp.md: Document fcpys, ffariths, ffarithd, fadds, faddd,
3168 fconsts, fconstd, fcmps and fcmpd. Use them in insn patterns.
3169 * config/arm/arm.c (arm_issue_rate): Add cortexr4f.
3170 * config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn types.
3171 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_add_sub,
3172 cortex_a8_vfp_farith: Ditto.
3173 * config/arm/vfp11.md (vfp_ffarith, vfp_farith): Ditto.
3174 * config/arm/cortex-r4.md: Use tune_cortexr4.
3175 * config/arm/cortex-r4f.md: New file.
3177 2008-09-01 Richard Guenther <rguenther@suse.de>
3179 PR tree-optimization/37305
3180 * tree-ssa-ccp.c (ccp_fold): Do not set TREE_OVERFLOW on
3181 the result of constant conversions.
3182 (fold_gimple_assign): Likewise.
3184 2008-09-01 Andrey Belevantsev <abel@ispras.ru>
3186 * sel-sched-ir.c (cmp_v_in_regset_pool): Surround with
3187 #ifdef ENABLE_CHECKING.
3189 2008-09-01 Andrey Belevantsev <abel@ispras.ru>
3191 * sel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING.
3192 * sched-int.h (print_insn, print_pattern, print_value): Declare also
3193 when !INSN_SCHEDULING.
3195 2008-09-01 Andreas Schwab <schwab@suse.de>
3197 * config/ia64/ia64.c (TARGET_ADDRESS_COST): Update.
3199 2008-09-01 Paul Brook <paul@codesourcery.com>
3201 * config/arm/arm.c (arm_no_early_mul_dep): Handle multiply-subtract.
3203 2008-09-01 Jan Hubicka <jh@suse.cz>
3205 * config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO.
3207 * expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P):
3209 * expr.h (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Update.
3210 * gimplify.c (gimplify_init_constructor): Add speed operand.
3211 * tree-sra.c (decide_block_copy): Likewise.
3212 * tree-inline.c (estimate_move_cost): Likewise.
3213 * config/alpha/alpha.h (MOVE_RATIO): Update.
3214 * config/frv/frv.c (MOVE_RATIO): Update.
3215 * config/spu/spu.h (MOVE_RATIO): Update.
3216 * config/sparc/sparc.h (MOVE_RATIO): Update.
3217 * config/i386/i386.h (MOVE_RATIO, CLEAR_RATIO): Update.
3218 * config/m68hc11/m68hc11.h (MOVE_RATIO): Update.
3219 * config/cris/cris.h (MOVE_RATIO): Update.
3220 * config/mn10300/mn10300.h (MOVE_RATIO): Update.
3221 * config/arm/arm.h (MOVE_RATIO): Update.
3222 * config/pa/pa.md: Update uses of MOVE_RATIO
3223 * config/pa/pa.h (MOVE_RATIO): Update.
3224 * config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES,
3225 CLEAR_RATIO, SET_RATIO): Update.
3226 * config/h8300/h8300.h (MOVE_RATIO): Update.
3227 * config/v850/v850.h (MOVE_RATIO): Update.
3228 * config/bfin/bfin.h (MOVE_RATIO): Update.
3230 2008-08-31 Andrey Belevantsev <abel@ispras.ru>
3231 Dmitry Melnik <dm@ispras.ru>
3232 Dmitry Zhurikhin <zhur@ispras.ru>
3233 Alexander Monakov <amonakov@ispras.ru>
3234 Maxim Kuvyrkov <maxim@codesourcery.com>
3236 * sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
3237 sel-sched-dump.c, sel-sched-ir.c: New files.
3238 * Makefile.in (OBJS-common): Add selective scheduling object files.
3239 (sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries.
3240 (SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries.
3241 (sched-vis.o): Add dependency on $(INSN_ATTR_H).
3242 * cfghooks.h (get_cfg_hooks, set_cfg_hooks): New prototypes.
3243 * cfghooks.c (get_cfg_hooks, set_cfg_hooks): New functions.
3244 (make_forwarder_block): Update loop latch if we have redirected
3245 the loop latch edge.
3246 * cfgloop.c (get_loop_body_in_custom_order): New function.
3247 * cfgloop.h (LOOPS_HAVE_FALLTHRU_PREHEADERS): New enum field.
3248 (CP_FALLTHRU_PREHEADERS): Likewise.
3249 (get_loop_body_in_custom_order): Declare.
3250 * cfgloopmanip.c (has_preds_from_loop): New.
3251 (create_preheader): Honor CP_FALLTHRU_PREHEADERS.
3252 Assert that the preheader edge will be fall thru when it is set.
3253 * common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
3254 fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
3255 fsel-sched-substitution, fselective-scheduling): New flags.
3256 * cse.c (hash_rtx_cb): New.
3258 * dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
3259 sel_sched_insn_cnt): New counters.
3260 * final.c (compute_alignments): Export. Free dominance
3261 info after loop_optimizer_finalize.
3262 * genattr.c (main): Output maximal_insn_latency prototype.
3263 * genautomata.c (output_default_latencies): New.
3264 Factor its code from ...
3265 (output_internal_insn_latency_func): ... here.
3266 (output_internal_maximal_insn_latency_func): New.
3267 (output_maximal_insn_latency_func): New.
3268 * hard-reg-set.h (UHOST_BITS_PER_WIDE_INT): Define unconditionally.
3269 (struct hard_reg_set_iterator): New.
3270 (hard_reg_set_iter_init, hard_reg_set_iter_set,
3271 hard_reg_set_iter_next): New functions.
3272 (EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
3273 * lists.c (remove_free_INSN_LIST_node,
3274 remove_free_EXPR_LIST_node): New functions.
3275 * loop-init.c (loop_optimizer_init): When
3276 LOOPS_HAVE_FALLTHRU_PREHEADERS, set CP_FALLTHRU_PREHEADERS when
3277 calling create_preheaders.
3278 (loop_optimizer_finalize): Do not verify flow info after reload.
3279 * recog.c (validate_replace_rtx_1): New parameter simplify.
3280 Default it to true. Update all uses. Factor out simplifying
3282 (simplify_while_replacing): ... this new function.
3283 (validate_replace_rtx_part,
3284 validate_replace_rtx_part_nosimplify): New.
3285 * recog.h (validate_replace_rtx_part,
3286 validate_replace_rtx_part_nosimplify): Declare.
3287 * rtl.c (rtx_equal_p_cb): New.
3288 (rtx_equal_p): Use it.
3289 * rtl.h (rtx_equal_p_cb, hash_rtx_cb): Declare.
3290 (remove_free_INSN_LIST_NODE, remove_free_EXPR_LIST_node,
3291 debug_bb_n_slim, debug_bb_slim, print_rtl_slim): Likewise.
3292 * vecprim.h: Add a vector type for unsigned int.
3293 * haifa-sched.c: Include vecprim.h and cfgloop.h.
3294 (issue_rate, sched_verbose_param, note_list, dfa_state_size,
3295 ready_try, cycle_issued_insns, spec_info): Make global.
3296 (readyp): Initialize.
3297 (dfa_lookahead): New global variable.
3298 (old_max_uid, old_last_basic_block): Remove.
3299 (h_i_d): Make it a vector.
3300 (INSN_TICK, INTER_TICK, QUEUE_INDEX, INSN_COST): Make them work
3302 (after_recovery, adding_bb_to_current_region_p):
3303 New variables to handle correct insertion of the recovery code.
3304 (struct ready_list): Move declaration to sched-int.h.
3305 (rgn_n_insns): Removed.
3306 (rtx_vec_t): Move to sched-int.h.
3307 (find_insn_reg_weight): Remove.
3308 (find_insn_reg_weight1): Rename to find_insn_reg_weight.
3309 (haifa_init_h_i_d, haifa_finish_h_i_d):
3310 New functions to initialize / finalize haifa instruction data.
3311 (extend_h_i_d, init_h_i_d): Rewrite.
3312 (unlink_other_notes): Move logic to add_to_note_list. Handle
3313 selective scheduler.
3314 (ready_lastpos, ready_element, ready_sort, reemit_notes,
3315 find_fallthru_edge): Make global, remove static prototypes.
3316 (max_issue): Make global. Add privileged_n and state parameters. Use
3318 (extend_global, extend_all): Removed.
3319 (init_before_recovery): Add new param. Fix the handling of the case
3320 when we insert a recovery code before the EXIT which has a predecessor
3321 with a fallthrough edge to it.
3322 (create_recovery_block): Make global. Rename to
3323 sched_create_recovery_block. Update.
3324 (change_pattern): Rename to sched_change_pattern. Make global.
3325 (speculate_insn): Rename to sched_speculate_insn. Make global.
3326 Split haifa-specific functionality into ...
3327 (haifa_change_pattern): New static function.
3328 (sched_extend_bb): New static function.
3329 (sched_init_bbs): New function.
3330 (current_sched_info): Change type to struct haifa_sched_info.
3331 (insn_cost): Adjust for selective scheduling.
3332 (dep_cost_1): New function. Move logic from ...
3333 (dep_cost): ... here.
3334 (dep_cost): Use dep_cost_1.
3335 (contributes_to_priority_p): Use sched_deps_info instead of
3337 (priority): Adjust to work with selective scheduling. Process the
3338 corner case when all dependencies don't contribute to priority.
3339 (rank_for_schedule): Use ds_weak instead of dep_weak.
3340 (advance_state): New function. Move logic from ...
3341 (advance_one_cycle): ... here.
3342 (add_to_note_list, concat_note_lists): New functions.
3343 (rm_other_notes): Make static. Adjust for selective scheduling.
3344 (remove_notes, restore_other_notes): New functions.
3345 (move_insn): Add two arguments. Update assert. Don't call
3347 (choose_ready): Remove lookahead variable, use dfa_lookahead.
3348 Remove more_issue, max_points. Move the code to initialize
3349 max_lookahead_tries to max_issue.
3350 (schedule_block): Remove rgn_n_insns1 parameter. Don't allocate
3351 ready. Adjust use of move_insn. Call restore_other_notes.
3353 (sched_init, sched_finish): Move Haifa-specific initialization/
3355 (haifa_sched_init, haifa_sched_finish): ... respectively.
3357 (setup_sched_dump): New function.
3358 (haifa_init_only_bb): New static function.
3359 (haifa_speculate_insn): New static function.
3360 (try_ready): Use haifa_* instead of speculate_insn and change_pattern.
3361 (extend_ready, extend_all): Remove.
3362 (sched_extend_ready_list, sched_finish_ready_list): New functions.
3363 (create_check_block_twin, add_to_speculative_block): Use
3364 haifa_insns_init instead of extend_global. Update to use new
3365 initialization functions. Change parameter. Factor out code from
3366 create_check_block_twin to ...
3367 (sched_create_recovery_edges) ... this new function.
3368 (add_block): Remove.
3369 (sched_scan_info): New.
3370 (extend_bb): Use sched_scan_info.
3371 (init_bb, extend_insn, init_insn, init_insns_in_bb, sched_scan): New
3372 static functions for walking through scheduling region.
3373 (sched_luids): New vector variable to replace uid_to_luid.
3374 (luids_extend_insn): New function.
3375 (sched_max_luid): New variable.
3376 (luids_init_insn): New function.
3377 (sched_init_luids, sched_finish_luids): New functions.
3378 (insn_luid): New debug function.
3379 (sched_extend_target): New function.
3380 (haifa_init_insn): New static function.
3381 (sched_init_only_bb): New hook.
3382 (sched_split_block): New hook.
3383 (sched_split_block_1): New function.
3384 (sched_create_empty_bb): New hook.
3385 (sched_create_empty_bb_1): New function.
3386 (common_sched_info, ready): New global variables.
3387 (current_sched_info_var): Remove.
3388 (move_block_after_check): Use common_sched_info.
3389 (haifa_luid_for_non_insn): New static function.
3390 (init_before_recovery): Use haifa_init_only_bb instead of add_block.
3391 (increase_insn_priority): New.
3392 * modulo-sched.c: (issue_rate): Remove static declaration.
3393 (sms_sched_info): Change type to haifa_sched_info.
3394 (sms_sched_deps_info, sms_common_sched_info): New variables.
3395 (setup_sched_infos): New.
3396 (sms_schedule): Initialize them. Call haifa_sched_init/finish.
3397 Do not call regstat_free_calls_crossed.
3398 (sms_print_insn): Use const_rtx.
3399 * params.def (PARAM_MAX_PIPELINE_REGION_BLOCKS,
3400 PARAM_MAX_PIPELINE_REGION_INSNS, PARAM_SELSCHED_MAX_LOOKAHEAD,
3401 PARAM_SELSCHED_MAX_SCHED_TIMES, PARAM_SELSCHED_INSNS_TO_RENAME,
3402 PARAM_SCHED_MEM_TRUE_DEP_COST): New.
3403 * sched-deps.c (sched_deps_info): New. Update all relevant uses of
3404 current_sched_info to use it.
3405 (enum reg_pending_barrier_mode): Move to sched-int.h.
3406 (h_d_i_d): New variable. Initialize to NULL.
3407 ({true, output, anti, spec, forward}_dependency_cache): Initialize
3409 (estimate_dep_weak): Remove static declaration.
3410 (sched_has_condition_p): New function. Adjust users of
3411 sched_get_condition to use it instead.
3412 (conditions_mutex_p): Add arguments indicating which conditions are
3414 (sched_get_condition_with_rev): Rename from sched_get_condition. Add
3415 argument to indicate whether returned condition is reversed. Do not
3416 generate new rtx when condition should be reversed; indicate it by
3417 setting new argument instead.
3418 (add_dependence_list_and_free): Add deps parameter.
3419 Update all users. Do not free dependence list when
3420 deps context is readonly.
3421 (add_insn_mem_dependence, flush_pending_lists): Adjust for readonly
3423 (remove_from_dependence_list, remove_from_both_dependence_lists): New.
3424 (remove_from_deps): New. Use the above functions.
3425 (cur_insn, can_start_lhs_rhs_p): New static variables.
3426 (add_or_update_back_dep_1): Initialize present_dep_type.
3427 (haifa_start_insn, haifa_finish_insn, haifa_note_reg_set,
3428 haifa_note_reg_clobber, haifa_note_reg_use, haifa_note_mem_dep,
3429 haifa_note_dep): New functions implementing dependence hooks for
3430 the Haifa scheduler.
3431 (note_reg_use, note_reg_set, note_reg_clobber, note_mem_dep,
3432 note_dep): New functions.
3433 (ds_to_dt, extend_deps_reg_info, maybe_extend_reg_info_p): New
3435 (init_deps): Initialize last_reg_pending_barrier and deps->readonly.
3436 (free_deps): Initialize deps->reg_last.