From e81bcef1b239be9f9fe40122e3b58dd46688336a Mon Sep 17 00:00:00 2001 From: Per Hedbor <ph@opera.com> Date: Mon, 25 Jun 2012 20:13:15 +0200 Subject: [PATCH] Minimize overhead in the (sadly needed) body of the loop. If the body of the loop is removed, the foreach() is optimized away. Also, the assignment of the global counter is removed as well in the versions that use a global variable, which is really a bug. --- lib/modules/Tools.pmod/Shoot.pmod/Foreach.pike | 4 +--- lib/modules/Tools.pmod/Shoot.pmod/Foreach2.pike | 4 +--- lib/modules/Tools.pmod/Shoot.pmod/Foreach3.pike | 2 +- lib/modules/Tools.pmod/Shoot.pmod/Foreach4.pike | 2 +- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/lib/modules/Tools.pmod/Shoot.pmod/Foreach.pike b/lib/modules/Tools.pmod/Shoot.pmod/Foreach.pike index cfbba15b86..ad387cc72f 100644 --- a/lib/modules/Tools.pmod/Shoot.pmod/Foreach.pike +++ b/lib/modules/Tools.pmod/Shoot.pmod/Foreach.pike @@ -9,10 +9,8 @@ int n; void perform() { int res; - foreach( const, int i ) - res ++; - + res=1; n=sizeof(const); } diff --git a/lib/modules/Tools.pmod/Shoot.pmod/Foreach2.pike b/lib/modules/Tools.pmod/Shoot.pmod/Foreach2.pike index 0cc4fec757..46f8c448c7 100644 --- a/lib/modules/Tools.pmod/Shoot.pmod/Foreach2.pike +++ b/lib/modules/Tools.pmod/Shoot.pmod/Foreach2.pike @@ -9,10 +9,8 @@ int n; void perform() { int res; - foreach( const;int ind; int i ) - res ++; - + res=1; n=sizeof(const); } diff --git a/lib/modules/Tools.pmod/Shoot.pmod/Foreach3.pike b/lib/modules/Tools.pmod/Shoot.pmod/Foreach3.pike index 3e1a82f1b1..db06452d6b 100644 --- a/lib/modules/Tools.pmod/Shoot.pmod/Foreach3.pike +++ b/lib/modules/Tools.pmod/Shoot.pmod/Foreach3.pike @@ -10,7 +10,7 @@ void perform() { int res; foreach( const;;n ) - res ++; + res=1; n++; } diff --git a/lib/modules/Tools.pmod/Shoot.pmod/Foreach4.pike b/lib/modules/Tools.pmod/Shoot.pmod/Foreach4.pike index aed3362371..a17b932ae8 100644 --- a/lib/modules/Tools.pmod/Shoot.pmod/Foreach4.pike +++ b/lib/modules/Tools.pmod/Shoot.pmod/Foreach4.pike @@ -10,7 +10,7 @@ void perform() { int res; foreach( const;int ind;n ) - res ++; + res=1; n++; } -- GitLab