Patent ID: 7343595

Claim:
A computer-implemented method for executing a program comprising a function call and one or more subsequent instructions, the method comprising steps of: processing, on a first thread, a function defined by the function call, the function having at least two programmer predefined typical return values; for each predefined return value, pre-processing on an additional thread, the one or more subsequent instructions which are associated with a given predefined return value, wherein said pre-processing is performed concurrent with the processing of the first thread; and responsive to completion of the processing of said function on said first thread, wherein said function returns an actual return value upon said completion, continuing processing of the additional thread associated with the actual return value while terminating at least one other additional thread that is not associated with the actual return value, such that the one or more subsequent instructions associated with the actual return value are speculatively executed prior to (i) the completion of the processing of said function and (ii) the return of the actual return value by said function.