summaryrefslogtreecommitdiff
path: root/include/llvm/Transforms
diff options
context:
space:
mode:
authorMichael Ilseman <milseman@apple.com>2012-09-26 01:55:01 +0000
committerMichael Ilseman <milseman@apple.com>2012-09-26 01:55:01 +0000
commitb55462bcfb9acbf8654dff83159daf695dfc3ec4 (patch)
tree2cef07a819787c5867ee86de511e8b2def6a3d64 /include/llvm/Transforms
parent85042e658558e32a168a91379d158e6d694d6530 (diff)
downloadllvm-b55462bcfb9acbf8654dff83159daf695dfc3ec4.tar.gz
llvm-b55462bcfb9acbf8654dff83159daf695dfc3ec4.tar.bz2
llvm-b55462bcfb9acbf8654dff83159daf695dfc3ec4.tar.xz
Expansions for u/srem, using the udiv expansion. More unit tests for udiv and u/srem.
Fixed issue with Release build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164654 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Transforms')
-rw-r--r--include/llvm/Transforms/Utils/IntegerDivision.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/llvm/Transforms/Utils/IntegerDivision.h b/include/llvm/Transforms/Utils/IntegerDivision.h
index 8d3f53e6f9..cecc8075de 100644
--- a/include/llvm/Transforms/Utils/IntegerDivision.h
+++ b/include/llvm/Transforms/Utils/IntegerDivision.h
@@ -23,6 +23,16 @@ namespace llvm {
namespace llvm {
+ /// Generate code to calculate the remainder of two integers, replacing Rem
+ /// with the generated code. This currently generates code using the udiv
+ /// expansion, but future work includes generating more specialized code,
+ /// e.g. when more information about the operands are known. Currently only
+ /// implements 32bit scalar division (due to udiv's limitation), but future
+ /// work is removing this limitation.
+ ///
+ /// @brief Replace Rem with generated code.
+ bool expandRemainder(BinaryOperator *Rem);
+
/// Generate code to divide two integers, replacing Div with the generated
/// code. This currently generates code similarly to compiler-rt's
/// implementations, but future work includes generating more specialized code