Resolve comments from @daveshah1
authorEddie Hung <eddie@fpgeh.com>
Fri, 14 Jun 2019 19:00:02 +0000 (12:00 -0700)
committerEddie Hung <eddie@fpgeh.com>
Fri, 14 Jun 2019 19:00:02 +0000 (12:00 -0700)
backends/aiger/xaiger.cc
frontends/aiger/aigerparse.cc
techlibs/ice40/synth_ice40.cc

index 1e70f3230944f98288b9be3d82a8fbfcde736eec..42a2233e49650cc28a99ee50cfea508055457dac 100644 (file)
@@ -683,16 +683,18 @@ struct XAigerWriter
                f << "c";
 
                if (!box_list.empty() || !ff_bits.empty()) {
-                       std::stringstream h_buffer;
-                       auto write_h_buffer = [&h_buffer](int i32) {
+                       auto write_buffer = [](std::stringstream &buffer, int i32) {
                                // TODO: Don't assume we're on little endian
 #ifdef _WIN32
-                               int i32_be = _byteswap_ulong(i32);
+                               int32_t i32_be = _byteswap_ulong(i32);
 #else
-                               int i32_be = __builtin_bswap32(i32);
+                               int32_t i32_be = __builtin_bswap32(i32);
 #endif
-                               h_buffer.write(reinterpret_cast<const char*>(&i32_be), sizeof(i32_be));
+                               buffer.write(reinterpret_cast<const char*>(&i32_be), sizeof(i32_be));
                        };
+
+                       std::stringstream h_buffer;
+                       auto write_h_buffer = std::bind(write_buffer, std::ref(h_buffer), std::placeholders::_1);
                        write_h_buffer(1);
                        log_debug("ciNum = %zu\n", input_bits.size() + ff_bits.size() + ci_bits.size());
                        write_h_buffer(input_bits.size() + ff_bits.size() + ci_bits.size());
@@ -782,15 +784,7 @@ struct XAigerWriter
 
                        /*if (!ff_bits.empty())*/ {
                                std::stringstream r_buffer;
-                               auto write_r_buffer = [&r_buffer](int i32) {
-                                       // TODO: Don't assume we're on little endian
-#ifdef _WIN32
-                                       int i32_be = _byteswap_ulong(i32);
-#else
-                                       int i32_be = __builtin_bswap32(i32);
-#endif
-                                       r_buffer.write(reinterpret_cast<const char*>(&i32_be), sizeof(i32_be));
-                               };
+                               auto write_r_buffer = std::bind(write_buffer, std::ref(r_buffer), std::placeholders::_1);
                                log_debug("flopNum = %zu\n", ff_bits.size());
                                write_r_buffer(ff_bits.size());
                                int mergeability_class = 1;
index a72a829265b623ed87b945c8e99ec1dbe9cf8dab..4ce76daa570465e5d390bf030fdad734b1d05a60 100644 (file)
@@ -26,7 +26,7 @@
 #include <libgen.h>
 #include <stdlib.h>
 #endif
-#include <array>
+#include <inttypes.h>
 
 #include "kernel/yosys.h"
 #include "kernel/sigtools.h"
@@ -277,7 +277,7 @@ static uint32_t parse_xaiger_literal(std::istream &f)
        uint32_t l;
        f.read(reinterpret_cast<char*>(&l), sizeof(l));
        if (f.gcount() != sizeof(l))
-               log_error("Offset %ld: unable to read literal!\n", static_cast<int64_t>(f.tellg()));
+               log_error("Offset %" PRId64 ": unable to read literal!\n", static_cast<int64_t>(f.tellg()));
        // TODO: Don't assume we're on little endian
 #ifdef _WIN32
        return _byteswap_ulong(l);
index a60829764a5f7ef613c70c67ceb5131d0855aaec..d8e9786c55361bc0a7339e6d6f37db4ab12a28d6 100644 (file)
@@ -332,7 +332,7 @@ struct SynthIce40Pass : public ScriptPass
                        }
                        if (!noabc) {
                                if (abc == "abc9")
-                                       run(abc + stringf(" -dress -lut +/ice40/abc_%s.lut -box +/ice40/abc_%s.box", device_opt.c_str(), device_opt.c_str()), "(skip if -noabc)");
+                                       run(abc + stringf(" -lut +/ice40/abc_%s.lut -box +/ice40/abc_%s.box", device_opt.c_str(), device_opt.c_str()), "(skip if -noabc)");
                                else
                                        run(abc + " -dress -lut 4", "(skip if -noabc)");
                        }