[llvm-commits] CVS: llvm/lib/CodeGen/MachineFunction.cpp

Chris Lattner lattner at cs.uiuc.edu
Wed Jun 2 01:04:00 PDT 2004


Changes in directory llvm/lib/CodeGen:

MachineFunction.cpp updated: 1.58 -> 1.59

---
Log message:

Inline findOptimalStorageSize into it's caller, both of which are sparc specific


---
Diffs of the changes:  (+18 -12)

Index: llvm/lib/CodeGen/MachineFunction.cpp
diff -u llvm/lib/CodeGen/MachineFunction.cpp:1.58 llvm/lib/CodeGen/MachineFunction.cpp:1.59
--- llvm/lib/CodeGen/MachineFunction.cpp:1.58	Mon May 24 02:14:26 2004
+++ llvm/lib/CodeGen/MachineFunction.cpp	Wed Jun  2 00:56:52 2004
@@ -24,6 +24,7 @@
 #include "llvm/Target/TargetFrameInfo.h"
 #include "llvm/Function.h"
 #include "llvm/iOther.h"
+#include "llvm/Type.h"
 #include "Support/LeakDetector.h"
 
 using namespace llvm;
@@ -187,7 +188,7 @@
 
 
 void MachineFrameInfo::print(const MachineFunction &MF, std::ostream &OS) const{
-  int ValOffset = MF.getTarget().getFrameInfo().getOffsetOfLocalArea();
+  int ValOffset = MF.getTarget().getFrameInfo()->getOffsetOfLocalArea();
 
   for (unsigned i = 0, e = Objects.size(); i != e; ++i) {
     const StackObject &SO = Objects[i];
@@ -239,7 +240,7 @@
 ComputeMaxOptionalArgsSize(const TargetMachine& target, const Function *F,
                            unsigned &maxOptionalNumArgs)
 {
-  const TargetFrameInfo &frameInfo = target.getFrameInfo();
+  const TargetFrameInfo &frameInfo = *target.getFrameInfo();
   
   unsigned maxSize = 0;
   
@@ -306,7 +307,7 @@
 						   MF.getFunction(),
                                                    maxOptionalNumArgs);
   staticStackSize = maxOptionalArgsSize
-    + MF.getTarget().getFrameInfo().getMinStackFrameSize();
+    + MF.getTarget().getFrameInfo()->getMinStackFrameSize();
 }
 
 int
@@ -314,17 +315,22 @@
 					      unsigned &getPaddedSize,
 					      unsigned  sizeToUse)
 {
-  if (sizeToUse == 0)
-    sizeToUse = MF.getTarget().findOptimalStorageSize(val->getType());
+  if (sizeToUse == 0) {
+    // All integer types smaller than ints promote to 4 byte integers.
+    if (val->getType()->isIntegral() && val->getType()->getPrimitiveSize() < 4)
+      sizeToUse = 4;
+    else
+      sizeToUse = MF.getTarget().getTargetData().getTypeSize(val->getType());
+  }
   unsigned align = SizeToAlignment(sizeToUse, MF.getTarget());
 
   bool growUp;
-  int firstOffset = MF.getTarget().getFrameInfo().getFirstAutomaticVarOffset(MF,
-									     growUp);
+  int firstOffset = MF.getTarget().getFrameInfo()->getFirstAutomaticVarOffset(MF,
+						 			     growUp);
   int offset = growUp? firstOffset + getAutomaticVarsSize()
                      : firstOffset - (getAutomaticVarsSize() + sizeToUse);
 
-  int aligned = MF.getTarget().getFrameInfo().adjustAlignment(offset, growUp, align);
+  int aligned = MF.getTarget().getFrameInfo()->adjustAlignment(offset, growUp, align);
   getPaddedSize = sizeToUse + abs(aligned - offset);
 
   return aligned;
@@ -361,12 +367,12 @@
   unsigned char align = MF.getTarget().getTargetData().getTypeAlignment(type);
   
   bool growUp;
-  int firstOffset = MF.getTarget().getFrameInfo().getRegSpillAreaOffset(MF, growUp);
+  int firstOffset = MF.getTarget().getFrameInfo()->getRegSpillAreaOffset(MF, growUp);
   
   int offset = growUp? firstOffset + getRegSpillsSize()
                      : firstOffset - (getRegSpillsSize() + size);
 
-  int aligned = MF.getTarget().getFrameInfo().adjustAlignment(offset, growUp, align);
+  int aligned = MF.getTarget().getFrameInfo()->adjustAlignment(offset, growUp, align);
   size += abs(aligned - offset); // include alignment padding in size
   
   incrementRegSpillsSize(size);  // update size of reg. spills area
@@ -380,12 +386,12 @@
   unsigned align = SizeToAlignment(size, MF.getTarget());
 
   bool growUp;
-  int firstOffset = MF.getTarget().getFrameInfo().getTmpAreaOffset(MF, growUp);
+  int firstOffset = MF.getTarget().getFrameInfo()->getTmpAreaOffset(MF, growUp);
 
   int offset = growUp? firstOffset + currentTmpValuesSize
                      : firstOffset - (currentTmpValuesSize + size);
 
-  int aligned = MF.getTarget().getFrameInfo().adjustAlignment(offset, growUp,
+  int aligned = MF.getTarget().getFrameInfo()->adjustAlignment(offset, growUp,
 							      align);
   size += abs(aligned - offset); // include alignment padding in size
 





More information about the llvm-commits mailing list