Target specific ifcvt code duplication limit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37384 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng
2007-06-01 08:25:24 +00:00
parent 398898cc6a
commit 59aefd15e5

View File

@@ -440,6 +440,13 @@ public:
return IfCvtBlockSizeLimit; return IfCvtBlockSizeLimit;
} }
/// getIfCvtDupBlockLimit - returns the target specific size limit for a
/// block to be considered for duplication. Any block whose size is greater
/// should not be duplicated to facilitate its predication.
virtual unsigned getIfCvtDupBlockSizeLimit() const {
return IfCvtDupBlockSizeLimit;
}
/// getPreIndexedAddressParts - returns true by value, base pointer and /// getPreIndexedAddressParts - returns true by value, base pointer and
/// offset pointer and addressing mode by reference if the node's address /// offset pointer and addressing mode by reference if the node's address
/// can be legally represented as pre-indexed load / store address. /// can be legally represented as pre-indexed load / store address.
@@ -758,11 +765,18 @@ protected:
} }
/// setIfCvtBlockSizeLimit - Set the target's if-conversion block size /// setIfCvtBlockSizeLimit - Set the target's if-conversion block size
/// (in number of instructions); default is 2. /// limit (in number of instructions); default is 2.
void setIfCvtBlockSizeLimit(unsigned Limit) { void setIfCvtBlockSizeLimit(unsigned Limit) {
IfCvtBlockSizeLimit = Limit; IfCvtBlockSizeLimit = Limit;
} }
/// setIfCvtDupBlockSizeLimit - Set the target's block size limit (in number
/// of instructions) to be considered for code duplication during
/// if-conversion; default is 2.
void setIfCvtDupBlockSizeLimit(unsigned Limit) {
IfCvtDupBlockSizeLimit = Limit;
}
public: public:
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
@@ -995,10 +1009,14 @@ private:
/// buffers /// buffers
unsigned JumpBufAlignment; unsigned JumpBufAlignment;
/// IfCvtBlockSizeLimit - The maximum allowed block size for if-conversion. /// IfCvtBlockSizeLimit - The maximum allowed size for a block to be
/// /// if-converted.
unsigned IfCvtBlockSizeLimit; unsigned IfCvtBlockSizeLimit;
/// IfCvtDupBlockSizeLimit - The maximum allowed size for a block to be
/// duplicated during if-conversion.
unsigned IfCvtDupBlockSizeLimit;
/// StackPointerRegisterToSaveRestore - If set to a physical register, this /// StackPointerRegisterToSaveRestore - If set to a physical register, this
/// specifies the register that llvm.savestack/llvm.restorestack should save /// specifies the register that llvm.savestack/llvm.restorestack should save
/// and restore. /// and restore.