diff options
author | Evan Cheng <evan.cheng@apple.com> | 2007-06-01 08:25:24 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2007-06-01 08:25:24 +0000 |
commit | 59aefd15e59450c04fadb34f5054b34a8878ffb0 (patch) | |
tree | 7cd4dba74134e0011c8d30f1c648be42a2812630 /include/llvm/Target/TargetLowering.h | |
parent | 398898cc6a4cba85d908444a2bb42b1a9fc3df2a (diff) | |
download | external_llvm-59aefd15e59450c04fadb34f5054b34a8878ffb0.zip external_llvm-59aefd15e59450c04fadb34f5054b34a8878ffb0.tar.gz external_llvm-59aefd15e59450c04fadb34f5054b34a8878ffb0.tar.bz2 |
Target specific ifcvt code duplication limit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37384 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Target/TargetLowering.h')
-rw-r--r-- | include/llvm/Target/TargetLowering.h | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/include/llvm/Target/TargetLowering.h b/include/llvm/Target/TargetLowering.h index cabaaa1..61c03b6 100644 --- a/include/llvm/Target/TargetLowering.h +++ b/include/llvm/Target/TargetLowering.h @@ -440,6 +440,13 @@ public: 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 /// offset pointer and addressing mode by reference if the node's 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 - /// (in number of instructions); default is 2. + /// limit (in number of instructions); default is 2. void setIfCvtBlockSizeLimit(unsigned 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: //===--------------------------------------------------------------------===// @@ -995,10 +1009,14 @@ private: /// buffers 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; + /// IfCvtDupBlockSizeLimit - The maximum allowed size for a block to be + /// duplicated during if-conversion. + unsigned IfCvtDupBlockSizeLimit; + /// StackPointerRegisterToSaveRestore - If set to a physical register, this /// specifies the register that llvm.savestack/llvm.restorestack should save /// and restore. |