FailedChanges

Summary

  1. llvm-objcopy/test: add REQUIRES: shell for use of umask (follow-up to r365162)
  2. Analysis: Don't look through aliases when simplifying GEPs. It is not safe in general to replace an alias in a GEP with its aliasee if the alias can be replaced with another definition (i.e. via strong/weak resolution (linkonce_odr) or via symbol interposition (default visibility in ELF)) while the aliasee cannot. An example of how this can go wrong is in the included test case. I was concerned that this might be a load-bearing misoptimization (it's possible for us to use aliases to share vtables between base and derived classes, and on Windows, vtable symbols will always be aliases in RTTI mode, so this change could theoretically inhibit trivial devirtualization in some cases), so I built Chromium for Linux and Windows with and without this change. The file sizes of the resulting binaries were identical, so it doesn't look like this is going to be a problem. Differential Revision: https://reviews.llvm.org/D65118
  3. Fixing build error from commit 9285295. [Attributor] Liveness analysis. Liveness analysis abstract attribute used to indicate which BasicBlocks are dead and can therefore be ignored. Right now we are only looking at noreturn calls. Reviewers: jdoerfert, uenoku Subscribers: hiraditya, llvm-commits Differential revision: https://reviews.llvm.org/D64162
  4. [NFC][PatternMatch] Refactor code into a proper "matcher for any integral constant" Having it as a proper matcher is better for reusability elsewhere (in a follow-up patch.)
  5. [InstSimplify][NFC] Tests for skipping 'div-by-0' checks before @llvm.umul.with.overflow These may remain after @llvm.umul.with.overflow was canonicalized from the code that was originally doing the check via division.
  6. [SimplifyCFG][NFC] Test that we fail to flatten CFG in JPEG "sign" value extend pattern This comes up in JPEG decoding, see e.g. Figure F.12 – Extending the sign bit of a decoded value in V of ITU T.81 (JPEG specification).
  7. [SimplifyCFG][NFC] Test that we fail to flatten CFG after forming @llvm.umul.with.overflow Even if we formed @llvm.umul.with.overflow, we are still stuck with that guard against div-by-zero, which is no longer needed, because we didn't flatten the CFG.
  8. [InstCombine][NFC] Tests for canonicalization of unsigned multiply overflow check
  9. [NFC][PhaseOrdering] Add tests showcasing the problems of unsigned multiply overflow check While we can form the @llvm.mul.with.overflow easily, we are still left with that check that was guarding against div-by-0. And in the second case we won't even flatten the CFG.
  10. [IndVarSimplify][NFC] Autogenerate check lines in loop_evaluate_1.ll Being affected by upcoming patch.
  11. [Driver] Set the default win32-macho debug format to DWARF rdar://53267670 Differential Revision: https://reviews.llvm.org/D65116
  12. AMDGPU: Don't use SDNodeXForm for DS offset output The xform has no real valuewhen it's using out of a complex pattern output. The complex pattern was already creating TargetConstants with i16, so this was just unnecessary machinery. This allows global isel to import the simple cases once the complex pattern is implemented.
Revision 366755 by dblaikie:
llvm-objcopy/test: add REQUIRES: shell for use of umask

(follow-up to r365162)
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test (diff)llvm.src/test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test
The file was modified/llvm/trunk/test/tools/llvm-objcopy/ELF/respect-umask.test (diff)llvm.src/test/tools/llvm-objcopy/ELF/respect-umask.test
Revision 366754 by pcc:
Analysis: Don't look through aliases when simplifying GEPs.

It is not safe in general to replace an alias in a GEP with its aliasee
if the alias can be replaced with another definition (i.e. via strong/weak
resolution (linkonce_odr) or via symbol interposition (default visibility
in ELF)) while the aliasee cannot. An example of how this can go wrong is
in the included test case.

I was concerned that this might be a load-bearing misoptimization (it's
possible for us to use aliases to share vtables between base and derived
classes, and on Windows, vtable symbols will always be aliases in RTTI
mode, so this change could theoretically inhibit trivial devirtualization
in some cases), so I built Chromium for Linux and Windows with and without
this change. The file sizes of the resulting binaries were identical, so it
doesn't look like this is going to be a problem.

Differential Revision: https://reviews.llvm.org/D65118
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/ConstantFolding.cpp (diff)llvm.src/lib/Analysis/ConstantFolding.cpp
The file was added/llvm/trunk/test/Analysis/ConstantFolding/gep-alias.llllvm.src/test/Analysis/ConstantFolding/gep-alias.ll
Revision 366753 by sstefan:
Fixing build error from commit 9285295.

[Attributor] Liveness analysis.

Liveness analysis abstract attribute used to indicate which BasicBlocks are dead and can therefore be ignored.
Right now we are only looking at noreturn calls.

Reviewers: jdoerfert, uenoku

Subscribers: hiraditya, llvm-commits

Differential revision: https://reviews.llvm.org/D64162
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Transforms/IPO/Attributor.h (diff)llvm.src/include/llvm/Transforms/IPO/Attributor.h
The file was modified/llvm/trunk/include/llvm/Transforms/Utils/Local.h (diff)llvm.src/include/llvm/Transforms/Utils/Local.h
The file was modified/llvm/trunk/lib/Transforms/IPO/Attributor.cpp (diff)llvm.src/lib/Transforms/IPO/Attributor.cpp
The file was modified/llvm/trunk/lib/Transforms/Utils/Local.cpp (diff)llvm.src/lib/Transforms/Utils/Local.cpp
The file was added/llvm/trunk/test/Transforms/FunctionAttrs/liveness.llllvm.src/test/Transforms/FunctionAttrs/liveness.ll
Revision 366752 by lebedevri:
[NFC][PatternMatch] Refactor code into a proper "matcher for any integral constant"

Having it as a proper matcher is better for reusability elsewhere
(in a follow-up patch.)
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/PatternMatch.h (diff)llvm.src/include/llvm/IR/PatternMatch.h
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineInternal.h (diff)llvm.src/lib/Transforms/InstCombine/InstCombineInternal.h
Revision 366751 by lebedevri:
[InstSimplify][NFC] Tests for skipping 'div-by-0' checks before @llvm.umul.with.overflow

These may remain after @llvm.umul.with.overflow was canonicalized
from the code that was originally doing the check via division.
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/Transforms/InstSimplify/div-by-0-guard-before-smul_ov.llllvm.src/test/Transforms/InstSimplify/div-by-0-guard-before-smul_ov.ll
The file was added/llvm/trunk/test/Transforms/InstSimplify/div-by-0-guard-before-umul_ov.llllvm.src/test/Transforms/InstSimplify/div-by-0-guard-before-umul_ov.ll
Revision 366750 by lebedevri:
[SimplifyCFG][NFC] Test that we fail to flatten CFG in JPEG "sign" value extend pattern

This comes up in JPEG decoding, see e.g.
Figure F.12 – Extending the sign bit of a decoded value in V
of ITU T.81 (JPEG specification).
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/Transforms/SimplifyCFG/signbit-like-value-extension.llllvm.src/test/Transforms/SimplifyCFG/signbit-like-value-extension.ll
Revision 366749 by lebedevri:
[SimplifyCFG][NFC] Test that we fail to flatten CFG after forming @llvm.umul.with.overflow

Even if we formed @llvm.umul.with.overflow, we are still stuck
with that guard against div-by-zero, which is no longer needed,
because we didn't flatten the CFG.
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/Transforms/SimplifyCFG/unsigned-multiplication-will-overflow.llllvm.src/test/Transforms/SimplifyCFG/unsigned-multiplication-will-overflow.ll
Revision 366748 by lebedevri:
[InstCombine][NFC] Tests for canonicalization of unsigned multiply overflow check
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/Transforms/InstCombine/unsigned-mul-lack-of-overflow-check-via-mul-udiv.llllvm.src/test/Transforms/InstCombine/unsigned-mul-lack-of-overflow-check-via-mul-udiv.ll
The file was added/llvm/trunk/test/Transforms/InstCombine/unsigned-mul-lack-of-overflow-check-via-udiv-of-allones.llllvm.src/test/Transforms/InstCombine/unsigned-mul-lack-of-overflow-check-via-udiv-of-allones.ll
The file was added/llvm/trunk/test/Transforms/InstCombine/unsigned-mul-overflow-check-via-mul-udiv.llllvm.src/test/Transforms/InstCombine/unsigned-mul-overflow-check-via-mul-udiv.ll
The file was added/llvm/trunk/test/Transforms/InstCombine/unsigned-mul-overflow-check-via-udiv-of-allones.llllvm.src/test/Transforms/InstCombine/unsigned-mul-overflow-check-via-udiv-of-allones.ll
Revision 366747 by lebedevri:
[NFC][PhaseOrdering] Add tests showcasing the problems of unsigned multiply overflow check

While we can form the @llvm.mul.with.overflow easily,
we are still left with that check that was guarding against div-by-0.
And in the second case we won't even flatten the CFG.
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/Transforms/PhaseOrdering/unsigned-multiply-overflow-check.llllvm.src/test/Transforms/PhaseOrdering/unsigned-multiply-overflow-check.ll
Revision 366746 by lebedevri:
[IndVarSimplify][NFC] Autogenerate check lines in loop_evaluate_1.ll

Being affected by upcoming patch.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/IndVarSimplify/loop_evaluate_1.ll (diff)llvm.src/test/Transforms/IndVarSimplify/loop_evaluate_1.ll
Revision 366744 by Vedant Kumar:
[Driver] Set the default win32-macho debug format to DWARF

rdar://53267670

Differential Revision: https://reviews.llvm.org/D65116
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/ToolChains/MSVC.h (diff)clang.src/lib/Driver/ToolChains/MSVC.h
The file was modified/cfe/trunk/test/Misc/win32-macho.c (diff)clang.src/test/Misc/win32-macho.c
Revision 366743 by arsenm:
AMDGPU: Don't use SDNodeXForm for DS offset output

The xform has no real valuewhen it's using out of a complex pattern
output. The complex pattern was already creating TargetConstants with
i16, so this was just unnecessary machinery.

This allows global isel to import the simple cases once the complex
pattern is implemented.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/DSInstructions.td (diff)llvm.src/lib/Target/AMDGPU/DSInstructions.td