Conference item
Hybrid top-down and bottom-up interprocedural analysis
- Abstract:
- Interprocedural static analyses are broadly classified into top-down and bottom-up, depending upon how they compute, instantiate, and reuse procedure summaries. Both kinds of analyses are challenging to scale: top-down analyses are hindered by ineffective reuse of summaries whereas bottom-up analyses are hindered by inefficient computation and instantiation of summaries. This paper presents a hybrid approach SWIFT that combines top-down and bottomup analyses in a manner that gains their benefits without suffering their drawbacks. SWIFT is general in that it is parametrized by the top-down and bottom-up analyses it combines. We show an instantiation of SWIFT on a type-state analysis and evaluate it on a suite of 12 Java programs of size 60-250 KLOC each. SWIFT outperforms both conventional approaches, finishing on all the programs while both of those approaches fail on the larger programs
- Publication status:
- Published
- Peer review status:
- Reviewed (other)
Actions
Access Document
- Publisher copy:
- 10.1145/2594291.2594328
Authors
- Publisher:
- Association for Computing Machinery
- Host title:
- Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation
- Journal:
- Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation More from this journal
- Pages:
- 249-258
- Publication date:
- 2014-09-06
- Acceptance date:
- 2014-02-05
- DOI:
- ISBN:
- 9781450327848
- Pubs id:
-
pubs:581045
- UUID:
-
uuid:f18f2f41-72b7-4947-b467-ba1f9f262353
- Local pid:
-
pubs:581045
- Source identifiers:
-
581045
- Deposit date:
-
2016-01-03
- ARK identifier:
Terms of use
- Copyright holder:
- Zhang, Mangal, and Naik et al
- Copyright date:
- 2014
- Notes:
- © Copyright is held by the owner/author(s) . This paper was first presented at the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation, June 9-11, 2014. Edinburgh, UK.
If you are the owner of this record, you can report an update to it here: Report update to this record