ChangeLog:
* configure.ac (--enable-lto): Add x86_64-apple-darwin* as
a platform that supports LTO.
* configure: Regenerate.
gcc/ChangeLog:
* config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
lto-macho as lto_binary_reader.
* target.h (struct gcc_target): New hooks lto_start and lto_end.
* target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
* cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
in lto_start and lto_end calls.
(is_elf_or_coff): Rename to maybe_lto_object_file. Add Mach-O
magic numbers.
(scan_prog_file): Update is_elf_or_coff call.
* doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
* collect2.c (main): Fix enum comparison.
* config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
Add prototypes.
* darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
* darwin.h (LINK_COMMAND_SPEC): Likewise. Define TARGET_ASM_LTO_START
and TARGET_ASM_LTO_END.
* darwin.c: Include obstack.h and lto-streamer.h.
(lto_section_names_offset, lto_section_names_obstack,
lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
global variables.
(LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
(darwin_asm_lto_start): New function. Redirect output to asm_out_file
to a temporary file.
(darwin_asm_lto_end): New function. Restore asm_out_file.
(darwin_asm_named_section): For LTO sections, replace the name with
the offset of the section name in a string table, and build this
table.
(darwin_file_start): Initialize global vars for LTO support.
(darwin_file_end): If output to asm_out_file was redirected, append it
to the proper asm_out_file here. Add the section names section.
lto/ChangeLog:
* lto.h (struct lto_file_struct): Document offset member.
* lto-endian.h: New file.
* lto-macho.h: New file.
* lto-macho.c: New file.
* Make-lang.in: Add rule for lto-macho.o.
From-SVN: r159173
* c-pragma.c (pending_weak_d, pending_weak): New.
(pending_weaks): Change the type to VEC((pending_weak,gc) *.
(maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
handle_pragma_weak): Update the uses of pending_weaks.
From-SVN: r159172
PR target/43708
* config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
in addition to TREE_USED, to avoid "set but unused" warnings.
From-SVN: r159164
2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
* tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
(is_loop_prefetching_profitable): Do not insert prefetches
when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
times the prefetch ahead distance.
From-SVN: r159163
2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
* tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
Account for loop unrolling in the insn-to-prefetch ratio heuristic.
(loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
the unroll_factor.
From-SVN: r159162
2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
* tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
a diagnostic info when the insn-to-mem ratio is too small.
From-SVN: r159161
2010-05-07 Richard Guenther <rguenther@suse.de>
* gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
the linker plugin.
(store_arg): Queue temp_filename for deletion instead of
the whole argument.
lto/
PR lto/43857
PR lto/43371
* lang.opt (fresolution): Change to ...
(fresolution=): ... this.
* lto-lang.c (lto_handle_option): Adjust.
lto-plugin/
* lto-plugin.c (free_2): Do not free resolution_file.
(write_resolution): Check that we were passed a resolution file.
(all_symbols_read_handler): Adjust.
(cleanup_handler): Do not remove the resolution file.
(process_option): Handle -fresolution=.
From-SVN: r159159
2010-05-07 Richard Guenther <rguenther@suse.de>
* lto-wrapper.c (DUMPBASE_SUFFIX): Define.
(run_gcc): Handle LTRANS phase invocation.
* collect2.c (maybe_run_lto_and_relink): Do not set
WPA_SAVE_LTRANS.
lto/
* lto.c (DUMPBASE_SUFFIX): Remove.
(lto_execute_ltrans): Move functionality to lto-wrapper.c.
Rename to ...
(lto_write_ltrans_list): ... only output the list of ltrans files.
(lto_maybe_unlink): Remove.
(do_whole_program_analysis): Do not execute LTRANS phase
from here.
From-SVN: r159157
2010-05-07 Richard Guenther <rguenther@suse.de>
PR tree-optimization/44020
* tree-ssa-pre.c (execute_pre): Do not remove dead inserted
code when PRE is not yet initialized.
From-SVN: r159150
gcc/
2010-05-07 Shujing Zhao <pearly.zhao@oracle.com>
* c-typeck.c (build_binary_op): Warn ordered comparison of pointer
with null pointer and also warn about ordered comparison of zero
with pointer if -Wextra.
gcc/testsuite/
2010-05-07 Shujing Zhao <pearly.zhao@oracle.com>
* gcc.dg/ordered-comparison-1.c: New test.
* gcc.dg/ordered-comparison-2.c: New test.
* gcc.dg/ordered-comparison-3.c: New test.
* gcc.dg/ordered-comparison-4.c: New test.
From-SVN: r159145
gcc:
* gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
Don't change GS_OK to GS_ALL_DONE. Make sure that all cases set
ret appropriately.
(gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
gcc/cp:
* semantics.c (simplify_aggr_init_expr): Use INIT_EXPR.
From-SVN: r159125
PR tree-optimization/43984
* tree-ssa-pre.c (inserted_phi_names): Remove.
(inserted_exprs): Change to bitmap.
(create_expression_by_pieces): Set bits, don't append to vector.
(insert_into_preds_of_block): Don't handle inserted_phi_names.
(eliminate): Don't look at inserted_phi_names, remove deleted
insns from inserted_exprs.
(remove_dead_inserted_code): Adjust to use bitmaps instead of
vectors.
(init_pre, fini_pre): Allocate and free bitmaps.
(execute_pre): Insert insns on edges before elimination.
testsuite/
* gfortran.dg/pr43984.f90: New test.
From-SVN: r159106
2010-05-06 Richard Guenther <rguenther@suse.de>
PR tree-optimization/43571
* domwalk.c (walk_dominator_tree): Walk the dominator
sons in more optimal order.
From-SVN: r159100
2010-05-06 Richard Guenther <rguenther@suse.de>
PR tree-optimization/43934
* tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
(stmt_cost): Likewise.
(extract_true_false_args_from_phi): New helper.
(determine_max_movement): For PHI nodes verify we can hoist them
and compute their cost.
(determine_invariantness_stmt): Handle PHI nodes.
(move_computations_stmt): Likewise. Hoist PHI nodes in
if-converted form using COND_EXPRs.
(move_computations): Return TODO_cleanup_cfg if we hoisted PHI
nodes.
(tree_ssa_lim): Likewise.
* tree-flow.h (tree_ssa_lim): Adjust prototype.
* tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
* gcc.dg/tree-ssa/ssa-lim-9.c: New testcase.
From-SVN: r159099
2010-05-06 Richard Guenther <rguenther@suse.de>
PR tree-optimization/43987
* tree-ssa-structalias.c (could_have_pointers): For possibly
address-taken variables force pointers to be recorded.
(create_variable_info_for_1): Likewise.
(push_fields_onto_fieldstack): Pass in wheter all fields
must have pointers.
(find_func_aliases): Query types instead of vars whether
they contain pointers where appropriate.
* gcc.c-torture/execute/pr43987.c: New testcase.
* gcc.dg/torture/pta-escape-1.c: Adjust.
* gcc.dg/tree-ssa/pta-escape-1.c: Likewise.
* gcc.dg/tree-ssa/pta-escape-2.c: Likewise.
* gcc.dg/tree-ssa/pta-escape-3.c: Likewise.
* gcc.dg/ipa/ipa-pta-11.c: Likewise.
From-SVN: r159098
PR tree-optimization/43901
* tree-vect-stmts.c (vectorizable_call): Assert that vector
type is not NULL if it's transformation phase, and return
FALSE if it's analysis.
(vectorizable_conversion, vectorizable_operation,
vectorizable_type_demotion, vectorizable_type_promotion):
Likewise.
From-SVN: r159095
* stor-layout.c (pending_sizes): Change the type to
VEC(tree,gc) *.
(get_pending_sizes, put_pending_size, put_pending_sizes):
Update the uses of pending_sizes.
* c-decl.c (store_parm_decls): Likewise.
* c-tree.h (struct c_arg_info): Likewise.
* tree.h: Update the prototype for get_pending_sizes and
put_pending_sizes.
From-SVN: r159085
PR debug/43478
* df-problems.c (struct dead_debug_use, struct dead_debug): New.
(dead_debug_init, dead_debug_finish): New functions.
(dead_debug_add, dead_debug_insert_before): Likewise.
(df_note_bb_compute): Initialize a dead_debug object, add dead
debug uses to it, insert debug bind insns before death insns,
reset debug insns that refer to pending uses at the end.
* rtl.h (make_debug_expr_from_rtl): New prototype.
* varasm.c (make_debug_expr_from_rtl): New function.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r159063
* lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
with body can prevail.
* lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
size.
From-SVN: r159061
* var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
in a temporary instead of invoking the macro multiple times.
(track_expr_p): Likewise.
From-SVN: r159058