1. A non-transitory computer readable storage medium storing at least one program configured for execution by at least one processor of a computer system, wherein the at least one program comprising instructions executable to: identify loops and corresponding basic blocks within a plurality of program instructions; and in response to detecting a given divergence point within an identified loop of the plurality of program instructions: arrange a plurality of instructions within the identified loop into a plurality of variable length very large instruction words (VLIWs), wherein at least one variable length VLIW comprises a plurality of instructions intermingled from a first basic block and a second basic block between the given divergence point and a corresponding convergence point, wherein the first basic block is in a first trace path between the given divergence point and the corresponding convergence point and a second basic block is in a second trace path between the given divergence point and the corresponding convergence point, the second trace path being different from the first trace path; and add to the plurality of program instructions program code that: updates a size register to indicate a number of instructions to fetch for the variable length VLIW which is identified by a next program counter (PC) register; and updates a vector register to store mappings between instructions of the variable length VLIW and a plurality of parallel execution lanes within a target processor.