prune-trace: use uint64_t for pilot counts

This enables using very large data sets in the FESamplingPruner.

Change-Id: Ibf097ed8cec24c85a74e83a78d79aa07893cfa8c
This commit is contained in:
Christoph Borchert
2014-12-16 11:31:10 +01:00
committed by Horst Schirmeier
parent ed18399ff6
commit f23860c139
2 changed files with 7 additions and 6 deletions

View File

@ -93,7 +93,7 @@ bool FESamplingPruner::sampling_prune(const fail::Database::Variant& variant)
MYSQL_RES *res;
MYSQL_ROW row;
unsigned pilotcount = 0, samplerows;
uint64_t pilotcount = 0, samplerows;
if (!m_use_known_results) {
LOG << "loading trace entries for " << variant.variant << "/" << variant.benchmark << " ..." << endl;
@ -149,7 +149,7 @@ bool FESamplingPruner::sampling_prune(const fail::Database::Variant& variant)
LOG << "loaded " << pilotcount << " entries, sampling "
<< samplerows << " entries with fault expansion ..." << endl;
unsigned num_fspgroup_entries = 0;
uint64_t num_fspgroup_entries = 0;
uint32_t known_pilot_method_id = m_method_id;
if (!m_use_known_results) {
@ -159,7 +159,7 @@ bool FESamplingPruner::sampling_prune(const fail::Database::Variant& variant)
std::string insert_sql(ss.str());
ss.str("");
for (unsigned i = 0; i < samplerows; ++i) {
for (uint64_t i = 0; i < samplerows; ++i) {
uint64_t pos = my_rand(pop.get_size() - 1);
Pilot p = pop.get(pos);
ss << "(0," << variant.id << "," << p.instr2 << "," << p.instr2
@ -170,7 +170,7 @@ bool FESamplingPruner::sampling_prune(const fail::Database::Variant& variant)
}
db->insert_multiple();
unsigned num_fsppilot_entries = samplerows;
uint64_t num_fsppilot_entries = samplerows;
// single entry for known outcome (write access)
ss << "INSERT INTO fsppilot (known_outcome, variant_id, instr2, injection_instr, injection_instr_absolute, data_address, data_width, fspmethod_id) "
@ -201,7 +201,7 @@ bool FESamplingPruner::sampling_prune(const fail::Database::Variant& variant)
std::string insert_sql(ss.str());
ss.str("");
for (unsigned i = 0; i < samplerows; ++i) {
for (uint64_t i = 0; i < samplerows; ++i) {
uint64_t pos = my_rand(pop.get_size() - 1);
Pilot p = pop.get(pos);
ss << "(" << variant.id << "," << p.instr2

View File

@ -1,6 +1,7 @@
#ifndef __FESAMPLING_PRUNER_H__
#define __FESAMPLING_PRUNER_H__
#include <stdint.h>
#include "Pruner.hpp"
#include "util/CommandLine.hpp"
@ -18,7 +19,7 @@ class FESamplingPruner : public Pruner {
fail::CommandLine::option_handle USE_KNOWN_RESULTS;
fail::CommandLine::option_handle NO_WEIGHTING;
unsigned m_samplesize;
uint64_t m_samplesize;
bool m_use_known_results, m_weighting;
public: