[llvm-commits] CVS: llvm/lib/CodeGen/CallingConvLower.cpp
Chris Lattner
sabre at nondot.org
Mon Feb 26 20:43:23 PST 2007
Changes in directory llvm/lib/CodeGen:
CallingConvLower.cpp added (r1.1)
---
Log message:
move CC Lowering stuff to its own public interface
---
Diffs of the changes: (+34 -0)
CallingConvLower.cpp | 34 ++++++++++++++++++++++++++++++++++
1 files changed, 34 insertions(+)
Index: llvm/lib/CodeGen/CallingConvLower.cpp
diff -c /dev/null llvm/lib/CodeGen/CallingConvLower.cpp:1.1
*** /dev/null Mon Feb 26 22:43:12 2007
--- llvm/lib/CodeGen/CallingConvLower.cpp Mon Feb 26 22:43:02 2007
***************
*** 0 ****
--- 1,34 ----
+ //===-- llvm/CallingConvLower.cpp - Calling Conventions -------------------===//
+ //
+ // The LLVM Compiler Infrastructure
+ //
+ // This file was developed by Chris Lattner and is distributed under
+ // the University of Illinois Open Source License. See LICENSE.TXT for details.
+ //
+ //===----------------------------------------------------------------------===//
+ //
+ // This file implements the CCState class, used for lowering and implementing
+ // calling conventions.
+ //
+ //===----------------------------------------------------------------------===//
+
+ #include "llvm/CodeGen/CallingConvLower.h"
+ #include "llvm/Target/MRegisterInfo.h"
+ using namespace llvm;
+
+ CCState::CCState(const MRegisterInfo &mri) : MRI(mri) {
+ // No stack is used.
+ StackOffset = 0;
+
+ UsedRegs.resize(MRI.getNumRegs());
+ }
+
+
+ /// MarkAllocated - Mark a register and all of its aliases as allocated.
+ void CCState::MarkAllocated(unsigned Reg) {
+ UsedRegs[Reg/32] |= 1 << (Reg&31);
+
+ if (const unsigned *RegAliases = MRI.getAliasSet(Reg))
+ for (; (Reg = *RegAliases); ++RegAliases)
+ UsedRegs[Reg/32] |= 1 << (Reg&31);
+ }
More information about the llvm-commits
mailing list