[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