From dcc5212aaf9809198584a93cd00e0bd75ed83108 Mon Sep 17 00:00:00 2001 From: Michael Ilseman Date: Wed, 19 Sep 2012 16:25:57 +0000 Subject: [PATCH] Doxygen-ify comments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164235 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Utils/IntegerDivision.cpp | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/lib/Transforms/Utils/IntegerDivision.cpp b/lib/Transforms/Utils/IntegerDivision.cpp index 2af9d04dc07..0187feb12c6 100644 --- a/lib/Transforms/Utils/IntegerDivision.cpp +++ b/lib/Transforms/Utils/IntegerDivision.cpp @@ -23,11 +23,11 @@ using namespace llvm; -// Generate code to divide two signed integers. Returns the quotient, rounded -// towards 0. Builder's insert point should be pointing at the sdiv -// instruction. This will generate a udiv in the process, and Builder's insert -// point will be pointing at the udiv (if present, i.e. not folded), ready to be -// expanded if the user wishes. +/// Generate code to divide two signed integers. Returns the quotient, rounded +/// towards 0. Builder's insert point should be pointing at the sdiv +/// instruction. This will generate a udiv in the process, and Builder's insert +/// point will be pointing at the udiv (if present, i.e. not folded), ready to +/// be expanded if the user wishes. static Value *GenerateSignedDivisionCode(Value *Dividend, Value *Divisor, IRBuilder<> &Builder) { // Implementation taken from compiler-rt's __divsi3 @@ -61,9 +61,9 @@ static Value *GenerateSignedDivisionCode(Value *Dividend, Value *Divisor, return Q; } -// Generates code to divide two unsigned scalar 32-bit integers. Returns the -// quotient, rounded towards 0. Builder's insert point should be pointing at the -// udiv instruction. +/// Generates code to divide two unsigned scalar 32-bit integers. Returns the +/// quotient, rounded towards 0. Builder's insert point should be pointing at +/// the udiv instruction. static Value *GenerateUnsignedDivisionCode(Value *Dividend, Value *Divisor, IRBuilder<> &Builder) { // The basic algorithm can be found in the compiler-rt project's @@ -265,6 +265,14 @@ static Value *GenerateUnsignedDivisionCode(Value *Dividend, Value *Divisor, return Q_5; } +/// 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 +/// when more information about the operands are known. Currently only +/// implements 32bit scalar division, but future work is removing this +/// limitation. +/// +/// @brief Replace Div with generated code. bool llvm::expandDivision(BinaryOperator *Div) { assert((Div->getOpcode() == Instruction::SDiv || Div->getOpcode() == Instruction::UDiv) && -- 2.34.1