the bitrig patrick_pr branch has been created by patrick.

it is 0 commits behind master, and 3 commits ahead.

commit a963caa0aeab820ae70a6ee825dade87a06dd4ab
diff: https://github.com/bitrig/bitrig/commit/a963caa
author: David Hill <[email protected]>
date: Thu Jan 1 11:52:21 2015 -0500

Pull in LLVM r203311 and r211435.

r211435
Legalizer: Add support for splitting insert_subvectors.
We handle this by spilling the whole thing to the stack and doing the
insertion as a store.

PR19492. This happens in real code because the vectorizer creates
v2i128 when AVX is enabled.

r203311
ISel: Make VSELECT selection terminate in cases where the condition
type has to be split and the result type widened.

When the condition of a vselect has to be split it makes no sense
widening the vselect and thereby widening the condition. We end up in an
endless loop of widening (vselect result type) and splitting (condition
mask type) doing this.  Instead, split both the condition and the
vselect and widen the result.

M       contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
M       contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp

commit df237cb39e6010ef0b04778a6f439dd31dc71790
diff: https://github.com/bitrig/bitrig/commit/df237cb
author: David Hill <[email protected]>
date: Thu Jan 1 11:19:44 2015 -0500

Pull in LLVM fix for PR20893.

Totally forget deallocated SDNodes in SDDbgInfo.

What would happen before that commit is that the SDDbgValues associated
with a deallocated SDNode would be marked Invalidated, but SDDbgInfo
would keep a map entry keyed by the SDNode pointer pointing to this list
of invalidated SDDbgNodes. As the memory gets reused, the list might get
wrongly associated with another new SDNode. As the SDDbgValues are
cloned when they are transfered, this can lead to an exponential number
of SDDbgValues being produced during DAGCombine like in
http://llvm.org/bugs/show_bug.cgi?id=20893

Note that the previous behavior wasn't really buggy as the invalidation
made sure that the SDDbgValues won't be used. This commit can be
considered a memory optimization and as such is really hard to validate
in a unit-test.

M       contrib/llvm/include/llvm/CodeGen/SelectionDAG.h
M       contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

commit b46e6abb45672cf1247240af135592dba2925a1f
diff: https://github.com/bitrig/bitrig/commit/b46e6ab
author: David Hill <[email protected]>
date: Thu Jan 1 11:13:49 2015 -0500

Pull in LLVM fix for PR21302.

The issue is that currently vectorizer sometimes vectorizes loops that
are not bottom-tested, i.e. in which each iteration starts from
checking the termination condition.  That causes an extra-iteration to
be executed in vectorized version in some cases.

http://llvm.org/bugs/show_bug.cgi?id=21302

M       contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

Reply via email to