Layered vector architecture compatibility for cross-system portability
AssigneeInternational Business Machines Corporation
InventorsMichael K. Gschwind, Ronald I. McIntosh
Life of this patent
Estimating the term…
Abstract
An application that includes intrinsics defined in one architecture is to execute without change on a different architecture. Program code that depends on vector element ordering is obtained, and that program code is part of an application including one or more intrinsics. The one or more intrinsics are mapped from a first system architecture for which the application was written to a second system architecture. One or more operations of the program code are then converted from a first data layout to a second data layout. The application, including the mapped intrinsics and the converted data layout, is to be executed on a processor of the different architecture.
Claims7
A computer-implemented method for mapping applications between processors of different system architectures, the computer-implemented method comprising:
- obtaining, by a processor, program code that depends on vector element ordering, the program code being a part of an application comprising one or more intrinsics, the one or more intrinsics mapped from a first system architecture for which the application was written to a second system architecture on which the application is to be executed, the first system architecture having a first instruction set architecture different from a second instruction set architecture of the second system architecture, and wherein an intrinsic is a built-in function in a given programming language for which a compiler has knowledge and handles implementation thereof;
- converting, by the processor, one or more operations of the program code included in the application comprising the one or more intrinsics mapped to the second system architecture from a first data layout to a second data layout, wherein based on the converting, the application is executable on the processor, the processor configured based on the second system architecture;
- obtaining, by the processor, a description of semantic operations of the one or more intrinsics of the first system architecture;
- using the description to map the one or more intrinsics to emulated intrinsics of the second system architecture;
- wherein the using the description comprises converting the description into a compiler internal language of the second system architecture, the compiler internal language having a data representation corresponding to the first data layout of the first system architecture;
- and
- generating machine code using the compiler internal language with the data representation of the second system architecture.
Dependencies are inferred from the claim text.