Compiler algorithm to implement speculative stores
OwnerPaolo Faraboschiinventor
Life of this patent
Estimating the term…
Abstract
Apparatus for transforming computer software having a branch operation for conditionally bypassing a memory write operation. The apparatus includes computer executable program code stored in one or more computer readable storage media. The computer executable program code includes code for creating a storage location, code for moving the memory write operation above the branch operation, code for selecting a target address for the memory write operation, wherein the storage location is selected if the branch operation bypasses the memory write operation, and code for replacing an address in the memory write operation with the target address.
Claims21
Apparatus for transforming computer software, said computer software comprising a branch operation for conditionally bypassing a memory write operation, the apparatus comprising:
- a. one or more computer readable storage media;
- and
- b. computer executable program code stored in the one or more computer readable storage media, the computer executable program code comprising:
- i. code for creating a storage location;
- ii. code for moving said memory write operation above said branch operation;
- iii. code for selecting a target address for said memory write operation, wherein said storage location is selected if said branch operation bypasses said memory write operation;
- and
- iv. code for replacing an original address in said memory write operation with said target address.
Apparatus for transforming computer software, said computer software comprising a conditional memory write operation, the apparatus comprising:
- a. one or more computer readable storage media;
- and
- b. computer executable program code stored in the one or more computer readable storage media, the computer executable program code comprising:
- i. code for creating a local variable;
- ii. code for selecting either an original address of said conditional memory write operation or an address of said local variable;
- and
- iii. code for performing a memory write operation into said selected address.
Apparatus for transforming computer software, comprising:
- means for reading source code, wherein said source code includes a conditional memory write operation;
- and
- means for generating functionally equivalent code from said source code, wherein said functionally equivalent code contains a data-flow dependency, and wherein said functionally equivalent code is not fully predicated.
Dependencies are inferred from the claim text.