作者: Brad Calder , Dirk Grunwald
关键词: Compiler 、 Control flow 、 Subroutine 、 Speculative execution 、 Branch predictor 、 Object-oriented programming 、 Distributed computing 、 Computer science 、 Personalization 、 Instruction prefetch
摘要: Modern computer architectures increasingly depend on mechanisms that estimate future control flow decisions to increase performance. Mechanisms such as speculative execution and prefetching are becoming standard architectural rely prediction prefetch speculatively execute instructions. At the same time, programmers turning object-oriented languages their productivity. These commonly use run time dispatching implement object polymorphism. Dispatching is usually implemented using an indirect function call, which presents challenges existing techniques.We have measured occurrence of calls in a collection C++ programs. We show that, although it more important predict branches accurately, call also factor some programs will grow importance with growth programming. examine improvement offered by compile-time optimizations static dynamic techniques, demonstrate how compilers can branch improve performance Using these methods we examined, number instructions between mispredicted breaks be doubled computers.