Xref: utzoo comp.lang.c:12422 comp.arch:6292 Path: utzoo!attcan!uunet!lll-winken!lll-tis!ames!ll-xn!mit-eddie!uw-beaver!uw-june!uw-entropy!dataio!bright From: bright@Data-IO.COM (Walter Bright) Newsgroups: comp.lang.c,comp.arch Subject: What is loop unfolding Message-ID: <1686@dataio.Data-IO.COM> Date: 8 Sep 88 18:01:25 GMT References: <5612@june.cs.washington.edu> <3010@wright.mips.COM> <403@marob.MASA.COM> Reply-To: bright@dataio.Data-IO.COM (Walter Bright) Organization: Data I/O Corporation; Redmond, WA Lines: 17 In article <403@marob.MASA.COM> samperi@marob.masa.com (Dominick Samperi) writes: >Sorry for jumping into this discussion rather late, but could someone >please give a brief definition of "loop unrolling." It is the conversion of loops like: for (i = 0; i < 2; i++) foo(i); into: i = 0; foo(i); i = 1; foo(i); i = 2; Constant propagation and dead assignment elimination is then done in an attempt to reduce the above to: foo(0); foo(1); Note: my optimizer does not do loop unrolling. Loop unrolling is, however, common among Fortran optimizers.