57 std::vector<Memory> &stack,
bool latency);
59 std::vector<Memory> &stack,
bool latency);
67 std::vector<Memory> &stack,
bool latency);
88 Processor::Kind kind);
96 std::set<Processor> &procs);
104 std::set<Memory> &mems);
106 static void sort_memories(Machine machine, Processor proc,
107 std::vector<Memory> &memories,
bool latency);
108 static void sort_memories(Machine machine, Memory mem,
109 std::vector<Memory> &memories,
bool latency);
111 const Machine machine;
112 Memory global_memory;
113 std::map<Processor,std::vector<Memory> > proc_mem_stacks;
114 std::map<Memory,std::vector<Memory> > mem_mem_stacks;
115 std::map<std::pair<Processor,Memory::Kind>,Memory> proc_mem_table;
116 std::map<std::pair<Memory,Memory::Kind>,Memory> mem_mem_table;
117 std::map<std::pair<Memory,Processor::Kind>,Processor> mem_proc_table;
118 std::map<Processor::Kind,std::set<Processor> > proc_kinds;
119 std::map<Memory::Kind,std::set<Memory> > mem_kinds;
141 unsigned index)
const;
147 unsigned index, std::vector<Memory> &ranking)
const;
153 unsigned index)
const;
158 unsigned index,
const std::vector<Memory> &ranking);
163 unsigned index, Memory result);
174 std::vector<Memory> chosen;
175 std::vector<std::vector<Memory> > rankings;
178 typedef std::pair<Processor,Processor::TaskFuncID> MappingKey;
179 std::map<MappingKey,MemoizedMapping> temporary_mappings;
180 std::map<MappingKey,MemoizedMapping> permanent_mappings;
200 unsigned num_samples);
207 unsigned max_samples);
228 long long execution_time;
229 Processor target_processor;
237 long long total_time;
238 std::list<Profile> samples;
241 typedef std::map<Processor::Kind,VariantProfile> VariantMap;
242 typedef std::map<Processor::TaskFuncID,VariantMap> TaskMap;
244 void add_profiling_sample(Processor::TaskFuncID task_id,
247 TaskMap get_task_profiles()
const;
248 VariantMap get_variant_profiles(Processor::TaskFuncID tid)
const;
250 Processor::Kind kind)
const;
252 void clear_samples(Processor::TaskFuncID task_id);
253 void clear_samples(Processor::TaskFuncID task_id, Processor::Kind kind);
255 typedef std::list<DomainPoint> PointList;
256 typedef std::map<Processor, PointList> AssignmentMap;
265 Processor::Kind kind)
const;
274 unsigned needed_samples;
275 unsigned max_samples;
276 bool gather_in_orig_proc;
279 typedef std::map<Processor::TaskFuncID,ProfilingOption> OptionMap;
284 unsigned needed_samples;
285 unsigned max_samples;
286 TaskMap task_profiles;
287 OptionMap profiling_options;
Definition geometry.h:159