Dale and Evan suggested putting the "check for setjmp" much earlier in the

machine code generation. That's a good idea, so I made it so.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104655 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bill Wendling
2010-05-26 00:32:40 +00:00
parent 6a45d681e5
commit be22683202
3 changed files with 53 additions and 38 deletions

View File

@ -114,9 +114,13 @@ class MachineFunction {
///
unsigned FunctionNumber;
/// The alignment of the function.
/// Alignment - The alignment of the function.
unsigned Alignment;
/// HasReturnsTwiceCall - Returns true if there's a call with a
/// "returns_twice" attribute, like setjmp.
bool HasReturnsTwiceCall;
MachineFunction(const MachineFunction &); // DO NOT IMPLEMENT
void operator=(const MachineFunction&); // DO NOT IMPLEMENT
public:
@ -181,6 +185,15 @@ public:
void EnsureAlignment(unsigned A) {
if (Alignment < A) Alignment = A;
}
/// hasReturnsTwiceCall - Returns true if there's a call with a
/// "returns_twice" attribute, like setjmp.
bool hasReturnsTwiceCall() const {
return HasReturnsTwiceCall;
}
void setReturnsTwiceCall(bool B) {
HasReturnsTwiceCall = B;
}
/// getInfo - Keep track of various per-function pieces of information for
/// backends that would like to do so.