1. A non-transitory computer readable storage media having instructions stored thereon that, when executed by a computer, implement a method for optimizing if statements in a program, the method comprising: obtaining, for a conditional expression used in a conditional statement in the program, a set of conditional expressions having an inclusion relation; computing a first provisional cost corresponding to the conditional expression being positive, and a second provisional cost corresponding to the conditional expression being negative; and moving the conditional expression to a move destination, wherein the move destination is determined by performing a data-flow analysis using expressions of positive and negative conditions of the conditional expression, and wherein moving the conditional expression comprises: in response to a result of the conditional expression not being cached in a variable, generating an if statement for the conditional expression and caching the result of the conditional expression in a new variable, wherein the if statement is generated in increasing order of the first provisional cost and the second provisional cost; and in response to the result of the conditional expression being cached in a variable, replacing a conditional operator of the conditional expression with a logical operator, prior to caching the result in the new variable.
1. A non-transitory computer readable storage media having instructions stored thereon that, when executed by a computer, implement a method for optimizing if statements in a program, the method comprising: obtaining, for a conditional expression used in a conditional statement in the program, a set of conditional expressions having an inclusion relation; computing a first provisional cost corresponding to the conditional expression being positive, and a second provisional cost corresponding to the conditional expression being negative; and moving the conditional expression to a move destination, wherein the move destination is determined by performing a data-flow analysis using expressions of positive and negative conditions of the conditional expression, and wherein moving the conditional expression comprises: in response to a result of the conditional expression not being cached in a variable, generating an if statement for the conditional expression and caching the result of the conditional expression in a new variable, wherein the if statement is generated in increasing order of the first provisional cost and the second provisional cost; and in response to the result of the conditional expression being cached in a variable, replacing a conditional operator of the conditional expression with a logical operator, prior to caching the result in the new variable. 3. The non-transitory computer readable storage media of claim 1 , wherein, in response to the conditional expression not affecting a part of the program beyond a scope of the conditional statement that includes the conditional expression, the move destination is an area in which the conditional expression has a possibility of being executed in the program based on the result of the conditional statement; and in response to the conditional expression affecting a part of the program beyond the scope of the conditional statement that includes the conditional expression, the move destination is an area in which the conditional expression is definitely executed.