[PATCH] D75942: [x86][seses] No lfences in bb w/ 1 load and 0 stores

Zola Bridges via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 10 10:19:36 PDT 2020


zbrid created this revision.
Herald added subscribers: llvm-commits, jfb, hiraditya.
Herald added a project: LLVM.
zbrid added a reviewer: craig.topper.

Add a flag to the x86 Speculative Execution Side Effect Suppression Pass
that allows users to turn off adding LFENCEs in basic blocks with a
single load and no stores.

This is a part of a set of flags that can be used to experiment with
optimizing this mitigation for Load Value Injection.

One pager on Load Value Injection:
https://software.intel.com/security-software-guidance/software-guidance/load-value-injection

Deep dive on Load Value Injection:
https://software.intel.com/security-software-guidance/insights/deep-dive-load-value-injection

Results of performance testing

I ran the BoringSSL benchmarks which run many cryptographic operations
and reports the number of operations per second completed in a given
time.

Modified Mitigation vs Baseline
Geometric mean
0.073 (This can be read as the geomean ops/s of the mitigated program
was 7.3% of the ops/s of the unmitigated program. Similar below.)
Minimum
0.041
Quartile 1
0.060
Median
0.064
Quartile 3
0.081
Maximum
0.232

Fully Mitigated vs Baseline
Geometric mean
0.071
Minimum
0.041
Quartile 1
0.060
Median
0.063
Quartile 3
0.077
Maximum
0.230


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D75942

Files:
  llvm/lib/Target/X86/X86SpeculativeExecutionSideEffectSuppression.cpp
  llvm/test/CodeGen/X86/speculative-execution-side-effect-suppression-omit-lfence-in-bb-with-one-load-no-stores.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D75942.249437.patch
Type: text/x-patch
Size: 5879 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200310/bea955b6/attachment.bin>


More information about the llvm-commits mailing list