XOR Swap Algorithm - Reasons For Avoidance in Practice

Reasons For Avoidance in Practice

Most modern compilers can optimize away the temporary variable in the naive swap, in which case the naive swap uses the same amount of memory and the same number of registers as the XOR swap and is at least as fast, and often faster. The XOR swap is also much less readable and completely opaque to anyone unfamiliar with the technique.

On modern CPU architectures, the XOR technique is considerably slower than using a temporary variable to do swapping. One reason is that modern CPUs strive to execute instructions in parallel via instruction pipelines. In the XOR technique, the inputs to each operation depend on the results of the previous operation, so they must be executed in strictly sequential order. If efficiency is of tremendous concern, it is advised to test the speeds of both the XOR technique and temporary variable swapping on the target architecture.

Read more about this topic:  XOR Swap Algorithm

Famous quotes containing the words reasons for, reasons, avoidance and/or practice:

    Youth does not require reasons for living, it only needs pretexts.
    José Ortega Y Gasset (1883–1955)

    “... But if you shrink from being scared,
    What would you say to war if it should come?
    That’s what for reasons I should like to know
    If you can comfort me by any answer.”
    “Oh, but war’s not for children it’s for men.”
    Robert Frost (1874–1963)

    The American Dream, the idea of the happy ending, is an avoidance of responsibility and commitment.
    Jill Robinson (b. 1936)

    It is not always possible to predict the response of a doting Jewish mother. Witness the occasion on which the late piano virtuoso Oscar Levant telephoned his mother with some important news. He had proposed to his beloved and been accepted. Replied Mother Levant: “Good, Oscar, I’m happy to hear it. But did you practice today?”
    Liz Smith (20th century)