diff options
author | Michael Ilseman <milseman@apple.com> | 2012-09-25 17:56:47 +0000 |
---|---|---|
committer | Michael Ilseman <milseman@apple.com> | 2012-09-25 17:56:47 +0000 |
commit | 13098443994339249fb3f085bbc4fbcdf9f033db (patch) | |
tree | 9499c4e27786d1e1d1957f38550c55d46d96e36d /include/llvm/Transforms | |
parent | a3c3e1f8e2dc3572564426a420c293a271630c7b (diff) | |
download | external_llvm-13098443994339249fb3f085bbc4fbcdf9f033db.zip external_llvm-13098443994339249fb3f085bbc4fbcdf9f033db.tar.gz external_llvm-13098443994339249fb3f085bbc4fbcdf9f033db.tar.bz2 |
Expansions for u/srem, using the udiv expansion. More unit tests for udiv and u/srem.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164614 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Transforms')
-rw-r--r-- | include/llvm/Transforms/Utils/IntegerDivision.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/llvm/Transforms/Utils/IntegerDivision.h b/include/llvm/Transforms/Utils/IntegerDivision.h index 8d3f53e..cecc807 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 |