FailedChanges

Summary

  1. Skip install step if not requested.
  2. Changed a default source code directory from llvm.src to llvm.
  3. Update testcase for upstream LLVM changes.
  4. [InstCombine] add tests from D32285 to show current problems; NFC
  5. Refactor <locale> RAII guards to aid upcoming Windows locale changes. Previously <locale> used std::unique_ptr<remove_ptr<locale_t>, locale-mgmt-function> as a scope guard for (A) creating new locales, and (B) setting the thread specific locale in RAII safe manner. However using unique_ptr has some problems, first it requires that locale_t is a pointer type, which may not be the case (Windows will need a non-pointer locale_t type that emulates _locale_t). The second problem is that users of the guards had to supply the locale management function to the custom deleter at every call site. However these locale management functions don't exist natively Windows, making a good Windows implementation of locale more difficult. This patch creates distinct and simply RAII guards that replace unique_ptr. These guards handle calling the correct locale management function so that callers don't have too. This simplification will aid in upcoming Windows fixes.
  6. Fix possible loss of data warnings on amd64 In T_size_size.pass, there is an explicit template argument to std::min to ask for unsigned, to avoid type deduction errors. However, C1XX' warnings still hate this use, because a 64 bit value (a size_t) is being passed to a function accepting an unsigned (a 32 bit value). Instead, change the tests to pass around std::size_t instances, and explicitly narrow when constructing the string type under test. This also allows removal of explicit template arguments to std::min.
  7. Resolve integer overflow warnings in GCD and LCM tests lcm.pass.cpp: 19: Update headers to that actually used in the test. 41: test0 was triggering narrowing warnings for all callers, because the inputs were always ints, but some of the explicit template arguments were smaller than that. Instead, have this function accept ints and static_cast explicitly to the types we want before calling std::lcm. 47: Replace unnecessary ternary. 55: Use foo_t instead of typename foo<>::type 111/116: intX_t were not std::qualified but only <cfoo> headers were included. 141: C1XX has a bug where it interprets 2147483648 as unsigned int. Then the negation trips "negation of unsigned value, result still unsigned" warnings. Perma-workaround this issue by saying INT_MIN, which better documents the intended behavior and avoids triggering warnings on C1XX. gcd.pass.cpp: Same changes as lcm.pass.cpp but for GCD.
  8. Add const to "DWARFDie &Die" in a few functions as they can't change the DWARFDie.
  9. Fix typo
  10. Make it illegal for two Functions to point to the same DISubprogram As recently discussed on llvm-dev [1], this patch makes it illegal for two Functions to point to the same DISubprogram and updates FunctionCloner to also clone the debug info of a function to conform to the new requirement. To simplify the implementation it also factors out the creation of inlineAt locations from the Inliner into a general-purpose utility in DILocation. [1] http://lists.llvm.org/pipermail/llvm-dev/2017-May/112661.html <rdar://problem/31926379> Differential Revision: https://reviews.llvm.org/D32975
  11. [Driver] Don't enable -fsanitize-use-after-scope when ASan is disabled When enabling any sanitizer, -fsanitize-use-after-scope is enabled by default. This doesn't actually turn ASan on, because we've been getting lucky and there are extra checks in BackendUtil that stop this from happening. However, this has been causing a behavior change: extra lifetime markers are emitted in some cases where they aren't needed or expected.
  12. STLExtras: Fix enumerate() documentation
  13. Fix typo "veify" to "verify".
  14. [InstCombine] add folds for not-of-shift-right This is another step towards getting rid of dyn_castNotVal, so we can recommit: https://reviews.llvm.org/rL300977 As the tests show, we were missing the lshr case for constants and both ashr/lshr vector splat folds. The ashr case with constant was being performed inefficiently in 2 steps. It's also possible there was a latent bug in that case because we can't do that fold if the constant is positive: http://rise4fun.com/Alive/Bge
  15. [PartialInlining] Capture by reference rather than by value.
  16. If we are building a module, and we read a second description of the same module from a different module map, ignore it. This happens during builds of preprocessed modules (where it is harmless).
Revision 302478 by gkistanova:
Skip install step if not requested.
Change TypePath in RepositoryPath in Workspace
The file was modified/zorg/trunk/zorg/buildbot/builders/UnifiedTreeBuilder.py (diff)llvm-revision.src/zorg/trunk/zorg/buildbot/builders/UnifiedTreeBuilder.py
Revision 302477 by gkistanova:
Changed a default source code directory from llvm.src to llvm.
Change TypePath in RepositoryPath in Workspace
The file was modified/zorg/trunk/zorg/buildbot/process/factory.py (diff)llvm-revision.src/zorg/trunk/zorg/buildbot/process/factory.py
Revision 302476 by Adrian Prantl:
Update testcase for upstream LLVM changes.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/CodeGenCXX/linetable-virtual-variadic.cpp (diff)llvm-revision.src/cfe/trunk/test/CodeGenCXX/linetable-virtual-variadic.cpp
Revision 302475 by spatel:
[InstCombine] add tests from D32285 to show current problems; NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/InstCombine/cast.ll (diff)llvm-revision.src/llvm/trunk/test/Transforms/InstCombine/cast.ll
Revision 302474 by ericwf:
Refactor <locale> RAII guards to aid upcoming Windows locale changes.

Previously <locale> used std::unique_ptr<remove_ptr<locale_t>, locale-mgmt-function>
as a scope guard for (A) creating new locales, and (B) setting the thread specific locale
in RAII safe manner.

However using unique_ptr has some problems, first it requires that locale_t is a pointer
type, which may not be the case (Windows will need a non-pointer locale_t type that emulates _locale_t).

The second problem is that users of the guards had to supply the locale management function to the custom
deleter at every call site. However these locale management functions don't exist natively Windows, making
a good Windows implementation of locale more difficult.

This patch creates distinct and simply RAII guards that replace unique_ptr. These guards handle calling
the correct locale management function so that callers don't have too. This simplification will
aid in upcoming Windows fixes.
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/__bsd_locale_fallbacks.h (diff)llvm-revision.src/libcxx/trunk/include/__bsd_locale_fallbacks.h
The file was modified/libcxx/trunk/include/__locale (diff)llvm-revision.src/libcxx/trunk/include/__locale
The file was modified/libcxx/trunk/include/locale (diff)llvm-revision.src/libcxx/trunk/include/locale
The file was modified/libcxx/trunk/src/locale.cpp (diff)llvm-revision.src/libcxx/trunk/src/locale.cpp
The file was modified/libcxx/trunk/src/support/win32/locale_win32.cpp (diff)llvm-revision.src/libcxx/trunk/src/support/win32/locale_win32.cpp
Revision 302473 by bion:
Fix possible loss of data warnings on amd64

In T_size_size.pass, there is an explicit template argument to std::min to ask
for unsigned, to avoid type deduction errors. However, C1XX' warnings still
hate this use, because a 64 bit value (a size_t) is being passed to a function
accepting an unsigned (a 32 bit value).

Instead, change the tests to pass around std::size_t instances, and explicitly
narrow when constructing the string type under test. This also allows
removal of explicit template arguments to std::min.
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/test/std/strings/basic.string/string.cons/T_size_size.pass.cpp (diff)llvm-revision.src/libcxx/trunk/test/std/strings/basic.string/string.cons/T_size_size.pass.cpp
Revision 302472 by bion:
Resolve integer overflow warnings in GCD and LCM tests

lcm.pass.cpp:
19: Update headers to that actually used in the test.
41: test0 was triggering narrowing warnings for all callers, because the
inputs were always ints, but some of the explicit template arguments were
smaller than that. Instead, have this function accept ints and static_cast
explicitly to the types we want before calling std::lcm.
47: Replace unnecessary ternary.
55: Use foo_t instead of typename foo<>::type
111/116: intX_t were not std::qualified but only <cfoo> headers were included.
141: C1XX has a bug where it interprets 2147483648 as unsigned int. Then the
negation trips "negation of unsigned value, result still unsigned" warnings.
Perma-workaround this issue by saying INT_MIN, which better documents the
intended behavior and avoids triggering warnings on C1XX.

gcd.pass.cpp:
Same changes as lcm.pass.cpp but for GCD.
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/test/std/numerics/numeric.ops/numeric.ops.gcd/gcd.pass.cpp (diff)llvm-revision.src/libcxx/trunk/test/std/numerics/numeric.ops/numeric.ops.gcd/gcd.pass.cpp
The file was modified/libcxx/trunk/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.pass.cpp (diff)llvm-revision.src/libcxx/trunk/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.pass.cpp
Revision 302471 by gclayton:
Add const to "DWARFDie &Die" in a few functions as they can't change the DWARFDie.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFVerifier.h (diff)llvm-revision.src/llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFVerifier.h
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFVerifier.cpp (diff)llvm-revision.src/llvm/trunk/lib/DebugInfo/DWARF/DWARFVerifier.cpp
Revision 302470 by eugene:
Fix typo
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFVerifier.cpp (diff)llvm-revision.src/llvm/trunk/lib/DebugInfo/DWARF/DWARFVerifier.cpp
Revision 302469 by Adrian Prantl:
Make it illegal for two Functions to point to the same DISubprogram

As recently discussed on llvm-dev [1], this patch makes it illegal for
two Functions to point to the same DISubprogram and updates
FunctionCloner to also clone the debug info of a function to conform
to the new requirement. To simplify the implementation it also factors
out the creation of inlineAt locations from the Inliner into a
general-purpose utility in DILocation.

[1] http://lists.llvm.org/pipermail/llvm-dev/2017-May/112661.html
<rdar://problem/31926379>

Differential Revision: https://reviews.llvm.org/D32975
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/DebugLoc.h (diff)llvm-revision.src/llvm/trunk/include/llvm/IR/DebugLoc.h
The file was modified/llvm/trunk/lib/IR/DebugLoc.cpp (diff)llvm-revision.src/llvm/trunk/lib/IR/DebugLoc.cpp
The file was modified/llvm/trunk/lib/IR/Verifier.cpp (diff)llvm-revision.src/llvm/trunk/lib/IR/Verifier.cpp
The file was modified/llvm/trunk/lib/Transforms/Utils/CloneFunction.cpp (diff)llvm-revision.src/llvm/trunk/lib/Transforms/Utils/CloneFunction.cpp
The file was modified/llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp (diff)llvm-revision.src/llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp
The file was modified/llvm/trunk/test/Verifier/metadata-function-dbg.ll (diff)llvm-revision.src/llvm/trunk/test/Verifier/metadata-function-dbg.ll
The file was modified/llvm/trunk/unittests/Transforms/Utils/Cloning.cpp (diff)llvm-revision.src/llvm/trunk/unittests/Transforms/Utils/Cloning.cpp
Revision 302468 by Vedant Kumar:
[Driver] Don't enable -fsanitize-use-after-scope when ASan is disabled

When enabling any sanitizer, -fsanitize-use-after-scope is enabled by
default. This doesn't actually turn ASan on, because we've been getting
lucky and there are extra checks in BackendUtil that stop this from
happening.

However, this has been causing a behavior change: extra lifetime markers
are emitted in some cases where they aren't needed or expected.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/SanitizerArgs.cpp (diff)llvm-revision.src/cfe/trunk/lib/Driver/SanitizerArgs.cpp
The file was modified/cfe/trunk/test/Driver/fsanitize.c (diff)llvm-revision.src/cfe/trunk/test/Driver/fsanitize.c
Revision 302467 by matze:
STLExtras: Fix enumerate() documentation
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ADT/STLExtras.h (diff)llvm-revision.src/llvm/trunk/include/llvm/ADT/STLExtras.h
Revision 302466 by gclayton:
Fix typo "veify" to "verify".
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFVerifier.h (diff)llvm-revision.src/llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFVerifier.h
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFVerifier.cpp (diff)llvm-revision.src/llvm/trunk/lib/DebugInfo/DWARF/DWARFVerifier.cpp
Revision 302465 by spatel:
[InstCombine] add folds for not-of-shift-right

This is another step towards getting rid of dyn_castNotVal,
so we can recommit:
https://reviews.llvm.org/rL300977

As the tests show, we were missing the lshr case for constants
and both ashr/lshr vector splat folds. The ashr case with constant
was being performed inefficiently in 2 steps. It's also possible
there was a latent bug in that case because we can't do that fold
if the constant is positive:
http://rise4fun.com/Alive/Bge
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp (diff)llvm-revision.src/llvm/trunk/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/not.ll (diff)llvm-revision.src/llvm/trunk/test/Transforms/InstCombine/not.ll
Revision 302464 by davide:
[PartialInlining] Capture by reference rather than by value.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/IPO/PartialInlining.cpp (diff)llvm-revision.src/llvm/trunk/lib/Transforms/IPO/PartialInlining.cpp
Revision 302463 by rsmith:
If we are building a module, and we read a second description of the same
module from a different module map, ignore it.

This happens during builds of preprocessed modules (where it is harmless).
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Lex/ModuleMap.cpp (diff)llvm-revision.src/cfe/trunk/lib/Lex/ModuleMap.cpp
The file was modified/cfe/trunk/test/Modules/preprocess-module.cpp (diff)llvm-revision.src/cfe/trunk/test/Modules/preprocess-module.cpp