FailedChanges

Summary

  1. Support arbitrary address space pointers in masked gather/scatter intrinsics. Fixes PR31789 - When loop-vectorize tries to use these intrinsics for a non-default address space pointer we fail with a "Calling a function with a bad singature!" assertion. This patch solves this by adding the 'vector of pointers' argument as an overloaded type which will determine the address space. Differential revision: https://reviews.llvm.org/D31490
  2. [AVR] Reserve the Y register in all functions
  3. [analyzer] Fix memory error bug category capitalization. It was written as "Memory Error" in most places and as "Memory error" in a few other places, however it is the latter that is more consistent with other categories (such as "Logic error"). rdar://problem/31718115 Differential Revision: https://reviews.llvm.org/D32702
  4. [Loop Deletion] Delete loops that are never executed Summary: Currently, loop deletion deletes loop where the only values that are used outside the loop are loop-invariant. This patch adds logic to delete loops where the loop is proven to be never executed (i.e. the only predecessor of the loop preheader has a constant conditional branch as terminator, and the preheader is not the taken target). This will remove loops that become dead after loop-unswitching generates constant conditional branches. The next steps are: 1. moving the loop deletion implementation to LoopUtils. 2. Add logic in loop-simplifyCFG which will support changing conditional constant branches to unconditional branches. If loops become unreachable in this process, they can be removed using `deleteDeadLoop` function. Reviewers: chandlerc, efriedma, sanjoy, reames Reviewed by: sanjoy Subscribers: mzolotukhin, llvm-commits Differential Revision: https://reviews.llvm.org/D32494
Revision 302018 by eladcohen:
Support arbitrary address space pointers in masked gather/scatter intrinsics.

Fixes PR31789 - When loop-vectorize tries to use these intrinsics for a
non-default address space pointer we fail with a "Calling a function with a
bad singature!" assertion. This patch solves this by adding the 'vector of
pointers' argument as an overloaded type which will determine the address
space.

Differential revision: https://reviews.llvm.org/D31490
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/LangRef.rst (diff)llvm-revision.src/llvm/trunk/docs/LangRef.rst
The file was modified/llvm/trunk/include/llvm/IR/Intrinsics.h (diff)llvm-revision.src/llvm/trunk/include/llvm/IR/Intrinsics.h
The file was modified/llvm/trunk/include/llvm/IR/Intrinsics.td (diff)llvm-revision.src/llvm/trunk/include/llvm/IR/Intrinsics.td
The file was modified/llvm/trunk/lib/IR/AutoUpgrade.cpp (diff)llvm-revision.src/llvm/trunk/lib/IR/AutoUpgrade.cpp
The file was modified/llvm/trunk/lib/IR/Function.cpp (diff)llvm-revision.src/llvm/trunk/lib/IR/Function.cpp
The file was modified/llvm/trunk/lib/IR/IRBuilder.cpp (diff)llvm-revision.src/llvm/trunk/lib/IR/IRBuilder.cpp
The file was modified/llvm/trunk/test/Analysis/CostModel/X86/masked-intrinsic-cost.ll (diff)llvm-revision.src/llvm/trunk/test/Analysis/CostModel/X86/masked-intrinsic-cost.ll
The file was modified/llvm/trunk/test/Analysis/CostModel/X86/vector_gep.ll (diff)llvm-revision.src/llvm/trunk/test/Analysis/CostModel/X86/vector_gep.ll
The file was modified/llvm/trunk/test/Assembler/auto_upgrade_intrinsics.ll (diff)llvm-revision.src/llvm/trunk/test/Assembler/auto_upgrade_intrinsics.ll
The file was modified/llvm/trunk/test/CodeGen/X86/masked_gather_scatter.ll (diff)llvm-revision.src/llvm/trunk/test/CodeGen/X86/masked_gather_scatter.ll
The file was modified/llvm/trunk/test/Transforms/FunctionAttrs/readattrs.ll (diff)llvm-revision.src/llvm/trunk/test/Transforms/FunctionAttrs/readattrs.ll
The file was modified/llvm/trunk/test/Transforms/GVN/2016-08-30-MaskedScatterGather.ll (diff)llvm-revision.src/llvm/trunk/test/Transforms/GVN/2016-08-30-MaskedScatterGather.ll
The file was modified/llvm/trunk/test/Transforms/InstCombine/masked_intrinsics.ll (diff)llvm-revision.src/llvm/trunk/test/Transforms/InstCombine/masked_intrinsics.ll
The file was modified/llvm/trunk/test/Transforms/LoopVectorize/X86/consecutive-ptr-uniforms.ll (diff)llvm-revision.src/llvm/trunk/test/Transforms/LoopVectorize/X86/consecutive-ptr-uniforms.ll
The file was modified/llvm/trunk/test/Transforms/LoopVectorize/X86/gather_scatter.ll (diff)llvm-revision.src/llvm/trunk/test/Transforms/LoopVectorize/X86/gather_scatter.ll
The file was modified/llvm/trunk/test/Transforms/LoopVectorize/X86/scatter_crash.ll (diff)llvm-revision.src/llvm/trunk/test/Transforms/LoopVectorize/X86/scatter_crash.ll
The file was modified/llvm/trunk/test/Transforms/NewGVN/2016-08-30-MaskedScatterGather.ll (diff)llvm-revision.src/llvm/trunk/test/Transforms/NewGVN/2016-08-30-MaskedScatterGather.ll
The file was added/llvm/trunk/test/Verifier/scatter_gather.llllvm-revision.src/llvm/trunk/test/Verifier/scatter_gather.ll
The file was modified/llvm/trunk/utils/TableGen/IntrinsicEmitter.cpp (diff)llvm-revision.src/llvm/trunk/utils/TableGen/IntrinsicEmitter.cpp
Revision 302017 by dylanmckay:
[AVR] Reserve the Y register in all functions
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AVR/AVRRegisterInfo.cpp (diff)llvm-revision.src/llvm/trunk/lib/Target/AVR/AVRRegisterInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/AVR/brind.ll (diff)llvm-revision.src/llvm/trunk/test/CodeGen/AVR/brind.ll
The file was modified/llvm/trunk/test/CodeGen/AVR/dynalloca.ll (diff)llvm-revision.src/llvm/trunk/test/CodeGen/AVR/dynalloca.ll
The file was modified/llvm/trunk/test/CodeGen/AVR/inline-asm/inline-asm.ll (diff)llvm-revision.src/llvm/trunk/test/CodeGen/AVR/inline-asm/inline-asm.ll
Revision 302016 by dergachev:
[analyzer] Fix memory error bug category capitalization.

It was written as "Memory Error" in most places and as "Memory error" in a few
other places, however it is the latter that is more consistent with
other categories (such as "Logic error").

rdar://problem/31718115

Differential Revision: https://reviews.llvm.org/D32702
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/CommonBugCategories.h (diff)llvm-revision.src/cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/CommonBugCategories.h
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp (diff)llvm-revision.src/cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp (diff)llvm-revision.src/cfe/trunk/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/ValistChecker.cpp (diff)llvm-revision.src/cfe/trunk/lib/StaticAnalyzer/Checkers/ValistChecker.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/CommonBugCategories.cpp (diff)llvm-revision.src/cfe/trunk/lib/StaticAnalyzer/Core/CommonBugCategories.cpp
The file was modified/cfe/trunk/test/Analysis/MismatchedDeallocator-path-notes.cpp (diff)llvm-revision.src/cfe/trunk/test/Analysis/MismatchedDeallocator-path-notes.cpp
The file was modified/cfe/trunk/test/Analysis/NewDelete-path-notes.cpp (diff)llvm-revision.src/cfe/trunk/test/Analysis/NewDelete-path-notes.cpp
The file was modified/cfe/trunk/test/Analysis/diagnostics/report-issues-within-main-file.cpp (diff)llvm-revision.src/cfe/trunk/test/Analysis/diagnostics/report-issues-within-main-file.cpp
The file was modified/cfe/trunk/test/Analysis/edges-new.mm (diff)llvm-revision.src/cfe/trunk/test/Analysis/edges-new.mm
The file was modified/cfe/trunk/test/Analysis/malloc-plist.c (diff)llvm-revision.src/cfe/trunk/test/Analysis/malloc-plist.c
The file was modified/cfe/trunk/test/Analysis/plist-macros.cpp (diff)llvm-revision.src/cfe/trunk/test/Analysis/plist-macros.cpp
Revision 302015 by annat:
[Loop Deletion] Delete loops that are never executed

Summary:
Currently, loop deletion deletes loop where the only values
that are used outside the loop are loop-invariant.
This patch adds logic to delete loops where the loop is proven to be
never executed (i.e. the only predecessor of the loop preheader has a
constant conditional branch as terminator, and the preheader is not the
taken target). This will remove loops that become dead after
loop-unswitching generates constant conditional branches.

The next steps are:
1. moving the loop deletion implementation to LoopUtils.
2. Add logic in loop-simplifyCFG which will support changing conditional
constant branches to unconditional branches. If loops become unreachable in this
process, they can be removed using `deleteDeadLoop` function.

Reviewers: chandlerc, efriedma, sanjoy, reames

Reviewed by: sanjoy

Subscribers: mzolotukhin, llvm-commits

Differential Revision: https://reviews.llvm.org/D32494
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/LoopDeletion.cpp (diff)llvm-revision.src/llvm/trunk/lib/Transforms/Scalar/LoopDeletion.cpp
The file was added/llvm/trunk/test/Transforms/LoopDeletion/unreachable-loops.llllvm-revision.src/llvm/trunk/test/Transforms/LoopDeletion/unreachable-loops.ll