[llvm-commits] [llvm] r98042 - /llvm/trunk/lib/Target/X86/X86InstrInfo.cpp

Dan Gohman gohman at apple.com
Mon Mar 8 19:01:40 PST 2010


Author: djg
Date: Mon Mar  8 21:01:40 2010
New Revision: 98042

URL: http://llvm.org/viewvc/llvm-project?rev=98042&view=rev
Log:
Don't try to fold V_SET0 and V_SETALLONES to loads in medium and
large code models.

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

Modified: llvm/trunk/lib/Target/X86/X86InstrInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrInfo.cpp?rev=98042&r1=98041&r2=98042&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrInfo.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86InstrInfo.cpp Mon Mar  8 21:01:40 2010
@@ -2525,6 +2525,11 @@
     // Folding a V_SET0 or V_SETALLONES as a load, to ease register pressure.
     // Create a constant-pool entry and operands to load from it.
 
+    // Medium and large mode can't fold loads this way.
+    if (TM.getCodeModel() != CodeModel::Small &&
+        TM.getCodeModel() != CodeModel::Kernel)
+      return NULL;
+
     // x86-32 PIC requires a PIC base register for constant pools.
     unsigned PICBase = 0;
     if (TM.getRelocationModel() == Reloc::PIC_) {





More information about the llvm-commits mailing list