SuccessChanges

Summary

  1. Visualizer for APInt and remove obsolete visualizer Visualizer for the simple case of APInt (uints < 2^64) as will be required for Clang ConstantArrayType visualizer. Also, removed obsolete VS2013 SmallVectorVisualizer as VS2013 is no longer supported.
  2. Factor out SelectionDAG's switch analysis and lowering into a separate component. In order for GlobalISel to re-use the significant amount of analysis and optimization code in SDAG's switch lowering, we first have to extract it and create an interface to be used by both frameworks. No test changes as it's NFC. Differential Revision: https://reviews.llvm.org/D62745
Revision 362860 by mps:
Visualizer for APInt and remove obsolete visualizer

Visualizer for the simple case of APInt (uints < 2^64)
as will be required  for Clang ConstantArrayType visualizer.
Also, removed obsolete VS2013 SmallVectorVisualizer as VS2013
is no longer supported.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/LLVMVisualizers/llvm.natvistrunk/utils/LLVMVisualizers/llvm.natvis
Revision 362857 by aemerson:
Factor out SelectionDAG's switch analysis and lowering into a separate component.

In order for GlobalISel to re-use the significant amount of analysis and
optimization code in SDAG's switch lowering, we first have to extract it and
create an interface to be used by both frameworks.

No test changes as it's NFC.

Differential Revision: https://reviews.llvm.org/D62745
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/include/llvm/CodeGen/SwitchLoweringUtils.htrunk/include/llvm/CodeGen/SwitchLoweringUtils.h
The file was modified/llvm/trunk/lib/CodeGen/CMakeLists.txttrunk/lib/CodeGen/CMakeLists.txt
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpptrunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.htrunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpptrunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
The file was added/llvm/trunk/lib/CodeGen/SwitchLoweringUtils.cpptrunk/lib/CodeGen/SwitchLoweringUtils.cpp

Summary

  1. DebugInfo: Add support for 'nodebug' attribute on typedefs and alias templates Seems like a logical extension to me - and of interest because it might help reduce the debug info size of libc++ by applying this attribute to type traits that have a disproportionate debug info cost compared to the benefit (& possibly harm/confusion) they cause users.
  2. [analyzer] Add werror flag for analyzer warnings Summary: We're using the clang static analyzer together with a number of custom analyses in our CI system to ensure that certain invariants are statiesfied for by the code every commit. Unfortunately, there currently doesn't seem to be a good way to determine whether any analyzer warnings were emitted, other than parsing clang's output (or using scan-build, which then in turn parses clang's output). As a simpler mechanism, simply add a `-analyzer-werror` flag to CC1 that causes the analyzer to emit its warnings as errors instead. I briefly tried to have this be `Werror=analyzer` and make it go through that machinery instead, but that seemed more trouble than it was worth in terms of conflicting with options to the actual build and special cases that would be required to circumvent the analyzers usual attempts to quiet non-analyzer warnings. This is simple and it works well. Reviewed-By: NoQ, Szelethusw Differential Revision: https://reviews.llvm.org/D62885
Revision 362856 by dblaikie:
DebugInfo: Add support for 'nodebug' attribute on typedefs and alias templates

Seems like a logical extension to me - and of interest because it might
help reduce the debug info size of libc++ by applying this attribute to
type traits that have a disproportionate debug info cost compared to the
benefit (& possibly harm/confusion) they cause users.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/Attr.tdtrunk/include/clang/Basic/Attr.td
The file was modified/cfe/trunk/lib/CodeGen/CGDebugInfo.cpptrunk/lib/CodeGen/CGDebugInfo.cpp
The file was modified/cfe/trunk/test/CodeGenCXX/debug-info-nodebug.cpptrunk/test/CodeGenCXX/debug-info-nodebug.cpp
The file was modified/cfe/trunk/test/Misc/pragma-attribute-supported-attributes-list.testtrunk/test/Misc/pragma-attribute-supported-attributes-list.test
The file was modified/cfe/trunk/test/Sema/attr-nodebug.ctrunk/test/Sema/attr-nodebug.c
Revision 362855 by kfischer:
[analyzer] Add werror flag for analyzer warnings

Summary:
We're using the clang static analyzer together with a number of
custom analyses in our CI system to ensure that certain invariants
are statiesfied for by the code every commit. Unfortunately, there
currently doesn't seem to be a good way to determine whether any
analyzer warnings were emitted, other than parsing clang's output
(or using scan-build, which then in turn parses clang's output).
As a simpler mechanism, simply add a `-analyzer-werror` flag to CC1
that causes the analyzer to emit its warnings as errors instead.
I briefly tried to have this be `Werror=analyzer` and make it go
through that machinery instead, but that seemed more trouble than
it was worth in terms of conflicting with options to the actual build
and special cases that would be required to circumvent the analyzers
usual attempts to quiet non-analyzer warnings. This is simple and it
works well.

Reviewed-By: NoQ, Szelethusw
Differential Revision: https://reviews.llvm.org/D62885
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Driver/CC1Options.tdtrunk/include/clang/Driver/CC1Options.td
The file was modified/cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.htrunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
The file was modified/cfe/trunk/lib/Frontend/CompilerInvocation.cpptrunk/lib/Frontend/CompilerInvocation.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpptrunk/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
The file was modified/cfe/trunk/test/Analysis/override-werror.ctrunk/test/Analysis/override-werror.c

Summary

  1. Experimantal dfsan mode "fast16labels=1" Summary: dfsan mode "fast16labels=1". In this mode the labels are treated as 16-bit bit masks. Reviewers: pcc Reviewed By: pcc Subscribers: delcypher, #sanitizers, llvm-commits Tags: #llvm, #sanitizers Differential Revision: https://reviews.llvm.org/D62870
Revision 362859 by kcc:
Experimantal dfsan mode "fast16labels=1"

Summary:
dfsan mode "fast16labels=1".
In this mode the labels are treated as 16-bit bit masks.

Reviewers: pcc

Reviewed By: pcc

Subscribers: delcypher, #sanitizers, llvm-commits

Tags: #llvm, #sanitizers

Differential Revision: https://reviews.llvm.org/D62870
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/dfsan/dfsan.cctrunk/lib/dfsan/dfsan.cc
The file was modified/compiler-rt/trunk/lib/dfsan/dfsan_flags.inctrunk/lib/dfsan/dfsan_flags.inc
The file was added/compiler-rt/trunk/test/dfsan/fast16labels.ctrunk/test/dfsan/fast16labels.c