Forgot these.
authorEvan Cheng <evan.cheng@apple.com>
Thu, 24 Jan 2008 00:22:01 +0000 (00:22 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Thu, 24 Jan 2008 00:22:01 +0000 (00:22 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46292 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
lib/CodeGen/SelectionDAG/TargetLowering.cpp

index e1b5ed175c76da882c8d6a3fe0631f015f3ea41c..93de4f0f75dd39d9e183b13426e9a0fa0ebde4e9 100644 (file)
@@ -3917,8 +3917,7 @@ TargetLowering::LowerArguments(Function &F, SelectionDAG &DAG) {
       Flags |= ISD::ParamFlags::ByVal;
       const PointerType *Ty = cast<PointerType>(I->getType());
       const Type *ElementTy = Ty->getElementType();
-      unsigned FrameAlign =
-          Log2_32(getTargetData()->getCallFrameTypeAlignment(ElementTy));
+      unsigned FrameAlign = Log2_32(getByValTypeAlignment(ElementTy));
       unsigned FrameSize  = getTargetData()->getABITypeSize(ElementTy);
       Flags |= (FrameAlign << ISD::ParamFlags::ByValAlignOffs);
       Flags |= (FrameSize  << ISD::ParamFlags::ByValSizeOffs);
@@ -4047,8 +4046,7 @@ TargetLowering::LowerCallTo(SDOperand Chain, const Type *RetTy,
       Flags |= ISD::ParamFlags::ByVal;
       const PointerType *Ty = cast<PointerType>(Args[i].Ty);
       const Type *ElementTy = Ty->getElementType();
-      unsigned FrameAlign =
-          Log2_32(getTargetData()->getCallFrameTypeAlignment(ElementTy));
+      unsigned FrameAlign = Log2_32(getByValTypeAlignment(ElementTy));
       unsigned FrameSize  = getTargetData()->getABITypeSize(ElementTy);
       Flags |= (FrameAlign << ISD::ParamFlags::ByValAlignOffs);
       Flags |= (FrameSize  << ISD::ParamFlags::ByValSizeOffs);
index 6fb27028a8efae1442968d8881d338903bda7ab8..3ccfcfa2e83e37ee5a63815383a651e64ba6d390 100644 (file)
@@ -414,6 +414,12 @@ unsigned TargetLowering::getVectorTypeBreakdown(MVT::ValueType VT,
   return 1;
 }
 
+/// getByValTypeAlignment - Return the desired alignment for ByVal aggregate
+/// function arguments in the caller parameter area.
+unsigned TargetLowering::getByValTypeAlignment(const Type *Ty) const {
+  return Log2_32(TD->getCallFrameTypeAlignment(Ty));
+}
+
 SDOperand TargetLowering::getPICJumpTableRelocBase(SDOperand Table,
                                                    SelectionDAG &DAG) const {
   if (usesGlobalOffsetTable())