-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile.defs~
352 lines (275 loc) · 7.39 KB
/
Makefile.defs~
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
##############################################################################
# Makefile Generic Structure #
##############################################################################
include $(BUILD_DIR)/Make.defs
#######################################
# Machine detection (Uses MINT Makefile.defs.XXX)
ifdef XCC_MIPSEB
include $(SRC_DIR)/Makefile.defs.mipseb
else
ifdef XCC_SPARC
include $(SRC_DIR)/Makefile.defs.sparc
else
include $(SRC_DIR)/Makefile.defs.$(shell uname -s | cut -d '_' -f 1)
endif
endif
#######################################
OBJ =$(OBJ_DIR)/$(ABINAME)_obj
ifdef DEBUG
DEFS +=-DDEBUG -DSAFE -D_NOTHREADS
ifdef DEBUG_SILENT
DEFS +=-DDEBUG_SILENT
else
ifdef DEBUG2
DEFS +=-DDEBUG2=1
else
DEFS +=-DDEBUG2=0
endif
endif
else # No DEBUG
DEFS +=-DNDEBUG
DEFS +=-DDEBUG2=0
endif # DEBUG
VPATH =$(OBJ):$(SRC_DIR):$(BUILD_DIR):.
#DEFS +=-DTRACE_DRIVEN
##############################################################################
M4_MACROS = $(SRC_DIR)/libmint/m4.macros
##############################################################################
# Defines
ifdef TLS
DEFS += -DTLS
endif
ifdef LOCKPROFILE
DEFS +=-DSESC_LOCKPROFILE
endif
ifdef SESC_PROTVER
DEFS += -DPROTVER
endif
ifdef SESC_ENERGY
DEFS += -DSESC_ENERGY
# Orion Parameters
DEFS += -DPOWER_TEST -DPARM_TECH_POINT=7 -DVdd=1.1 -DPARM_Freq=5e9
endif
ifdef SESC_SLICE
DEFS += -DSESC_SLICE
endif
ifdef SESC_CRIT
DEFS += -DSESC_CRIT
endif
ifdef TS_SPAWN
DEFS += -DTS_SPAWN
endif
ifdef ACCESS
DEFS += -DACCESS
endif
ifdef DIRECTORY
DEFS += -DDIRECTORY
endif
ifdef MPCOH
DEFS += -DMPCOH
endif
ifdef SESC_SMP
DEFS += -DSESC_SMP
ifdef SESC_SMP_DEBUG
DEFS += -DSESC_SMP_DEBUG
endif
endif
ifdef MEMANALYZER
DEFS += -DMEMANALYZER
endif
ifdef CLUSTER_ARCH
DEFS += -DCLUSTER_ARCH
endif
#####################################
INC = -I$(OBJ) -I$(SRC_DIR)/libapp -I$(SRC_DIR)/libsuc
INC += -I$(SRC_DIR)/libcore -I$(SRC_DIR)/libnet -I$(SRC_DIR)/libmem
INC += -I$(SRC_DIR)/libvmem
INC += -I$(SRC_DIR)/librl
INC += -I$(SRC_DIR)/libll -I$(SRC_DIR)/libmint -I$(SRC_DIR)/libpint
INC += -I$(SRC_DIR)/libsmp -I.
##############################################################################
ifeq ($(findstring IRIX,$(ABINAME)),IRIX)
LIBS = -L$(OBJ) -L$(OBJ)/ -lgen -lsesc
else
LIBS = -L$(OBJ)
endif
STDLIBS = -lm $(XSTDLIBS)
CFLAGS = $(ABI) $(COPTS) $(INC) $(PDEFS) $(DEFS)
LDFLAGS = $(ABI) $(LOPTS)
##############################################################################
# Native compilation libraries
ifdef XCC_SPARC
CFLAGS +=-DXCC_SPARC
XLIBS = -L$(OBJ) -lapp
else
ifdef XCC_MIPSEB
CFLAGS +=-DXCC_MIPSEB
XLIBS = -L$(OBJ) -lapp
else
XLIBS = -lpthread -L$(OBJ) -lapp
endif
endif
ifdef SESCAPI_NATIVE
CFLAGS +=-DSESCAPI_NATIVE
endif
ifdef SESCAPI_NATIVE_IRIX
CFLAGS +=-DSESCAPI_NATIVE_IRIX
XLIBS +=-lfetchop
endif
##############################################################################
ifdef SESC_INSTPROF
DEFS +=-DINSTPROF
endif
ifdef SESC_FUNCINSTPROF
DEFS +=-DINSTPROF -DFUNCINSTPROF
endif
ifdef SESC_MISPATH
ifndef SESC_ENERGY
$(warning "mispath without energy? It has a small impact unless energy is considered")
endif
DEFS += -DSESC_MISPATH
endif
ifdef SESC_NO_LDSTQ
DEFS += -DLDSTBUFFER_IGNORE_DEPS
endif
##############################################################################
# Section for defines specific for different papers. Those are extensions
# in the simulation (usualy statistics or change in the behavour) that are
# not interested for normal simulations.
################################################
# Branch Predictor Weird Tunning Parameters
# Update branch prediction at retire instead of speculative branch
# prediction update. Check Skadron thesis.
#DEFS +=-DBPRED_UPDATE_RETIRE
# Resolve branch when it reaches the head of the ROB
#DEFS +=-DSESC_BRANCH_AT_RETIRE
################################################
# Cherry
ifdef SESC_CHERRY
DEFS += -DSESC_CHERRY
endif
################################################
# Scalable Efficient Enforcement of Dependeces
ifdef SESC_SEED
#DEFS +=-DSESC_SEED_OVERFLOW
DEFS +=-DSESC_SEED_INORDER
# either SESC_SEED_DEPPRED_RAND or SESC_SEED_DEPPRED
#DEFS +=-DSESC_SEED_DEPPRED_SRC
#DEFS +=-DSESC_SEED_DEPPRED_BOTH
DEFS +=-DSESC_SEED_DEPPRED_RAND
DEFS +=-DSESC_SEED
# Processor.cpp
#DEFS +=-DSESC_SEED_STALL_LOADS
endif
################################################
# Bandwidth Analyzer model
ifdef SESC_BAAD
DEFS += -DSESC_BAAD
endif
################################################
# Thermal model
ifdef SESC_THERM
DEFS += -DSESC_THERM
endif
################################################
# Optimized Inorder Pipeline
ifdef SESC_INORDER
DEFS += -DSESC_INORDER
DEFS += -DSESC_INORDER_OUT_DEPS
DEFS += -DSESC_INORDER_ENERGY
DEFS += -DSESC_INORDER_SWITCH
endif
################################################
# HVersion (TaskScalar)
ifdef TASKSCALAR
DEFS += -DTASKSCALAR -DTS_COUNT_TASKS_AHEAD
################################################
# Reset Branch History at task Start
DEFS += -DTS_RESET_HISTORY
ifdef VALUEPRED
DEFS += -DVALUEPRED
endif
################################################
# Silent stores (good!)
ifndef SESC_NO_SILENT_STORE
DEFS +=-DSILENT_STORE
endif
################################################
# When an version reclaim is received it merge all the successors
ifndef TS_BUBBLE
DEFS +=-DCLAIM_MERGE_SUCCESSOR
endif
################################################
# mergeFirst all. Useful to see real overhead
#DEFS +=-DMERGE_FIRST_ALL
ifdef TS_VMNOPROMOTE
DEFS +=-DTS_VMNOPROMOTE
endif
################################################
# mergeNext active
ifndef NO_MERGENEXT
DEFS +=-DTS_MERGENEXT
endif
################################################
# mergeLast active
ifndef NO_MERGELAST
DEFS +=-DTS_MERGELAST
endif
################################################
# spawn mechanism
ifdef TS_SPAWN
DEFS +=-DTS_SPAWN
endif
################################################
# slice processor
ifdef SESC_SLICE
DEFS +=-DSESC_SLICE
endif
################################################
# Profiling in Rabbit mode
ifdef TS_PROFILING
DEFS +=-DTS_PROFILING
endif
################################################
# Risk Load Profiler
ifdef TS_RISKLOADPROF
DEFS +=-DTS_RISKLOADPROF
endif
ifdef TS_VMEM
DEFS += -DTS_VMEM
ifdef VMEM_NO_TRAOPT
################################################
# Use LVID in the address generation (more assoc)
DEFS +=-DVMEM_NO_TRAOPT
endif
################################################
# Use LVID in the address generation (more assoc)
#DEFS +=-DVMEM_LVID_IN_ADDR
# Generate restarts at fetch. Unless debugging, you should be giving
# an upper limit performance
DEFS +=-DTS_IMMEDIAT_RESTART
# Simple Promotion
#DEFS +=-DVMEM_SIMPLE_PROMOTION
# Use predecessor information from local cache to forward data
DEFS +=-DVMEM_PRED_FORWARD
# Implement a directory in the VBus
#DEFS +=-DVMEM_DIR
# Use the most/least Speculative bit per cache line
DEFS +=-DTS_USE_SPECBITS
endif # TS_VMEM
ifdef TS_CAVA
DEFS +=-DTS_CAVA -DTC_PARTIALORDER -DTS_CKPSUPPORT
endif
# Generate a task trace
ifdef TS_TIMELINE
DEFS +=-DTS_TIMELINE
endif
# Do not spawn a task (do merge) if the task already has someone ahead
#DEFS +=-DTS_INORDER
# TLS OOO Statistics
DEFS +=-DOOO_PAPER_STATS
# Stall Processor support
ifdef TS_STALL
DEFS +=-DTS_STALL
endif
endif # TASKSCALAR