Skip to content

feat: added benchmarking script#2535

Draft
schuler-henry wants to merge 12 commits into
staging/pentagon-aifrom
2534-interval-pentagon-ai-benchmark-and-dead-code-evaluation-script
Draft

feat: added benchmarking script#2535
schuler-henry wants to merge 12 commits into
staging/pentagon-aifrom
2534-interval-pentagon-ai-benchmark-and-dead-code-evaluation-script

Conversation

@schuler-henry

Copy link
Copy Markdown
Collaborator

@OliverGerstl @EagleoutIce schaut mal ob ich die Daten so richtig raus zieh aus flowr und ob die festgehaltenen Daten so sinnvoll/ausreichend sind.
Falls ihr noch punkte habt die man ergänzen kann, gerne schreiben.

In Olis Arbeit hab ich gesehen, dass er die einzelnen base-flowr steps separat gemessen hat, also dfg, cfg, ast, ...., wäre das hier auch sinnvoll? muss ich dafür im Zweifel was spezielles beachten wie die Reihenfolge in der ich das mach (weil sonst evtl. vorherige Graphen bereits erzeugt werden)?

- Remove unused inferred information for constant values and expression results after an assignment is complete/a condition has been processed.
@schuler-henry schuler-henry self-assigned this Jun 3, 2026
Comment thread src/abstract-interpretation/benchmarking.ts Outdated
Comment thread src/abstract-interpretation/benchmarking.ts Outdated
Comment thread src/abstract-interpretation/benchmarking.ts Outdated
Comment thread src/abstract-interpretation/benchmarking.ts
Comment thread src/abstract-interpretation/benchmarking.ts Outdated
Comment thread src/abstract-interpretation/benchmarking.ts
Comment thread src/abstract-interpretation/benchmarking.ts Outdated
Comment thread src/abstract-interpretation/benchmarking.ts
Comment thread src/abstract-interpretation/benchmarking.ts Outdated
Comment thread src/abstract-interpretation/benchmarking.ts
When using apply or tapply, the unary function gets two reads edges to the other two provided argumetns.
Therefore, when unary function is "called" with more than one arg not return bottom but overapproximate to top (undefined) to be sound.
dfgTag: VertexType | 'unknown';
}

void async function() {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this function would be more readable if you split parts of it into separate functions :)

const fileMetadataPath = path.join(outputDirectory, metadataOutputFile);
fs.rmSync(fileMetadataPath, { recursive: true, force: true });
fs.writeFileSync(fileMetadataPath, JSON.stringify(fileMetadata, null, 2));
}(); No newline at end of file

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, for comprehensibility, giving this function a name (e.g. main or so) and calling it by name would be better

const numberConstants = constants.filter(value => ast.idMap.get(value[0])?.type === RType.Number);

const functionCalls = dfg.verticesOfType(VertexType.FunctionCall).toArray();
const supportedExpressionFunctionCalls = functionCalls.filter(([_, dfgCall]) =>

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe it would also be interesting to filter these supported function calls for those calls for which you inferred anything?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants