Skip to main content

The Complexity of Copy Constant Detection in Parallel Programs

  • Conference paper
  • First Online:
STACS 2001 (STACS 2001)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2010))

Included in the following conference series:

  • 696 Accesses

Abstract

Despite of the well-known state-explosion problem, certain simple but important data-flow analysis problems known as gen/kill problems can be solved efficiently and completely for parallel programs with a shared state [7],[6],[2],[3],[13]. This paper shows that, in all probabil- ity, these surprising results cannot be generalized to significantly larger classes of data-flow analysis problems.

More specifically, we study the complexity of detecting copy constants in parallel programs, a problem that may be seen as representing the next level of difficulty of data-flow problems beyond gen/kill problems. We show that already the intraprocedural problem for loop-free parallel programs is co-NP-complete and that the interprocedural problem is even PSPACE-hard.

Gen/kill problems are characterized by the fact that all transfer functions are of the form λx.(x ⋀ a) ⋁ b, where a; b are constants from the underlying lattice of data-flow facts.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. S. A. Cook. The complexity of theorem-proving procedures. In ACM STOC’71, pages 151–158, 1971.

    Google Scholar 

  2. J. Esparza and J. Knoop. An automata-theoretic approach to interprocedural data-flow analysis. In FOSSACS’ 99, LNCS 1578, pages 14–30. Springer, 1999.

    Google Scholar 

  3. J. Esparza and A. Podelski. Efficient algorithms for pre* and post* on interprocedural parallel flow graphs. In ACM POPL’2000, pages 1–11, 2000.

    Google Scholar 

  4. R. Giegerich, U. Möncke, and R. Wilhelm. Invariance of approximative semantics with respect to program transformations. In GI 11. Jahrestagung, Informatik Fachberichte 50, pages 1–10. Springer, 1981.

    Google Scholar 

  5. G. A. Kildall. A unified approach to global program optimization. In ACM POPL’73, pages 194–206, 1973.

    Google Scholar 

  6. J. Knoop. Parallel constant propagation. In Euro-Par’98, LNCS 1470, pages 445–455. Springer, 1998.

    Google Scholar 

  7. J. Knoop, B. Steffen, and J. Vollmer. Parallelism for free: Efficient and optimal bitvector analyses for parallel programs. ACM Transactions on Programming Languages and Systems, 18(3):268–299, 1996.

    Article  Google Scholar 

  8. S. S. Muchnick. Advanced compiler design and implementation. Morgan Kaufmann Publishers, San Francisco, California, 1997.

    Google Scholar 

  9. R. Muth and S. Debray. On the complexity of flow-sensitive dataflow analysis. In ACM POPL’2000, pages 67–81, 2000.

    Google Scholar 

  10. C. H. Papadimitriou. Computational Complexity. Addison-Wesley, 1994.

    Google Scholar 

  11. G. Ramalingam. Context-sensitive synchronization-sensitive analysis is undecidable. Technical Report RC 21493, IBM T. J. Watson Research Center, 1999. To appear in TOPLAS.

    Google Scholar 

  12. J. R. Reif and H. R. Lewis. Symbolic evaluation and the global value graph. In ACM POPL’77, pages 104–118, 1977.

    Google Scholar 

  13. H. Seidl and B. Steffen. Constraint-based interprocedural analysis of parallel programs. In ESOP’2000, LNCS 1782, pages 351–365. Springer, 2000.

    Google Scholar 

  14. R. N. Taylor. Complexity of analyzing the synchronization structure of concurrent programs. Acta Informatica, 19:57–84, 1983.

    Article  MATH  MathSciNet  Google Scholar 

  15. F. Tip. A survey of program slicing techniques. Journal of Programming Languages, 3:121–181, 1995.

    Google Scholar 

  16. M. Weiser. Program slicing. IEEE Transactions on Software Engineering, SE-10(4):352–357, 1984.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Müller-Olm, M. (2001). The Complexity of Copy Constant Detection in Parallel Programs. In: Ferreira, A., Reichel, H. (eds) STACS 2001. STACS 2001. Lecture Notes in Computer Science, vol 2010. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44693-1_43

Download citation

  • DOI: https://doi.org/10.1007/3-540-44693-1_43

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-41695-1

  • Online ISBN: 978-3-540-44693-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics