From 0d51e7ec0d2dcbea9e304fd58deb05f37eb75635 Mon Sep 17 00:00:00 2001 From: Dale Johannesen Date: Tue, 19 Feb 2008 21:38:47 +0000 Subject: Expand ParameterAttributes to 32 bits (in preparation for adding alignment info, not there yet). Clean up interfaces to reference ParameterAttributes consistently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47342 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/IPO/ArgumentPromotion.cpp | 14 +++++++++----- lib/Transforms/IPO/DeadArgumentElimination.cpp | 13 ++++++++----- lib/Transforms/IPO/PruneEH.cpp | 2 +- lib/Transforms/Scalar/InstructionCombining.cpp | 21 +++++++++++++-------- 4 files changed, 31 insertions(+), 19 deletions(-) (limited to 'lib/Transforms') diff --git a/lib/Transforms/IPO/ArgumentPromotion.cpp b/lib/Transforms/IPO/ArgumentPromotion.cpp index 4486677e63..894e6ba564 100644 --- a/lib/Transforms/IPO/ArgumentPromotion.cpp +++ b/lib/Transforms/IPO/ArgumentPromotion.cpp @@ -405,7 +405,7 @@ Function *ArgPromotion::DoPromotion(Function *F, const ParamAttrsList *PAL = F->getParamAttrs(); // Add any return attributes. - if (unsigned attrs = PAL ? PAL->getParamAttrs(0) : 0) + if (ParameterAttributes attrs = PAL ? PAL->getParamAttrs(0) : ParamAttr::None) ParamAttrsVec.push_back(ParamAttrsWithIndex::get(0, attrs)); unsigned ArgIndex = 1; @@ -420,7 +420,8 @@ Function *ArgPromotion::DoPromotion(Function *F, ++NumByValArgsPromoted; } else if (!ArgsToPromote.count(I)) { Params.push_back(I->getType()); - if (unsigned attrs = PAL ? PAL->getParamAttrs(ArgIndex) : 0) + if (ParameterAttributes attrs = PAL ? PAL->getParamAttrs(ArgIndex) : + ParamAttr::None) ParamAttrsVec.push_back(ParamAttrsWithIndex::get(Params.size(), attrs)); } else if (I->use_empty()) { ++NumArgumentsDead; @@ -496,7 +497,8 @@ Function *ArgPromotion::DoPromotion(Function *F, PAL = CS.getParamAttrs(); // Add any return attributes. - if (unsigned attrs = PAL ? PAL->getParamAttrs(0) : 0) + if (ParameterAttributes attrs = PAL ? PAL->getParamAttrs(0) : + ParamAttr::None) ParamAttrsVec.push_back(ParamAttrsWithIndex::get(0, attrs)); // Loop over the operands, inserting GEP and loads in the caller as @@ -508,7 +510,8 @@ Function *ArgPromotion::DoPromotion(Function *F, if (!ArgsToPromote.count(I) && !ByValArgsToTransform.count(I)) { Args.push_back(*AI); // Unmodified argument - if (unsigned Attrs = PAL ? PAL->getParamAttrs(ArgIndex) : 0) + if (ParameterAttributes Attrs = PAL ? PAL->getParamAttrs(ArgIndex) : + ParamAttr::None) ParamAttrsVec.push_back(ParamAttrsWithIndex::get(Args.size(), Attrs)); } else if (ByValArgsToTransform.count(I)) { @@ -547,7 +550,8 @@ Function *ArgPromotion::DoPromotion(Function *F, // Push any varargs arguments on the list for (; AI != CS.arg_end(); ++AI, ++ArgIndex) { Args.push_back(*AI); - if (unsigned Attrs = PAL ? PAL->getParamAttrs(ArgIndex) : 0) + if (ParameterAttributes Attrs = PAL ? PAL->getParamAttrs(ArgIndex) : + ParamAttr::None) ParamAttrsVec.push_back(ParamAttrsWithIndex::get(Args.size(), Attrs)); } diff --git a/lib/Transforms/IPO/DeadArgumentElimination.cpp b/lib/Transforms/IPO/DeadArgumentElimination.cpp index 3a4c36f87f..fe2db6d4e9 100644 --- a/lib/Transforms/IPO/DeadArgumentElimination.cpp +++ b/lib/Transforms/IPO/DeadArgumentElimination.cpp @@ -512,7 +512,7 @@ void DAE::RemoveDeadArgumentsFromFunction(Function *F) { const ParamAttrsList *PAL = F->getParamAttrs(); // The existing function return attributes. - uint16_t RAttrs = PAL ? PAL->getParamAttrs(0) : 0; + ParameterAttributes RAttrs = PAL ? PAL->getParamAttrs(0) : ParamAttr::None; // Make the function return void if the return value is dead. const Type *RetTy = FTy->getReturnType(); @@ -532,7 +532,8 @@ void DAE::RemoveDeadArgumentsFromFunction(Function *F) { ++I, ++index) if (!DeadArguments.count(I)) { Params.push_back(I->getType()); - uint16_t Attrs = PAL ? PAL->getParamAttrs(index) : 0; + ParameterAttributes Attrs = PAL ? PAL->getParamAttrs(index) : + ParamAttr::None; if (Attrs) ParamAttrsVec.push_back(ParamAttrsWithIndex::get(Params.size(), Attrs)); } @@ -572,7 +573,7 @@ void DAE::RemoveDeadArgumentsFromFunction(Function *F) { PAL = CS.getParamAttrs(); // The call return attributes. - uint16_t RAttrs = PAL ? PAL->getParamAttrs(0) : 0; + ParameterAttributes RAttrs = PAL ? PAL->getParamAttrs(0) : ParamAttr::None; // Adjust in case the function was changed to return void. RAttrs &= ~ParamAttr::typeIncompatible(NF->getReturnType()); if (RAttrs) @@ -585,7 +586,8 @@ void DAE::RemoveDeadArgumentsFromFunction(Function *F) { I != E; ++I, ++AI, ++index) if (!DeadArguments.count(I)) { // Remove operands for dead arguments Args.push_back(*AI); - uint16_t Attrs = PAL ? PAL->getParamAttrs(index) : 0; + ParameterAttributes Attrs = PAL ? PAL->getParamAttrs(index) : + ParamAttr::None; if (Attrs) ParamAttrsVec.push_back(ParamAttrsWithIndex::get(Args.size(), Attrs)); } @@ -596,7 +598,8 @@ void DAE::RemoveDeadArgumentsFromFunction(Function *F) { // Push any varargs arguments on the list. Don't forget their attributes. for (; AI != CS.arg_end(); ++AI) { Args.push_back(*AI); - uint16_t Attrs = PAL ? PAL->getParamAttrs(index++) : 0; + ParameterAttributes Attrs = PAL ? PAL->getParamAttrs(index++) : + ParamAttr::None; if (Attrs) ParamAttrsVec.push_back(ParamAttrsWithIndex::get(Args.size(), Attrs)); } diff --git a/lib/Transforms/IPO/PruneEH.cpp b/lib/Transforms/IPO/PruneEH.cpp index 4fe139a380..26ca2f6200 100644 --- a/lib/Transforms/IPO/PruneEH.cpp +++ b/lib/Transforms/IPO/PruneEH.cpp @@ -123,7 +123,7 @@ bool PruneEH::runOnSCC(const std::vector &SCC) { // If the SCC doesn't unwind or doesn't throw, note this fact. if (!SCCMightUnwind || !SCCMightReturn) for (unsigned i = 0, e = SCC.size(); i != e; ++i) { - uint16_t NewAttributes = ParamAttr::None; + ParameterAttributes NewAttributes = ParamAttr::None; if (!SCCMightUnwind) NewAttributes |= ParamAttr::NoUnwind; diff --git a/lib/Transforms/Scalar/InstructionCombining.cpp b/lib/Transforms/Scalar/InstructionCombining.cpp index 9957bc19c6..ba9ce568f3 100644 --- a/lib/Transforms/Scalar/InstructionCombining.cpp +++ b/lib/Transforms/Scalar/InstructionCombining.cpp @@ -8384,7 +8384,7 @@ bool InstCombiner::transformConstExprCastCall(CallSite CS) { return false; // Cannot transform this return value. if (CallerPAL && !Caller->use_empty()) { - uint16_t RAttrs = CallerPAL->getParamAttrs(0); + ParameterAttributes RAttrs = CallerPAL->getParamAttrs(0); if (RAttrs & ParamAttr::typeIncompatible(FT->getReturnType())) return false; // Attribute not compatible with transformed value. } @@ -8415,7 +8415,7 @@ bool InstCombiner::transformConstExprCastCall(CallSite CS) { return false; // Cannot transform this parameter value. if (CallerPAL) { - uint16_t PAttrs = CallerPAL->getParamAttrs(i + 1); + ParameterAttributes PAttrs = CallerPAL->getParamAttrs(i + 1); if (PAttrs & ParamAttr::typeIncompatible(ParamTy)) return false; // Attribute not compatible with transformed value. } @@ -8443,7 +8443,7 @@ bool InstCombiner::transformConstExprCastCall(CallSite CS) { for (unsigned i = CallerPAL->size(); i; --i) { if (CallerPAL->getParamIndex(i - 1) <= FT->getNumParams()) break; - uint16_t PAttrs = CallerPAL->getParamAttrsAtIndex(i - 1); + ParameterAttributes PAttrs = CallerPAL->getParamAttrsAtIndex(i - 1); if (PAttrs & ParamAttr::VarArgsIncompatible) return false; } @@ -8456,7 +8456,8 @@ bool InstCombiner::transformConstExprCastCall(CallSite CS) { attrVec.reserve(NumCommonArgs); // Get any return attributes. - uint16_t RAttrs = CallerPAL ? CallerPAL->getParamAttrs(0) : 0; + ParameterAttributes RAttrs = CallerPAL ? CallerPAL->getParamAttrs(0) : + ParamAttr::None; // If the return value is not being used, the type may not be compatible // with the existing attributes. Wipe out any problematic attributes. @@ -8479,7 +8480,8 @@ bool InstCombiner::transformConstExprCastCall(CallSite CS) { } // Add any parameter attributes. - uint16_t PAttrs = CallerPAL ? CallerPAL->getParamAttrs(i + 1) : 0; + ParameterAttributes PAttrs = CallerPAL ? CallerPAL->getParamAttrs(i + 1) : + ParamAttr::None; if (PAttrs) attrVec.push_back(ParamAttrsWithIndex::get(i + 1, PAttrs)); } @@ -8510,7 +8512,9 @@ bool InstCombiner::transformConstExprCastCall(CallSite CS) { } // Add any parameter attributes. - uint16_t PAttrs = CallerPAL ? CallerPAL->getParamAttrs(i + 1) : 0; + ParameterAttributes PAttrs = CallerPAL ? + CallerPAL->getParamAttrs(i + 1) : + ParamAttr::None; if (PAttrs) attrVec.push_back(ParamAttrsWithIndex::get(i + 1, PAttrs)); } @@ -8593,7 +8597,7 @@ Instruction *InstCombiner::transformCallThroughTrampoline(CallSite CS) { if (const ParamAttrsList *NestAttrs = NestF->getParamAttrs()) { unsigned NestIdx = 1; const Type *NestTy = 0; - uint16_t NestAttr = 0; + ParameterAttributes NestAttr = ParamAttr::None; // Look for a parameter marked with the 'nest' attribute. for (FunctionType::param_iterator I = NestFTy->param_begin(), @@ -8617,7 +8621,8 @@ Instruction *InstCombiner::transformCallThroughTrampoline(CallSite CS) { // mean appending it. Likewise for attributes. // Add any function result attributes. - uint16_t Attr = Attrs ? Attrs->getParamAttrs(0) : 0; + ParameterAttributes Attr = Attrs ? Attrs->getParamAttrs(0) : + ParamAttr::None; if (Attr) NewAttrs.push_back (ParamAttrsWithIndex::get(0, Attr)); -- cgit v1.2.3