Skip to content

ICFG Optimizations -- graph merging and others.#94

Merged
pdschubert merged 1 commit intosecure-software-engineering:masterfrom
ddiepo-pjr:OptimizeIcfg
Feb 17, 2020
Merged

ICFG Optimizations -- graph merging and others.#94
pdschubert merged 1 commit intosecure-software-engineering:masterfrom
ddiepo-pjr:OptimizeIcfg

Conversation

@ddiepo-pjr
Copy link
Copy Markdown
Contributor

@ddiepo-pjr ddiepo-pjr commented Feb 13, 2020

The largest change performance wise is the change to the graph type to
use a vector for edge storage.

The merge function now mirrors the changes to the Points-To class to
avoid re-building the FunctionVertexMap from scratch.

Changes in constructionWalker avoid fetching the same data multiple
times back-to-back.

printAsDot was modified to allow the user to skip the edge labels,
because those are quite expensive. Moved code out of the header that is
only used internally to this function body.

ProjectIRDB.h does not use the LLVMPointsToGraph.h, so it was removed
which necessitated several other header changes.

The largest change performance wise is the change to the graph type to
use a vector for edge storage.

The merge function now mirrors the changes to the Points-To class to
avoid re-building the FunctionVertexMap from scratch.

Changes in constructionWalker avoid fetching the same data multiple
times back-to-back.

printAsDot was modified to allow the user to skip the edge labels,
because those are quite expensive.  Moved code out of the header that is
only used internally to this function body.


ProjectIRDB.h does not use the LLVMPointsToGraph.h, so it was removed
which necessitated several other header changes.
@pdschubert pdschubert merged commit 3756f52 into secure-software-engineering:master Feb 17, 2020
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.

2 participants