Skip to main content

Generation of Control and Data Flow Graphs from Scheduled and Pipelined Assembly Code

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 4339))

Abstract

High-level synthesis tools generally convert abstract designs described in a high-level language into a control and data flow graph (CDFG), which is then optimized and mapped to hardware. However, there has been little work on generating CDFGs from highly pipelined software binaries, which complicate the problem of determining data flow propagation and dependencies. This paper presents a methodology for generating CDFGs from highly pipelined and scheduled assembly code that correctly represents the data dependencies and propagation of data through the program control flow. This process consists of three stages: generating a control flow graph, linearizing the assembly code, and generating the data flow graph. The proposed methodology was implemented in the FREEDOM compiler and tested on 8 highly pipelined software binaries. Results indicate that data dependencies were correctly identified in the designs, allowing the compiler to perform complex optimizations to reduce clock cycles.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Amme, W., Braun, P., Thomasset, F., Zehendner, E.: Data Dependence Analysis of Assembly Code. International Journal of Parallel Programming 28(5) (2000)

    Google Scholar 

  2. Banerjee, U.: Dependence Analysis for Supercomputers. Kluwer Academic Publishers, Norwell (1988)

    Google Scholar 

  3. Cifuentes, C., Gough, K.: A Methodology for Decomposition. In: Proceedings for XIX Conferencia Latinoamericana de Informatica, Buenos Aires, Argentina, pp. 257–266 (1993)

    Google Scholar 

  4. Cifuentas, C., Malhotra, V.: Binary Translation: Static, Dynamic, Retargetable? In: Proceedings for the International Conference on Software Maintenance (ICSM), Monterey, CA, pp. 340–349 (1996)

    Google Scholar 

  5. Cifuentes, C., Simon, D., Fraboulet, A.: Assembly to High-Level Language Translation. In: Proceedings of the International Conference on Software Maintenance (ICSM), Washington, DC, pp. 228–237 (1998)

    Google Scholar 

  6. Cooper, K., Harvey, T., Waterman, T.: Building a Control-Flow Graph from Scheduled Assembly Code. Technical Report 02-399. Department of Computer Science, Rice University, Houston, TX (2002)

    Google Scholar 

  7. Decker, B., Kästner, D.: Reconstructing Control Flow from Predicated Assembly Code. In: Krall, A. (ed.) SCOPES 2003. LNCS, vol. 2826, pp. 81–100. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  8. Kästner, D., Wilhelm, S.: Generic Control Flow Reconstruction from Assembly Code. In: Proceedings of the Joint Conference on Languages, Compilers and Tools for Embedded Systems (LCTES), vol. 37(7), pp. 46–55 (2002)

    Google Scholar 

  9. Kruegel, C., Robertson, W., Valeur, F., Vigna, G.: Static Disassembly of Obfuscated Binaries. In: Proceedings of USENIX Security 2004, San Diego, CA, pp. 255–270 (2004)

    Google Scholar 

  10. Levine, B., Schmidt, H.: Efficient Application Representation for HASTE: Hybrid Architectures with a Single Executable. In: Proceedings of the 11th Annual IEEE Symposium on Field-Programmable Custom Computing Machines, Napa, CA, pp. 101–107 (2003)

    Google Scholar 

  11. Mittal, G., Zaretsky, D., Tang, X., Banerjee, P.: Automatic Translation of Software Binaries onto FPGAs. In: Proceedings of the 41st Annual Conference on Design Automation, San Diego, CA, pp. 389–394 (2004)

    Google Scholar 

  12. Mittal, G., Zaretsky, D., Memik, G., Banerjee, P.: Automatic Extraction of Function Bodies from Software Binaries. In: Proceedings for the IEEE/ACM Asia and South Pacific Design Automation Conference (ASPDAC), Beijing, China (2005)

    Google Scholar 

  13. Muchnick, S.: Advanced Compiler Design Implementation. Morgan Kaufmann Publishers, San Francisco (1997)

    Google Scholar 

  14. Ramsey, N., Fernandez, M.: New Jersey Machine-Code Toolkit. In: Proceedings of the 1995 USENIX Technical Conference, New Orleans, LA, pp. 289–302 (1995)

    Google Scholar 

  15. Ramsey, N., Fernandez, M.: Specifying Representations of Machine Instructions. In: ACM Transactions on Programming Languages and Systems (TOPLAS), New York, NY, vol. 19(3), pp. 492–524 (1997)

    Google Scholar 

  16. Stitt, G., Vahid, F.: Dynamic Hardware/Software Partitioning: A First Approach. In: Proceedings of the Design Automation Conference, Anaheim, CA, pp. 250–255 (2003)

    Google Scholar 

  17. Stitt, G., Vahid, F.: Hardware/Software Partitioning of Software Binaries. In: Proceedings of the International Conference of Computer Aided Design (ICCAD), Santa Clara, CA, pp. 164–170 (2002)

    Google Scholar 

  18. Ye, Z., Moshovos, A., Hauck, S., Banerjee, P.: CHIMAERA: A High-Performance Architecture with a Tightly-Coupled Reconfigurable Functional Unit. In: Proceedings of the 27th International Symposium on Computer Architecture, Vancouver, Canada, pp. 225–235 (2000)

    Google Scholar 

  19. Zaretsky, D., Mittal, G., Tang, X., Banerjee, P.: Overview of the FREEDOM Compiler for Mapping DSP Software to FPGAs. In: Proceedings of the 12th Annual IEEE Symposium on Field-Programmable Custom Computing Machines, Napa, CA, pp. 37–46 (2004)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Zaretsky, D.C., Mittal, G., Dick, R., Banerjee, P. (2006). Generation of Control and Data Flow Graphs from Scheduled and Pipelined Assembly Code. In: Ayguadé, E., Baumgartner, G., Ramanujam, J., Sadayappan, P. (eds) Languages and Compilers for Parallel Computing. LCPC 2005. Lecture Notes in Computer Science, vol 4339. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-69330-7_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-69330-7_6

  • Publisher Name: Springer, Berlin, Heidelberg

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

  • Online ISBN: 978-3-540-69330-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics