Changes
Summary
- AMDGPU] gfx1010 hazard recognizer Differential Revision: https://reviews.llvm.org/D61536
- [AMDGPU] gfx1010: use fmac instructions Differential Revision: https://reviews.llvm.org/D61527
Summary
- Reduce amount of work ODR hashing does. When a FunctionProtoType is in the original type in a DecayedType, the decayed type is a PointerType which points back the original FunctionProtoType. The visitor for ODRHashing will attempt to process both Type's, doing double work. By chaining together multiple DecayedType's and FunctionProtoType's, this would result in 2^N Type's visited only N DecayedType's and N FunctionProtoType's exsit. Another bug where VisitDecayedType and VisitAdjustedType did redundant work doubled the work at each level, giving 4^N Type's visited. This patch removed the double work and detects when a FunctionProtoType decays to itself to only check the Type once. This lowers the exponential runtime to linear runtime. Fixes https://bugs.llvm.org/show_bug.cgi?id=41625
- Disallow the operand of __builtin_constant_p from modifying enclosing state when it's encountered while evaluating a constexpr function. We attempt to follow GCC trunk's behavior here, but it is somewhat inscrutible, so our behavior is only approximately the same for now. Specifically, we only permit modification of objects whose lifetime began within the operand of the __builtin_constant_p. GCC appears to have effectively the same restriction, but also some unknown restriction based on where and how the local state of the constexpr function is mentioned within the operand (see added testcases).
- [Driver] Create non-existent directory for -fcrash-diagnostics-dir When user specifies non-existent directory to -fcrash-diagnostics-dir, create it rather than failing with an error as would be the case before. Differential Revision: https://reviews.llvm.org/D61542
- [cxx_status] Don't list -fmodules / -fmodules-ts against C++ modules support; those turn on different modules modes. The real C++ modules support is behind -std=c++2a like the rest of C++20.
- [cxx_status] Replace "SVN" entries with Clang 8 as appropriate. Also: use the "svn" color for "explicit(bool)" rather than the "full" color.
Change Type | Path in Repository | Path in Workspace |
---|---|---|
![]() | /cfe/trunk/lib/AST/ODRHash.cpp | trunk/lib/AST/ODRHash.cpp |
![]() | /cfe/trunk/test/Modules/odr_hash.cpp | trunk/test/Modules/odr_hash.cpp |
Change Type | Path in Repository | Path in Workspace |
![]() | /cfe/trunk/lib/AST/ExprConstant.cpp | trunk/lib/AST/ExprConstant.cpp |
![]() | /cfe/trunk/test/SemaCXX/builtin-constant-p.cpp | trunk/test/SemaCXX/builtin-constant-p.cpp |
Change Type | Path in Repository | Path in Workspace |
![]() | /cfe/trunk/lib/Driver/Driver.cpp | trunk/lib/Driver/Driver.cpp |
![]() | /cfe/trunk/test/Driver/crash-diagnostics-dir.c | trunk/test/Driver/crash-diagnostics-dir.c |
Change Type | Path in Repository | Path in Workspace |
![]() | /cfe/trunk/www/cxx_status.html | trunk/www/cxx_status.html |
Change Type | Path in Repository | Path in Workspace |
![]() | /cfe/trunk/www/cxx_status.html | trunk/www/cxx_status.html |