[llvm] r250785 - [RS4GC] Clean up `find_index`; NFC
Sanjoy Das via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 19 18:06:28 PDT 2015
Author: sanjoy
Date: Mon Oct 19 20:06:28 2015
New Revision: 250785
URL: http://llvm.org/viewvc/llvm-project?rev=250785&view=rev
Log:
[RS4GC] Clean up `find_index`; NFC
- Bring it up to the LLVM Coding Style
- Sink it inside `CreateGCRelocates`, which is its only user
Modified:
llvm/trunk/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
Modified: llvm/trunk/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp?rev=250785&r1=250784&r2=250785&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp Mon Oct 19 20:06:28 2015
@@ -1263,14 +1263,6 @@ normalizeForInvokeSafepoint(BasicBlock *
return Ret;
}
-static int find_index(ArrayRef<Value *> livevec, Value *val) {
- auto itr = std::find(livevec.begin(), livevec.end(), val);
- assert(livevec.end() != itr);
- size_t index = std::distance(livevec.begin(), itr);
- assert(index < livevec.size());
- return index;
-}
-
// Create new attribute set containing only attributes which can be transferred
// from original call to the safepoint.
static AttributeSet legalizeCallAttributes(AttributeSet AS) {
@@ -1325,7 +1317,15 @@ static void CreateGCRelocates(ArrayRef<V
IRBuilder<> Builder) {
if (LiveVariables.empty())
return;
-
+
+ auto FindIndex = [](ArrayRef<Value *> LiveVec, Value *Val) {
+ auto ValIt = std::find(LiveVec.begin(), LiveVec.end(), Val);
+ assert(ValIt != LiveVec.end() && "Val not found in LiveVec!");
+ size_t Index = std::distance(LiveVec.begin(), ValIt);
+ assert(Index < LiveVec.size() && "Bug in std::find?");
+ return Index;
+ };
+
// All gc_relocate are set to i8 addrspace(1)* type. We originally generated
// unique declarations for each pointer type, but this proved problematic
// because the intrinsic mangling code is incomplete and fragile. Since
@@ -1341,9 +1341,9 @@ static void CreateGCRelocates(ArrayRef<V
for (unsigned i = 0; i < LiveVariables.size(); i++) {
// Generate the gc.relocate call and save the result
Value *BaseIdx =
- Builder.getInt32(LiveStart + find_index(LiveVariables, BasePtrs[i]));
+ Builder.getInt32(LiveStart + FindIndex(LiveVariables, BasePtrs[i]));
Value *LiveIdx =
- Builder.getInt32(LiveStart + find_index(LiveVariables, LiveVariables[i]));
+ Builder.getInt32(LiveStart + FindIndex(LiveVariables, LiveVariables[i]));
// only specify a debug name if we can give a useful one
CallInst *Reloc = Builder.CreateCall(
More information about the llvm-commits
mailing list