1. [ObjC][DWARF] Emit DW_AT_APPLE_objc_direct for methods marked as (details)
  2. [Support] Fix time trace multi threaded support with (details)
  3. Revert "[Support] Fix time trace multi threaded support with (details)
  4. Resubmit "[Alignment][NFC] Deprecate CreateMemCpy/CreateMemMove" (details)
  5. [lldb] Add support for calling objc_direct methods from LLDB's (details)
  6. [lldb][NFC] Remove implementation of GetOriginalDecl and just call (details)
  7. [lldb-vscode] Centrally skip debug info variants for vscode tests (details)
  8. [lldb][NFC] Remove all unnecessary includes for ClangASTSourceCommon.h (details)
  9. [lit] Remove lit's REQUIRES-ANY directive (details)
  10. Fix assertion failure in getMemOperandWithOffsetWidth (details)
  11. [OpenCL] Add ExtVectorElementExpr constant evaluation (PR42387) (details)
Commit ccfab8e4596e59c8eea6b3610cd163c5d0312193 by Raphael Isemann
[ObjC][DWARF] Emit DW_AT_APPLE_objc_direct for methods marked as
Summary: With DWARF5 it is no longer possible to distinguish normal
methods and methods with `__attribute__((objc_direct))` by just looking
at the debug information as they are both now children of the of the
DW_TAG_structure_type that defines them (before only the
`__attribute__((objc_direct))` methods were children).
This means that in LLDB we are no longer able to create a correct Clang
AST of a module by just looking at the debug information. Instead we
would need to call the Objective-C runtime to see which of the methods
have a `__attribute__((objc_direct))` and then add the attribute to our
own Clang AST depending on what the runtime returns. This would mean
that we either let the module AST be dependent on the Objective-C
runtime (which doesn't seem right) or we retroactively add the missing
attribute to the imported AST in our expressions.
A third option is to annotate methods with
`__attribute__((objc_direct))` as `DW_AT_APPLE_objc_direct` which is
what this patch implements. This way LLDB doesn't have to call the
runtime for any `__attribute__((objc_direct))` method and the AST in our
module will already be correct when we create it.
Reviewers: aprantl, SouraVX
Reviewed By: aprantl
Subscribers: hiraditya, cfe-commits, llvm-commits
Tags: #clang, #llvm, #debug-info
Differential Revision:
The file was modifiedllvm/include/llvm/BinaryFormat/Dwarf.def
The file was addedllvm/test/DebugInfo/X86/objc_direct.ll
The file was modifiedllvm/include/llvm/IR/DebugInfoFlags.def
The file was modifiedllvm/include/llvm/IR/DebugInfoMetadata.h
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp
The file was modifiedclang/test/CodeGenObjC/debug-info-direct-method.m
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
Commit 2bbcf156acc157377e814fbb1828a9fe89367ea2 by russell.gallop
[Support] Fix time trace multi threaded support with
Following on from 8ddcd1dc26ba, which added the support. As pointed out
on D71059 this does not build on some systems with
Differential Revision:
The file was modifiedllvm/include/llvm/Support/TimeProfiler.h
The file was modifiedllvm/lib/Support/TimeProfiler.cpp
Commit 531c71118f2910edcdc7b215dbb4ee429c623631 by russell.gallop
Revert "[Support] Fix time trace multi threaded support with
This reverts commit 2bbcf156acc157377e814fbb1828a9fe89367ea2.
This was failing on systems which use __thread such as
The file was modifiedllvm/lib/Support/TimeProfiler.cpp
The file was modifiedllvm/include/llvm/Support/TimeProfiler.h
Commit 531c1161b9758aa7eae1a4dd8ecf11fdf4417b29 by gchatelet
Resubmit "[Alignment][NFC] Deprecate CreateMemCpy/CreateMemMove"
Summary: This is a resubmit of D71473.
This patch introduces a set of functions to enable deprecation of
IRBuilder functions without breaking out of tree clients. Functions will
be deprecated one by one and as in tree code is cleaned up.
This is patch is part of a series to introduce an Alignment type. See
this thread for context: See this
patch for the introduction of the type:
Reviewers: aaron.ballman, courbet
Subscribers: llvm-commits
Tags: #llvm
Differential Revision:
The file was modifiedllvm/include/llvm/IR/IntrinsicInst.h
The file was modifiedllvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
The file was modifiedllvm/lib/CodeGen/SafeStack.cpp
The file was modifiedllvm/include/llvm/IR/Argument.h
The file was modifiedllvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
The file was modifiedllvm/lib/IR/Instructions.cpp
The file was modifiedllvm/lib/Transforms/Utils/InlineFunction.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
The file was modifiedllvm/include/llvm/IR/InstrTypes.h
The file was modifiedllvm/include/llvm/IR/Instructions.h
The file was modifiedllvm/lib/IR/Function.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
The file was modifiedllvm/lib/IR/Core.cpp
The file was modifiedllvm/lib/Transforms/Scalar/InferAddressSpaces.cpp
The file was modifiedllvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
The file was modifiedllvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
The file was modifiedllvm/include/llvm/IR/Function.h
The file was modifiedllvm/include/llvm/IR/IRBuilder.h
Commit d5b54bbfaf19a8527ebf70fbf23cb8d2937f15ef by Raphael Isemann
[lldb] Add support for calling objc_direct methods from LLDB's
expression evaluator.
Summary: D69991 introduced `__attribute__((objc_direct))` that allows
directly calling methods without message passing. This patch adds
support for calling methods with this attribute to LLDB's expression
The patch can be summarised in that LLDB just adds the same attribute to
our module AST when we find a method with `__attribute__((objc_direct))`
in our debug information.
Reviewers: aprantl, shafik
Reviewed By: shafik
Subscribers: JDevlieghere, lldb-commits
Tags: #lldb
Differential Revision:
The file was modifiedlldb/include/lldb/Symbol/ClangASTContext.h
The file was addedlldb/packages/Python/lldbsuite/test/lang/objc/objc_direct-methods/Makefile
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h
The file was modifiedlldb/source/Symbol/ClangASTContext.cpp
The file was addedlldb/packages/Python/lldbsuite/test/lang/objc/objc_direct-methods/main.m
The file was addedlldb/packages/Python/lldbsuite/test/lang/objc/objc_direct-methods/
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
Commit 6e1fe4966c402d17a253b38192cfd5e8b919ab8e by Raphael Isemann
[lldb][NFC] Remove implementation of GetOriginalDecl and just call
GetDeclOrigin instead
Those functions have the same semantics beside some small optimization
of not creating a new empty ASTContextMetadataSP value in the metadata
map. We never actually hit this optimization according to test coverage
so let's just call GetDeclOrigin instead.
The file was modifiedlldb/source/Symbol/ClangASTImporter.cpp
Commit dcd14324dced7d91aa8bf78a607055ca093b27bf by pavel
[lldb-vscode] Centrally skip debug info variants for vscode tests
Previously each test was annotated manually. This does the same thing.
The file was modifiedlldb/packages/Python/lldbsuite/test/tools/lldb-vscode/step/
The file was modifiedlldb/packages/Python/lldbsuite/test/tools/lldb-vscode/breakpoint/
The file was modifiedlldb/packages/Python/lldbsuite/test/tools/lldb-vscode/
The file was modifiedlldb/packages/Python/lldbsuite/test/tools/lldb-vscode/breakpoint/
The file was modifiedlldb/packages/Python/lldbsuite/test/tools/lldb-vscode/breakpoint/
The file was modifiedlldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/
The file was modifiedlldb/packages/Python/lldbsuite/test/tools/lldb-vscode/launch/
The file was modifiedlldb/packages/Python/lldbsuite/test/tools/lldb-vscode/stackTrace/
The file was modifiedlldb/packages/Python/lldbsuite/test/tools/lldb-vscode/variables/
The file was modifiedlldb/packages/Python/lldbsuite/test/tools/lldb-vscode/attach/
Commit d9ca412a8a75ab64af33a9e95d1319c4dd2004d2 by Raphael Isemann
[lldb][NFC] Remove all unnecessary includes for ClangASTSourceCommon.h
These files only need the definition of ClangASTMetadata (which was
previously in the ClangASTSourceCommon.h) or don't need the include at
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
The file was modifiedlldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp
The file was modifiedlldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
The file was modifiedlldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp
Commit ddd0bb8dba2a367c6aa8a25e98915509847745ce by thomasp
[lit] Remove lit's REQUIRES-ANY directive
Summary: Remove REQUIRES-ANY alias lit directive since it is hardly used
and can be easily implemented using an OR expression using REQUIRES.
Fixup remaining testcases still using REQUIRES-ANY.
Reviewers: probinson, jdenny, gparker42
Reviewed By: gparker42
Subscribers: eugenis, asb, rbar, johnrusso, simoncook, sabuasal, niosHD,
delcypher, jrtc27, zzheng, edward-jones, rogfer01, MartinMosbeck,
brucehoult, the_o, PkmX, jocewei, lenary, s.egerton, pzheng,
sameer.abuasal, apazos, luismarques, cfe-commits, #sanitizers,
Tags: #llvm, #clang, #sanitizers
Differential Revision:
The file was modifiedcompiler-rt/test/builtins/Unit/arm/aeabi_cfcmpeq_test.c
The file was modifiedcompiler-rt/test/builtins/Unit/arm/aeabi_uidivmod_test.c
The file was modifiedclang/test/Driver/XRay/xray-instrument-os.c
The file was modifiedcompiler-rt/test/builtins/Unit/riscv/mulsi3_test.c
The file was removedllvm/utils/lit/tests/Inputs/shtest-format/requires-any-missing.txt
The file was modifiedcompiler-rt/test/builtins/Unit/arm/aeabi_idivmod_test.c
The file was modifiedcompiler-rt/test/builtins/Unit/arm/aeabi_cdcmple_test.c
The file was modifiedcompiler-rt/test/builtins/Unit/arm/aeabi_frsub_test.c
The file was modifiedcompiler-rt/test/builtins/Unit/arm/aeabi_drsub_test.c
The file was modifiedclang/test/Driver/XRay/xray-instrument-macos.c
The file was modifiedllvm/utils/lit/lit/
The file was modifiedclang/test/Driver/XRay/xray-nolinkdeps.cpp
The file was removedllvm/utils/lit/tests/Inputs/shtest-format/requires-any-present.txt
The file was modifiedclang/test/Driver/XRay/xray-mode-flags.cpp
The file was modifiedcompiler-rt/test/builtins/Unit/arm/aeabi_cdcmpeq_test.c
The file was modifiedcompiler-rt/test/builtins/Unit/arm/aeabi_cfcmple_test.c
The file was modifiedcompiler-rt/test/builtins/Unit/arm/aeabi_uldivmod_test.c
The file was modifiedclang/test/Driver/XRay/xray-instrumentation-bundles-flags.cpp
Commit 870f39d310d6a575fb5d303f4027e988bec9e78e by kristof.beyls
Fix assertion failure in getMemOperandWithOffsetWidth
This fixes an assertion failure that triggers inside
getMemOperandWithOffset when Machine Sinking calls it on a MachineInstr
that is not a memory operation.
Different backends implement getMemOperandWithOffset differently: some
return false on non-memory MachineInstrs, others assert.
The Machine Sinking pass in at least SinkingPreventsImplicitNullCheck
relies on getMemOperandWithOffset to return false on non-memory
MachineInstrs, instead of asserting.
This patch updates the documentation on getMemOperandWithOffset that it
should return false on any MachineInstr it cannot handle, instead of
asserting. It also adapts the in-tree backends accordingly where
Differential Revision:
The file was addedllvm/test/CodeGen/AArch64/machine-sink-getmemoperandwithoffset.mir
The file was modifiedllvm/lib/Target/Lanai/LanaiInstrInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfo.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.cpp
The file was modifiedllvm/include/llvm/CodeGen/TargetInstrInfo.h
The file was modifiedllvm/lib/Target/Hexagon/HexagonInstrInfo.cpp
The file was modifiedllvm/lib/Target/X86/X86InstrInfo.cpp
Commit df5a905aa8a868bdb700d88e427491ee56243e30 by sven.vanhaastregt
[OpenCL] Add ExtVectorElementExpr constant evaluation (PR42387)
Add constexpr evaluation for ExtVectorElementExpr nodes by evaluating
the underlying vector expression.  Add basic folding for the case that
Evaluate does not return an LValue.
Differential Revision:
The file was modifiedclang/lib/AST/ExprConstant.cpp
The file was modifiedclang/test/CodeGenOpenCLCXX/