An Instruction Profiling Based Framework to Promote Software Portability




Ford, Blake W.

Journal Title

Journal ISSN

Volume Title



In recent history, most software has been built for a single hardware class and developers rarely needed to consider cross-platform development. With emerging paradigms like Edge computing and the introduction of alternative mainstream processing elements, we have reached a landmark for multi-platform development. Moreover, the barriers to successfully introducing a new CPU architecture are also falling, as demonstrated by RISC-V. This can only lead to greater fragmentation in the ecosystem of development platforms and tools that advocate for software portability lag far behind this trend. A notable example at present is the introduction of Apple silicon and Apple’s substantial efforts to migrate software from previously supported Intel CPUs to ARM. Unfortunately, in order to access the interesting features of a new platform, developers will be required to rebuild or port their existing software. Porting software can uncover unexpected behavior and produce uncertain results in code that was previously considered stable. A dearth of development tools geared towards porting software means addressing these problems requires significant work and it is difficult for developers to predict the performance and energy consumption of software early on without testing it on the target hardware. Privileged access to prototypes and limited options for simulation before release further complicate the problem. This dissertation proposes a cost-effective instruction profiling framework that promotes portable software by allowing developers to estimate certain metrics inherent to their software on other platforms without modifying their code and without direct access to hardware. Specifically, the framework includes three modules: (1) The instruction profiling module analyzes existing code in an efficient way and produces evaluation reports. (2) The estimation module leverages prerecorded metrics to calculate the performance of this code on another platform. (3) The instruction prediction module uses a machine learning approach to automatically generate cross-architecture code for other possible targets. The framework can forecast various metrics including instruction categorization, code coverage, and resource usage simultaneously. Data produced is comparable to existing off-the-shelf benchmarks but available for multiple platforms after a single profiling pass. Experiments herein confirm performance estimates are within externally established tolerances and powerful enough to provide automated assistance to developers considering a software port between disparate platforms.



portability, profiling


Ford, B. (2022). An instruction profiling based framework to promote software portability</i> (Unpublished dissertation). Texas State University, San Marcos, Texas.


Rights Holder

Rights License

Rights URI