ARM's Speculation Tracking Support Lands In GCC As Part Of Spectre V1 Safeguards

Written by Michael Larabel in Linux Security on 3 August 2018 at 12:56 PM EDT. Add A Comment
After being available for the past few months in patch form, ARM's work on "-mtrack-speculation" to provide speculation tracking is now within the mainline GCC 9.0 compiler code-base.

When -mtrack-speculation is enabled, the compiler generates code for tracking data speculation to see whether the CPU control flow speculation matches its data flow calculations in order to see if the CPU is speculating incorrectly and the code potentially susceptible to a Spectre Variant One style exploit.

This speculation tracking support was added for AArch64 in the current GCC implementation but could be added to other architectures too. It doesn't sound like ARM will bring this to 32-bit ARM due to less registers and being more complicated to implement this functionality. I haven't seen any AArch64 GCC benchmarks with track-speculation enabled but will add it to my performance testing TODO list.

Those wanting the support right now can grab it via GCC SVN/Git while it will be part of the GCC 9.1 stable release in 2019.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via

Popular News This Week