[llvm-testresults] buildbot failure in lab.llvm.org on phase2 - living

llvmlab-buildmaster at lab.llvm.org llvmlab-buildmaster at lab.llvm.org
Wed Oct 1 01:15:45 PDT 2014


The Buildbot has detected a new failure on builder phase2 - living while building lab.llvm.org.
Full details are available at:
 http://lab.llvm.org:8013/builders/phase2%20-%20living/builds/1104

Buildbot URL: http://lab.llvm.org:8013/

Buildslave for this Build: macpro1

Build Reason: scheduler
Build Source Stamp: 218742
Blamelist: anemet,bogner,chandlerc,chapuni,dblaikie,ghoflehner,hans,hfinkel,jingyue,jrose,kuba.brecka,lhames,nicholas,rsmith,rtrieu

BUILD FAILED: failed

sincerely,
 -The Buildbot


================================================================================

CHANGES:
Files:
 lib/CodeGen/AsmPrinter/DwarfDebug.cpp
 lib/CodeGen/AsmPrinter/DwarfDebug.h
 test/DebugInfo/gmlt.ll
On: smooshlab-project
At: Tue 30 Sep 2014 14:40:33
Changed By: dblaikie
Comments: Disable the -gmlt optimization implemented in r218129 under Darwin due to issues with dsymutil.

r218129 omits DW_TAG_subprograms which have no inlined subroutines when
emitting -gmlt data. This makes -gmlt very low cost for -O0 builds.

Darwin's dsymutil reasonably considers a CU empty if it has no
subprograms (which occurs with the above optimization in -O0 programs
without any force_inline function calls) and drops the line table, CU,
and everything in this situation, making backtraces impossible.

Until dsymutil is modified to account for this, disable this
optimization on Darwin to preserve the desired functionality.
(see r218545, which should be reverted after this patch, for other
discussion/details)

Footnote:
In the long term, it doesn't look like this scheme (of simplified debug
info to describe inlining to enable backtracing) is tenable, it is far
too size inefficient for optimized code (the DW_TAG_inlined_subprograms,
even once compressed, are nearly twice as large as the line table
itself (also compressed)) and we'll be considering things like Cary's
two level line table proposal to encode all this information directly in
the line table.Properties: 
  phase_id: r218702-t20140930_144233-b4923



Files:
 test/CodeGen/X86/vector-shuffle-128-v16.ll
 test/CodeGen/X86/vector-shuffle-128-v2.ll
 test/CodeGen/X86/vector-shuffle-128-v4.ll
 test/CodeGen/X86/vector-shuffle-128-v8.ll
On: smooshlab-project
At: Tue 30 Sep 2014 14:56:33
Changed By: chandlerc
Comments: [x86] Rework all of the 128-bit vector shuffle tests with my handy test
updating script so that they are more thorough and consistent.

Specific fixes here include:
- Actually test VEX-encoded AVX mnemonics.
- Actually use an SSE 4.1 run to test SSE 4.1 features!
- Correctly check instructions sequences from the start of the function.
- Elide the shuffle operands and comment designator in a consistent way.
- Test all of the architectures instead of just the ones I was motivated
  to manually author.

I've gone back through and fixed up any egregious issues I spotted. Let
me know if I missed something you really dislike.

One downside to this is that we're now not as diligently using FileCheck
variables for registers. I would be much more concerned with this if we
had larger register usage, but there just aren't that interesting of
register choices here and most of the registers are constrained by the
ABI. Ultimately, I don't think this is likely to be the maintenance
burden for these tests and updating them again should be staright
forward.Properties: 
  phase_id: r218707-t20140930_145833-b4924



Files:
 test/DebugInfo/Inputs/gmlt.ll
 test/DebugInfo/X86/gmlt.test
 test/DebugInfo/gmlt.ll
 test/DebugInfo/gmlt.test
On: smooshlab-project
At: Tue 30 Sep 2014 15:16:33
Changed By: dblaikie
Comments: Adjust test case addition in r218702 so as not to fail when the X86 target isn't built.Properties: 
  phase_id: r218710-t20140930_153527-b4925



Files:
 test/CodeGen/X86/vector-shuffle-256-v16.ll
 test/CodeGen/X86/vector-shuffle-256-v32.ll
 test/CodeGen/X86/vector-shuffle-256-v4.ll
 test/CodeGen/X86/vector-shuffle-256-v8.ll
 test/CodeGen/X86/vector-shuffle-512-v8.ll
On: smooshlab-project
At: Tue 30 Sep 2014 15:16:33
Changed By: chandlerc
Comments: [x86] Update the exact FileCheck syntax of the 256-bit and 512-bit
shuffle tests to match that used in the script I posted and now used
consistently in 128-bit tests.

Nothing interesting changing here, just using the label name as the
FileCheck label and a slightly more general comment marker consumption
strategy.Properties: 
  phase_id: r218710-t20140930_153527-b4925



Files:
 test/CodeGen/X86/vector-shuffle-128-v16.ll
 test/CodeGen/X86/vector-shuffle-128-v2.ll
 test/CodeGen/X86/vector-shuffle-128-v4.ll
 test/CodeGen/X86/vector-shuffle-128-v8.ll
On: smooshlab-project
At: Tue 30 Sep 2014 15:30:33
Changed By: chandlerc
Comments: [x86] Add AVX1 and AVX2 testing to all of the 128-bit shuffle test
cases.

While clearly we don't need the AVX vector width, these ISA extensions
often cause us to select different instructions and we should cover them
even with the narrow vector width.

Also, while here, nuke the stress_test2 contents. There is no reason to
try to FileCheck this entire body when it is mostly a test for
successfully surviving the code generator.Properties: 
  phase_id: r218710-t20140930_153527-b4925



Files:
 include/llvm/Transforms/Scalar.h
 include/llvm/Transforms/Utils/Local.h
 lib/Transforms/Scalar/SimplifyCFGPass.cpp
 lib/Transforms/Utils/SimplifyCFG.cpp
 test/Transforms/SimplifyCFG/branch-fold-threshold.ll
On: smooshlab-project
At: Tue 30 Sep 2014 15:36:33
Changed By: jingyue
Comments: [SimplifyCFG] threshold for folding branches with common destination

Summary:
This patch adds a threshold that controls the number of bonus instructions
allowed for folding branches with common destination. The original code allows
at most one bonus instruction. With this patch, users can customize the
threshold to allow multiple bonus instructions. The default threshold is still
1, so that the code behaves the same as before when users do not specify this
threshold.

The motivation of this change is that tuning this threshold significantly (up
to 25%) improves the performance of some CUDA programs in our internal code
base. In general, branch instructions are very expensive for GPU programs.
Therefore, it is sometimes worth trading more arithmetic computation for a more
straightened control flow. Here's a reduced example:

  __global__ void foo(int a, int b, int c, int d, int e, int n,
                      const int *input, int *output) {
    int sum = 0;
    for (int i = 0; i < n; ++i)
      sum += (((i ^ a) > b) && (((i | c ) ^ d) > e)) ? 0 : input[i];
    *output = sum;
  }

The select statement in the loop body translates to two branch instructions "if
((i ^ a) > b)" and "if (((i | c) ^ d) > e)" which share a common destination.
With the default threshold, SimplifyCFG is unable to fold them, because
computing the condition of the second branch "(i | c) ^ d > e" requires two
bonus instructions. With the threshold increased, SimplifyCFG can fold the two
branches so that the loop body contains only one branch, making the code
conceptually look like:

  sum += (((i ^ a) > b) & (((i | c ) ^ d) > e)) ? 0 : input[i];

Increasing the threshold significantly improves the performance of this
particular example. In the configuration where both conditions are guaranteed
to be true, increasing the threshold from 1 to 2 improves the performance by
18.24%. Even in the configuration where the first condition is false and the
second condition is true, which favors shortcuts, increasing the threshold from
1 to 2 still improves the performance by 4.35%.

We are still looking for a good threshold and maybe a better cost model than
just counting the number of bonus instructions. However, according to the above
numbers, we think it is at least worth adding a threshold to enable more
experiments and tuning. Let me know what you think. Thanks!

Test Plan: Added one test case to check the threshold is in effect

Reviewers: nadav, eliben, meheff, resistor, hfinkel

Reviewed By: hfinkel

Subscribers: hfinkel, llvm-commits

Differential Revision: http://reviews.llvm.org/D5529Properties: 
  phase_id: r218714-t20140930_161221-b4926



Files:
 tools/msbuild/install.bat
 tools/msbuild/uninstall.bat
On: smooshlab-project
At: Tue 30 Sep 2014 15:46:33
Changed By: hans
Comments: MSBuild integration: fix the loop in install.bat

It would previously not continue the platforms loop
unless it could find the latest toolset directory.Properties: 
  phase_id: r218714-t20140930_161221-b4926



Files:
 lib/CodeGen/AsmPrinter/DwarfDebug.cpp
 lib/CodeGen/AsmPrinter/DwarfDebug.h
On: smooshlab-project
At: Tue 30 Sep 2014 15:46:33
Changed By: dblaikie
Comments: DebugInfo: Sink the code emitting DW_AT_APPLE_omit_frame_ptr down to a more common spot.

No functional change. Pre-emptive refactoring before I start pushing
some of this subprogram creation down into DWARFCompileUnit so I can
build different subprograms in the skeleton unit from the dwo unit for
adding -gmlt-like data to the skeleton.Properties: 
  phase_id: r218714-t20140930_161221-b4926



Files:
 lib/Analysis/BasicAliasAnalysis.cpp
 test/Analysis/BasicAA/phi-aa.ll
 test/Analysis/BasicAA/zext.ll
On: smooshlab-project
At: Tue 30 Sep 2014 15:56:33
Changed By: hfinkel
Comments: [BasicAA] Make better use of zext and sign information

Two related things:

 1. Fixes a bug when calculating the offset in GetLinearExpression. The code
    previously used zext to extend the offset, so negative offsets were converted
    to large positive ones.

 2. Enhance aliasGEP to deduce that, if the difference between two GEP
    allocations is positive and all the variables that govern the offset are also
    positive (i.e. the offset is strictly after the higher base pointer), then
    locations that fit in the gap between the two base pointers are NoAlias.

Patch by Nick White!Properties: 
  phase_id: r218714-t20140930_161221-b4926



Files:
 lib/Sema/SemaDecl.cpp
 test/SemaCXX/uninitialized.cpp
On: smooshlab-project
At: Tue 30 Sep 2014 16:16:33
Changed By: rtrieu
Comments: Update -Wuninitialized to be stricter on CK_NoOp casts.
Properties: 
  phase_id: r218717-t20140930_164927-b4927



File: test/lit.common.cfg
On: smooshlab-project
At: Tue 30 Sep 2014 16:20:33
Changed By: kuba.brecka
Comments: [compiler-rt] Re-enable the use of -gmlt for ASan tests on Darwin

The optimization for -gmlt/-gline-tables-only introduced in r218129 happened to break on Darwin and produce no line number information due to
an incompatibility with dsymutil. ASan tests have been failing because of that and we disabled the use of -gmlt for the tests in r218545. This patch re-enables the use of -gmlt, because we have conditionally disabled the incompatible optimization in LLVM, so -gmlt now works on Darwin. Once Darwin's dsymutil is modified to allow this optimization, we can re-enable the optimization in LLVM.

Properties: 
  phase_id: r218716-t20140930_172635-b4928



Files:
 docs/Modules.rst
 lib/Driver/Tools.cpp
 test/Driver/modules.mm
On: smooshlab-project
At: Tue 30 Sep 2014 16:26:33
Changed By: rsmith
Comments: Enable both C and C++ modules with -fmodules, by switching -fcxx-modules to
being on by default. -fno-cxx-modules can still be used to enable C modules but
not C++ modules, but C++ modules is not significantly less stable than C
modules any more.

Also remove some of the scare words from the modules documentation. We're
certainly not going to remove modules support (though we might change the
interface), and it works well enough to bootstrap and build lots of
non-trivial code.

Note that this does not represent a commitment to the current interface nor
implementation, and we still intend to follow whatever direction the C and C++
committees take regarding modules support.
Properties: 
  phase_id: r218717-t20140930_164927-b4927



Files:
 lib/CodeGen/AsmPrinter/DwarfDebug.cpp
 test/DebugInfo/Inputs/gmlt.ll
On: smooshlab-project
At: Tue 30 Sep 2014 16:40:34
Changed By: dblaikie
Comments: Omit DW_AT_inline under -gmlt to save a little more space.Properties: 
  phase_id: r218725-t20140930_180350-b4929



File: test/SemaCXX/uninitialized.cpp
On: smooshlab-project
At: Tue 30 Sep 2014 17:00:33
Changed By: rtrieu
Comments: Update uninitialized tests to ensure that field initialization has the
same coverage as the global checker.
Properties: 
  phase_id: r218720-t20140930_184116-b4930



Files:
 lib/Transforms/InstCombine/InstCombine.h
 lib/Transforms/InstCombine/InstCombineCompares.cpp
 lib/Transforms/InstCombine/InstructionCombining.cpp
 test/Transforms/InstCombine/pr12338.ll
 test/Transforms/InstCombine/select-cmp-br.ll
On: smooshlab-project
At: Tue 30 Sep 2014 17:26:33
Changed By: ghoflehner
Comments: [InstCombine] Optimize icmp-select-icmp

In special cases select instructions can be eliminated by
replacing them with a cheaper bitwise operation even when the
select result is used outside its home block. The instances implemented
are patterns like
    %x=icmp.eq
    %y=select %x,%r, null
    %z=icmp.eq|neq %y, null
    br %z,true, false
==> %x=icmp.ne
    %y=icmp.eq %r,null
    %z=or %x,%y
    br %z,true,false
The optimization is integrated into the instruction
combiner and performed only when all uses of the select result can
be replaced by the select operand proper. For this dominator information
is used and dominance is now a required analysis pass in the combiner.
The optimization itself is iterative. The critical step is to replace the
select result with the non-constant select operand. So the select becomes
local and the combiner iteratively works out simpler code pattern and
eventually eliminates the select.

rdar://17853760

Properties: 
  phase_id: r218725-t20140930_180350-b4929



File: test/DebugInfo/X86/gmlt.test
On: smooshlab-project
At: Tue 30 Sep 2014 17:40:33
Changed By: chapuni
Comments: llvm/test/DebugInfo/X86/gmlt.test: Get rid of %llc_dwarf. It should not be used with -mtriple.

Also, remove object-emission. test/DebugInfo/X86 doesn't require it.Properties: 
  phase_id: r218725-t20140930_180350-b4929



File: tools/llvm-cov/CoverageReport.cpp
On: smooshlab-project
At: Tue 30 Sep 2014 17:40:33
Changed By: chapuni
Comments: llvm-cov/CoverageReport.cpp: Quick fix for msvcrt, since width specifier "z" is unavailable.

Note, mingw uses its own printf instead of msvcrt.Properties: 
  phase_id: r218725-t20140930_180350-b4929



Files:
 lib/Target/X86/X86ISelLowering.cpp
 lib/Target/X86/X86InstrSSE.td
 test/CodeGen/X86/vector-shuffle-128-v16.ll
 test/CodeGen/X86/vector-shuffle-128-v2.ll
 test/CodeGen/X86/vector-shuffle-128-v8.ll
 test/CodeGen/X86/vector-shuffle-256-v16.ll
 test/CodeGen/X86/vector-shuffle-256-v32.ll
 test/CodeGen/X86/vector-shuffle-256-v4.ll
 test/CodeGen/X86/vector-shuffle-256-v8.ll
 test/CodeGen/X86/vector-shuffle-512-v8.ll
On: smooshlab-project
At: Tue 30 Sep 2014 17:56:33
Changed By: chandlerc
Comments: [x86] Teach the new vector shuffle lowering about VBROADCAST and
VPBROADCAST.

This has the somewhat expected pervasive impact. I don't know why
I forgot about this. Everything seems good with lots of significant
improvements in the tests.Properties: 
  phase_id: r218725-t20140930_180350-b4929



File: lib/Target/X86/X86InstrAVX512.td
On: smooshlab-project
At: Tue 30 Sep 2014 17:56:33
Changed By: anemet
Comments: [AVX512] Remove space before \t in AsmStrings.Properties: 
  phase_id: r218725-t20140930_180350-b4929



Files:
 lib/CodeGen/AsmPrinter/DwarfUnit.cpp
 test/DebugInfo/X86/dbg-subrange.ll
 test/DebugInfo/X86/empty-and-one-elem-array.ll
 test/DebugInfo/X86/nondefault-subrange-array.ll
On: smooshlab-project
At: Tue 30 Sep 2014 18:10:34
Changed By: dblaikie
Comments: Implement DW_TAG_subrange_type with DW_AT_count rather than DW_AT_upper_bound

This allows proper disambiguation of unbounded arrays and arrays of zero
bound ("struct foo { int x[]; };" and "struct foo { int x[0]; }"). GCC
instead produces an upper bound of -1 in the latter situation, but count
seems tidier. This way lower_bound is provided if it's not the language
default and count is provided if the count is known, otherwise it's
omitted. Simple.

If someone wants to look at rdar://problem/12566646 and see if this
change is acceptable to that bug/fix, that might be helpful (see the
empty-and-one-elem-array.ll test case which cites that radar).Properties: 
  phase_id: r218726-t20140930_191830-b4931



Files:
 include/llvm/ADT/Optional.h
 unittests/ADT/OptionalTest.cpp
On: smooshlab-project
At: Tue 30 Sep 2014 19:26:33
Changed By: jrose
Comments: Add an emplace(...) method to llvm::Optional<T>.

This can be used for in-place initialization of non-moveable types.
For compilers that don't support variadic templates, only up to four
arguments are supported. We can always add more, of course, but this
should be good enough until we move to a later MSVC that has full
support for variadic templates.

Inspired by std::experimental::optional from the "Library Fundamentals" C++ TS.
Reviewed by David Blaikie.Properties: 
  phase_id: r218733-t20140930_195546-b4932



Files:
 lib/Target/X86/X86ISelLowering.cpp
 test/CodeGen/X86/vector-shuffle-128-v4.ll
On: smooshlab-project
At: Tue 30 Sep 2014 19:40:33
Changed By: chandlerc
Comments: [x86] Hoist the zext-lowering up in the v4i32 lowering routine -- it is
the same speed as pshufd but we can fold loads into the pmovzx
instructions.

This fixes some regressions that came up in the regression test suite
for the new vector shuffle lowering.Properties: 
  phase_id: r218733-t20140930_195546-b4932



Files:
 lib/Target/X86/X86ISelLowering.cpp
 test/CodeGen/X86/2012-07-15-broadcastfold.ll
On: smooshlab-project
At: Tue 30 Sep 2014 20:30:33
Changed By: chandlerc
Comments: [x86] Teach the new vector shuffle lowering to be even more aggressive
in exposing the scalar value to the broadcast DAG fragment so that we
can catch even reloads and fold them into the broadcast.

This is somewhat magical I'm afraid but seems to work. It is also what
the old lowering did, and I've switched an old test to run both
lowerings demonstrating that we get the same result.

Unlike the old code, I'm not lowering f32 or f64 scalars through this
path when we only have AVX1. The target patterns include pretty heinous
code to re-cast those as shuffles when the scalar happens to not be
spilled because AVX1 provides no broadcast mechanism from registers
what-so-ever. This is terribly brittle. I'd much rather go through our
generic lowering code to get this. If needed, we can add a peephole to
get even more opportunities to broadcast-from-spill-slots that are
exposed post-RA, but my suspicion is this just doesn't matter that much.Properties: 
  phase_id: r218734-t20140930_203313-b4933



File: lib/Transforms/InstCombine/InstCombineCompares.cpp
On: smooshlab-project
At: Tue 30 Sep 2014 20:36:33
Changed By: ghoflehner
Comments: [InstCombine] Fix for assert build failures caused by r218721

The icmp-select-icmp optimization made the implicit assumption
that the select-icmp instructions are in the same block and asserted on it.
The fix explicitly checks for that condition and conservatively suppresses
the optimization when it is violated.

Properties: 
  phase_id: r218739-t20140930_211045-b4934



File: include/llvm/ProfileData/CoverageMapping.h
On: smooshlab-project
At: Tue 30 Sep 2014 20:46:33
Changed By: bogner
Comments: InstrProf: Make coverage::Counter comparable

I'll be using this in a clang change very soon.Properties: 
  phase_id: r218740-t20140930_214810-b4935



File: lib/CodeGen/CoverageMappingGen.cpp
On: smooshlab-project
At: Tue 30 Sep 2014 20:46:33
Changed By: bogner
Comments: InstrProf: Hide SourceMappingRegion's internals (NFC)

This struct has some members that are accessed directly and others
that need accessors, but it's all just public. This is confusing, so
I've changed it to a class and made more members private.Properties: 
  phase_id: r218740-t20140930_214810-b4935



Files:
 lib/CodeGen/CoverageMappingGen.cpp
 test/CoverageMapping/includehell.cpp
 test/CoverageMapping/loopmacro.c
 test/CoverageMapping/macroception.c
 test/CoverageMapping/macroparams.c
On: smooshlab-project
At: Tue 30 Sep 2014 20:46:33
Changed By: bogner
Comments: InstrProf: Avoid repeated linear searches in a hot path

When generating coverage regions, we were doing a linear search
through the existing regions in order to try to merge related ones.
Most of the time this would find what it was looking for in a small
number of steps and it wasn't a big deal, but in cases with many
regions and few mergeable ones this leads to an absurd compile time
regression.

This changes the coverage mapping logic to do a single sort and then
merge as we go, which is a bit simpler and about 100 times faster.
I've also added FIXMEs on a couple of behaviours that seem a little
suspect, while keeping them behaving as they were - I'll look into
these soon.

The test changes here are mostly tedious reorganization, because the
ordering of regions we output has become slightly (but not completely)
more consistent from the almost completely arbitrary ordering we got
before.Properties: 
  phase_id: r218740-t20140930_214810-b4935



File: lib/Target/X86/X86ISelLowering.cpp
On: smooshlab-project
At: Tue 30 Sep 2014 20:50:33
Changed By: nicholas
Comments: Fix typo in comment from r218733
Properties: 
  phase_id: r218739-t20140930_211045-b4934



Files:
 lib/Sema/SemaDeclCXX.cpp
 test/SemaCXX/uninitialized.cpp
On: smooshlab-project
At: Tue 30 Sep 2014 20:56:34
Changed By: rtrieu
Comments: Improve -Wuninitialized warnings for fields that are record types.

Get the record handling code from SelfReferenceChecker into
UninitializedFieldVisitor as well as copying the testcases.
Properties: 
  phase_id: r218740-t20140930_214810-b4935



Files:
 include/llvm/ExecutionEngine/RTDyldMemoryManager.h
 lib/ExecutionEngine/RTDyldMemoryManager.cpp
 unittests/ExecutionEngine/ExecutionEngineTest.cpp
On: smooshlab-project
At: Tue 30 Sep 2014 21:26:33
Changed By: lhames
Comments: [MCJIT] Turn the getSymbolAddress free function created in r218626 into a static
member of RTDyldMemoryManager (and rename to getSymbolAddressInProcess).

The functionality this provides is very specific to RTDyldMemoryManager, so it
makes sense to keep it in that class to avoid accidental re-use.

No functional change.
Properties: 
  phase_id: r218741-t20140930_222528-b4936



File: test/DebugInfo/gmlt.test
On: smooshlab-project
At: Tue 30 Sep 2014 23:00:33
Changed By: bogner
Comments: test: XFAIL the non-darwin gmlt test on darwin

r218702 disabled a -gmlt optimization for darwin, but this means the
non-darwin test isn't working there anymore.Properties: 
  phase_id: r218742-t20140930_230248-b4937



LOGS:






More information about the llvm-testresults mailing list