[llvm] b180261 - [X86] MWAITX_SAVE_RBX should not have EBX as an implicit use.

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Sun Oct 4 20:35:54 PDT 2020


Author: Craig Topper
Date: 2020-10-04T20:34:31-07:00
New Revision: b18026114ab1410d531559ad6d9f1b445b98a35f

URL: https://github.com/llvm/llvm-project/commit/b18026114ab1410d531559ad6d9f1b445b98a35f
DIFF: https://github.com/llvm/llvm-project/commit/b18026114ab1410d531559ad6d9f1b445b98a35f.diff

LOG: [X86] MWAITX_SAVE_RBX should not have EBX as an implicit use.

RBX was copied to a virtual register before this instruction
was created. And the EBX input for the final MWAITX is still
in a virtual register. So EBX isn't read by this pseudo.

Added: 
    

Modified: 
    llvm/lib/Target/X86/X86InstrCompiler.td

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/X86/X86InstrCompiler.td b/llvm/lib/Target/X86/X86InstrCompiler.td
index c20a2b88e118..07e7b17230e1 100644
--- a/llvm/lib/Target/X86/X86InstrCompiler.td
+++ b/llvm/lib/Target/X86/X86InstrCompiler.td
@@ -899,7 +899,7 @@ def LCMPXCHG16B_SAVE_RBX :
 // This pseudo must be used when the frame uses RBX/EBX as
 // the base pointer.
 // cf comment for LCMPXCHG16B_SAVE_RBX.
-let Defs = [EBX], Uses = [ECX, EAX, EBX],
+let Defs = [EBX], Uses = [ECX, EAX],
     Predicates = [HasMWAITX], SchedRW = [WriteSystem],
     isCodeGenOnly = 1, isPseudo = 1, Constraints = "$rbx_save = $dst" in {
 def MWAITX_SAVE_RBX :


        


More information about the llvm-commits mailing list