SuccessChanges

Summary

  1. [c++20] Add CXXRewrittenBinaryOperator to represent a comparison (details)
  2. [c++20] Add rewriting from comparison operators to <=> / ==. (details)
  3. P1152R4: Fix deprecation warnings in libc++ testsuite and in uses of (details)
  4. [analyzer] Specify the C++ standard in more tests. (details)
  5. [hip][cuda] Fix the extended lambda name mangling issue. (details)
  6. [clang][driver] Print compilation phases with indentation. (details)
  7. Prune two MachineInstr.h includes, fix up deps (details)
  8. Skip (more) PExpect tests under ASAN, I can't get them to work reliably. (details)
  9. Sema: Create a no-op implicit cast for lvalue function conversions. (details)
  10. [profile] Disable instrprof-get-filename-merge-mode.c on Windows (details)
  11. Move endian constant from Host.h to SwapByteOrder.h, prune include (details)
  12. [profile] Use -fPIC -shared in a test instead of -dynamiclib (details)
  13. New tautological warning for bitwise-or with non-zero constant always (details)
  14. Prune Analysis includes from SelectionDAG.h (details)
Commit 778dc0f1d49230f53401ae0c190fe460bda4ffd1 by richard-llvm
[c++20] Add CXXRewrittenBinaryOperator to represent a comparison
operator that is rewritten as a call to multiple other operators.
No functionality change yet: nothing creates these expressions.
llvm-svn: 375305
The file was modifiedclang/include/clang/AST/Stmt.h (diff)
The file was modifiedclang/lib/Serialization/ASTReaderStmt.cpp (diff)
The file was modifiedclang/lib/AST/ExprCXX.cpp (diff)
The file was modifiedclang/include/clang/Basic/StmtNodes.td (diff)
The file was modifiedclang/lib/AST/StmtProfile.cpp (diff)
The file was modifiedclang/lib/CodeGen/CGExprAgg.cpp (diff)
The file was modifiedclang/lib/Serialization/ASTWriterStmt.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Core/ExprEngine.cpp (diff)
The file was modifiedclang/include/clang/AST/ExprCXX.h (diff)
The file was modifiedclang/lib/Serialization/ASTWriter.cpp (diff)
The file was modifiedclang/lib/AST/StmtPrinter.cpp (diff)
The file was modifiedclang/lib/Sema/SemaExceptionSpec.cpp (diff)
The file was modifiedclang/lib/Sema/TreeTransform.h (diff)
The file was modifiedclang/lib/CodeGen/CGExprScalar.cpp (diff)
The file was modifiedclang/lib/AST/Expr.cpp (diff)
The file was modifiedclang/lib/CodeGen/CGExprComplex.cpp (diff)
The file was modifiedclang/include/clang/AST/RecursiveASTVisitor.h (diff)
The file was modifiedclang/lib/AST/ItaniumMangle.cpp (diff)
The file was modifiedclang/tools/libclang/CXCursor.cpp (diff)
The file was modifiedclang/lib/AST/ExprConstant.cpp (diff)
The file was modifiedclang/lib/AST/ExprClassification.cpp (diff)
The file was modifiedclang/include/clang/Serialization/ASTBitCodes.h (diff)
The file was modifiedclang/lib/CodeGen/CGExpr.cpp (diff)
Commit 974c8b7e2fde550fd87850d50695341101c38c2d by richard-llvm
[c++20] Add rewriting from comparison operators to <=> / ==.
This adds support for rewriting <, >, <=, and >= to a normal or reversed
call to operator<=>, for rewriting != to a normal or reversed call to
operator==, and for rewriting <=> and == to reversed forms of those same
operators.
Note that this is a breaking change for various C++17 code patterns,
including some in use in LLVM. The most common patterns (where an
operator== becomes ambiguous with a reversed form of itself) are still
accepted under this patch, as an extension (with a warning). I'm hopeful
that we can get the language rules fixed before C++20 ships, and the
extension warning is aimed primarily at providing data to inform that
decision.
llvm-svn: 375306
The file was modifiedclang/lib/AST/ExprCXX.cpp (diff)
The file was modifiedclang/lib/Frontend/FrontendActions.cpp (diff)
The file was modifiedclang/lib/Sema/SemaExpr.cpp (diff)
The file was modifiedclang/lib/Sema/SemaTemplate.cpp (diff)
The file was modifiedclang/lib/Sema/TreeTransform.h (diff)
The file was addedclang/test/CXX/over/over.match/over.match.funcs/over.match.oper/p3-2a.cpp
The file was modifiedclang/test/SemaCXX/compare-cxx2a.cpp (diff)
The file was modifiedclang/include/clang/Sema/Sema.h (diff)
The file was modifiedclang/www/cxx_status.html (diff)
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td (diff)
The file was modifiedclang/test/SemaCXX/self-comparison.cpp (diff)
The file was modifiedclang/include/clang/Basic/OperatorKinds.h (diff)
The file was modifiedclang/test/CXX/temp/temp.fct.spec/temp.deduct/p7.cpp (diff)
The file was modifiedclang/test/PCH/cxx2a-compare.cpp (diff)
The file was modifiedclang/lib/Sema/SemaTemplateInstantiate.cpp (diff)
The file was addedclang/test/CXX/over/over.match/over.match.funcs/over.match.oper/p8-2a.cpp
The file was addedclang/test/CodeGenCXX/mangle-cxx2a.cpp
The file was modifiedclang/include/clang/AST/ExprCXX.h (diff)
The file was addedclang/test/CXX/over/over.match/over.match.funcs/over.match.oper/p9-2a.cpp
The file was modifiedclang/include/clang/Sema/Overload.h (diff)
The file was modifiedclang/lib/Sema/SemaOverload.cpp (diff)
Commit a9727033fb5fa229b520e0e0d973f68780bc5348 by richard-llvm
P1152R4: Fix deprecation warnings in libc++ testsuite and in uses of
is_invocable that would internally conjure up a deprecated function
type.
Summary: The implementation of P1152R4 in Clang has resulted in some
deprecation warnings appearing in the libc++ and libc++abi test suite.
Fix or suppress these warnings.
Reviewers: mclow.lists, EricWF
Subscribers: christof, ldionne, libcxx-commits
Tags: #libc
Differential Revision: https://reviews.llvm.org/D68879
llvm-svn: 375307
The file was modifiedlibcxx/test/std/utilities/meta/meta.trans/meta.trans.other/result_of11.pass.cpp (diff)
The file was modifiedlibcxx/include/type_traits (diff)
The file was modifiedlibcxx/include/__config (diff)
The file was modifiedlibcxxabi/test/unwind_06.pass.cpp (diff)
Commit b0914e7276bf97cb57f84fecc3a95e0d3ceeaf3e by Artem Dergachev
[analyzer] Specify the C++ standard in more tests.
Makes life easier for downstream developers with different default
standard.
llvm-svn: 375308
The file was modifiedclang/test/Analysis/temporaries.mm (diff)
The file was modifiedclang/test/Analysis/test-separate-retaincount.cpp (diff)
The file was modifiedclang/test/Analysis/diagnostics/dtors.cpp (diff)
The file was modifiedclang/test/Analysis/ctu-unknown-parts-in-triples.cpp (diff)
The file was modifiedclang/test/Analysis/explain-svals.cpp (diff)
The file was modifiedclang/test/Analysis/inner-pointer.cpp (diff)
The file was modifiedclang/test/Analysis/osobject-retain-release.cpp (diff)
The file was modifiedclang/test/Analysis/plist-macros-with-expansion.cpp (diff)
The file was modifiedclang/test/Analysis/mig.mm (diff)
The file was modifiedclang/test/Analysis/deadstores-driverkit.cpp (diff)
The file was modifiedclang/test/Analysis/ptr-iter.cpp (diff)
The file was modifiedclang/test/Analysis/new-ctor-null-throw.cpp (diff)
The file was modifiedclang/test/Analysis/cast-value-logic.cpp (diff)
The file was modifiedclang/test/Analysis/ctu-different-triples.cpp (diff)
The file was modifiedclang/test/Analysis/sizeofpack.cpp (diff)
The file was modifiedclang/test/Analysis/osobjectcstylecastchecker_test.cpp (diff)
The file was modifiedclang/test/Analysis/track-control-dependency-conditions.cpp (diff)
The file was modifiedclang/test/Analysis/domtest.cpp (diff)
The file was modifiedclang/test/Analysis/ptr-sort.cpp (diff)
The file was modifiedclang/test/Analysis/initialization.cpp (diff)
The file was modifiedclang/test/Analysis/malloc.mm (diff)
The file was modifiedclang/test/Analysis/cast-value-notes.cpp (diff)
The file was modifiedclang/test/Analysis/stack-frame-context-revision.cpp (diff)
The file was modifiedclang/test/Analysis/ctu-main.cpp (diff)
The file was modifiedclang/test/Analysis/new-ctor-null.cpp (diff)
The file was modifiedclang/test/Analysis/rvo.cpp (diff)
The file was modifiedclang/test/Analysis/cast-value-state-dump.cpp (diff)
The file was modifiedclang/test/Analysis/inlining/placement-new-fp-suppression.cpp (diff)
The file was modifiedclang/test/Analysis/unions.cpp (diff)
Commit 243ebfba17da72566ba29a891193e4814cbc4ef3 by michael.hliao
[hip][cuda] Fix the extended lambda name mangling issue.
Summary:
- HIP/CUDA host side needs to use device kernel symbol name to match the
device side binaries. Without a consistent naming between host- and
device-side compilations, it's risky that wrong device binaries are
executed. Consistent naming is usually not an issue until unnamed
types are used, especially the lambda. In this patch, the consistent
name mangling is addressed for the extended lambdas, i.e. the lambdas
annotated with `__device__`.
- In [Itanium C++ ABI][1], the mangling of the lambda is generally
unspecified unless, in certain cases, ODR rule is required to ensure
consisent naming cross TUs. The extended lambda is such a case as its
name may be part of a device kernel function, e.g., the extended
lambda is used as a template argument and etc. Thus, we need to force
ODR for extended lambdas as they are referenced in both device- and
host-side TUs. Furthermore, if a extended lambda is nested in other
(extended or not) lambdas, those lambdas are required to follow ODR
naming as well. This patch revises the current lambda mangle numbering
to force ODR from an extended lambda to all its parent lambdas.
- On the other side, the aforementioned ODR naming should not change
those lambdas' original linkages, i.e., we cannot replace the original
`internal` with `linkonce_odr`; otherwise, we may violate ODR in
general. This patch introduces a new field `HasKnownInternalLinkage`
in lambda data to decouple the current linkage calculation based on
mangling number assigned.
[1]: https://itanium-cxx-abi.github.io/cxx-abi/abi.html
Reviewers: tra, rsmith, yaxunl, martong, shafik
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D68818
llvm-svn: 375309
The file was modifiedclang/lib/AST/ASTImporter.cpp (diff)
The file was addedclang/test/CodeGenCUDA/unnamed-types.cu
The file was modifiedclang/include/clang/AST/DeclCXX.h (diff)
The file was modifiedclang/lib/Sema/SemaLambda.cpp (diff)
The file was modifiedclang/lib/Sema/TreeTransform.h (diff)
The file was modifiedclang/lib/Serialization/ASTWriter.cpp (diff)
The file was modifiedclang/lib/AST/Decl.cpp (diff)
The file was modifiedclang/lib/Serialization/ASTReaderDecl.cpp (diff)
The file was modifiedclang/include/clang/Sema/Sema.h (diff)
Commit d7a487adfedb36c88f5ca24f5bcb93f140116106 by michael.hliao
[clang][driver] Print compilation phases with indentation.
Reviewers: tra, sfantao, echristo
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D69124
llvm-svn: 375310
The file was modifiedclang/lib/Driver/Driver.cpp (diff)
Commit 1d7b41361ffa208291119cd145a62a366adac569 by rnk
Prune two MachineInstr.h includes, fix up deps
MachineInstr.h included AliasAnalysis.h, which includes a world of IR
constructs mostly unneeded in CodeGen. Prune it. Same for
DebugInfoMetadata.h.
Noticed with -ftime-trace.
llvm-svn: 375311
The file was modifiedllvm/include/llvm/CodeGen/MachineInstr.h (diff)
The file was modifiedllvm/lib/CodeGen/LiveVariables.cpp (diff)
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.h (diff)
The file was modifiedllvm/lib/CodeGen/LexicalScopes.cpp (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.h (diff)
The file was modifiedllvm/lib/Target/ARM/ARMConstantPoolValue.cpp (diff)
The file was modifiedllvm/lib/Target/Hexagon/HexagonVLIWPacketizer.h (diff)
The file was modifiedllvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h (diff)
The file was modifiedllvm/lib/CodeGen/MIRCanonicalizerPass.cpp (diff)
The file was modifiedllvm/include/llvm/CodeGen/TargetInstrInfo.h (diff)
The file was modifiedllvm/lib/CodeGen/MachineInstr.cpp (diff)
The file was modifiedllvm/tools/llvm-exegesis/lib/Assembler.cpp (diff)
The file was modifiedllvm/lib/CodeGen/ReachingDefAnalysis.cpp (diff)
The file was modifiedllvm/lib/CodeGen/TargetFrameLoweringImpl.cpp (diff)
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.h (diff)
The file was modifiedllvm/lib/Target/X86/X86InstrInfo.h (diff)
The file was modifiedllvm/lib/CodeGen/GlobalISel/RegisterBank.cpp (diff)
The file was modifiedllvm/lib/Target/Hexagon/RDFDeadCode.cpp (diff)
The file was modifiedllvm/include/llvm/CodeGen/TargetFrameLowering.h (diff)
The file was modifiedllvm/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.cpp (diff)
The file was modifiedllvm/include/llvm/CodeGen/DFAPacketizer.h (diff)
The file was modifiedllvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp (diff)
The file was modifiedllvm/lib/CodeGen/MIRVRegNamerUtils.cpp (diff)
Commit 0904f924012db8002eec3a0533e310c1e714cca4 by Adrian Prantl
Skip (more) PExpect tests under ASAN, I can't get them to work reliably.
llvm-svn: 375312
The file was modifiedlldb/packages/Python/lldbsuite/test/iohandler/completion/TestIOHandlerCompletion.py (diff)
Commit 766f15814a012e5e6522c4e0f93c094ca2408367 by peter
Sema: Create a no-op implicit cast for lvalue function conversions.
This fixes an assertion failure in the case where an implicit conversion
for a function call involves an lvalue function conversion, and makes
the AST for initializations involving implicit lvalue function
conversions more accurate.
Differential Revision: https://reviews.llvm.org/D66437
llvm-svn: 375313
The file was modifiedclang/lib/Sema/SemaCast.cpp (diff)
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp (diff)
The file was modifiedclang/include/clang/Sema/Sema.h (diff)
The file was modifiedclang/lib/Sema/SemaOverload.cpp (diff)
The file was modifiedclang/lib/Sema/SemaInit.cpp (diff)
The file was addedclang/test/CodeGenCXX/implicit-function-conversion.cpp
Commit f6a46304174e7a31f5f18d18a5a3a24eaddf35f0 by Vedant Kumar
[profile] Disable instrprof-get-filename-merge-mode.c on Windows
The Windows bots are failing with:
clang: warning: argument unused during compilation: '-dynamiclib'
[-Wunused-command-line-argument] llvm-svn: 375315
The file was addedcompiler-rt/test/profile/Posix/instrprof-get-filename-merge-mode.c
The file was removedcompiler-rt/test/profile/instrprof-get-filename-merge-mode.c
Commit 90c64a3456b972432a21ef043b205c18a91e011b by rnk
Move endian constant from Host.h to SwapByteOrder.h, prune include
Works on this dependency chain:
ArrayRef.h ->
Hashing.h -> --CUT--
Host.h ->
StringMap.h / StringRef.h
ArrayRef is very popular, but Host.h is rarely needed. Move the
IsBigEndianHost constant to SwapByteOrder.h. Clients of that header are
more likely to need it.
llvm-svn: 375316
The file was modifiedllvm/lib/Support/Windows/WindowsSupport.h (diff)
The file was modifiedclang/lib/Driver/ToolChains/Arch/X86.cpp (diff)
The file was modifiedclang/lib/Driver/ToolChains/Arch/AArch64.cpp (diff)
The file was modifiedlld/include/lld/Core/File.h (diff)
The file was modifiedllvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp (diff)
The file was modifiedlld/include/lld/Common/LLVM.h (diff)
The file was modifiedllvm/include/llvm/ADT/Hashing.h (diff)
The file was modifiedllvm/include/llvm/BinaryFormat/Wasm.h (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp (diff)
The file was modifiedllvm/include/llvm/Support/SHA1.h (diff)
The file was modifiedclang-tools-extra/clangd/FileDistance.h (diff)
The file was modifiedlld/tools/lld/lld.cpp (diff)
The file was modifiedlldb/include/lldb/Utility/UUID.h (diff)
The file was modifiedllvm/include/llvm/Support/Host.h (diff)
The file was modifiedlld/lib/ReaderWriter/MachO/DebugInfo.h (diff)
The file was modifiedllvm/include/llvm/Support/SwapByteOrder.h (diff)
The file was modifiedllvm/tools/llvm-exegesis/lib/RegisterValue.cpp (diff)
The file was modifiedclang/lib/Driver/ToolChains/Arch/PPC.cpp (diff)
The file was modifiedclang/lib/Driver/ToolChains/Arch/ARM.cpp (diff)
Commit b081220cfd46965fa25dbf826cd3f42f4f9e54cd by Vedant Kumar
[profile] Use -fPIC -shared in a test instead of -dynamiclib
This is more portable than -dynamiclib. Also, fix the path to an input
file that broke when the test was moved in r375315.
llvm-svn: 375317
The file was modifiedcompiler-rt/test/profile/Posix/instrprof-get-filename-merge-mode.c (diff)
Commit 8b0d14a8f0cc085afa2a9c86c237da81c74517fc by rtrieu
New tautological warning for bitwise-or with non-zero constant always
true.
Taking a value and the bitwise-or it with a non-zero constant will
always result in a non-zero value. In a boolean context, this is always
true.
if (x | 0x4) {}  // always true, intended '&'
This patch creates a new warning group -Wtautological-bitwise-compare
for this warning. It also moves in the existing tautological bitwise
comparisons into this group. A few other changes were needed to the
CFGBuilder so that all bool contexts would be checked. The warnings in
-Wtautological-bitwise-compare will be off by default due to using the
CFG.
Fixes: https://bugs.llvm.org/show_bug.cgi?id=42666 Differential
Revision: https://reviews.llvm.org/D66046
llvm-svn: 375318
The file was modifiedclang/include/clang/Analysis/CFG.h (diff)
The file was modifiedclang/lib/Sema/AnalysisBasedWarnings.cpp (diff)
The file was modifiedclang/docs/ReleaseNotes.rst (diff)
The file was modifiedclang/lib/Analysis/CFG.cpp (diff)
The file was addedclang/test/SemaCXX/warn-bitwise-compare.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td (diff)
The file was modifiedclang/include/clang/Basic/DiagnosticGroups.td (diff)
The file was modifiedclang/test/Sema/warn-bitwise-compare.c (diff)
Commit 0ad6c191deef592818d2381b16e1093a0006e7b5 by rnk
Prune Analysis includes from SelectionDAG.h
Only forward declarations are needed here. Follow-on to r375311.
llvm-svn: 375319
The file was modifiedllvm/include/llvm/CodeGen/SelectionDAGISel.h (diff)
The file was modifiedllvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h (diff)
The file was modifiedllvm/include/llvm/CodeGen/SelectionDAG.h (diff)
The file was modifiedllvm/lib/CodeGen/TargetInstrInfo.cpp (diff)
The file was modifiedllvm/lib/Target/X86/X86InstrInfo.cpp (diff)
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp (diff)
The file was modifiedllvm/include/llvm/CodeGen/ScheduleDAGInstrs.h (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp (diff)
The file was modifiedllvm/lib/CodeGen/ScheduleDAGInstrs.cpp (diff)
The file was modifiedllvm/lib/CodeGen/DFAPacketizer.cpp (diff)