[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