[all-commits] [llvm/llvm-project] f208c6: [X86] Make ENDBR instruction a scheduling boundary

topperc via All-commits all-commits at lists.llvm.org
Mon Aug 3 10:48:05 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: f208c659fb76b1ad8ae83dd10c4f0c30986d48ee
      https://github.com/llvm/llvm-project/commit/f208c659fb76b1ad8ae83dd10c4f0c30986d48ee
  Author: Joao Moreira <joao.moreira at intel.com>
  Date:   2020-08-03 (Mon, 03 Aug 2020)

  Changed paths:
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/lib/Target/X86/X86InstrInfo.h

  Log Message:
  -----------
  [X86] Make ENDBR instruction a scheduling boundary

Instructions should not be scheduled across ENDBR instructions, as this would result in the ENDBR being displaced, breaking the parity needed for the Indirect Branch Tracking feature of CET.

Currently, the X86IndirectBranchTracking pass is later than the instruction scheduling in the pipeline, what causes the bug to be unnoticeable and very hard (if not unfeasible) to be triggered while compiling C files with the standard LLVM setup. Yet, for correctness and to prevent issues in future changes, the compiler should prevent the such scheduling.

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




More information about the All-commits mailing list