log buildC
Jordi Baylina jordi@baylina.cat
Mon, 27 Jul 2020 05:00:47 +0200
2 files changed,
24 insertions(+),
6 deletions(-)
M
src/build.js
→
src/build.js
@@ -37,15 +37,22 @@ ctx.addConstant = addConstant;
ctx.addConstant(ctx.F.zero); ctx.addConstant(ctx.F.one); + if (ctx.verbose) console.log("buildHeader..."); buildHeader(ctx); + if (ctx.verbose) console.log("buildEntryTables..."); buildEntryTables(ctx); ctx.globalNames = ctx.uniqueNames; + if (ctx.verbose) console.log("buildCode..."); buildCode(ctx); + if (ctx.verbose) console.log("buildComponentsArray..."); buildComponentsArray(ctx); + if (ctx.verbose) console.log("buildMapIsInput..."); buildMapIsInput(ctx); + + if (ctx.verbose) console.log("buildWit2Sig..."); buildWit2Sig(ctx); }@@ -56,6 +63,7 @@ const codes_hashMaps = [];
const codes_componentEntries = []; const definedHashMaps = {}; for (let i=0; i<ctx.components.length; i++) { + if (ctx.verbose && (i%1000 ==0)) console.log(`buildEntryTables component: ${i}/${ctx.components.length}`); const {htName, htMap} = addHashTable(i); let code = "";@@ -131,6 +139,7 @@ const fDefined = {};
const fnComponents = []; for (let i=0; i<ctx.components.length; i++) { + if (ctx.verbose && (i%1000 ==0)) console.log(`buildCode component: ${i}/${ctx.components.length}`); const {h, instanceDef} = hashComponentCall(ctx, i); const fName = ctx.components[i].template+"_"+h; if (!fDefined[fName]) {@@ -180,6 +189,7 @@ }
function buildComponentsArray(ctx) { for (let i=0; i< ctx.components.length; i++) { + if (ctx.verbose && (i%10000 ==0)) console.log(`buildComponentsArray component: ${i}/${ctx.components.length}`); let newThread; if (ctx.newThreadTemplates) { if (ctx.newThreadTemplates.test(ctx.components[i].template)) {@@ -217,6 +227,7 @@ let i;
let map = []; let acc = 0; for (i=0; i<ctx.signals.length; i++) { + if (ctx.verbose && (i%100000 ==0)) console.log(`buildMapIsInput signal: ${i}/${ctx.signals.length}`); if (ctx.signals[i].o & ctx.IN) { acc = acc | (1 << (i%32) ); }@@ -243,6 +254,7 @@ ctx.totals[ctx.stPRVINPUT] +
ctx.totals[ctx.stINTERNAL]; const arr = Array(NVars); for (let i=0; i<ctx.signals.length; i++) { + if (ctx.verbose && (i%100000 ==0)) console.log(`buildWit2Sig signal: ${i}/${ctx.signals.length}`); const outIdx = ctx.signals[i].id; if (ctx.signals[i].e>=0) continue; // If has an alias, continue.. assert(typeof outIdx != "undefined", `Signal ${i} does not have index`);
M
src/compiler.js
→
src/compiler.js
@@ -119,6 +119,16 @@ if (ctx.error) {
throw(ctx.error); } + if (options.r1csFileName) { + measures.generateR1cs = -performance.now(); + await buildR1cs(ctx, options.r1csFileName); + measures.generateR1cs += performance.now(); + } + + if (ctx.error) throw(ctx.error); + + delete ctx.constraints; // Liberate memory. + if (options.cSourceWriteStream) { if (ctx.verbose) console.log("Generating c..."); measures.generateC = -performance.now();@@ -130,6 +140,8 @@ measures.generateC += performance.now();
// await new Promise(fulfill => options.cSourceWriteStream.on("finish", fulfill)); } + + if (ctx.error) throw(ctx.error); if ((options.wasmWriteStream)||(options.watWriteStream)) { if (ctx.verbose) console.log("Generating wasm...");@@ -151,12 +163,6 @@ }
// const mainCode = gen(ctx,ast); if (ctx.error) throw(ctx.error); - - if (options.r1csFileName) { - measures.generateR1cs = -performance.now(); - await buildR1cs(ctx, options.r1csFileName); - measures.generateR1cs += performance.now(); - } if (options.symWriteStream) { measures.generateSyms = -performance.now();