Move the check for "calls setjmp" to SelectionDAGISel so that it can be used by

more than just the stack slot coloring algorithm.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104722 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bill Wendling
2010-05-26 19:46:12 +00:00
parent b2b31a6f93
commit 9af7e9a1b5
3 changed files with 50 additions and 33 deletions

View File

@@ -114,9 +114,14 @@ class MachineFunction {
///
unsigned FunctionNumber;
/// The alignment of the function.
/// Alignment - The alignment of the function.
unsigned Alignment;
/// CallsSetJmp - True if the function calls setjmp or sigsetjmp. This is used
/// to limit optimizations which cannot reason about the control flow of
/// setjmp.
bool CallsSetJmp;
MachineFunction(const MachineFunction &); // DO NOT IMPLEMENT
void operator=(const MachineFunction&); // DO NOT IMPLEMENT
public:
@@ -181,6 +186,17 @@ public:
void EnsureAlignment(unsigned A) {
if (Alignment < A) Alignment = A;
}
/// callsSetJmp - Returns true if the function calls setjmp or sigsetjmp.
bool callsSetJmp() const {
return CallsSetJmp;
}
/// setCallsSetJmp - Set a flag that indicates if there's a call to setjmp or
/// sigsetjmp.
void setCallsSetJmp(bool B) {
CallsSetJmp = B;
}
/// getInfo - Keep track of various per-function pieces of information for
/// backends that would like to do so.