Saturday 15 February 2014

c - Preserving the Execution pipeline -


Return types are often tested for errors, but the code that will continue to execute is specified in different ways Could.

  if (! Ret) {doNoErrorCode (); } Exit (1);  

or

  if (ret) {exit (1); } DoNoErrorCode (); In a way, heavyweight CPU can approximate the approximation / use of branches taken in the area using simple data - I studied 4-bit mechanism for branch speculation (-2, -1,0, + 1, + 2) Where zero is unknown and 2 will be considered as a true branch. 

Considering the above techniques, my question is about the structure of the code. I believe that there should be a conference between the key compiler and the principal architecture. These are my two questions.

  1. When the code is not a frequently-visited loop, can the boolean value be biased to fill the pipeline?
  2. The speculation about the branches should start with either true or false or zero (the pipeline must be full of something). What is this probability?

Behavior is different between CPUs, and often the compiler reorders instructions are available to you in these manuals. All the necessary information will be found.

To read the assembly code generated by the compiler, I think the only way is to see what happens.


No comments:

Post a Comment