Made "cover" a compile-time option (disabled by default)
authorClifford Wolf <clifford@clifford.at>
Thu, 6 Nov 2014 08:39:55 +0000 (09:39 +0100)
committerClifford Wolf <clifford@clifford.at>
Thu, 6 Nov 2014 08:39:55 +0000 (09:39 +0100)
Makefile
kernel/driver.cc
kernel/log.cc
kernel/log.h
passes/cmds/cover.cc

index 7733dbcbe0199b79543904b7d3c15be85e12d89b..c1944f2e3a8e0506af4c1a97a58aad54e2864c1f 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -11,6 +11,7 @@ ENABLE_ABC := 1
 ENABLE_PLUGINS := 1
 ENABLE_READLINE := 1
 ENABLE_VERIFIC := 0
+ENABLE_COVER := 0
 
 # other configuration flags
 ENABLE_GPROF := 0
@@ -138,6 +139,10 @@ CXXFLAGS += $(patsubst %,-I$(VERIFIC_DIR)/%,$(VERIFIC_COMPONENTS)) -DYOSYS_ENABL
 LDLIBS += $(patsubst %,$(VERIFIC_DIR)/%/*-linux.a,$(VERIFIC_COMPONENTS))
 endif
 
+ifeq ($(ENABLE_COVER),1)
+CXXFLAGS += -DYOSYS_ENABLE_COVER
+endif
+
 ifeq ($(PRETTY), 1)
 P_STATUS = 0
 P_OFFSET = 0
index 5e69cced3a9eb66c3d3a32a76389ef21402e7906..8164fef285b99167174cb8c2a0bf744857c49b13 100644 (file)
@@ -335,7 +335,7 @@ int main(int argc, char **argv)
                log("%s\n", out_count ? "" : " no commands executed");
        }
 
-#ifdef COVER_ACTIVE
+#ifdef YOSYS_ENABLE_COVER
        if (getenv("YOSYS_COVER_DIR") || getenv("YOSYS_COVER_FILE"))
        {
                char filename_buffer[4096];
index 807f58bf606d545ac1ea170cdb3dab5ff34a993d..1a21e9fe6299fb5b64dd09333db47578b104d7b3 100644 (file)
@@ -274,7 +274,7 @@ void log_cell(RTLIL::Cell *cell, std::string indent)
 // ---------------------------------------------------
 // This is the magic behind the code coverage counters
 // ---------------------------------------------------
-#ifdef COVER_ACTIVE
+#ifdef YOSYS_ENABLE_COVER
 
 std::map<std::string, std::pair<std::string, int>> extra_coverage_data;
 
index 81d01ace7fcd74fd263b19364bd606dd208e4a41..a6f80892249df662afbfc5ee0d43724a291c0179 100644 (file)
@@ -87,8 +87,7 @@ static inline void log_assert_worker(bool cond, const char *expr, const char *fi
 // This is the magic behind the code coverage counters
 // ---------------------------------------------------
 
-#if defined(__linux__) && !defined(NDEBUG)
-#define COVER_ACTIVE
+#ifdef YOSYS_ENABLE_COVER
 
 #define cover(_id) do { \
     static CoverData __d __attribute__((section("yosys_cover_list"), aligned(1))) = { __FILE__, __FUNCTION__, _id, __LINE__, 0 }; \
index b8baaf3d855df46b0ac9eb97dd105759961b3cf5..6a70d1de98953c55090475d5a09648958cd5f441 100644 (file)
@@ -128,7 +128,7 @@ struct CoverPass : public Pass {
                        log("\n");
                }
 
-#ifdef COVER_ACTIVE
+#ifdef YOSYS_ENABLE_COVER
                for (auto &it : get_coverage_data()) {
                        if (!patterns.empty()) {
                                for (auto &p : patterns)
@@ -146,7 +146,7 @@ struct CoverPass : public Pass {
                for (auto f : out_files)
                        fclose(f);
 
-               log_cmd_error("Coverage counters are only available in debug builds of Yosys for Linux.\n");
+               log_cmd_error("This version of Yosys was not built with support for code coverage counters.\n");
 #endif
 
                for (auto f : out_files)