SuccessChanges

Summary

  1. [FPEnv] Invert sense of MIFlag::FPExcept flag (details)
  2. [lldb][tests][NFC] Unify variable naming convention (details)
  3. [lldb][tests] Make it possible to expect failure for a whole category (details)
  4. AMDGPU/GlobalISel: Clamp G_ZEXT source sizes (details)
  5. [LIBOMPTARGET]Ignore empty target descriptors. (details)
  6. [DebugInfo] Improve error message text (details)
  7. [DebugInfo][NFC] Remove unused variable/fix variable naming (details)
  8. [NFC] format unittest for ExprMutAnalyzer (details)
  9. [PowerPC] Handle constant zero bits in BitPermutationSelector (details)
  10. Add support for __declspec(guard(nocf)) (details)
  11. Add missing nullptr checks. (details)
  12. [analyzer] Add PlacementNewChecker (details)
  13. [mlir][spirv] Fix typos related to (de)serialization. (details)
  14. [InstCombine] add tests for fsub; NFC (details)
  15. [BPF] extend BTF_KIND_FUNC to cover global, static and extern funcs (details)
  16. [clangd] Fix targetDecl() on certain usage of ObjC properties. (details)
  17. [gn build] Port 5e7beb0a414 (details)
  18. [X86][AVX] lowerShuffleAsLanePermuteAndShuffle - consistently normalize (details)
  19. Fix "pointer is null" static analyzer warning. NFCI. (details)
  20. Fix "pointer is null" static analyzer warning. NFCI. (details)
  21. [examples] Add missing dependency in llvm examples (details)
  22. [AIX] Allow vararg calls when all arguments reside in registers (details)
  23. Fix "pointer is null" static analyzer warning. NFCI. (details)
  24. [AArch64] Add function attribute "patchable-function-entry" to add NOPs (details)
  25. [X86] Support function attribute "patchable-function-entry" (details)
  26. Support function attribute patchable_function_entry (details)
  27. [Driver][CodeGen] Add -fpatchable-function-entry=N[,0] (details)
  28. [ELF] Make TargetInfo::writeIgotPlt a no-op (details)
  29. [LegalizeVectorOps] Improve handling of multi-result operations. (details)
  30. [lldb] Remove FieldDecl stealing hack by rerouting indirect imports to (details)
  31. [lldb/Lua] Support loading Lua modules (details)
  32. Update the attribution policy to use the 'Author' property of a git (details)
  33. [analyzer] Move PlacementNewChecker to alpha (details)
  34. [TargetLowering][ARM][X86] Change softenSetCCOperands handling of ONE to (details)
  35. [lld][WebAssembly] Add libcall symbols to the link when LTO is being (details)
  36. [CMake] Fix modules build after DWARFLinker reorganization (details)
  37. [clang] Fix out-of-bounds memory access in ComputeLineNumbers (details)
  38. [Driver][PowerPC] Move powerpcspe logic from cc1 to Driver (details)
  39. [ASTMatchers] Make test more clear about what it is verifying (details)
  40. [Tests] Precommit tests showing default branch padding on skylake (details)
  41. [lldb] Make CompleteTagDeclsScope completion order deterministic (details)
  42. [lldb] Fix TestClangASTContext.TestFunctionTemplateInRecordConstruction (details)
  43. Implement new AST matcher hasAnyCapture to match on LambdaExpr captures. (details)
  44. MakeUniqueCheck.cpp: explicit the fact that there is an autofix for this (details)
  45. clang-tidy doc: Refresh the list of checkers and polish the script (details)
  46. [TargetLowering] Use SelectionDAG::getSetCC and remove a repeated call (details)
  47. clang-tidy doc: unbreak the CI (details)
  48. Summary: update macro for OFF_T so that sanitizer works on AARCH64. (details)
Commit f0fd11df7d5488e2747f26a3bfcf62459fee54ad by ulrich.weigand
[FPEnv] Invert sense of MIFlag::FPExcept flag
In D71841 we inverted the sense of the SDNode-level flag to ensure all
nodes default to potentially raising FP exceptions unless otherwise
specified -- i.e. if we forget to propagate the flag somewhere, the
effect is now only lost performance, not incorrect code.
However, the related flag at the MI level still defaults to nodes not
raising FP exceptions unless otherwise specified. To be fully on the
(conservatively) safe side, we should invert that flag as well.
This patch does so by replacing MIFlag::FPExcept with
MIFlag::NoFPExcept.
(Note that this does also introduce an incompatible change in the MIR
format.)
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D72466
The file was modifiedllvm/test/CodeGen/X86/vector-constrained-fp-intrinsics-flags.ll
The file was modifiedllvm/lib/CodeGen/MIRParser/MILexer.cpp
The file was modifiedllvm/include/llvm/CodeGen/MachineInstr.h
The file was modifiedllvm/lib/CodeGen/MachineInstr.cpp
The file was modifiedllvm/test/CodeGen/X86/fp-intrinsics-flags.ll
The file was modifiedllvm/lib/CodeGen/MIRPrinter.cpp
The file was modifiedllvm/test/CodeGen/X86/sqrt-fastmath-mir.ll
The file was modifiedllvm/lib/Target/SystemZ/SystemZElimCompare.cpp
The file was modifiedllvm/lib/CodeGen/MIRParser/MIParser.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
The file was modifiedllvm/test/CodeGen/X86/fp-intrinsics-flags-x86_64.ll
The file was modifiedllvm/lib/CodeGen/MIRParser/MILexer.h
The file was modifiedllvm/test/CodeGen/X86/fast-isel-select-sse.ll
Commit e20a3b9b6c028ef3fea92ddb19e98db45e3d0509 by Tatyana Krasnukha
[lldb][tests][NFC] Unify variable naming convention
The file was modifiedlldb/packages/Python/lldbsuite/test/dotest.py
The file was modifiedlldb/packages/Python/lldbsuite/test/dotest_args.py
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbtest.py
The file was modifiedlldb/packages/Python/lldbsuite/test/test_result.py
The file was modifiedlldb/packages/Python/lldbsuite/test/configuration.py
Commit 3eea082535e232b35e6b2dab45dd81728b2ae7f4 by Tatyana Krasnukha
[lldb][tests] Make it possible to expect failure for a whole category
There already are decorators and "--excluded" option to mark
test-cases/files as expected to fail. However, when a new test file is
added and it which relates to a feature that a target doesn't support,
this requires either adding decorators to that file or modifying the
file provided as "--excluded" option value.
The purpose of this patch is to avoid any modifications in such cases.
E.g. if a target doesn't support "watchpoints" and passes
"--xfail-category watchpoint" to dotest, a testing job will not fail
after a new watchpoint-related test file is added.
Differential Revision: https://reviews.llvm.org/D71906
The file was modifiedlldb/packages/Python/lldbsuite/test/test_result.py
The file was modifiedlldb/packages/Python/lldbsuite/test/configuration.py
The file was modifiedlldb/packages/Python/lldbsuite/test/dotest.py
The file was modifiedlldb/packages/Python/lldbsuite/test/dotest_args.py
Commit bac995d97896c1e785d709da24c55f0e050eb899 by arsenm2
AMDGPU/GlobalISel: Clamp G_ZEXT source sizes
Also clamps G_SEXT/G_ANYEXT, but the implementation is more limited so
fewer cases actually work.
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-zext.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-shl.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-sext.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-anyext.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ashr.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-lshr.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ptrtoint.mir
Commit b19c0810e56b552d31247dcff081643799fd97fb by a.bataev
[LIBOMPTARGET]Ignore empty target descriptors.
Summary: If the dynamically loaded module has been compiled with
-fopenmp-targets and has no target regions, it has empty target
descriptor. It leads to a crash at the runtime if another module has at
least one target region and at least one entry in its descriptor. The
runtime library is unable to load the empty binary descriptor and
terminates the execution. Caused by a clang-offload-wrapper.
Reviewers: grokos, jdoerfert
Subscribers: caomhin, kkwli0, openmp-commits
Tags: #openmp
Differential Revision: https://reviews.llvm.org/D72472
The file was addedopenmp/libomptarget/test/offloading/dynamic_module.c
The file was modifiedopenmp/libomptarget/src/rtl.cpp
Commit 6e3ca962fafb3d2a31279c49f0cde60eb626a002 by jh7370
[DebugInfo] Improve error message text
Unlike most of our errors in the debug line parser, the "no end of
sequence" message was missing any reference to which line table it
refererred to. This change adds the offset to this message.
Reviewed by: dblaikie
Differential Revision: https://reviews.llvm.org/D72443
The file was modifiedlld/test/ELF/undef.s
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/debug_line_invalid.test
The file was modifiedllvm/unittests/DebugInfo/DWARF/DWARFDebugLineTest.cpp
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp
Commit 7e02406f6cf180a8c89ce64665660e7cc9dbc23e by jh7370
[DebugInfo][NFC] Remove unused variable/fix variable naming
Reviewed by: MaskRay
Differential Revision: https://reviews.llvm.org/D72159
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp
Commit cdd05f2aea3b950a4e2c496175117e6b47b2a050 by development
[NFC] format unittest for ExprMutAnalyzer
This formatting is a preparation for review in
https://reviews.llvm.org/D54943 to separate pure formatting changes from
actual testing changes.
The file was modifiedclang/unittests/Analysis/ExprMutationAnalyzerTest.cpp
Commit d864d93496c5fd0cc473953ab825f07e3d4c4e86 by nemanja.i.ibm
[PowerPC] Handle constant zero bits in BitPermutationSelector
We currently crash when analyzing an AssertZExt node that has some bits
that are constant zeros (i.e. as a result of an and with a constant).
This issue was reported in https://bugs.llvm.org/show_bug.cgi?id=41088
and this patch fixes that.
Differential revision: https://reviews.llvm.org/D72038
The file was addedllvm/test/CodeGen/PowerPC/pr41088.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
Commit bdd88b7ed3956534a0a71b1ea2bc88c69d48f9b7 by David.Chisnall
Add support for __declspec(guard(nocf))
Summary: Avoid using the `nocf_check` attribute with Control Flow Guard.
Instead, use a new `"guard_nocf"` function attribute to indicate that
checks should not be added on indirect calls within that function. Add
support for
`__declspec(guard(nocf))` following the same syntax as MSVC.
Reviewers: rnk, dmajor, pcc, hans, aaron.ballman
Reviewed By: aaron.ballman
Subscribers: aaron.ballman, tomrittervg, hiraditya, cfe-commits,
llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D72167
The file was modifiedclang/include/clang/Basic/Attr.td
The file was addedclang/test/CodeGenCXX/guard_nocf.cpp
The file was addedclang/test/CodeGen/guard_nocf.c
The file was modifiedclang/lib/CodeGen/CGCall.cpp
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp
The file was modifiedllvm/test/CodeGen/AArch64/cfguard-checks.ll
The file was addedclang/test/Sema/attr-guard_nocf.c
The file was modifiedllvm/test/CodeGen/ARM/cfguard-checks.ll
The file was modifiedllvm/test/CodeGen/X86/cfguard-checks.ll
The file was modifiedclang/include/clang/Basic/AttrDocs.td
The file was modifiedllvm/lib/Transforms/CFGuard/CFGuard.cpp
Commit e9331a56fead1823d528d6412828fb9e16fd62ff by Adrian Prantl
Add missing nullptr checks.
GetPersistentExpressionStateForLanguage() can return a nullptr if it
cannot construct a typesystem. This patch adds missing nullptr checks at
all uses.
Inspired by rdar://problem/58317195
Differential Revision: https://reviews.llvm.org/D72413
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp
The file was modifiedlldb/source/Target/ABI.cpp
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.cpp
The file was modifiedlldb/source/Expression/REPL.cpp
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
The file was modifiedlldb/source/Expression/UserExpression.cpp
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp
Commit 5e7beb0a4146267f1d65c57543e67ca158aca4aa by gabor.marton
[analyzer] Add PlacementNewChecker
Summary: This checker verifies if default placement new is provided with
pointers to sufficient storage capacity.
Noncompliant Code Example:
#include <new>
void f() {
   short s;
   long *lp = ::new (&s) long;
}
Based on SEI CERT rule MEM54-CPP
https://wiki.sei.cmu.edu/confluence/display/cplusplus/MEM54-CPP.+Provide+placement+new+with+properly+aligned+pointe
This patch does not implement checking of the alignment.
Reviewers: NoQ, xazax.hun
Subscribers: mgorny, whisperity, xazax.hun, baloghadamsoftware, szepet,
rnkovacs, a.sidorin, mikhail.ramalho, donat
Tags: #clang
Differential Revision: https://reviews.llvm.org/D71612
The file was addedclang/test/Analysis/placement-new-user-defined.cpp
The file was modifiedclang/docs/analyzer/checkers.rst
The file was addedclang/test/Analysis/placement-new.cpp
The file was addedclang/lib/StaticAnalyzer/Checkers/CheckPlacementNew.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/CMakeLists.txt
The file was modifiedclang/include/clang/StaticAnalyzer/Checkers/Checkers.td
Commit 0b032d7ba7157b62cd0d39f8d2dc0b0efa57a710 by antiagainst
[mlir][spirv] Fix typos related to (de)serialization.
Fix typos related to (de)serialization of spv.selection.
Differential Revision: https://reviews.llvm.org/D72503
The file was modifiedmlir/lib/Dialect/SPIRV/Serialization/Deserializer.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/Serialization/Serializer.cpp
Commit 26cdaeb1f05ba140011a43ef1ea8a37d3cf416d9 by spatel
[InstCombine] add tests for fsub; NFC
Conflicting/missing canonicalizations are visible in PR44509:
https://bugs.llvm.org/show_bug.cgi?id=44509
The file was modifiedllvm/test/Transforms/InstCombine/fsub.ll
Commit fbb64aa69835c8e3e9efe0afc8a73058b5a0fb3c by yhs
[BPF] extend BTF_KIND_FUNC to cover global, static and extern funcs
Previously extern function is added as BTF_KIND_VAR. This does not work
well with existing BTF infrastructure as function expected to use
BTF_KIND_FUNC and BTF_KIND_FUNC_PROTO.
This patch added extern function to BTF_KIND_FUNC. The two bits 0:1 of
btf_type.info are used to indicate what kind of function it is:
0: static
1: global
2: extern
Differential Revision: https://reviews.llvm.org/D71638
The file was modifiedllvm/test/CodeGen/BPF/BTF/binary-format.ll
The file was addedllvm/test/CodeGen/BPF/BTF/static-func.ll
The file was modifiedllvm/test/CodeGen/BPF/BTF/static-var.ll
The file was modifiedllvm/lib/Target/BPF/BTFDebug.h
The file was modifiedllvm/test/CodeGen/BPF/BTF/extern-var-func-weak-section.ll
The file was modifiedllvm/lib/Target/BPF/BTF.h
The file was modifiedllvm/test/CodeGen/BPF/CORE/offset-reloc-multilevel.ll
The file was modifiedllvm/test/CodeGen/BPF/BTF/extern-var-struct-weak.ll
The file was modifiedllvm/test/CodeGen/BPF/BTF/static-var-inited-sec.ll
The file was modifiedllvm/test/CodeGen/BPF/BTF/extern-var-weak-section.ll
The file was modifiedllvm/test/CodeGen/BPF/CORE/offset-reloc-struct-array.ll
The file was addedllvm/test/CodeGen/BPF/BTF/extern-func-arg.ll
The file was modifiedllvm/test/CodeGen/BPF/BTF/extern-var-struct.ll
The file was addedllvm/test/CodeGen/BPF/BTF/extern-builtin.ll
The file was modifiedllvm/test/CodeGen/BPF/BTF/func-typedef.ll
The file was modifiedllvm/test/CodeGen/BPF/BTF/filename.ll
The file was modifiedllvm/test/CodeGen/BPF/BTF/extern-var-func-weak.ll
The file was modifiedllvm/test/CodeGen/BPF/BTF/extern-global-var.ll
The file was modifiedllvm/test/CodeGen/BPF/BTF/extern-var-section.ll
The file was modifiedllvm/test/CodeGen/BPF/BTF/local-var.ll
The file was modifiedllvm/test/CodeGen/BPF/BTF/static-var-zerolen-array.ll
The file was modifiedllvm/test/CodeGen/BPF/CORE/offset-reloc-union.ll
The file was modifiedllvm/test/CodeGen/BPF/CORE/offset-reloc-struct-anonymous.ll
The file was modifiedllvm/test/CodeGen/BPF/BTF/func-func-ptr.ll
The file was modifiedllvm/test/CodeGen/BPF/BTF/static-var-sec.ll
The file was modifiedllvm/test/CodeGen/BPF/BTF/extern-var-func.ll
The file was modifiedllvm/test/CodeGen/BPF/BTF/func-source.ll
The file was modifiedllvm/test/CodeGen/BPF/BTF/static-var-inited.ll
The file was modifiedllvm/test/CodeGen/BPF/BTF/func-unused-arg.ll
The file was modifiedllvm/test/CodeGen/BPF/BTF/static-var-derived-type.ll
The file was modifiedllvm/test/CodeGen/BPF/BTF/static-var-readonly-sec.ll
The file was modifiedllvm/lib/Target/BPF/BTFDebug.cpp
The file was modifiedllvm/test/CodeGen/BPF/BTF/func-non-void.ll
The file was modifiedllvm/test/CodeGen/BPF/BTF/static-var-readonly.ll
The file was modifiedllvm/test/CodeGen/BPF/CORE/offset-reloc-basic.ll
The file was modifiedllvm/test/CodeGen/BPF/BTF/func-void.ll
Commit 4c5a4514d14537cae5459e03d1fea422664b3bc2 by sam.mccall
[clangd] Fix targetDecl() on certain usage of ObjC properties.
Summary: In particular there's a common chain:

OpaqueValueExpr->PseudoObjectExpr->ObjCPropertyRefExpr->ObjCPropertyDecl
and we weren't handling the first two edges
Reviewers: dgoldman, kadircet
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, jfb, usaxena95,
cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D72494
The file was modifiedclang-tools-extra/clangd/FindTarget.cpp
The file was modifiedclang-tools-extra/clangd/unittests/FindTargetTests.cpp
Commit 504b3fe5bfed7ea24c7c74f563ef6a8214e24223 by llvmgnsyncbot
[gn build] Port 5e7beb0a414
The file was modifiedllvm/utils/gn/secondary/clang/lib/StaticAnalyzer/Checkers/BUILD.gn
Commit a5bdada09defc15d2b009314306f4fcb8fa8458d by llvm-dev
[X86][AVX] lowerShuffleAsLanePermuteAndShuffle - consistently normalize
multi-input shuffle elements
We only use lowerShuffleAsLanePermuteAndShuffle for unary shuffles at
the moment, but we should consistently handle lane index calculations
for multiple inputs in both the AVX1 and AVX2 paths.
Minor (almost NFC) tidyup as I'm hoping to use
lowerShuffleAsLanePermuteAndShuffle for binary shuffles soon.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit cdc9592bf1acb6d8012a4867d2a22458945dcceb by llvm-dev
Fix "pointer is null" static analyzer warning. NFCI.
Use cast<> instead of dyn_cast<> since we know that the pointer should
be valid (and is dereferenced immediately).
The file was modifiedclang/lib/ARCMigrate/ObjCMT.cpp
Commit cce4676d6d78ba56e929bd37d65c2667390b68c7 by llvm-dev
Fix "pointer is null" static analyzer warning. NFCI.
Use castAs<> instead of getAs<> since the pointer is dereferenced
immediately below and castAs will perform the null assertion for us.
The file was modifiedclang/lib/ARCMigrate/ObjCMT.cpp
Commit ff92e469caefff9f86e5e812c08b9bba582be5d3 by inouehrs
[examples] Add missing dependency in llvm examples
To fix build failure with BUILD_SHARED_LIBS=ON
The file was modifiedllvm/examples/Kaleidoscope/BuildingAJIT/Chapter5/Server/CMakeLists.txt
The file was modifiedllvm/examples/LLJITExamples/LLJITWithCustomObjectLinkingLayer/CMakeLists.txt
The file was modifiedllvm/examples/Kaleidoscope/BuildingAJIT/Chapter5/CMakeLists.txt
Commit dfed052fb3ecef53bf01612ec3fc7df73c2134b7 by jasonliu
[AIX] Allow vararg calls when all arguments reside in registers
Summary: This patch pushes the AIX vararg unimplemented error diagnostic
later and allows vararg calls so long as all the arguments can be passed
in register. This patch extends the AIX calling convention
implementation to initialize GPR(s) for vararg float arguments. On AIX,
both GPR(s) and FPR are allocated for floating point arguments. The
GPR(s) are only initialized for vararg calls, otherwise the callee is
expected to retrieve the float argument in the FPR.
f64 in AIX PPC32 requires special handling in order to allocated and
initialize 2 GPRs. This is performed with bitcast, SRL, truncation to
initialize one GPR for the MSW and bitcast, truncations to initialize
the other GPR for the LSW.
A future patch will follow to add support for arguments passed on the
stack.
Patch provided by: cebowleratibm
Reviewers: sfertile, ZarkoCA, hubert.reinterpretcast
Differential Revision: https://reviews.llvm.org/D71013
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
The file was addedllvm/test/CodeGen/PowerPC/aix-cc-altivec.ll
The file was addedllvm/test/CodeGen/PowerPC/aix-cc-abi.ll
The file was removedllvm/test/CodeGen/PowerPC/aix_cc_abi.ll
Commit fd8ded99fe6e9fcae2c98ccad25d6562c5fa8a14 by llvm-dev
Fix "pointer is null" static analyzer warning. NFCI.
Use castAs<> instead of getAs<> since the pointer is dereferenced
immediately below and castAs will perform the null assertion for us.
The file was modifiedclang/lib/CodeGen/CGVTables.cpp
Commit 4d1e23e3b3cd7c72a8b24dc5acb7e13c58a8de37 by maskray
[AArch64] Add function attribute "patchable-function-entry" to add NOPs
at function entry
The Linux kernel uses -fpatchable-function-entry to implement
DYNAMIC_FTRACE_WITH_REGS for arm64 and parisc. GCC 8 implemented
-fpatchable-function-entry, which can be seen as a generalized form of
-mnop-mcount. The N,M form (function entry points before the Mth NOP) is
currently only used by parisc.
This patch adds N,0 support to AArch64 codegen. N is represented as the
function attribute "patchable-function-entry". We will use a different
function attribute for M, if we decide to implement it.
The patch reuses the existing patchable-function pass, and
TargetOpcode::PATCHABLE_FUNCTION_ENTER which is currently used by XRay.
When the integrated assembler is used, __patchable_function_entries will
be created for each text section with the SHF_LINK_ORDER flag to prevent
--gc-sections (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93197) and
COMDAT (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93195) issues.
Retrospectively, __patchable_function_entries should use a PC-relative
relocation type to avoid the SHF_WRITE flag and dynamic relocations.
"patchable-function-entry"'s interaction with Branch Target
Identification is still unclear (see
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92424 for GCC discussions).
Reviewed By: peter.smith
Differential Revision: https://reviews.llvm.org/D72215
The file was modifiedllvm/include/llvm/CodeGen/AsmPrinter.h
The file was modifiedllvm/lib/CodeGen/PatchableFunction.cpp
The file was addedllvm/test/CodeGen/AArch64/patchable-function-entry.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
The file was modifiedllvm/lib/IR/Verifier.cpp
The file was addedllvm/test/Verifier/invalid-patchable-function-entry.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
Commit a8fbdc576990653e92ce1d766659005678fd8514 by maskray
[X86] Support function attribute "patchable-function-entry"
For x86-64, we diverge from GCC -fpatchable-function-entry in that we
emit multi-byte NOPs.
Differential Revision: https://reviews.llvm.org/D72220
The file was addedllvm/test/CodeGen/X86/patchable-function-entry.ll
The file was modifiedllvm/lib/Target/X86/X86MCInstLower.cpp
Commit a44c434b68e515ce9f2627367c83ff6b22328261 by maskray
Support function attribute patchable_function_entry
This feature is generic. Make it applicable for AArch64 and X86 because
the backend has only implemented NOP insertion for AArch64 and X86.
Reviewed By: nickdesaulniers, aaron.ballman
Differential Revision: https://reviews.llvm.org/D72221
The file was modifiedclang/lib/CodeGen/CodeGenFunction.cpp
The file was addedclang/test/Sema/patchable-function-entry-attr.c
The file was modifiedclang/include/clang/Basic/Attr.td
The file was addedclang/test/CodeGen/patchable-function-entry.c
The file was modifiedclang/test/Misc/pragma-attribute-supported-attributes-list.test
The file was addedclang/test/Sema/patchable-function-entry-attr.cpp
The file was modifiedclang/include/clang/Basic/AttrDocs.td
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp
Commit f17ae668a96eeb69f0664f126cf672e1a05754d2 by maskray
[Driver][CodeGen] Add -fpatchable-function-entry=N[,0]
In the backend, this feature is implemented with the function attribute
"patchable-function-entry". Both the attribute and XRay use
TargetOpcode::PATCHABLE_FUNCTION_ENTER, so the two features are
incompatible.
Reviewed By: ostannard, MaskRay
Differential Revision: https://reviews.llvm.org/D72222
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/lib/Driver/XRayArgs.cpp
The file was modifiedclang/include/clang/Basic/CodeGenOptions.def
The file was addedclang/test/Driver/fpatchable-function-entry.c
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/lib/CodeGen/CodeGenFunction.cpp
The file was modifiedclang/test/CodeGen/patchable-function-entry.c
The file was modifiedclang/include/clang/Basic/DiagnosticDriverKinds.td
The file was modifiedclang/include/clang/Driver/Options.td
Commit 2d077d6dfa7909a21293ebdac81488367628e0fa by maskray
[ELF] Make TargetInfo::writeIgotPlt a no-op
RELA targets don't read initial .got.plt entries. REL targets (ARM,
x86-32) write the address of the IFUNC resolver to the entry
(`write32le(buf, s.getVA())`).
The default writeIgotPlt() is not meaningful. Make it a no-op. AArch64
and x86-64 will have 0 as initial .got.plt entries associated with
IFUNC.
Reviewed By: peter.smith
Differential Revision: https://reviews.llvm.org/D72474
The file was modifiedlld/ELF/Target.cpp
The file was modifiedlld/ELF/Target.h
The file was modifiedlld/test/ELF/gnu-ifunc-plt.s
The file was modifiedlld/test/ELF/aarch64-gnu-ifunc-plt.s
Commit f678fc7660b36ce0ad6ce4f05eaa28f3e9fdedb5 by craig.topper
[LegalizeVectorOps] Improve handling of multi-result operations.
This system wasn't very well designed for multi-result nodes. As a
consequence they weren't consistently registered in the LegalizedNodes
map leading to nodes being revisited for different results.
I've removed the "Result" variable from the main LegalizeOp method and
used a SDNode* instead. The result number from the incoming Op SDValue
is only used for deciding which result to return to the caller. When
LegalizeOp is called it should always register a legalized result for
all of its results. Future calls for any other result should be pulled
for the LegalizedNodes map.
Legal nodes will now register all of their results in the map instead of
just the one we were called for.
The Expand and Promote handling to use a vector of results similar to
LegalizeDAG. Each of the new results is then re-legalized and logged in
the LegalizedNodes map for all of the Results for the node being
legalized. None of the handles register their own results now. And none
call ReplaceAllUsesOfValueWith now.
Custom handling now always passes result number 0 to LowerOperation.
This matches what LegalizeDAG does. Since the introduction of STRICT
nodes, I've encountered several issues with X86's custom handling being
called with an SDValue pointing at the chain and our custom handlers
using that to get a VT instead of result 0. This should prevent us from
having any more of those issues. On return we will update the
LegalizedNodes map for all results so we shouldn't call the custom
handler again for each result number.
I want to push SDNode* further into the Expand and Promote handlers, but
I've left that for a follow to keep this patch size down. I've created a
dummy SDValue(Node, 0) to keep the handlers working.
Differential Revision: https://reviews.llvm.org/D72224
The file was modifiedllvm/test/CodeGen/X86/avx512-cmp.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
Commit ef239972614cc3c67006f9c298fcfa841818dc77 by Raphael Isemann
[lldb] Remove FieldDecl stealing hack by rerouting indirect imports to
the original AST
Summary: This is a port of D67803 that was about preventing indirect
importing to our scratch context when evaluating expressions.
D67803 already has a pretty long explanation of how this works, but the
idea is that instead of importing declarations indirectly over the
expression AST (i.e., Debug info AST -> Expression AST -> scratch AST)
we instead directly import the declaration from the debug info AST to
the scratch AST.
The difference from D67803 is that here we have to do this in the
ASTImporterDelegate (which is our ASTImporter subclass we use in LLDB).
It has the same information as the ExternalASTMerger in D67803 as it can
access the ClangASTImporter (which also keeps track of where Decls
originally came from).
With this patch we can also delete the FieldDecl stealing hack in the
ClangASTSource (this was only necessary as the indirect imports caused
the creation of duplicate Record declarations but we needed the fields
in the Record decl we originally found in the scratch ASTContext).
This also fixes the current gmodules failures where we fail to find
std::vector fields after an indirect import over the expression AST
(where it seems even our FieldDecl stealing hack can't save us from).
Reviewers: shafik, aprantl
Reviewed By: shafik
Subscribers: JDevlieghere, lldb-commits, mib, labath, friss
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D72507
The file was modifiedlldb/source/Symbol/ClangASTImporter.cpp
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
Commit 572b9f468ad6844795fec29a7e671ba64d82e8c2 by Jonas Devlieghere
[lldb/Lua] Support loading Lua modules
Implements the command script import command for Lua.
Differential revision: https://reviews.llvm.org/D71825
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.h
The file was addedlldb/test/Shell/ScriptInterpreter/Lua/Inputs/testmodule.lua
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.cpp
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Lua/Lua.cpp
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Lua/Lua.h
The file was addedlldb/test/Shell/ScriptInterpreter/Lua/command_script_import.test
Commit a5230ac10b0dac9a1981838209b4cbc84870c08c by daniel_l_sanders
Update the attribution policy to use the 'Author' property of a git
commit
Summary: The older method of adding 'Patch by John Doe' is documented in
the
`Attribution of Changes` section to support correct attribution of
commits that pre-date the adoption of git.
Reviewers: hfinkel, aaron.ballman, mehdi_amini
Subscribers: llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72468
The file was modifiedllvm/docs/DeveloperPolicy.rst
Commit 13ec473b9d4bd4f7a558272932b7c0806171c666 by gabor.marton
[analyzer] Move PlacementNewChecker to alpha
The file was modifiedclang/include/clang/StaticAnalyzer/Checkers/Checkers.td
The file was modifiedclang/test/Analysis/placement-new.cpp
The file was modifiedclang/test/Analysis/placement-new-user-defined.cpp
Commit b590e0fd810e4caf59ab83b04654d42e18faaafb by craig.topper
[TargetLowering][ARM][X86] Change softenSetCCOperands handling of ONE to
avoid spurious exceptions for QNANs with strict FP quiet compares
ONE is currently softened to OGT | OLT. But the libcalls for OGT and OLT
libcalls will trigger an exception for QNAN. At least for X86 with
libgcc. UEQ on the other hand uses UO | OEQ. The UO and OEQ libcalls
will not trigger an exception for QNAN.
This patch changes ONE to use the inverse of the UEQ lowering. So we now
produce O & UNE. Technically the existing behavior was correct for a
signalling ONE, but since I don't know how to generate one of those from
clang that seemed like something we can deal with later as we would need
to fix other predicates as well. Also removing spurious exceptions
seemed better than missing an exception.
There are also problems with quiet OGT/OLT/OLE/OGE, but those are harder
to fix.
Differential Revision: https://reviews.llvm.org/D72477
The file was modifiedllvm/test/CodeGen/X86/fpcmp-soft-fp.ll
The file was modifiedllvm/test/CodeGen/Thumb2/float-cmp.ll
The file was modifiedllvm/test/CodeGen/X86/fp128-libcalls-strict.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/fp128-compare.ll
Commit 9cd985815abf88bd77bb67f7b9cc80f2032cbbc7 by sbc
[lld][WebAssembly] Add libcall symbols to the link when LTO is being
used.
This code is copied almost verbatim from the equivalent change to the
ELF linker:
- https://reviews.llvm.org/D50017
- https://reviews.llvm.org/D50475
The upshot is that libraries containing libcall (such as compiler-rt and
libc) can be compiled with LTO.
Fixes PR41384
Differential Revision: https://reviews.llvm.org/D71738
The file was modifiedlld/wasm/Symbols.h
The file was modifiedlld/wasm/Symbols.cpp
The file was addedlld/test/wasm/lto/libcall-archive.ll
The file was modifiedlld/wasm/Driver.cpp
The file was modifiedlld/wasm/InputFiles.h
The file was addedlld/test/wasm/lto/Inputs/libcall-archive.ll
Commit 815a3f54331c39f2b400776f448dd29b3b03243b by Jonas Devlieghere
[CMake] Fix modules build after DWARFLinker reorganization
Create a dedicate module for the DWARFLinker and make it depend on
intrinsics gen.
The file was modifiedllvm/include/llvm/module.modulemap
The file was modifiedllvm/lib/DWARFLinker/CMakeLists.txt
Commit f28972facc1fce9589feab9803e3e8cfad01891c by Jan Korous
[clang] Fix out-of-bounds memory access in ComputeLineNumbers
Differential Revision: https://reviews.llvm.org/D72409
The file was modifiedclang/unittests/Basic/SourceManagerTest.cpp
The file was modifiedclang/lib/Basic/SourceManager.cpp
Commit ba91dffafe4d348b469d8ae2b7b1cd00754f72f1 by maskray
[Driver][PowerPC] Move powerpcspe logic from cc1 to Driver
Follow-up of D72014. It is more appropriate to use a target feature
instead of a SubTypeArch to express the difference.
Reviewed By: #powerpc, jhibbits
Differential Revision: https://reviews.llvm.org/D72433
The file was modifiedclang/test/Driver/ppc-features.cpp
The file was modifiedclang/lib/Driver/ToolChains/Arch/PPC.cpp
The file was modifiedclang/test/Preprocessor/init.c
The file was modifiedclang/lib/Basic/Targets/PPC.cpp
Commit 55d7b22277e1c5e710bac7d4d4dc09db3a22dad8 by steveire
[ASTMatchers] Make test more clear about what it is verifying
The file was modifiedclang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
Commit 0c29d3ff2233696f663ae34a8aeda23c750ac68f by listmail
[Tests] Precommit tests showing default branch padding on skylake
A follow up patch will change the default for the compiler, but not the
assembler, just making sure we have testing for each in place.
The file was addedllvm/test/CodeGen/X86/align-branch-boundary-default.ll
The file was addedllvm/test/CodeGen/X86/align-branch-boundary-default.s
Commit 77da826edad0a7b906c734c6bee3489ef495c746 by Raphael Isemann
[lldb] Make CompleteTagDeclsScope completion order deterministic
Summary: We iterate over `m_decls_to_complete` to complete declarations.
As
`m_decls_to_complete` is a set the iteration order can be
non-deterministic. The order is currently only non-deterministic when we
have a large set of decls that need to be completed (i.e. more than 32
decls, as otherwise the SmallPtrSet is just a linear-searched list).
This doesn't really fix any specific bug or has any really observable
change in behavior as the order in which we import should not influence
any semantics. However the order we create decls/types is now always
deterministic which should make debugging easier.
Reviewers: labath, mib, shafik, davide
Reviewed By: shafik, davide
Subscribers: davide, abidh, JDevlieghere, lldb-commits, mgrang
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D72495
The file was modifiedlldb/source/Symbol/ClangASTImporter.cpp
Commit 9e13cff44d6b8b9c9c8420870132931c218707cb by Raphael Isemann
[lldb] Fix TestClangASTContext.TestFunctionTemplateInRecordConstruction
in Debug builds
Summary: In Debug builds we call VerifyDecl in
ClangASTContext::CreateFunctionDeclaration which in turn calls
`getAccess` on the created FunctionDecl. As we passed in a RecordDecl as
the DeclContext for the FunctionDecl, we end up hitting the assert in
`getAccess` that checks that we never have a Decl inside a Record
without a valid AccessSpecifier. FunctionDecls are never in RecordDecls
(that would be a CXXMethodDecl) so setting a access specifier would not
be the correct way to fix this.
Instead this patch does the same thing that
DWARFASTParserClang::ParseSubroutine is doing: We pass in the
FunctionDecl with the TranslationUnit as the DeclContext. That's not
ideal but it is how we currently do it when creating our debug info AST,
so the unit test should do the same.
Reviewers: shafik
Reviewed By: shafik
Subscribers: aprantl, JDevlieghere, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D72359
The file was modifiedlldb/unittests/Symbol/TestClangASTContext.cpp
Commit 4ffcec40acebae7161ac7426edc68290bbaca2b8 by aaron
Implement new AST matcher hasAnyCapture to match on LambdaExpr captures.
Accepts child matchers cxxThisExpr to match on capture of this and also
on varDecl.
The file was modifiedclang/lib/ASTMatchers/Dynamic/Registry.cpp
The file was modifiedclang/docs/LibASTMatchersReference.html
The file was modifiedclang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
The file was modifiedclang/include/clang/ASTMatchers/ASTMatchers.h
Commit f3db1aad2796c62f0d188a74f2901c18e51843c2 by sylvestre
MakeUniqueCheck.cpp: explicit the fact that there is an autofix for this
checker
The file was modifiedclang-tools-extra/clang-tidy/modernize/MakeUniqueCheck.cpp
Commit faeeb71a17344171f814144213ac4fbc93be28fd by sylvestre
clang-tidy doc: Refresh the list of checkers and polish the script
The file was modifiedclang-tools-extra/clang-tidy/add_new_check.py
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/list.rst
Commit 71cee218619033115f5e0c7656efc8cee93180e9 by craig.topper
[TargetLowering] Use SelectionDAG::getSetCC and remove a repeated call
to getSetCCResultType in softenSetCCOperands. NFCI
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Commit 68cd283f3b074e3b64b9f65e93ceb2de6807c72d by sylvestre
clang-tidy doc: unbreak the CI
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/list.rst
Commit a5a6fd3f95a9ecc3ef8732192ce0fd7749135311 by eugenis
Summary: update macro for OFF_T so that sanitizer works on AARCH64.
Reviewers: vitalybuka, eugenis, MaskRay
Reviewed By: eugenis, MaskRay
Subscribers: MaskRay, kristof.beyls, #sanitizers, llvm-commits, jkz, scw
Tags: #sanitizers, #llvm
Differential Revision: https://reviews.llvm.org/D72367
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_netbsd.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/symbolizer/sanitizer_wrappers.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_posix.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_linux_s390.cpp