Claims
- 1. A computer language translator which eliminates conditional branches in a computer program including:
- means for translating a program into a target language;
- means for eliminating a conditional branch instruction by replacing an instruction dependent on said conditional branch instruction with a combination of a predicated instruction and a speculative instruction wherein said predicated instruction is dependent on a branch predicate of said conditional branch instruction; and
- means for associating a semaphore with said speculative instruction.
- 2. The translator of claim 1 further including:
- means for including in an executable image of said program instructions to test said semaphore and to test said branch predicate.
- 3. The translator of claim 2 wherein said instructions to test said semaphore and to test said branch predicate include:
- a conditional move instruction wherein said conditional move instruction conditionally moves said semaphore dependent on said branch predicate.
- 4. The translator of claim 2 wherein said instructions to test said semaphore and to test said branch predicate include:
- a conditional move instruction wherein said conditional move instruction conditionally moves said branch predicate dependent on said semaphore.
- 5. The translator of claim 2 wherein said translator includes:
- means for including in an executable image of said program instructions to report an exception if said test of said semaphore indicates an exception occurred when said speculative instruction was executed and said test of said branch predicate indicates that said speculative instruction should have executed.
- 6. The translator of claim 1 further including:
- means for including in an executable image of said program instructions to initialize said semaphore prior to executing said speculative instruction.
- 7. The translator of claim 1 wherein said semaphore is represented as a pattern of at least one bit in a general register.
- 8. The translator of claim 1 wherein said means for associating further comprises:
- means for including in an executable image of said program a data structure which maps said speculative instruction to said semaphore.
Parent Case Info
This is a divisional of copending application Ser. No. 08/270,192 filed on Jul. 1, 1994.
US Referenced Citations (5)
Number |
Name |
Date |
Kind |
5193158 |
Kinney et al. |
Mar 1993 |
|
5265213 |
Weiser et al. |
Nov 1993 |
|
5420990 |
McKeen et al. |
May 1995 |
|
5421022 |
McKeen et al. |
May 1995 |
|
5428807 |
McKeen et al. |
Jun 1995 |
|
Divisions (1)
|
Number |
Date |
Country |
Parent |
270192 |
Jul 1994 |
|