Skip to content

remove_vector and remove_complex break all irep sharing even when the program doesn't use those features #275

@smowton

Description

@smowton

Suggested patch smowton@274e2ea checks whether the features are in use at all before using subtype, Forall_operands and other functions that break sharing. Processing Sakai (a Java program that obviously can't use either feature) this saved at least 20% of goto-analyzer's memory usage (maybe more, it exhausted by available memory before completing).

One caveat: in programs that do make heavy use of complex and vector types and which have highly nested expressions this may be costly due to repeated re-checking of sub-expressions.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions