[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