Temporarily reverting r55292. It's causing a bootstraping failure:
authorBill Wendling <isanbard@gmail.com>
Sun, 24 Aug 2008 21:45:30 +0000 (21:45 +0000)
committerBill Wendling <isanbard@gmail.com>
Sun, 24 Aug 2008 21:45:30 +0000 (21:45 +0000)
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/xgcc ... src/libiberty/make-temp-file.c -o make-temp-file.o
Assertion failed: (Node2Index[SU->NodeNum] > Node2Index[I->Dep->NodeNum] && "Wrong topological sorting"), function InitDAGTopologicalSorting, file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp, line 508.
../../../../llvm-gcc.src/libiberty/hashtab.c:955: internal compiler error: Abort trap
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://developer.apple.com/bugreporter> for instructions.
make[4]: *** [hashtab.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [multi-do] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-target-libiberty] Error 2
make: *** [all] Error 2

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55295 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/fold-call-2.ll

index 09a30db218a146b8746e774c5902ab13d585e60e..5d8cb1cd291af23fc80696a5702845f5f34e118f 100644 (file)
@@ -1457,12 +1457,12 @@ EmitTailCallStoreRetAddr(SelectionDAG & DAG, MachineFunction &MF,
 
 SDValue X86TargetLowering::LowerCALL(SDValue Op, SelectionDAG &DAG) {
   MachineFunction &MF = DAG.getMachineFunction();
-  SDValue Chain       = Op.getOperand(0);
+  SDValue Chain     = Op.getOperand(0);
   unsigned CC         = cast<ConstantSDNode>(Op.getOperand(1))->getValue();
   bool isVarArg       = cast<ConstantSDNode>(Op.getOperand(2))->getValue() != 0;
   bool IsTailCall     = cast<ConstantSDNode>(Op.getOperand(3))->getValue() != 0
                         && CC == CallingConv::Fast && PerformTailCallOpt;
-  SDValue Callee      = Op.getOperand(4);
+  SDValue Callee    = Op.getOperand(4);
   bool Is64Bit        = Subtarget->is64Bit();
   bool IsStructRet    = CallIsStructReturn(Op);
 
@@ -1499,11 +1499,6 @@ SDValue X86TargetLowering::LowerCALL(SDValue Op, SelectionDAG &DAG) {
       MF.getInfo<X86MachineFunctionInfo>()->setTCReturnAddrDelta(FPDiff);
   }
 
-  // If the address is a load, i.e. indirect function call, move callseq_start
-  // above the load. This makes it possible for the load to fold into the call.
-  if (Callee.Val == Chain.Val && ISD::isNormalLoad(Callee.Val) &&
-      Chain.hasOneUse() && Callee.hasOneUse())
-    Chain = Chain.getOperand(0);
   Chain = DAG.getCALLSEQ_START(Chain, DAG.getIntPtrConstant(NumBytes));
 
   SDValue RetAddrFrIdx;
index 349f986830a05c5f0caf89fc5f59af0bc5072ccf..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin | grep mov | count 1
-
-@f = external global void ()*          ; <void ()**> [#uses=1]
-
-define i32 @main() nounwind {
-entry:
-       load void ()** @f, align 8              ; <void ()*>:0 [#uses=1]
-       tail call void %0( ) nounwind
-       ret i32 0
-}