[llvm-testresults] buildbot failure in smooshlab on clang-x86_64-darwin10-selfhost-rel
daniel_dunbar at apple.com
daniel_dunbar at apple.com
Thu Dec 16 23:06:27 PST 2010
The Buildbot has detected a new failure of clang-x86_64-darwin10-selfhost-rel on smooshlab.
Full details are available at:
http://smooshlab.apple.com:8010/builders/clang-x86_64-darwin10-selfhost-rel/builds/7209
Buildbot URL: http://smooshlab.apple.com:8010/
Buildslave for this Build: smoosh-02
Build Reason:
Build Source Stamp: 122045
Blamelist: lattner
BUILD FAILED: failed compile.llvm.stage2
sincerely,
-The Buildbot
================================================================================
CHANGES:
Files:
include/llvm/Support/ConstantRange.h
lib/Transforms/Utils/SimplifyCFG.cpp
test/Transforms/SimplifyCFG/switch_create.ll
At: Thu 16 Dec 2010 22:27:07
Changed By: lattner
Comments: improve switch formation to handle small range
comparisons formed by comparisons. For example,
this:
void foo(unsigned x) {
if (x == 0 || x == 1 || x == 3 || x == 4 || x == 6)
bar();
}
compiles into:
_foo: ## @foo
## BB#0: ## %entry
cmpl $6, %edi
ja LBB0_2
## BB#1: ## %entry
movl %edi, %eax
movl $91, %ecx
btq %rax, %rcx
jb LBB0_3
instead of:
_foo: ## @foo
## BB#0: ## %entry
cmpl $2, %edi
jb LBB0_4
## BB#1: ## %switch.early.test
cmpl $6, %edi
ja LBB0_3
## BB#2: ## %switch.early.test
movl %edi, %eax
movl $88, %ecx
btq %rax, %rcx
jb LBB0_4
This catches a bunch of cases in GCC, which look like this:
%804 = load i32* @which_alternative, align 4, !tbaa !0
%805 = icmp ult i32 %804, 2
%806 = icmp eq i32 %804, 3
%or.cond121 = or i1 %805, %806
%807 = icmp eq i32 %804, 4
%or.cond124 = or i1 %or.cond121, %807
br i1 %or.cond124, label %.thread, label %808
turning this into a range comparison.
Properties:
LOGS:
Last 10 lines of 'stdio':
llvm[4]: Compiling ARMAsmLexer.cpp for Release+Asserts build
llvm[4]: Compiling ARMAsmParser.cpp for Release+Asserts build
llvm[4]: Building Release+Asserts Archive Library libLLVMARMAsmParser.a
llvm[4]: Compiling ARMDisassembler.cpp for Release+Asserts build
llvm[4]: Compiling ARMDisassemblerCore.cpp for Release+Asserts build
llvm[4]: Building Release+Asserts Archive Library libLLVMARMDisassembler.a
llvm[4]: Compiling ARMTargetInfo.cpp for Release+Asserts build
llvm[4]: Building Release+Asserts Archive Library libLLVMARMInfo.a
make[1]: *** [Target/.makeall] Error 2
make: *** [all] Error 1
More information about the llvm-testresults
mailing list