[llvm-commits] [llvm] r114510 - in /llvm/trunk: lib/Target/X86/X86ISelDAGToDAG.cpp test/CodeGen/X86/movgs.ll

Chris Lattner sabre at nondot.org
Tue Sep 21 17:11:32 PDT 2010


Author: lattner
Date: Tue Sep 21 19:11:31 2010
New Revision: 114510

URL: http://llvm.org/viewvc/llvm-project?rev=114510&view=rev
Log:
revert r114386 now that address modes work correctly, we get a nice
call through gs-relative memory now.

Modified:
    llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp
    llvm/trunk/test/CodeGen/X86/movgs.ll

Modified: llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp?rev=114510&r1=114509&r2=114510&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp Tue Sep 21 19:11:31 2010
@@ -403,10 +403,6 @@
       LD->getExtensionType() != ISD::NON_EXTLOAD)
     return false;
 
-  // FIXME: Calls can't fold loads through segment registers yet.
-  if (LD->getPointerInfo().getAddrSpace() > 255)
-    return false;
-  
   // Now let's find the callseq_start.
   while (HasCallSeq && Chain.getOpcode() != ISD::CALLSEQ_START) {
     if (!Chain.hasOneUse())

Modified: llvm/trunk/test/CodeGen/X86/movgs.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/movgs.ll?rev=114510&r1=114509&r2=114510&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/movgs.ll (original)
+++ llvm/trunk/test/CodeGen/X86/movgs.ll Tue Sep 21 19:11:31 2010
@@ -26,10 +26,8 @@
 
 ; rdar://8453210
 ; X32: test2:
-; X32: movl	%gs:(%eax), %eax
-; X32: movl	%eax, (%esp)
-; X32: call	*%eax
+; X32: movl	16(%esp), %eax
+; X32: call	*%gs:(%eax)
 
 ; X64: test2:
-; X64: movq	%gs:(%rdi), %rax
-; X64: callq	*%rax
+; X64: callq	*%gs:(%rdi)





More information about the llvm-commits mailing list