[llvm-branch-commits] [llvm-branch] r106001 - in /llvm/branches/Apple/Troughton: ./ lib/CodeGen/SelectionDAG/InstrEmitter.cpp test/CodeGen/X86/2010-06-09-FastAllocRegisters.ll

Jakob Stoklund Olesen stoklund at 2pi.dk
Tue Jun 15 09:36:19 PDT 2010


Author: stoklund
Date: Tue Jun 15 11:36:19 2010
New Revision: 106001

URL: http://llvm.org/viewvc/llvm-project?rev=106001&view=rev
Log:
$ svn merge -c 105665 https://llvm.org/svn/llvm-project/llvm/trunk
--- Merging r105665 into '.':
U    lib/CodeGen/SelectionDAG/InstrEmitter.cpp
$ svn merge -c 105749 https://llvm.org/svn/llvm-project/llvm/trunk
--- Merging r105749 into '.':
A    test/CodeGen/X86/2010-06-09-FastAllocRegisters.ll
G    lib/CodeGen/SelectionDAG/InstrEmitter.cpp


Added:
    llvm/branches/Apple/Troughton/test/CodeGen/X86/2010-06-09-FastAllocRegisters.ll
      - copied unchanged from r105749, llvm/trunk/test/CodeGen/X86/2010-06-09-FastAllocRegisters.ll
Modified:
    llvm/branches/Apple/Troughton/   (props changed)
    llvm/branches/Apple/Troughton/lib/CodeGen/SelectionDAG/InstrEmitter.cpp

Propchange: llvm/branches/Apple/Troughton/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jun 15 11:36:19 2010
@@ -1 +1 @@
-/llvm/trunk:105358,105361,105369,105372,105399,105427,105437,105439,105441,105470,105473,105481,105498,105541,105554,105557,105585-105586,105634,105653,105669,105677,105745,105774-105775,105836,105845,105862,105938,105959,105965,105982
+/llvm/trunk:105358,105361,105369,105372,105399,105427,105437,105439,105441,105470,105473,105481,105498,105541,105554,105557,105585-105586,105634,105653,105665,105669,105677,105745,105749,105774-105775,105836,105845,105862,105938,105959,105965,105982

Modified: llvm/branches/Apple/Troughton/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/Apple/Troughton/lib/CodeGen/SelectionDAG/InstrEmitter.cpp?rev=106001&r1=106000&r2=106001&view=diff
==============================================================================
--- llvm/branches/Apple/Troughton/lib/CodeGen/SelectionDAG/InstrEmitter.cpp (original)
+++ llvm/branches/Apple/Troughton/lib/CodeGen/SelectionDAG/InstrEmitter.cpp Tue Jun 15 11:36:19 2010
@@ -821,14 +821,22 @@
         case InlineAsm::Kind_RegDef:
         for (; NumVals; --NumVals, ++i) {
           unsigned Reg = cast<RegisterSDNode>(Node->getOperand(i))->getReg();
-          MI->addOperand(MachineOperand::CreateReg(Reg, true));
+          // FIXME: Add dead flags for physical and virtual registers defined.
+          // For now, mark physical register defs as implicit to help fast
+          // regalloc. This makes inline asm look a lot like calls.
+          MI->addOperand(MachineOperand::CreateReg(Reg, true,
+                       /*isImp=*/ TargetRegisterInfo::isPhysicalRegister(Reg)));
         }
         break;
       case InlineAsm::Kind_RegDefEarlyClobber:
         for (; NumVals; --NumVals, ++i) {
           unsigned Reg = cast<RegisterSDNode>(Node->getOperand(i))->getReg();
-          MI->addOperand(MachineOperand::CreateReg(Reg, true, false, false, 
-                                                   false, false, true));
+          MI->addOperand(MachineOperand::CreateReg(Reg, /*isDef=*/ true,
+                         /*isImp=*/ TargetRegisterInfo::isPhysicalRegister(Reg),
+                                                   /*isKill=*/ false,
+                                                   /*isDead=*/ false,
+                                                   /*isUndef=*/false,
+                                                   /*isEarlyClobber=*/ true));
         }
         break;
       case InlineAsm::Kind_RegUse:  // Use of register.





More information about the llvm-branch-commits mailing list