Switch to llvm::findFirstSet instead of ffs since mingw doesn't have ffs.

ffs() vs findFirstSet() are slightly different, indexing is
0-based instead of 1-based.

Example mingw error:
http://build.chromium.org/p/tryserver.nacl/builders/nacl-toolchain-win7-pnacl-x86_64/builds/1920/steps/llvm_i686_w64_mingw32%20%28build%29/logs/stdio

BUG=none
R=stichnot@chromium.org

Review URL: https://codereview.chromium.org/563303002
diff --git a/src/IceTargetLoweringX8632.cpp b/src/IceTargetLoweringX8632.cpp
index abc6b41..d1fdfc2 100644
--- a/src/IceTargetLoweringX8632.cpp
+++ b/src/IceTargetLoweringX8632.cpp
@@ -24,10 +24,9 @@
 #include "IceTargetLoweringX8632.def"
 #include "IceTargetLoweringX8632.h"
 #include "llvm/ADT/DenseMap.h"
+#include "llvm/Support/MathExtras.h"
 #include "llvm/Support/CommandLine.h"
 
-#include <strings.h>
-
 namespace Ice {
 
 namespace {
@@ -557,7 +556,7 @@
        ++I) {
     Variable *Var = *I;
     uint32_t NaturalAlignment = typeWidthInBytesOnStack(Var->getType());
-    SizeT LogNaturalAlignment = ffs(NaturalAlignment) - 1;
+    SizeT LogNaturalAlignment = llvm::findFirstSet(NaturalAlignment);
     assert(LogNaturalAlignment >= X86_LOG2_OF_MIN_STACK_SLOT_SIZE);
     assert(LogNaturalAlignment <= X86_LOG2_OF_MAX_STACK_SLOT_SIZE);
     SizeT BucketIndex = LogNaturalAlignment - X86_LOG2_OF_MIN_STACK_SLOT_SIZE;