Unpredication, unscheduling, unspeculation: Reverse engineering itanium executables

Noah Snavely, Saumya K Debray, Gregory R. Andrews

Research output: Contribution to journalArticle

2 Scopus citations

Abstract

EPIC(Explicitly Parallel Instruction Computing) architectures, exemplified by the Intel Itanium, support a number of advanced architectural features, such as explicit instruction-level parallelism, instruction predication, and speculative loads from memory. However, compiler optimizations that take advantage of these features can profoundly restructure the program's code, making it potentially difficult to reconstruct the original program logic from an optimized Itanium executable. This paper describes techniques to undo some of the effects of such optimizations and thereby improve the quality of reverse engineering such executables.

Original languageEnglish (US)
Pages (from-to)99-115
Number of pages17
JournalIEEE Transactions on Software Engineering
Volume31
Issue number2
DOIs
Publication statusPublished - Feb 2005

    Fingerprint

Keywords

  • Code optimization
  • EPIC architectures
  • Predication
  • Reverse engineering
  • Speculation

ASJC Scopus subject areas

  • Electrical and Electronic Engineering
  • Computer Graphics and Computer-Aided Design
  • Software

Cite this