| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
constant as a sequence of additions depending upon the rtx_costs.
(synth_mult): Update the "observed" cost of a shift, based upon
the above optimization.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83956 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2004-06-28 Geoffrey Keating <geoffk@apple.com>
Andreas Tobler <a.tobler@schweiz.ch>
PR 15813
* dwarf2out.c (reg_save): Output DW_CFA_same_value when a
register is saved in itself.
(initial_return_save): If the return address is a register,
it's already there, don't bother to mention it in the CFI.
(struct queued_reg_save): Add field saved_reg.
(struct reg_saved_in_data): New.
(regs_saved_in_regs): New.
(num_regs_saved_in_regs): New.
(queue_reg_save): Add extra parameter to specify register saved
in register. Remove duplicate entries from queue. Add comment
for function.
(flush_queued_reg_saves): Handle registers saved in registers.
Update regs_saved_in_regs. Add comment for function.
(clobbers_queued_reg_save): Add comment for function. Allow
for regs_saved_in_regs.
(reg_saved_in): New.
(dwarf2out_frame_debug_expr): Handle saving registers in other
registers.
(dwarf2out_frame_debug): Reset regs_saved_in_regs.
* unwind-dw2.c (execute_cfa_program): Correct handling of
DW_CFA_same_value. Add FIXME comment about incorrect implementation
of DW_CFA_restore_extended.
* config/rs6000/rs6000.c (rs6000_emit_prologue): Let
dwarf2out_frame_debug_expr see instructions that save registers
in other registers or save those other registers in memory.
* unwind-dw2.c (DWARF_FRAME_REGISTERS): Move to unwind-dw2.h.
(_Unwind_FrameState): Likewise.
* unwind-dw2.h: New.
* Makefile.in (LIB2ADDEHDEP): Add unwind-dw2.h.
* config/rs6000/darwin-fallback.c: New file.
* config/rs6000/darwin.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
* config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add darwin-fallback.o.
Index: gcc/testsuite/ChangeLog
2004-06-26 Geoffrey Keating <geoffk@apple.com>
Andreas Tobler <a.tobler@schweiz.ch>
* gcc.dg/cleanup-10.c: Run on all Linux platforms and powerpc-darwin.
Use SA_RESETHAND rather than SA_ONESHOT. Trap SIGBUS as well
as SIGSEGV.
* gcc.dg/cleanup-11.c: Likewise.
* gcc.dg/cleanup-8.c: Likewise.
* gcc.dg/cleanup-9.c: Likewise.
* gcc.dg/cleanup-5.c: Run on all platforms.
Index: libjava/ChangeLog
2004-06-26 Geoffrey Keating <geoffk@apple.com>
Andreas Tobler <a.tobler@schweiz.ch>
* configure.host (powerpc-*-darwin*): New case, define
can_unwind_signal.
* configure.in (*-*-darwin*): New case, point to darwin-signal.h.
* configure: Regenerate.
* include/darwin-signal.h: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83953 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(function_arg): Use rs6000_arg_size rather than CLASS_MAX_NREGS in
calculating gpr size for altivec. Simplify and correct
rs6000_mixed_function_arg calls. Call rs6000_mixed_function_arg
for ABI_V4 gpr case too. Fix off-by-one error in long double
reg test. Generate the correct PARALLEL to handle long double
for ABI_AIX 32-bit. Use this for -m32 -mpowerpc64 fpr case too.
(function_arg_partial_nregs): Align before calculating regs left.
Don't return info on partial fprs when we need info on gprs.
Correct long double fpr off-by-one error.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83951 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
* pa.c (prefetch_operand): New function.
* pa.h (prefetch_operand): Add to PREDICATE_CODES.
* pa.md (prefetch, prefetch_32, prefetch_64): New prefetch patterns.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83950 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* c-decl.c (store_parm_decls): Don't set it.
* tree-optimize.c (tree_rest_of_compilation): Likewise.
* passes.c (rest_of_compilation): Don't check it.
* stmt.c (expand_fixup): Likewise.
* function.c (fixup_var_refs_insn): Remove unused variable.
fortran/
* trans-decl.c (gfc_generate_function_code): Don't set
x_whole_function_mode_p.
(gfc_generate_constructors): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83947 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* stor-layout.c (immediate_size_expand): Delete.
(variable_size): Don't look at it.
* c-decl.c (push_parm_decl): Don't frob immediate_size_expand.
(start_function): Likewise.
* cfgexpand.c (construct_exit_block): Likewise.
* function.c (init_function_start, expand_function_end): Likewise.
* tree-optimize.c (tree_rest_of_compilation): Likewise.
cp/
* decl.c (start_preparsed_function): Don't set immediate_size_expand.
* method.c (use_thunk): Likewise.
fortran/
* trans-decl.c (gfc_generate_function_code): Don't set
immediate_size_expand.
(gfc_generate_constructors): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83946 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83944 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
instead of want_lvalue.
(gimplify_call_expr): Take want_value argument instead of test
function. Gimplify arguments to val only if reg_type; otherwise
allow lvalue forms.
(gimplify_expr): Update gimplify_compound_lval and gimplify_call_expr
calls.
* tree-gimple.c: Update GIMPLE grammer. Use true/false not 1/0.
Tidy commentary globally.
(get_call_expr_in): Remove RETURN_EXPR handling. Tidy.
* tree-gimple.h (is_gimple_call_addr): Mark extern.
* gimplify.c (gimplify_modify_expr_to_memcpy): Fix typo.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83941 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
(rationalize_compound_expr): Kill.
* tree-gimple.h: Likewise.
* tree-inline.c (expand_call_inline): Don't call it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83940 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
inl_last_parm_insn.
(last_parm_insn): Remove.
* function.c (free_after_compilation): Don't clear them.
(fixup_var_refs_insn, assign_parms): Don't set them.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83939 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
* call.c (build_over_call), typeck.c (build_function_call): Call
check_function_arguments instead of check_function_format.
testsuite:
* g++.dg/warn/nonnull1.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83937 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83936 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* c-format.c (format_check_context): Remove status.
(check_format_info, check_format_info_main,
maybe_read_dollar_number, avoid_dollar_number,
finish_dollar_format_checking, check_format_types,
check_function_format): Remove first parameter. Don't use
status_warning.
(check_format_arg): Don't use status_warning.
(status_warning): Remove.
* c-common.c (check_function_arguments): Update call to
check_function_format.
cp:
* call.c (build_over_call), typeck.c (build_function_call): Update
calls to check_function_format.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83935 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
value.
(output_v9branch): Likewise.
(sparc_v8plus_shift): Likewise. Rename into output_v8plus_shift.
* config/sparc/sparc.c (output_cbranch): Constify return value.
Prettify output for delay slots.
(output_v9branch): Likewise.
(sparc_v8plus_shift): Constify return value. Rename into
output_v8plus_shift.
* config/sparc/sparc.md (ashldi3_v8plus): Adjust call to
sparc_v8plus_shift.
(ashrdi3_v8plus): Likewise.
(lshrdi3_v8plus): Likewise.
(call_address_struct_value_sp32): Prettify output for delay slots.
(call_symbolic_struct_value_sp32): Likewise.
(call_address_untyped_struct_value_sp32): Likewise.
(call_symbolic_untyped_struct_value_sp32): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83934 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tree-flow.h (kill_redundant_phi_nodes): Declare.
* tree-optimize.c (init_tree_optimization_passes): Add pass_loop.
* tree-pass.h (pass_loop_init, pass_loop_done): Declare.
* tree-ssa-loop.c (current_loops): New variable.
(tree_loop_optimizer_init, gate_loop, tree_ssa_loop_init,
tree_ssa_loop_done): New functions.
(pass_loop, pass_loop_init, pass_loop_done): New passes.
* tree-ssa.c (kill_redundant_phi_nodes): Export.
* doc/invoke.texi (-ftree-loop-optimize): Document.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83933 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Makefile.in (tree-ssa-loop-ch.o): Add.
(tree-into-ssa.o): Add GGC_H dependency.
* tree-cfg.c (tree_duplicate_bb): Copy virtual arguments.
* tree-flow.h (rewrite_into_ssa): Declaration changed.
(rewrite_ssa_into_ssa, compute_global_livein, duplicate_ssa_name):
Declare.
* tree-into-ssa.c: Include ggc.h.
(struct def_blocks_d): Add phi_blocks field.
(struct mark_def_sites_global_data): Add names_to_rename field.
(struct ssa_name_info): New.
(compute_global_livein): Export.
(set_def_block, insert_phi_nodes, mark_def_sites, set_livein_block,
insert_phi_nodes_1, rewrite_finalize_block, insert_phi_nodes_for,
register_new_def, get_reaching_def, def_blocks_free,
get_def_blocks_for, rewrite_into_ssa): Modified to work with
rewrite_ssa_into_ssa.
(get_ssa_name_ann, get_phi_state, set_phi_state, get_current_def,
set_current_def, ssa_mark_def_sites_initialize_block,
ssa_mark_phi_uses, ssa_mark_def_sites, duplicate_ssa_name,
ssa_register_new_def, ssa_rewrite_initialize_block,
ssa_rewrite_phi_arguments, ssa_rewrite_finalize_block,
ssa_rewrite_stmt, rewrite_ssa_into_ssa, rewrite_all_into_ssa): New
functions.
(pass_build_ssa): Call rewrite_all_into_ssa.
* tree-optimize.c (execute_todo, execute_one_pass,
tree_rest_of_compilation): Allocate vars_to_rename only once.
* tree-ssa-dom.c (tree_ssa_dominator_optimize): Provide parameter
to rewrite_into_ssa.
* tree-ssa-loop.c (should_duplicate_loop_header_p,
mark_defs_for_rewrite, duplicate_blocks, do_while_loop_p,
copy_loop_headers, gate_ch, pass_ch): Moved to tree-ssa-loop-ch.c.
Use rewrite_ssa_into_ssa.
* tree-ssa-operands.c (copy_virtual_operands): New function.
* tree-ssa-operands.h (copy_virtual_operands): Declare.
* tree.h (struct tree_ssa_name): Add aux field.
(SSA_NAME_AUX): New macro to access it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83932 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
an #ifndef SKIP_COMPLEX_INT/#endif pair.
Special-case the Sun compiler wrt to <complex.h>.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83931 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
CLASS_AS_BASE rather than funny casting.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83928 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
TYPE_SIZE_UNIT of full_type.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83927 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
* prefix.c (lookup_key): Cast buffer to LPBYTE.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83925 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* decl.c (pop_label): Handle (imperfectly) USE_MAPPED_LOCATION case.
* decl2.c: If USE_MAPPED_LOCATION, don't do some line number
adjustments - which I don't understand.
* error.c (dump_decl): Rename "<interrnal>" to "<built-in>".
* error.c: Use LOCATION_FILE and EXPR_LOCATION macros.
(print_instantiation_partial_context): Use expand_location.
* decl.c (duplicate_decl): Use new DECL_IS_BUILTIN macro.
* name-lookup.c: Likewise.
* lex.c (cxx_init): Likewise. Also use BUILTINS_LOCATION.
* name-lookup.c: Use input_line macro.
* parser.c (cp_lexer_get_preprocessor_token): Use UNKNOWN_LOCATION.
(cp_parser_statement): Rename locaal variable statement_locus to
statement_location and use SET_EXPR_LOCATION macro.
* pt.c: Handle USE_MAPPED_LOCATION case. Use new macros.
* tree.c (cp_walk_subtrees): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83923 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* gengtype-lex.l: Temporary kludge to avoid duplicate typedef.
* gengtype.c: Update for now typdefs in input.h. More kludges.
* modulo-sched.c (sms_schedule): Use NOTE_EXPANDED_LOCATION macro.
* ra-debug.c (ra_print_rtl): Likewise.
* sched-rgn.c: Likewise.
* sched-vis.c: Likewise.
* rtl.h (gen_rtx_ASM_OPERANDS): Redefine if USE_MAPPED_LOCATION.
* stmt.c (expand_asm_operands): Adjust calls to gen_rtx_ASM_OPERANDS.
* tree-cfg.c: Use new macros and typedefs.
* tree-flow-inline.h: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83922 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* cfgexpand.c: Handle USE_MAPPED_LOCATION case for function_end_locus.
* cfglayout.c (insn_locators_initialize): Const cleanup. New macros.
* cfgrtl.c (delete_insn): Use new NOTE_DELETED_LABEL_NAME macro.
* print-rtl.c (print_rtx): Likewise.
* emit-rtl.c: Don't clear NOTE_SOURCE_FILE if USE_MAPPED_LOCATION.
* combine.c: Use new SET_INSN_DELETED macro.
* flow.c: Likewise.
* haifa-sched.c: Likewise.
* ifcvt.c: Likewise.
* recog.c: Likewise.
* reload1.c: Likewise.
* diagnostic.c: Use expand_location macro.
* pretty-print.c (pp_base_format_text): Likewise.
* profile.c: Likewise.
* dwarf2out.c: Likewise. Also use expand_location, DECL_IS_BUILTIN.
* dwarf2out.c (dwarf2out_decl: Use BUILTINS_LOCATION.
* emit-rtl.c (emit_line_note): Simplify if USE_MAPPED_LOCATION.
(force_next_line_note, insn_emit): Handle USE_MAPPED_LOCATION case.
* final.c (final): Likewise.
* haifa-sched.c: Likewise.
* integrate.c: Likewise.
* jump.c: Likewise.
* rtl-error.c: Likewise.
* stmt.c (check_seenlabel): Likewise.
* tree-pretty-print.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83921 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tree-mudflap.c (mf_file_function_line_tree): Take a location_t
rather than a pointer to one. Use expand_location.
(mf_varname_tree): Use expand_location.
* tree-dump.c: Use expand_location on DECL_SOURCE_LOCATION.
* coverage.c: Likewise.
* print-tree.c: Likewise.
* c-aux-info.c (gen_aux_info_record): Likewise.
* c-parse.in: Use SET_EXPR_LOCATION macro.
* gimple-low.c: Likewise.
* tree-mudflap.c: Likewise.
* gimplify.c: Likewise. Also use EXPR_LOCATION and EXPR_HAS_LOCATION.
* c-ppoutput.c: Use new source_location typedef instead of fileline.
* c-semantics.c: Use new macros.
* c-typeck.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83920 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* basic-block.h (struct edge_def): Use new source_locus typedef.
* c-common.c (fname_decl): Update save/clear/store of input_location.
(c_do_switch_warnings): Update for USE_MAPPED_LOCATION case.
* c-decl.c: Likewise.
* c-dump.c (dump_stmt): Likewise.
* c-gimplify.c (c-gimplify.c): Generalize using SET_EXPR_LOCATION.
* c-lex.c (cb_line_change): If USE_MAPPED_LOCATION use token's src_loc
to set input_location direction, rather than using linemap_lookup.
(fe_file_change, cb_def_pragma): Again use source_location directly.
* c-opts.c (saved_lineno): Remove static variable.
(c_common_post_options, c_common_init): Don't bothner to save,
clear and restore input_Location - now handled by lang_dependent_init.
* function.c (init_function_start): Use new DECL_IS_BUILTIN macro.
* xcoffout.c (xcoff_assign_fundamental_type_number): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83919 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* input.h: #include line-map.h for source_location typedef.
(BUILTINS_LOCATION, UNKNOWN_LOCATION, expand_location,
LOCATION_FILE, LOCATION_LINE): New macros and functions.
(expanded_location, source_locus): New typedefs.
(push_srcloc): Change parameter list if USE_MAPPED_LOCATION.
* rtl.def (NOTE, ASM_OPERANDS): Modify specifcation, if
USE_MAPPED_LOCATION.
* rtl.h (NOTE_DELETED_LABEL_NAME): New macro.
(NOTE_SOURCE_LOCATION, NOTE_EXPNDED_LOCATION, SET_INSN_DELETED):
New conditional macros.
(ASM_OPERANDS_SOURCE_FILE, ASM_OPERANDS_SOURCE_LINE): Replace
by ASM_OPERANDS_SOURCE_LOCATION if USE_MAPPED_LOCATION.
* tree.h (EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_HAS_LOCATION,
EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME, EXPR_LINENO,
DECL_IS_BUILTIN): New macros, most depending on USE_MAPPED__LOCATION.
(tree_exp): Change type of locus to use new source_locus typedef.
* tree.c (build1_stat): Use SET_EXPR_LOCATION.
(annotate_with_locus, annotate_with_file_line): Conditionalize.
(expand_location): New function.
* toplev.c (unknown_location): New static, when USE_MAPPED_LOCATION.
(push_srcloc, pop_loc): Adjust parameter handling.
(process_options): Don't set input_filename by itself.
(lang_dependent_init): Save, set input_location to <built-in>.
(warn_deprecated_use): Use expand_location.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83918 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
Eric Christopher <echristo@redhat.com>
* config/mips/3000.md: Improve description.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83917 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
cirrus_movdf_hard_insn): Set pool ranges for coprocessor loads.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83915 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83914 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83912 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
| |
(tree-chrec.o): New rule.
(GTFILES): Add tree-chrec.h.
* gengtype.c (open_base_files): Add tree-chrec.h.
* tree-chrec.c: New file.
* tree-chrec.h: New file.
* tree.def (SCEV_KNOWN, SCEV_NOT_KNOWN, POLYNOMIAL_CHREC): New nodes.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83909 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(uid_insn_cost, last_insn_cost): New global variables.
(combine_insn_cost): New function to estimate cost of an insn.
(combine_validate_cost): New function to determine whether a
try_combine replacement sequence is cheaper than the original.
(combine_instructions): Allocate and populate uid_insn_cost
array at the start of the combine pass, and deallocate it after.
(try_combine): Check combine_validate_cost to determine whether
a "recombination" should be rejected as being more expensive.
* Makefile.in (combine.o): Add dependency upon output.h.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83908 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR fortran/16161
* decl.c (gfc_match_type_spec): Rename second argument to
'implicit_flag', reverse meaning. Don't match_char_spec if
'implicit_flag' is set. Rename to ...
(match_type_spec): ... this.
(gfc_match_implicit_none, match_implicit_range): Move here
from match.c.
(gfc_match_implicit): Move here from match.c, try to
match_char_len if match_implicit_range doesn't succeed for
CHARACTER implicits. Call renamed fucntion match_type_spec.
(gfc_match_data_decl, match_prefix): Call renamed function
match_type_spec.
* match.c (gfc_match_implicit_none, match_implicit_range,
gfc_match_implicit): Move to decl.c.
* match.h (gfc_match_implicit_none, gfc_match_implicit):
Move protoypes to section 'decl.c'.
(gfc_match_type_spec): Remove prototype.
testsuite/
PR fortran/16161
* gfortran.fortran-torture/compile/implicit.f90: Add test
for implicit character.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83907 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
subtractions identically to additions, always COSTS_N_INSNS (1).
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83906 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83905 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
PR fortran/16289
* gfortran.fortran-torture/execute/intrinsic_nearest.f90
Use tiny() intrinsic to find smallest non-negative real
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83904 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
* gcc.dg/compat/struct-by-value-22_x.c: New.
* gcc.dg/compat/struct-by-value-22_y.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83903 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to check for constants.
(set_remove): Likewise.
(value_replace_in_set): Likewise.
(find_leader): Likewise.
* tree-vn.c (set_value_handle): Likewise.
(vn_lookup): Likewise.
(vn_lookup_or_add): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83902 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* config/sparc/sparc-protos.h (sparc_emitting_epilogue): Delete.
(sparc_skip_caller_unimp): Likewise.
(load_pic_register): Likewise.
(leaf_return_peephole_ok): Likewise.
(compute_frame_size): Rename into sparc_compute_frame_size.
(sparc_expand_prologue): New prototype.
(sparc_expand_epilogue): Likewise.
(output_return): Likewise.
(eligible_for_epilogue_delay): Rename into eligible_for_return_delay.
* config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Adjust call to
compute_frame_size. Move comment up.
(DELAY_SLOTS_FOR_EPILOGUE): Delete.
(ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
(EPILOGUE_USES): Return true for %g1 if the function uses EH return.
* config/sparc/sparc.md (UNSPECV_SAVEW): New constant.
(type attribute): Add 'return' and 'savew'.
(eligible_for_return_delay): New attribute.
(return): New delay_slot.
(sibcall_epilogue): Call sparc_expand_epilogue.
(prologue): Likewise. Move up.
(save_register_window): New expander.
(save_register_windowsi): New pattern.
(save_register_windowdi): Likewise.
(epilogue): New expander.
(return_internal): New pattern.
(Return peepholes): Delete.
* config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): New macro.
(sparc_emitting_epilogue): Delete.
(sparc_skip_caller_unimp): Likewise.
(sparc_sr_alias_set): New global variable.
(frame_base_name): Delete.
(frame_base_reg): New global variable.
(sparc_override_options): Get new alias set for save/restore.
(leaf_return_peephole_ok): Delete.
(eligible_for_epilogue_delay): Rename into eligible_for_return_delay.
Factor out code into eligible_for_restore_insn_delay.
(eligible_for_restore_insn_delay): New function extraced from above.
Use IN_UNCOND_BRANCH_DELAY_TRUE instead of IN_BRANCH_DELAY_TRUE.
(eligible_for_sibcall_delay): Use SIBCALL_SLOT_EMPTY_P.
Factor out code into eligible_for_restore_insn_delay.
(load_pic_register): Make static. Remove check.
(save_regs): Delete.
(restore_regs): Likewise.
(compute_frame_size): Rename into sparc_compute_frame_size.
Rename leaf_function into leaf_function_p.
(build_big_number): Delete.
(save_or_restore_regs): New function.
(emit_save_regs): Likewise.
(emit_restore_regs): Likewise.
(emit_stack_pointer_increment ): Likewise.
(emit_stack_pointer_decrement): Likewise.
(sparc_expand_prologue): Likewise.
(sparc_function_prologue): Rename into sparc_asm_function_prologue.
Remove all code to emit instructions.
(sparc_expand_epilogue): New function.
(sparc_function_epilogue): Rename into sparc_asm_function_epilogue.
Remove all code to emit instructions.
(output_restore): New function.
(output_return): Likewise.
(output_sibcall): Factor out code into output_restore.
(print_operand): Adjust for frame_base_reg.
* target.h (struct gcc_target): New field 'late_rtl_prologue_epilogue'.
* target-def.h (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): New define.
(TARGET_INITIALIZER): Add it.
* passes.c (rest_of_compilation): Set the conditional predicate
'current_function_uses_only_leaf_regs' before sched2. If target
has 'late_rtl_prologue_epilogue', emit RTL prologue/epilogue right
before sched2.
* reorg.c (return_insn_p): New predicate.
(find_end_label): Use it.
(relax_delay_slots): Do not thread an unconditional jump that points
to the end return label.
* doc/tm.texi (Registers) <Leaf Functions>: Clarify the validity
domain of 'current_function_uses_only_leaf_regs'.
(Stack and Calling) <Function Entry>: Document new target hook
TARGET_LATE_RTL_PROLOGUE_EPILOGUE.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83901 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
((A & N) + B) & M -> (A + B) & M if M is pow2 minus 1 constant and
N has at least all bits in M set as well.
PR tree-optimization/15310
* expr.c (expand_assignment): Optimize += or -= on a bit field in
most significant bits.
* gcc.c-torture/execute/20040629-1.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83900 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83898 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
* arm.md (cond_return_inverted): Add "length" attribute.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83896 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
Don't set TREE_COMPLEXITY from input_line.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83894 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
XSTR in place, so we don't lose SYMBOL_REF_DECL info.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83893 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83891 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83890 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
pseudos.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83889 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
| |
gimplify_modify_expr.
(gimplify_init_constructor): Likewise. Gimplify the null
CONSTRUCTOR assignment.
(gimplify_modify_expr_to_memcpy): New.
(gimplify_modify_expr_to_memset): New.
(gimplify_modify_expr): Use them.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83888 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83886 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
union with a read/write use
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83882 138bc75d-0d04-0410-961f-82ee72b054a4
|