[llvm] r296601 - [X86] Fix creating vreg def after use.

Ayman Musa via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 1 02:20:49 PST 2017


Author: aymanmus
Date: Wed Mar  1 04:20:48 2017
New Revision: 296601

URL: http://llvm.org/viewvc/llvm-project?rev=296601&view=rev
Log:
[X86] Fix creating vreg def after use. 


Modified:
    llvm/trunk/lib/Target/X86/X86FastISel.cpp

Modified: llvm/trunk/lib/Target/X86/X86FastISel.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86FastISel.cpp?rev=296601&r1=296600&r2=296601&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86FastISel.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86FastISel.cpp Wed Mar  1 04:20:48 2017
@@ -2423,17 +2423,22 @@ bool X86FastISel::X86SelectFPExtOrFPTrun
   if (OpReg == 0)
     return false;
 
+  unsigned ImplicitDefReg;
+  if (Subtarget->hasAVX()) {
+    ImplicitDefReg = createResultReg(RC);
+    BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DbgLoc,
+            TII.get(TargetOpcode::IMPLICIT_DEF), ImplicitDefReg);
+
+  }
+
   unsigned ResultReg = createResultReg(RC);
   MachineInstrBuilder MIB;
   MIB = BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DbgLoc, TII.get(TargetOpc),
                 ResultReg);
-  if (Subtarget->hasAVX()) {
-    unsigned ImplicitDefReg = createResultReg(RC);
-    BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DbgLoc,
-            TII.get(TargetOpcode::IMPLICIT_DEF), ImplicitDefReg);
 
+  if (Subtarget->hasAVX())
     MIB.addReg(ImplicitDefReg);
-  }
+
   MIB.addReg(OpReg);
   updateValueMap(I, ResultReg);
   return true;




More information about the llvm-commits mailing list