1. An execution time estimation method performed by an execution time estimation device which estimates an execution time of a program, comprising the steps, performed by the execution time estimation device, of: extracting, from the program, a plurality of partial programs which are obtained by partitioning the program using at least one of a conditional branch instruction and a function call instruction as a boundary point, wherein at least one partial program of the plurality of partial programs includes a loop which is repeated a constant number of times; calculating an execution time of each partial program and storing the calculated execution time in a storage section, wherein, for the at least one partial program, calculating an execution time includes performing a first partial program degeneration processing and a second partial program degeneration processing with respect to the loop; in the first partial program degeneration processing, if the at least one partial program includes at least one first loop, and if a first loop is a multiple loop which is constituted only by a loop including one loop continue conditional instruction which is a branch for determining whether or not a repeat processing in the first loop is continued, calculating, if the first loop includes therein an if-else branch instruction, a probability that the if-else branch instruction is “True” and a probability that the if-else branch instruction is “False”; sequentially calculating an average execution time of the first loop in an order of loop position from innermost to outermost, based on the probabilities, and degenerating the calculated average execution times of the first loop into one execution time of the at least one partial program; and in the second partial program degeneration processing, if the at least one partial program includes therein at least one second loop, and if the second loop does not include therein the conditional branch instruction, if an iteration count in each second loop is a constant number of times, generating a sequence of an iteration count of the at least one partial program in each second loop; calculating a loop execution time estimate value by multiplying an execution time of a partial program corresponding to the second loop by an iteration count in the sequence of the iteration count; adding up the calculated execution time estimate value of each second loop; storing a leading instruction and an end instruction of the each partial program, and the calculated execution time of each of the partial programs, in the storage section, such that the leading instruction, the end instruction, and the execution time are associated with each other; if the program is executed, generating a branch history bit sequence which is a sequence of “True” and “False” on the conditional branch instruction, and storing the generated branch history bit sequence in the storage section but skipping a write of a sequence corresponding to the first loop and the second loop, in the branch history bit sequence; generating a partial program execution sequence in which an execution order of the partial programs is written, based on the branch history bit sequence; and adding up the execution times of the partial programs, based on the partial program execution sequence.