More stds compliant. VS doesn't like non constant length local arrays.

This commit is contained in:
james.brodman
2013-10-31 19:51:13 -04:00
parent 61c33969a2
commit 0f7050d3aa

View File

@@ -4982,7 +4982,7 @@ ReplaceStdlibShiftPass::runOnBasicBlock(llvm::BasicBlock &bb) {
llvm::Value *shiftAmt = ci->getArgOperand(1);
if (llvm::isa<llvm::Constant>(shiftAmt)) {
int vectorWidth = g->target->getVectorWidth();
int shuffleVals[vectorWidth];
int * shuffleVals = new int[vectorWidth];
int shiftInt = lGetIntValue(shiftAmt);
for (int i = 0; i < vectorWidth; i++) {
int s = i + shiftInt;
@@ -4996,6 +4996,7 @@ ReplaceStdlibShiftPass::runOnBasicBlock(llvm::BasicBlock &bb) {
shuffleIdxs, "vecShift", ci);
ci->replaceAllUsesWith(shuffle);
modifiedAny = true;
delete [] shuffleVals;
} else {
PerformanceWarning(SourcePos(), "Stdlib shift() called without constant shift amount.");
}