mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-08 18:31:23 +00:00
another random note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47831 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
150943c178
commit
53b7277917
@ -705,3 +705,26 @@ int f() {
|
||||
}
|
||||
|
||||
//===---------------------------------------------------------------------===//
|
||||
|
||||
The loop unroller should partially unroll loops (instead of peeling them)
|
||||
when code growth isn't too bad and when an unroll count allows simplification
|
||||
of some code within the loop. One trivial example is:
|
||||
|
||||
#include <stdio.h>
|
||||
int main() {
|
||||
int nRet = 17;
|
||||
int nLoop;
|
||||
for ( nLoop = 0; nLoop < 1000; nLoop++ ) {
|
||||
if ( nLoop & 1 )
|
||||
nRet += 2;
|
||||
else
|
||||
nRet -= 1;
|
||||
}
|
||||
return nRet;
|
||||
}
|
||||
|
||||
Unrolling by 2 would eliminate the '&1' in both copies, leading to a net
|
||||
reduction in code size. The resultant code would then also be suitable for
|
||||
exit value computation.
|
||||
|
||||
//===---------------------------------------------------------------------===//
|
||||
|
Loading…
Reference in New Issue
Block a user