aboutsummaryrefslogtreecommitdiff
path: root/gcc/target-insns.def
AgeCommit message (Collapse)AuthorFilesLines
2016-01-04Update copyright years.Jakub Jelinek1-1/+1
From-SVN: r232055
2015-10-27internal-fn.def (IFN_GOACC_DIM_SIZE, [...]): New.Nathan Sidwell1-0/+2
* internal-fn.def (IFN_GOACC_DIM_SIZE, IFN_GOACC_DIM_POS, IFN_GOACC_LOOP): New. * internal-fn.h (enum ifn_unique_kind): Add IFN_UNIQUE_OACC_FORK, IFN_UNIQUE_OACC_JOIN, IFN_UNIQUE_OACC_HEAD_MARK, IFN_UNIQUE_OACC_TAIL_MARK. (enum ifn_goacc_loop_kind): New. * internal-fn.c (expand_UNIQUE): Add IFN_UNIQUE_OACC_FORK, IFN_UNIQUE_OACC_JOIN cases. (expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS): New. (expand_GOACC_LOOP): New. * target-insns.def (oacc_dim_pos, oacc_dim_size): New. * omp-low.c: Include gimple-pretty-print.h. (struct oacc_loop): New. (enum oacc_loop_flags): New. (oacc_thread_numbers): New. (oacc_xform_loop): New. (new_oacc_loop_raw, new_oacc_loop_outer, new_oacc_loop, new_oacc_loop_routine, finish_oacc_loop, free_oacc_loop): New, (dump_oacc_loop_part, dump_oacc_loop, debug_oacc_loop): New, (oacc_loop_discover_walk, oacc_loop_sibling_nrevers, oacc_loop_discovery): New. (oacc_loop_xform_head_tail, oacc_loop_xform_loop, oacc_loop_process): New. (oacc_loop_fixed_partitions, oacc_loop_partition): New. (execute_oacc_device_lower): Discover & process loops. Process internal fns. * target.def (goacc.fork_join): Change sense of hook, clarify documentation. * doc/tm.texi: Regenerated. From-SVN: r229466
2015-10-27target-insns.def (oacc_fork, oacc_join): Define.Nathan Sidwell1-0/+2
* target-insns.def (oacc_fork, oacc_join): Define. * target.def (goacc.validate_dims): Adjust doc to avoid warning. (goacc.fork_join): New GOACC hook. * targhooks.h (default_goacc_fork_join): Declare. * omp-low.c (default_goacc_forkjoin): New. * doc/tm.texi.in (TARGET_GOACC_FORK_JOIN): Add. * doc/tm.texi: Regenerate. From-SVN: r229465
2015-10-27internal-fn.c (expand_UNIQUE): New.Nathan Sidwell1-0/+1
* internal-fn.c (expand_UNIQUE): New. * internal-fn.h (enum ifn_unique_kind): New. * internal-fn.def (IFN_UNIQUE): New. * target-insns.def (unique): Define. * gimple.h (gimple_call_internal_unique_p): New. * gimple.c (gimple_call_same_target_p): Check internal fn uniqueness. * tracer.c (ignore_bb_p): Check for IFN_UNIQUE call. * tree-ssa-threadedge.c (record_temporary_equivalences_from_stmts): Likewise. * tree-cfg.c (gmple_call_initialize_ctrl_altering): Likewise. From-SVN: r229459
2015-08-24genflags.c (gen_macro): Delete.Richard Sandiford1-2/+13
gcc/ * genflags.c (gen_macro): Delete. (gen_proto): Don't create GEN.*CALL.* macros. * gensupport.h (get_file_location): Declare. * gensupport.c (rtx_locs): New variable. (read_md_rtx): Record rtx locations. (get_file_location): New function. * target-insns.def (call, call_pop, call_value, call_value_pop) (sibcall, sibcall_value): New patterns. * gentarget-def.c (parse_argument): New function. (def_target_insn): Use it. Handle optional operands. Raise an error if an .md pattern has the wrong number of operands for the pattern name. Remove the names of unused operands from the prototype. * builtins.c (expand_builtin_apply): Use targetm functions instead of HAVE_call_value and GEN_CALL_VALUE. * calls.c (emit_call_1): Likewise. Remove support for sibcall_pop and sibcall_value_pop. * config/aarch64/aarch64.md (untyped_call): Use gen_call instead of GEN_CALL. * config/alpha/alpha.md (untyped_call): Likewise. * config/iq2000/iq2000.md (untyped_call): Likewise. * config/m68k/m68k.md (untyped_call): Likewise. * config/mips/mips.md (untyped_call): Likewise. * config/pa/pa.md (untyped_call): Likewise. * config/rs6000/rs6000.md (untyped_call): Likewise. * config/sparc/sparc.md (untyped_call): Likewise. * config/tilegx/tilegx.md (untyped_call): Likewise. * config/tilepro/tilepro.md (untyped_call): Likewise. * config/visium/visium.md (untyped_call): Likewise. * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Use gen_call_value instead of GEN_CALL_VALUE. * config/arm/arm.md (untyped_call): Likewise. * config/cr16/cr16.c (cr16_function_arg): Remove reference to GEN_CALL. From-SVN: r227143
2015-08-24target-insns.def (movstr): New pattern.Richard Sandiford1-0/+1
gcc/ * target-insns.def (movstr): New pattern. * builtins.c (HAVE_movstr, CODE_FOR_movstr): Delete. (expand_movstr): Use targetm rather than HAVE_movstr/ CODE_FOR_movstr. From-SVN: r227121
2015-08-05target-insns.def (can_extend): Delete.Richard Sandiford1-1/+0
gcc/ * target-insns.def (can_extend): Delete. From-SVN: r226631
2015-07-28target-insns.def (reload_load_address): New targetm instruction pattern.Richard Sandiford1-0/+1
gcc/ * target-insns.def (reload_load_address): New targetm instruction pattern. * reload1.c (gen_reload): Use it instead of HAVE_*/gen_* interface. From-SVN: r226326
2015-07-28target-insns.def (atomic_test_and_set): New targetm instruction pattern.Richard Sandiford1-0/+1
gcc/ * target-insns.def (atomic_test_and_set): New targetm instruction pattern. * optabs.c (maybe_emit_atomic_test_and_set): Use it instead of HAVE_*/gen_* interface. From-SVN: r226325
2015-07-28target-insns.def (can_extend, ptr_extend): New targetm instruction patterns.Richard Sandiford1-0/+2
gcc/ * target-insns.def (can_extend, ptr_extend): New targetm instruction patterns. * optabs.c (can_extend_p): Use them instead of HAVE_*/gen_* interface. * simplify-rtx.c (simplify_unary_operation_1): Likewise. * emit-rtl.c (set_reg_attrs_from_value): Likewise. * rtlanal.c (nonzero_bits1): Likewise. (num_sign_bit_copies1): Likewise. From-SVN: r226324
2015-07-28target-insns.def (eh_return): New targetm instruction pattern.Richard Sandiford1-0/+1
gcc/ * target-insns.def (eh_return): New targetm instruction pattern. * except.c (expand_eh_return): Use it instead of HAVE_*/gen_* interface. * function.c (thread_prologue_and_epilogue_insns): Remove preprocessor condition. From-SVN: r226322
2015-07-28target-insns.def (indirect_jump): New targetm instruction pattern.Richard Sandiford1-0/+1
gcc/ * target-insns.def (indirect_jump): New targetm instruction pattern. * optabs.c (emit_indirect_jump): Use it instead of HAVE_*/gen_* interface. From-SVN: r226321
2015-07-05target-insns.def (extv, [...]): New targetm instruction patterns.Richard Sandiford1-0/+3
gcc/ * target-insns.def (extv, extzv, insv): New targetm instruction patterns. * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_* interface. * recog.c (simplify_while_replacing): Likewise. From-SVN: r225432
2015-07-05target-insns.def (doloop_begin, doloop_end): New targetm instruction patterns.Richard Sandiford1-0/+2
gcc/ * target-insns.def (doloop_begin, doloop_end): New targetm instruction patterns. * loop-init.c: Include target.h. (pass_loop2::gate): Use the new targetm patterns instead of HAVE_*/gen_* interface. (pass_rtl_doloop::gate): Likewise. (pass_rtl_doloop::execute): Remove preprocessor condition. * hw-doloop.c: Build unconditionally. * loop-doloop.c: Likewise. (doloop_optimize): Use the new targetm patterns instead of HAVE_*/gen_* interface. (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *. * modulo-sched.c (doloop_register_get): Likewise. From-SVN: r225431
2015-07-05target-insns.def (clear_cache): New targetm instruction pattern.Richard Sandiford1-0/+1
gcc/ * target-insns.def (clear_cache): New targetm instruction pattern. * builtins.c (expand_builtin___clear_cache): Use it instead of HAVE_*/gen_* interface. From-SVN: r225430
2015-07-05gcc/Richard Sandiford1-0/+6
* target-insns.def (allocate_stack, check_stack, probe_stack) (probe_stack_address, split_stack_prologue, split_stack_space_check): New targetm instruction patterns. * explow.c (allocate_dynamic_stack_space): Use them instead of HAVE_*/gen_* interface. (emit_stack_probe): Likewise. (probe_stack_range): Likewise. * function.c (thread_prologue_and_epilogue_insns): Likewise. From-SVN: r225429
2015-07-05target-insns.def (stack_protect_set, [...]): New targetm instruction patterns.Richard Sandiford1-0/+2
gcc/ * target-insns.def (stack_protect_set, stack_protect_test): New targetm instruction patterns. * cfgexpand.c (stack_protect_prologue): Use them instead of HAVE_*/gen_* interface. * function.c (stack_protect_epilogue): Likewise. From-SVN: r225428
2015-07-05gcc/Richard Sandiford1-0/+6
* target-insns.def (restore_stack_block, restore_stack_function) (restore_stack_nonlocal, save_stack_block, save_stack_function) (save_stack_nonlocal): New targetm instruction patterns. * builtins.c (expand_builtin_apply): Use them instead of HAVE_*/gen_* interface. * explow.c (emit_stack_save, emit_stack_restore): Likewise. From-SVN: r225426
2015-07-05target-insns.def (trap): New targetm instruction pattern.Richard Sandiford1-0/+1
gcc/ * target-insns.def (trap): New targetm instruction pattern. * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_* interface. * explow.c (allocate_dynamic_stack_space): Likewise. * ifcvt.c (find_if_header): Likewise. From-SVN: r225425
2015-07-05target-insns.def (prefetch): New targetm instruction pattern.Richard Sandiford1-0/+1
gcc/ * target-insns.def (prefetch): New targetm instruction pattern. * tree-ssa-loop-prefetch.c: Include targeth. (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead of HAVE_*/gen_* interface. * builtins.c (expand_builtin_prefetch): Likewise. * toplev.c (process_options): Likewise. From-SVN: r225424
2015-07-05target-insns.def (untyped_call, [...]): New targetm instruction patterns.Richard Sandiford1-0/+2
gcc/ * target-insns.def (untyped_call, untyped_return): New targetm instruction patterns. * builtins.c (expand_builtin_apply): Use them instead of HAVE_*/gen_* interface. (result_vector): Define unconditionally. From-SVN: r225423
2015-07-05gcc/Richard Sandiford1-0/+6
* target-insns.def (builtin_longjmp, builtin_setjmp_receiver) (builtin_setjmp_setup, exception_receiver, nonlocal_goto) (nonlocal_goto_receiver): New targetm instruction patterns. * builtins.c (expand_builtin_setjmp_setup): Use them instead of HAVE_*/gen_* interface. (expand_builtin_setjmp_receiver): Likewise. (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise. * except.c (expand_dw2_landing_pad_for_region): Likewise. From-SVN: r225422
2015-07-05target.def: Add code_for_* hooks.Richard Sandiford1-0/+2
gcc/ * target.def: Add code_for_* hooks. * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros. * defaults.h (HAVE_tablejump, gen_tablejump): Delete. * target-insns.def (casesi, tablejump): New targetm instruction patterns. * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface. (do_tablejump): Likewise. * stmt.c (expand_switch_as_decision_tree_p): Likewise. (expand_sjlj_dispatch_table): Likewise. * targhooks.c (default_case_values_threshold): Likewise. From-SVN: r225421
2015-06-30target-insns.def (jump): New targetm instruction pattern.Richard Sandiford1-0/+1
gcc/ * target-insns.def (jump): New targetm instruction pattern. * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump instead of gen_jump. (fix_up_crossing_landing_pad): Likewise. (add_labels_and_missing_jumps): Likewise. (fix_crossing_conditional_branches): Likewise. * cfgrtl.c (try_redirect_by_replacing_jump): Likewise. (force_nonfallthru_and_redirect): Likewise. * cse.c (cse_insn): Likewise. * expmed.c (expand_divmod): Likewise. * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise. * haifa-sched.c (init_before_recovery): Likewise. (sched_create_recovery_edges): Likewise. * ifcvt.c (find_cond_trap): Likewise. * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise. (expand_float, expand_fix): Likewise. * stmt.c (emit_jump): Likewise. From-SVN: r225211
2015-06-30gcc/Richard Sandiford1-0/+2
* defaults.h (HAVE_load_multiple, gen_load_multiple) (HAVE_store_multiple, gen_store_multiple): Delete. * target-insns.def (load_multiple, store_multiple): New targetm instruction patterns. * expr.c (move_block_to_reg, move_block_from_reg): Use them instead of HAVE_*/gen_* interface. From-SVN: r225210
2015-06-30gcc/Richard Sandiford1-0/+3
* defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence) (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence) (gen_mem_signal_fence): Delete. * target-insns.def (mem_signal_fence, mem_thread_fence) (memory_barrier): New targetm instruction patterns. * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_* interface. (expand_mem_signal_fence): Likewise. From-SVN: r225209
2015-06-30defaults.h (HAVE_epilogue, [...]): Delete.Richard Sandiford1-1/+4
gcc/ * defaults.h (HAVE_epilogue, gen_epilogue): Delete. * target-insns.def (epilogue, prologue, sibcall_prologue): New targetm instruction patterns. * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_* interface. * calls.c (expand_call): Likewise. * cfgrtl.c (cfg_layout_finalize): Likewise. * df-scan.c (df_get_entry_block_def_set): Likewise. (df_get_exit_block_use_set): Likewise. * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise. * final.c (final_start_function): Likewise. * function.c (thread_prologue_and_epilogue_insns): Likewise. (reposition_prologue_and_epilogue_notes): Likewise. * reorg.c (find_end_label): Likewise. * toplev.c (process_options): Likewise. From-SVN: r225208
2015-06-30target-insns.def (canonicalize_funcptr_for_compare): Add.Richard Biener1-0/+1
2015-06-30 Richard Biener <rguenther@suse.de> * target-insns.def (canonicalize_funcptr_for_compare): Add. * fold-const.c (build_range_check): Replace uses of HAVE_canonicalize_funcptr_for_compare. (fold_widened_comparison): Likewise. (fold_sign_changed_comparison): Likewise. * dojump.c: Include "target.h". (do_compare_and_jump): Replace uses of HAVE_canonicalize_funcptr_for_compare and gen_canonicalize_funcptr_for_compare. * expr.c (do_store_flag): Likewise. From-SVN: r225163
2015-06-25Makefile.in (TARGET_DEF): Add target-insns.def.Richard Sandiford1-0/+34
gcc/ * Makefile.in (TARGET_DEF): Add target-insns.def. (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h. (build/gentarget-def.o): New rule. (genprogrtl): Add target-def. * target-insns.def, gentarget-def.c: New files. * target.def: Add targetm.have_* and targetm.gen_* hooks, based on the contents of target-insns.def. * defaults.h (HAVE_simple_return, gen_simple_return): Delete. (HAVE_return, gen_return): Delete. * target-def.h: Include insn-target-def.h. * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface instead of direct calls. Rely on them to do the appropriate assertions. * function.c (gen_return_pattern): Likewise. Return an rtx_insn *. (convert_jumps_to_returns): Use targetm interface instead of direct calls. (thread_prologue_and_epilogue_insns): Likewise. * reorg.c (find_end_label, dbr_schedule): Likewise. * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise. * shrink-wrap.c (convert_to_simple_return): Likewise. (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED. From-SVN: r224979