[LLVMLinux] Regression since r209049/r209065

Hi !
Since r209049, the build breaks with an ICE which r209065 did not fix:

build of r209049:
http://buildbot.llvm.linuxfoundation.org/builders/2_llvm/builds/58

build of r209065:
http://buildbot.llvm.linuxfoundation.org/builders/2_llvm/builds/63

0 clang-3.5 0x0000000000d96c12 llvm::sys::PrintStackTrace(_IO_FILE*) +
34
1 clang-3.5 0x0000000000d967c4
2 libpthread.so.0 0x00002b304e0d1340
3 clang-3.5 0x0000000000b41250
llvm::CompositeType::getTypeAtIndex(llvm::Value const*) + 32
4 clang-3.5 0x0000000000b9b586
5 clang-3.5 0x0000000000b9fbd3
6 clang-3.5 0x0000000000ba01be
7 clang-3.5 0x0000000000b326ff
llvm::FPPassManager::runOnFunction(llvm::Function&) + 623
8 clang-3.5 0x0000000000b3278b
llvm::FPPassManager::runOnModule(llvm::Module&) + 43
9 clang-3.5 0x0000000000b34b15
llvm::legacy::PassManagerImpl::run(llvm::Module&) + 709
10 clang-3.5 0x00000000012cfcd0
clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::CodeGenOptions
const&, clang::TargetOptions const&, clang::LangOptions const&,
llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::raw_ostream*) +
3008
11 clang-3.5 0x00000000012cafe9
12 clang-3.5 0x00000000016120db clang::ParseAST(clang::Sema&, bool,
bool) + 507
13 clang-3.5 0x0000000000ee0ee6 clang::FrontendAction::Execute() + 134
14 clang-3.5 0x0000000000ec2af0
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 288
15 clang-3.5 0x0000000000f493e1
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1745
16 clang-3.5 0x000000000075e948 cc1_main(char const**, char const**,
char const*, void*) + 984
17 clang-3.5 0x0000000000744a29 main + 8601
18 libc.so.6 0x00002b304ed39ec5 __libc_start_main + 245
19 clang-3.5 0x000000000075cf89
Stack dump:
0. Program arguments: /home/jsmoeller/llvmlinux-
buildbot/slave/common/toolchain/clang/install/bin/clang-3.5 -cc1 -triple
armv7-none-linux-gnueabi -S -disable-free -disable-llvm-verifier -main-file-name
hcd.c -mrelocation-model static -relaxed-aliasing -fmath-errno -masm-verbose -
no-integrated-as -mconstructor-aliases -munwind-tables -fuse-init-array -
target-cpu cortex-a8 -target-feature +soft-float -target-feature +soft-float-abi
-target-feature +vfp2 -target-feature -neon -target-feature -crypto -target-
abi aapcs-linux -msoft-float -mfloat-abi soft -mno-global-merge -g -coverage-file
/home/jsmoeller/llvmlinux-buildbot/slave/common/targets/vexpress/tmp/hcd-
a8ee45.s -nostdsysteminc -nobuiltininc -resource-dir
/home/jsmoeller/llvmlinux-
buildbot/slave/common/toolchain/clang/install/bin/../lib/clang/3.5.0 -
dependency-file drivers/usb/core/.hcd.o.d -MT drivers/usb/core/hcd.o -sys-
header-deps -isystem /home/jsmoeller/llvmlinux-
buildbot/slave/common/toolchain/clang/install/bin/../lib/clang/3.5.0/include -
include /home/jsmoeller/llvmlinux-
buildbot/slave/common/targets/vexpress/src/linux/include/linux/kconfig.h -D
__KERNEL__ -D __LINUX_ARM_ARCH__=7 -U arm -D KBUILD_STR(s)=#s -D
KBUILD_BASENAME=KBUILD_STR(hcd) -D KBUILD_MODNAME=KBUILD_STR(usbcore) -I
/home/jsmoeller/llvmlinux-
buildbot/slave/common/targets/vexpress/src/linux/arch/arm/include -I
arch/arm/include/generated -I /home/jsmoeller/llvmlinux-
buildbot/slave/common/targets/vexpress/src/linux/include -I include -I
/home/jsmoeller/llvmlinux-
buildbot/slave/common/targets/vexpress/src/linux/arch/arm/include/uapi -I
arch/arm/include/generated/uapi -I /home/jsmoeller/llvmlinux-
buildbot/slave/common/targets/vexpress/src/linux/include/uapi -I
include/generated/uapi -I /home/jsmoeller/llvmlinux-
buildbot/slave/common/targets/vexpress/src/linux/drivers/usb/core -I
drivers/usb/core -O2 -Wno-unknown-warning-option -Wall -Wundef -Wstrict-
prototypes -Wno-trigraphs -Werror-implicit-function-declaration -Wno-format-
security -Wno-asm-operand-widths -Wno-unused-variable -Wno-format-invalid-
specifier -Wno-gnu -Wno-tautological-compare -Wdeclaration-after-statement -
Wno-pointer-sign -Werror=implicit-int -Werror=strict-prototypes -Werror=date-
time -fno-dwarf-directory-asm -fdebug-compilation-dir
/home/jsmoeller/llvmlinux-buildbot/slave/common/targets/vexpress/build/kernel-
clang -ferror-limit 19 -fmessage-length 0 -fwrapv -mstackrealign -fno-builtin
-fno-signed-char -fobjc-runtime=gcc -fno-common -fdiagnostics-show-option -
vectorize-loops -vectorize-slp -o /home/jsmoeller/llvmlinux-
buildbot/slave/common/targets/vexpress/tmp/hcd-a8ee45.s -x c
/home/jsmoeller/llvmlinux-
buildbot/slave/common/targets/vexpress/src/linux/drivers/usb/core/hcd.c
1. <eof> parser at end of file
2. Per-module optimization passes
3. Running pass 'Function Pass Manager' on module
'/home/jsmoeller/llvmlinux-
buildbot/slave/common/targets/vexpress/src/linux/drivers/usb/core/hcd.c'.
4. Running pass 'Combine redundant instructions' on function
'@usb_hcd_giveback_urb'

I'll follow-up with the requested c and sh files.

Best,

Could this have unearthed a latent bug?

       for (unsigned J = 0, F = Op1->getNumOperands(); J != F; ++J) {
+ if (Op1->getOperand(J)->getType() != Op2->getOperand(J)->getType())
+ return nullptr;

cheers,
--renato