On 2013-05-07 14:59, Rafael Espíndola wrote:
On 1 May 2013 00:26, Rafael Espíndola <rafael.espind...@gmail.com> wrote:
This is now
http://llvm.org/bugs/show_bug.cgi?id=15882
And it got fixed! :-)
It just missed 3.3 branching, but I will make sure it gets ported.
Okay, can the original posters that suffered from the crash, please try
the attached patch on their -current source, then try to rebuild the
Firefox port, and check if the crash has disappeared?
If you just want to incrementally build clang, you can do:
cd /usr/src/lib/clang/libllvmvectorize
make
cd /usr/src/usr.bin/clang/clang
make
sudo make install
-Dimitry
Index: contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
===================================================================
--- contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp (revision 250331)
+++ contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp (working copy)
@@ -214,7 +214,7 @@ class InnerLoopVectorizer {
/// This function adds 0, 1, 2 ... to each vector element, starting at zero.
/// If Negate is set then negative numbers are added e.g. (0, -1, -2, ...).
/// The sequence starts at StartIndex.
- Value *getConsecutiveVector(Value* Val, unsigned StartIdx, bool Negate);
+ Value *getConsecutiveVector(Value* Val, int StartIdx, bool Negate);
/// When we go over instructions in the basic block we rely on previous
/// values within the current basic block or on loop invariant values.
@@ -771,7 +771,7 @@ Value *InnerLoopVectorizer::getBroadcastInstrs(Val
return Shuf;
}
-Value *InnerLoopVectorizer::getConsecutiveVector(Value* Val, unsigned StartIdx,
+Value *InnerLoopVectorizer::getConsecutiveVector(Value* Val, int StartIdx,
bool Negate) {
assert(Val->getType()->isVectorTy() && "Must be a vector");
assert(Val->getType()->getScalarType()->isIntegerTy() &&
@@ -784,8 +784,8 @@ Value *InnerLoopVectorizer::getBroadcastInstrs(Val
// Create a vector of consecutive numbers from zero to VF.
for (int i = 0; i < VLen; ++i) {
- int Idx = Negate ? (-i): i;
- Indices.push_back(ConstantInt::get(ITy, StartIdx + Idx));
+ int64_t Idx = Negate ? (-i) : i;
+ Indices.push_back(ConstantInt::get(ITy, StartIdx + Idx, Negate));
}
// Add the consecutive indices to the vector value.
@@ -1928,7 +1928,8 @@ InnerLoopVectorizer::vectorizeBlockInLoop(LoopVect
// After broadcasting the induction variable we need to make the
// vector consecutive by adding ... -3, -2, -1, 0.
for (unsigned part = 0; part < UF; ++part)
- Entry[part] = getConsecutiveVector(Broadcasted, -VF * part, true);
+ Entry[part] = getConsecutiveVector(Broadcasted, -(int)VF * part,
+ true);
continue;
}
_______________________________________________
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"