Fix loop-level instrumentation + more (#32)
- fix loop-level instrumentation
- support loop instrumentation w/o debug symbols via loop number
- improve module_function messages
- serialize num_basic_blocks
- serialize num_outer_loops
- serialize is_num_instructions_constrained
- serialize is_loop_num_instructions_constrained
- updated transpose example to use uniform_int_distribution
- added transpose loop test
- added fail regexes for tests which enable loop instrumentation
- use module->getFullName in get_loop_file_line_info
- use module->getFullName in get_func_file_line_info
- use module->getFullName in get_basic_block_file_line_info
[ROCm/rocprofiler-systems commit: a640fbdb29]
Tá an tiomantas seo le fáil i:
tiomanta ag
GitHub
tuismitheoir
5c1e6ea127
tiomantas
2eb4b4981c
@@ -98,7 +98,7 @@ struct module_function
|
||||
basic_loop_vec_t loop_blocks = {};
|
||||
std::vector<std::vector<instruction_t>> instructions = {};
|
||||
|
||||
using str_msg_t = std::tuple<int, string_t, string_t, string_t>;
|
||||
using str_msg_t = std::tuple<int, string_t, string_t, string_t, string_t>;
|
||||
using str_msg_vec_t = std::vector<str_msg_t>;
|
||||
|
||||
mutable str_msg_vec_t messages = {};
|
||||
@@ -183,6 +183,8 @@ module_function::serialize(ArchiveT& ar, const unsigned)
|
||||
|
||||
if constexpr(tim::concepts::is_output_archive<ArchiveT>::value)
|
||||
{
|
||||
ar(cereal::make_nvp("num_basic_blocks", basic_blocks.size()),
|
||||
cereal::make_nvp("num_outer_loops", loop_blocks.size()));
|
||||
ar.setNextName("heuristics");
|
||||
ar.startNode();
|
||||
ar(cereal::make_nvp("should_instrument", should_instrument()),
|
||||
@@ -202,10 +204,12 @@ module_function::serialize(ArchiveT& ar, const unsigned)
|
||||
cereal::make_nvp("is_dynamic_callsite_forced", is_dynamic_callsite_forced()),
|
||||
cereal::make_nvp("is_address_range_constrained",
|
||||
is_address_range_constrained()),
|
||||
cereal::make_nvp("is_num_instructions_constrained",
|
||||
is_num_instructions_constrained()),
|
||||
cereal::make_nvp("is_loop_address_range_constrained",
|
||||
is_loop_address_range_constrained()),
|
||||
cereal::make_nvp("is_num_instructions_constrained",
|
||||
is_num_instructions_constrained()));
|
||||
cereal::make_nvp("is_loop_num_instructions_constrained",
|
||||
is_loop_num_instructions_constrained()));
|
||||
ar.finishNode();
|
||||
// instructions can inflate JSON size so only output when verbosity is increased
|
||||
// above default
|
||||
|
||||
Tagairt in Eagrán Nua
Cuir bac ar úsáideoir