annotate gcc/config/tilegx/tilegx-generic.md @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 ;; Scheduling description for Tilera TILE-Gx chip.
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2 ;; Copyright (C) 2011-2018 Free Software Foundation, Inc.
111
kono
parents:
diff changeset
3 ;; Contributed by Walter Lee (walt@tilera.com)
kono
parents:
diff changeset
4 ;;
kono
parents:
diff changeset
5 ;; This file is part of GCC.
kono
parents:
diff changeset
6 ;;
kono
parents:
diff changeset
7 ;; GCC is free software; you can redistribute it and/or modify it
kono
parents:
diff changeset
8 ;; under the terms of the GNU General Public License as published
kono
parents:
diff changeset
9 ;; by the Free Software Foundation; either version 3, or (at your
kono
parents:
diff changeset
10 ;; option) any later version.
kono
parents:
diff changeset
11 ;;
kono
parents:
diff changeset
12 ;; GCC is distributed in the hope that it will be useful, but WITHOUT
kono
parents:
diff changeset
13 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
kono
parents:
diff changeset
14 ;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
kono
parents:
diff changeset
15 ;; License for more details.
kono
parents:
diff changeset
16 ;;
kono
parents:
diff changeset
17 ;; You should have received a copy of the GNU General Public License
kono
parents:
diff changeset
18 ;; along with GCC; see the file COPYING3. If not see
kono
parents:
diff changeset
19 ;; <http://www.gnu.org/licenses/>.
kono
parents:
diff changeset
20
kono
parents:
diff changeset
21 (define_automaton "tile")
kono
parents:
diff changeset
22
kono
parents:
diff changeset
23 ; Make the scheduling automaton an ndfa.
kono
parents:
diff changeset
24 (automata_option "ndfa")
kono
parents:
diff changeset
25
kono
parents:
diff changeset
26 ; Name the three pipes.
kono
parents:
diff changeset
27 (define_cpu_unit "X0" "tile")
kono
parents:
diff changeset
28 (define_cpu_unit "X1" "tile")
kono
parents:
diff changeset
29 (define_cpu_unit "Y0" "tile")
kono
parents:
diff changeset
30 (define_cpu_unit "Y1" "tile")
kono
parents:
diff changeset
31 (define_cpu_unit "Y2" "tile")
kono
parents:
diff changeset
32
kono
parents:
diff changeset
33 (define_insn_reservation "X0" 1
kono
parents:
diff changeset
34 (eq_attr "type" "X0")
kono
parents:
diff changeset
35 "X0")
kono
parents:
diff changeset
36
kono
parents:
diff changeset
37 (define_insn_reservation "X0_2cycle" 2
kono
parents:
diff changeset
38 (eq_attr "type" "X0_2cycle")
kono
parents:
diff changeset
39 "X0,nothing")
kono
parents:
diff changeset
40
kono
parents:
diff changeset
41 (define_insn_reservation "X1" 1
kono
parents:
diff changeset
42 (eq_attr "type" "X1,X1_branch")
kono
parents:
diff changeset
43 "X1")
kono
parents:
diff changeset
44
kono
parents:
diff changeset
45 (define_insn_reservation "X1_2cycle" 2
kono
parents:
diff changeset
46 (eq_attr "type" "X1_2cycle")
kono
parents:
diff changeset
47 "X1,nothing")
kono
parents:
diff changeset
48
kono
parents:
diff changeset
49 (define_insn_reservation "X1_L2" 11
kono
parents:
diff changeset
50 (eq_attr "type" "X1_L2")
kono
parents:
diff changeset
51 "X1")
kono
parents:
diff changeset
52
kono
parents:
diff changeset
53 (define_insn_reservation "X1_remote" 50
kono
parents:
diff changeset
54 (eq_attr "type" "X1_remote")
kono
parents:
diff changeset
55 "X1")
kono
parents:
diff changeset
56
kono
parents:
diff changeset
57 (define_insn_reservation "X1_miss" 80
kono
parents:
diff changeset
58 (eq_attr "type" "X1_miss")
kono
parents:
diff changeset
59 "X1")
kono
parents:
diff changeset
60
kono
parents:
diff changeset
61 (define_insn_reservation "X01" 1
kono
parents:
diff changeset
62 (eq_attr "type" "X01")
kono
parents:
diff changeset
63 "X0|X1")
kono
parents:
diff changeset
64
kono
parents:
diff changeset
65 (define_insn_reservation "Y0" 1
kono
parents:
diff changeset
66 (eq_attr "type" "Y0")
kono
parents:
diff changeset
67 "Y0|X0")
kono
parents:
diff changeset
68
kono
parents:
diff changeset
69 (define_insn_reservation "Y0_2cycle" 2
kono
parents:
diff changeset
70 (eq_attr "type" "Y0_2cycle")
kono
parents:
diff changeset
71 "Y0|X0,nothing")
kono
parents:
diff changeset
72
kono
parents:
diff changeset
73 (define_insn_reservation "Y1" 1
kono
parents:
diff changeset
74 (eq_attr "type" "Y1")
kono
parents:
diff changeset
75 "Y1|X1")
kono
parents:
diff changeset
76
kono
parents:
diff changeset
77 (define_insn_reservation "Y2" 1
kono
parents:
diff changeset
78 (eq_attr "type" "Y2")
kono
parents:
diff changeset
79 "Y2|X1")
kono
parents:
diff changeset
80
kono
parents:
diff changeset
81 (define_insn_reservation "Y2_2cycle" 2
kono
parents:
diff changeset
82 (eq_attr "type" "Y2_2cycle")
kono
parents:
diff changeset
83 "Y2|X1,nothing")
kono
parents:
diff changeset
84
kono
parents:
diff changeset
85 (define_insn_reservation "Y2_L2" 11
kono
parents:
diff changeset
86 (eq_attr "type" "Y2_L2")
kono
parents:
diff changeset
87 "Y2|X1")
kono
parents:
diff changeset
88
kono
parents:
diff changeset
89 (define_insn_reservation "Y2_miss" 80
kono
parents:
diff changeset
90 (eq_attr "type" "Y2_miss")
kono
parents:
diff changeset
91 "Y2|X1")
kono
parents:
diff changeset
92
kono
parents:
diff changeset
93 (define_insn_reservation "Y01" 1
kono
parents:
diff changeset
94 (eq_attr "type" "Y01")
kono
parents:
diff changeset
95 "Y0|Y1|X0|X1")
kono
parents:
diff changeset
96
kono
parents:
diff changeset
97 (define_insn_reservation "nothing" 0
kono
parents:
diff changeset
98 (eq_attr "type" "nothing")
kono
parents:
diff changeset
99 "nothing")
kono
parents:
diff changeset
100
kono
parents:
diff changeset
101 (define_insn_reservation "cannot_bundle" 1
kono
parents:
diff changeset
102 (eq_attr "type" "cannot_bundle")
kono
parents:
diff changeset
103 "X0+X1")
kono
parents:
diff changeset
104
kono
parents:
diff changeset
105 (define_insn_reservation "cannot_bundle_3cycle" 3
kono
parents:
diff changeset
106 (eq_attr "type" "cannot_bundle_3cycle")
kono
parents:
diff changeset
107 "X0+X1")
kono
parents:
diff changeset
108
kono
parents:
diff changeset
109 (define_insn_reservation "cannot_bundle_4cycle" 4
kono
parents:
diff changeset
110 (eq_attr "type" "cannot_bundle_4cycle")
kono
parents:
diff changeset
111 "X0+X1")
kono
parents:
diff changeset
112
kono
parents:
diff changeset
113
kono
parents:
diff changeset
114 ; A bundle must be in either X format or Y format.
kono
parents:
diff changeset
115 (exclusion_set "X0,X1" "Y0,Y1,Y2")