abb woet increases are interesting
This commit is contained in:
parent
66e299cfce
commit
ca8d9fdf0a
@ -390,6 +390,8 @@ where
|
|||||||
#[cfg(feature = "feed_stg")]
|
#[cfg(feature = "feed_stg")]
|
||||||
const INTEREST_EDGE : bool = true;
|
const INTEREST_EDGE : bool = true;
|
||||||
#[cfg(feature = "feed_stg")]
|
#[cfg(feature = "feed_stg")]
|
||||||
|
const INTEREST_EDGE_WEIGHT : bool = true;
|
||||||
|
#[cfg(feature = "feed_stg")]
|
||||||
const INTEREST_NODE : bool = true;
|
const INTEREST_NODE : bool = true;
|
||||||
#[cfg(feature = "feed_stg_pathhash")]
|
#[cfg(feature = "feed_stg_pathhash")]
|
||||||
const INTEREST_PATH : bool = true;
|
const INTEREST_PATH : bool = true;
|
||||||
@ -401,6 +403,8 @@ const INTEREST_AGGREGATE : bool = true;
|
|||||||
#[cfg(not(feature = "feed_stg"))]
|
#[cfg(not(feature = "feed_stg"))]
|
||||||
const INTEREST_EDGE : bool = false;
|
const INTEREST_EDGE : bool = false;
|
||||||
#[cfg(not(feature = "feed_stg"))]
|
#[cfg(not(feature = "feed_stg"))]
|
||||||
|
const INTEREST_EDGE_WEIGHT : bool = true;
|
||||||
|
#[cfg(not(feature = "feed_stg"))]
|
||||||
const INTEREST_NODE : bool = false;
|
const INTEREST_NODE : bool = false;
|
||||||
#[cfg(not(feature = "feed_stg_pathhash"))]
|
#[cfg(not(feature = "feed_stg_pathhash"))]
|
||||||
const INTEREST_PATH : bool = false;
|
const INTEREST_PATH : bool = false;
|
||||||
@ -435,6 +439,8 @@ fn get_generic_hash<H>(input: &H) -> u64
|
|||||||
s.finish()
|
s.finish()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Takes: trace of intervals
|
||||||
|
/// Returns: hashmap of abb instance id to (execution time, memory accesses)
|
||||||
fn execinterval_to_abb_instances(trace: &Vec<ExecInterval>, read_trace: &Vec<Vec<(u32, u8)>>) -> HashMap<usize, (u64, Vec<(u32, u8)>)>{
|
fn execinterval_to_abb_instances(trace: &Vec<ExecInterval>, read_trace: &Vec<Vec<(u32, u8)>>) -> HashMap<usize, (u64, Vec<(u32, u8)>)>{
|
||||||
let mut instance_time: HashMap<usize, (u64, Vec<(u32, u8)>)> = HashMap::new();
|
let mut instance_time: HashMap<usize, (u64, Vec<(u32, u8)>)> = HashMap::new();
|
||||||
for (_i,interval) in trace.iter().enumerate() { // Iterate intervals
|
for (_i,interval) in trace.iter().enumerate() { // Iterate intervals
|
||||||
@ -511,7 +517,10 @@ where
|
|||||||
let ref_ = &mut fbs.graph.edge_weight_mut(e_.id()).unwrap().worst;
|
let ref_ = &mut fbs.graph.edge_weight_mut(e_.id()).unwrap().worst;
|
||||||
if ref_.is_some() {
|
if ref_.is_some() {
|
||||||
let w = ref_.as_mut().unwrap();
|
let w = ref_.as_mut().unwrap();
|
||||||
if w.0 < *time {*w = (*time, accesses.clone())};
|
if w.0 < *time {
|
||||||
|
*w = (*time, accesses.clone());
|
||||||
|
interesting |= INTEREST_EDGE_WEIGHT;
|
||||||
|
};
|
||||||
} else {
|
} else {
|
||||||
*ref_ = Some((*time, accesses.clone()));
|
*ref_ = Some((*time, accesses.clone()));
|
||||||
}
|
}
|
||||||
@ -533,10 +542,8 @@ where
|
|||||||
// every path terminates at the end
|
// every path terminates at the end
|
||||||
if !fbs.graph.neighbors_directed(return_node_trace[return_node_trace.len()-1].0, Direction::Outgoing).any(|x| x == fbs.exitpoint) {
|
if !fbs.graph.neighbors_directed(return_node_trace[return_node_trace.len()-1].0, Direction::Outgoing).any(|x| x == fbs.exitpoint) {
|
||||||
let mut e__ = STGEdge { event: CaptureEvent::End, name: String::from("End"), worst: None };
|
let mut e__ = STGEdge { event: CaptureEvent::End, name: String::from("End"), worst: None };
|
||||||
if e__.is_abb_end() {
|
if let Some((time, accesses)) = instance_time.get_mut(&trace[trace.len()-1].abb.as_ref().unwrap().instance_id) {
|
||||||
if let Some((time, accesses)) = instance_time.get_mut(&trace[trace.len()-1].abb.as_ref().unwrap().instance_id) {
|
e__.worst = Some((*time, accesses.clone()));
|
||||||
e__.worst = Some((*time, accesses.clone()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
let e_ = fbs.graph.add_edge(return_node_trace[return_node_trace.len()-1].0, fbs.exitpoint, e__);
|
let e_ = fbs.graph.add_edge(return_node_trace[return_node_trace.len()-1].0, fbs.exitpoint, e__);
|
||||||
return_edge_trace.push((e_, trace[trace.len()-1].start_tick));
|
return_edge_trace.push((e_, trace[trace.len()-1].start_tick));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user