This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PoC: Function Pointer Protection in C Programs


On Wed, Aug 21, 2013 at 07:04:58PM +0200, Stephen Röttger wrote:
> 
> > What is performance impact for program that just qsorts big array? It
> > looks like worst case scenario for me.
> 
> I just put together a quick test program that sorts an array of 10^6
> integers and stopped the execution time using "time". The results are as
> follows (+- 0,01s):
> 
> protection disabled, -O0:
> ./sort_nofpp_0  0,19s user 0,02s system 98% cpu 0,215 total
> 
> protection enabled, -O0
> ./sort_fpp_0  0,54s user 0,01s system 99% cpu 0,549 total
> 
> protection disabled, -O3
> ./sort_nofpp_3  0,15s user 0,01s system 98% cpu 0,157 total
> 
> protection enabled, -O3
> ./sort_fpp_3  0,51s user 0,00s system 99% cpu 0,511 total
> 
> So this makes quite a difference:
> 0,19s -> 0,54s
> 0,15s -> 0,51s

After bit of thought a loops with callback can be optimized by gcc.

It could be possible to teach CSE to rewrite

while(foo){
 check(p);
 (*p)(x,y,z);
}

into 

check(p);
while(foo){
 (*p)(x,y,z);
}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]