aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Target/TargetLowering.h
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2007-06-01 08:25:24 +0000
committerEvan Cheng <evan.cheng@apple.com>2007-06-01 08:25:24 +0000
commit59aefd15e59450c04fadb34f5054b34a8878ffb0 (patch)
tree7cd4dba74134e0011c8d30f1c648be42a2812630 /include/llvm/Target/TargetLowering.h
parent398898cc6a4cba85d908444a2bb42b1a9fc3df2a (diff)
downloadexternal_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.h24
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.