[all-commits] [llvm/llvm-project] c74dd6: [X86] Add a Pass that builds a Condensed CFG for L...

Scott Constable via All-commits all-commits at lists.llvm.org
Fri Apr 3 13:02:27 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: c74dd640fd740c6928f66a39c7c15a014af3f66f
      https://github.com/llvm/llvm-project/commit/c74dd640fd740c6928f66a39c7c15a014af3f66f
  Author: Scott Constable <scott.d.constable at intel.com>
  Date:   2020-04-03 (Fri, 03 Apr 2020)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/ToolChains/Arch/X86.cpp
    M clang/test/Driver/x86-target-features.c
    M llvm/lib/Target/X86/CMakeLists.txt
    A llvm/lib/Target/X86/ImmutableGraph.h
    M llvm/lib/Target/X86/X86.h
    M llvm/lib/Target/X86/X86.td
    A llvm/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp
    M llvm/lib/Target/X86/X86Subtarget.h
    M llvm/lib/Target/X86/X86TargetMachine.cpp
    M llvm/test/CodeGen/X86/O0-pipeline.ll
    M llvm/test/CodeGen/X86/O3-pipeline.ll
    A llvm/test/CodeGen/X86/lvi-hardening-gadget-graph.ll

  Log Message:
  -----------
  [X86] Add a Pass that builds a Condensed CFG for Load Value Injection (LVI) Gadgets

Adds a new data structure, ImmutableGraph, and uses RDF to find LVI gadgets and add them to a MachineGadgetGraph.

More specifically, a new X86 machine pass finds Load Value Injection (LVI) gadgets consisting of a load from memory (i.e., SOURCE), and any operation that may transmit the value loaded from memory over a covert channel, or use the value loaded from memory to determine a branch/call target (i.e., SINK).

Also adds a new target feature to X86: +lvi-load-hardening

The feature can be added via the clang CLI using -mlvi-hardening.

Differential Revision: https://reviews.llvm.org/D75936




More information about the All-commits mailing list