Commit
40d774265b08fbfd0f3e2ffa79ce7feddbd060bc
by pavel[lldb/Utility] Simplify Scalar::PromoteToMaxType
The function had very complicated signature, because it was trying to avoid making unnecessary copies of the Scalar object. However, this class is not hot enough to worry about these kinds of optimizations. My making copies unconditionally, we can simplify the function and all of its call sites.
Differential Revision: https://reviews.llvm.org/D85906
|
 | lldb/include/lldb/Utility/Scalar.h |
 | lldb/source/Utility/Scalar.cpp |
Commit
a9a6f0fe1d65346ad86021af727058a31594a6b8
by frgossen[MLIR][Shape] Add custom assembly format for `shape.any`
Add custom assembly format for `shape.any` with variadic operands.
Differential Revision: https://reviews.llvm.org/D85306
|
 | mlir/test/Dialect/Shape/canonicalize.mlir |
 | mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td |
 | mlir/test/Dialect/Shape/ops.mlir |
Commit
eb82d58f83b24c0c23fa8dc79924dfdfe2d269e2
by sam.parker[NFC][ARM] Port MaybeCall into ARMTTImpl method
Renamed to maybeLoweredToCall.
|
 | llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp |
 | llvm/lib/Target/ARM/ARMTargetTransformInfo.h |
Commit
215c2df6478f65233f15f8978d4dd692fe60c757
by zinenko[mlir] Mention mandatory RFC process for changes in Standard dialect
We have been asking for this systematically, mention it in the documentation.
Reviewed By: mehdi_amini
Differential Revision: https://reviews.llvm.org/D85902
|
 | mlir/docs/Dialects/Standard.md |
Commit
339eba0805fb73da5cc3d29eb7cd1085306db54e
by zinenko[mlir] do not emit bitcasts between structs in StandardToLLVM
The convresion of memref cast operaitons from the Standard dialect to the LLVM dialect has been emitting bitcasts from a struct type to itself. Beyond being useless, such casts are invalid as bitcast does not operate on aggregate types. This kept working by accident because LLVM IR bitcast construction API skips the construction if types are equal before it verifies that the types are acceptable in a bitcast. Do not emit such bitcasts, the memref cast that only adds/erases size information is in fact a noop on the current descriptor as it always contains dynamic values for all sizes.
Reviewed By: pifon2a
Differential Revision: https://reviews.llvm.org/D85899
|
 | mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp |
 | mlir/test/Conversion/StandardToLLVM/convert-dynamic-memref-ops.mlir |
Commit
30c4561e36ea634a067bf3b7de8b4668292c0931
by Stefan Gränitz[ORC] Add JITLink-compatible remote memory-manager and LLJITWithChildProcess example
This adds RemoteJITLinkMemoryManager is a new subclass of OrcRemoteTargetClient. It implements jitlink::JITLinkMemoryManager and targets the OrcRemoteTargetRPCAPI.
Behavior should be very similar to RemoteRTDyldMemoryManager. The essential differnce with JITLink is that allocations work in isolation from its memory manager. Thus, the RemoteJITLinkMemoryManager might be seen as "JITLink allocation factory".
RPCMMAlloc is another subclass of OrcRemoteTargetClient and implements the actual functionality. It allocates working memory on the host and target memory on the remote target. Upon finalization working memory is copied over to the tagrte address space. Finalization can be asynchronous for JITLink allocations, but I don't see that it makes a difference here.
Differential Revision: https://reviews.llvm.org/D85919
|
 | llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h |
 | llvm/examples/OrcV2Examples/LLJITWithChildProcess/CMakeLists.txt |
 | llvm/examples/OrcV2Examples/LLJITWithChildProcess/LLJITWithChildProcess.cpp |
 | llvm/examples/OrcV2Examples/LLJITWithChildProcess/RemoteJITUtils.h |
 | llvm/examples/OrcV2Examples/CMakeLists.txt |
 | llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h |
 | llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h |
Commit
6bf74a924fe9312e6dc4ced20259ce25d55dd764
by Stefan Gränitz[ORC] In LLLazyJIT provide public access to the CompileOnDemandLayer
This is analog to how LLJIT provides public access to all its layers.
Differential Revision: https://reviews.llvm.org/D85921
|
 | llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h |
Commit
9a47bcae7c564bb83de659be601509241f31cc11
by Stefan Gränitz[ORC][NFC] Refactor loop to determine name of init symbol in IRMaterializationUnit
This loop caused me a little headache once, because I didn't see the assigned variable is a member. The refactored version appears more readable to me.
Differential Revision: https://reviews.llvm.org/D85922
|
 | llvm/lib/ExecutionEngine/Orc/Layer.cpp |
Commit
de9e85026fcb7c3e992f12a86594fd50bb101ad3
by Raphael Isemann[lldb] Display autosuggestion part in gray if there is one possible suggestion
This is relanding D81001. The patch originally failed as on newer editline versions it seems CC_REFRESH will move the cursor to the start of the line via \r and then back to the original position. On older editline versions like the one used by default on macOS, CC_REFRESH doesn't move the cursor at all. As the patch changed the way we handle tab completion (previously we did REDISPLAY but now we're doing CC_REFRESH), this caused a few completion tests to receive this unexpected cursor movement in the output stream. This patch updates those tests to also accept output that contains the specific cursor movement commands (\r and then \x1b[XC). lldbpexpect.py received an utility method for generating the cursor movement escape sequence.
Original summary:
I implemented autosuggestion if there is one possible suggestion. I set the keybinds for every character. When a character is typed, Editline::TypedCharacter is called. Then, autosuggestion part is displayed in gray, and you can actually input by typing C-k. Editline::Autosuggest is a function for finding completion, and it is like Editline::TabCommand now, but I will add more features to it.
Testing does not work well in my environment, so I can't confirm that it goes well, sorry. I am dealing with it now.
Reviewed By: teemperor, JDevlieghere, #lldb
Differential Revision: https://reviews.llvm.org/D81001
|
 | lldb/packages/Python/lldbsuite/test/lldbpexpect.py |
 | lldb/test/API/iohandler/autosuggestion/TestAutosuggestion.py |
 | lldb/include/lldb/Core/IOHandler.h |
 | lldb/test/API/iohandler/completion/TestIOHandlerCompletion.py |
 | lldb/source/Interpreter/CommandInterpreter.cpp |
 | lldb/include/lldb/Core/Debugger.h |
 | lldb/include/lldb/Interpreter/CommandInterpreter.h |
 | lldb/source/Core/CoreProperties.td |
 | lldb/include/lldb/Host/Editline.h |
 | lldb/source/Host/common/Editline.cpp |
 | lldb/source/Core/IOHandler.cpp |
 | lldb/source/Core/Debugger.cpp |
 | lldb/test/API/commands/expression/multiline-completion/TestMultilineCompletion.py |
Commit
ebf521e78483693e5cc9ba4ad3298f0397923624
by joker.ephSeparate the Registration from Loading dialects in the Context
This changes the behavior of constructing MLIRContext to no longer load globally registered dialects on construction. Instead Dialects are only loaded explicitly on demand: - the Parser is lazily loading Dialects in the context as it encounters them during parsing. This is the only purpose for registering dialects and not load them in the context. - Passes are expected to declare the dialects they will create entity from (Operations, Attributes, or Types), and the PassManager is loading Dialects into the Context when starting a pipeline.
This changes simplifies the configuration of the registration: a compiler only need to load the dialect for the IR it will emit, and the optimizer is self-contained and load the required Dialects. For example in the Toy tutorial, the compiler only needs to load the Toy dialect in the Context, all the others (linalg, affine, std, LLVM, ...) are automatically loaded depending on the optimization pipeline enabled.
|
 | mlir/test/lib/Dialect/Affine/TestVectorizationUtils.cpp |
 | mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-gen.cpp |
 | mlir/test/lib/Dialect/SPIRV/TestAvailability.cpp |
 | mlir/include/mlir/Support/MlirOptMain.h |
 | mlir/lib/TableGen/Dialect.cpp |
 | mlir/unittests/Dialect/SPIRV/DeserializationTest.cpp |
 | mlir/examples/toy/Ch6/toyc.cpp |
 | mlir/include/mlir/Dialect/Affine/Passes.td |
 | mlir/include/mlir/TableGen/Pass.h |
 | mlir/test/CAPI/ir.c |
 | mlir/test/mlir-opt/commandline.mlir |
 | mlir/include/mlir-c/IR.h |
 | mlir/unittests/IR/DialectTest.cpp |
 | mlir/include/mlir/Dialect/LLVMIR/NVVMDialect.h |
 | mlir/lib/Parser/AttributeParser.cpp |
 | mlir/examples/toy/Ch5/mlir/LowerToAffineLoops.cpp |
 | mlir/examples/toy/Ch6/mlir/LowerToAffineLoops.cpp |
 | mlir/unittests/Dialect/SPIRV/SerializationTest.cpp |
 | mlir/examples/toy/Ch4/toyc.cpp |
 | mlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td |
 | mlir/include/mlir/InitAllDialects.h |
 | mlir/lib/Conversion/GPUToVulkan/ConvertGPULaunchFuncToVulkanLaunchFunc.cpp |
 | mlir/test/lib/Transforms/TestLinalgHoisting.cpp |
 | mlir/unittests/IR/AttributeTest.cpp |
 | mlir/lib/Parser/Parser.cpp |
 | mlir/include/mlir/Pass/Pass.h |
 | mlir/examples/standalone/standalone-opt/standalone-opt.cpp |
 | mlir/examples/toy/Ch5/toyc.cpp |
 | mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td |
 | mlir/lib/CAPI/IR/IR.cpp |
 | mlir/test/lib/Dialect/Test/TestPatterns.cpp |
 | mlir/examples/toy/Ch7/mlir/LowerToAffineLoops.cpp |
 | mlir/unittests/IR/OperationSupportTest.cpp |
 | mlir/test/lib/Transforms/TestLinalgTransforms.cpp |
 | mlir/lib/Dialect/Affine/Transforms/PassDetail.h |
 | mlir/lib/Target/LLVMIR/ModuleTranslation.cpp |
 | mlir/lib/Dialect/SDBM/SDBMExpr.cpp |
 | mlir/examples/toy/Ch3/toyc.cpp |
 | mlir/examples/toy/Ch7/mlir/LowerToLLVM.cpp |
 | mlir/lib/ExecutionEngine/JitRunner.cpp |
 | mlir/lib/Support/MlirOptMain.cpp |
 | mlir/test/lib/Transforms/TestGpuMemoryPromotion.cpp |
 | mlir/test/lib/Transforms/TestAllReduceLowering.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/PassDetail.h |
 | mlir/lib/Transforms/PassDetail.h |
 | mlir/unittests/TableGen/OpBuildGen.cpp |
 | mlir/lib/Conversion/LinalgToLLVM/LinalgToLLVM.cpp |
 | mlir/unittests/TableGen/StructsGenTest.cpp |
 | mlir/unittests/Pass/AnalysisManagerTest.cpp |
 | mlir/include/mlir/Dialect/SCF/Passes.td |
 | mlir/lib/Conversion/PassDetail.h |
 | mlir/lib/Parser/DialectSymbolParser.cpp |
 | mlir/include/mlir/IR/Dialect.h |
 | mlir/lib/IR/MLIRContext.cpp |
 | mlir/test/lib/Transforms/TestVectorTransforms.cpp |
 | mlir/include/mlir/TableGen/Dialect.h |
 | mlir/lib/Pass/PassDetail.h |
 | mlir/test/SDBM/sdbm-api-test.cpp |
 | mlir/tools/mlir-translate/mlir-translate.cpp |
 | mlir/examples/toy/Ch6/mlir/LowerToLLVM.cpp |
 | mlir/include/mlir/IR/MLIRContext.h |
 | mlir/lib/Dialect/SCF/Transforms/PassDetail.h |
 | mlir/unittests/SDBM/SDBMTest.cpp |
 | mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp |
 | mlir/include/mlir/Conversion/Passes.td |
 | mlir/include/mlir/Pass/PassBase.td |
 | mlir/include/mlir/Dialect/LLVMIR/LLVMDialect.h |
 | mlir/include/mlir/IR/OpBase.td |
 | mlir/lib/IR/Operation.cpp |
 | mlir/include/mlir/Dialect/LLVMIR/ROCDLDialect.h |
 | mlir/include/mlir/Pass/PassManager.h |
 | mlir/examples/toy/Ch7/toyc.cpp |
 | mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp |
 | mlir/lib/TableGen/Pass.cpp |
 | mlir/unittests/Dialect/Quant/QuantizationUtilsTest.cpp |
 | mlir/include/mlir/Transforms/Passes.td |
 | mlir/examples/toy/Ch2/toyc.cpp |
 | mlir/tools/mlir-tblgen/PassGen.cpp |
 | mlir/lib/Conversion/StandardToSPIRV/LegalizeStandardForSPIRV.cpp |
 | mlir/test/EDSC/builder-api-test.cpp |
 | mlir/lib/IR/Verifier.cpp |
 | mlir/include/mlir/IR/FunctionSupport.h |
 | mlir/lib/IR/Dialect.cpp |
 | mlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp |
 | mlir/tools/mlir-opt/mlir-opt.cpp |
 | mlir/test/lib/Transforms/TestBufferPlacement.cpp |
 | mlir/include/mlir/Dialect/Linalg/Passes.td |
 | mlir/lib/Pass/Pass.cpp |
 | flang/unittests/Lower/OpenMPLoweringTest.cpp |
 | mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td |
 | mlir/tools/mlir-tblgen/DialectGen.cpp |
Commit
397b3cc9e5aa949fcaaff7743a76e889d29b723c
by Stefan Gränitz[ORC][NFC] Fix a header comment
|
 | llvm/examples/OrcV2Examples/LLJITWithChildProcess/LLJITWithChildProcess.cpp |
Commit
f974d64b372c5554783369bab901de8f4dee5e02
by Raphael Isemann[lldb] Deduplicate copy-pasted TypeSystemMap::GetTypeSystemForLanguage
There are two implementations for `TypeSystemMap::GetTypeSystemForLanguage` which are both identical beside one taking a `Module` and one taking a `Target` (and then passing that argument to the `TypeSystem::CreateInstance` function).
This merges both implementations into one function with a lambda that wraps the different calls to `TypeSystem::CreateInstance`.
Reviewed By: #lldb, JDevlieghere
Differential Revision: https://reviews.llvm.org/D82537
|
 | lldb/source/Symbol/TypeSystem.cpp |
 | lldb/include/lldb/Symbol/TypeSystem.h |
Commit
28e1015e327ec56ac4bf93967d3aa2915b215e36
by Stefan Gränitz[ORC] Fix missing include in OrcRemoteTargetClient.h
|
 | llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h |
Commit
e6b1b61054c285efad7bf4ee0a4da53e56944d87
by pavel[lldb] Fix py3 incompatibility in gdbremote_testcase.py
This didn't cause test failures since this variable is only used during connection shutdown.
|
 | lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py |
Commit
fdc6aea3fd822b639baaa5b666fdf7598d08c8de
by pavel[lldb] Check Decl kind when completing -flimit-debug-info types
The search for the complete class definition can also produce entries which are not of the expected type. This can happen for instance when there is a function with the same name as the class we're looking up (which means that the class needs to be disambiguated with the struct/class tag in most contexts).
Previously we were just picking the first Decl that the lookup returned, which later caused crashes or assertion failures if it was not of the correct type. This patch changes that to search for an entry of the correct type.
Differential Revision: https://reviews.llvm.org/D85904
|
 | lldb/test/API/functionalities/limit-debug-info/main.cpp |
 | lldb/test/API/functionalities/limit-debug-info/TestLimitDebugInfo.py |
 | lldb/source/Plugins/ExpressionParser/Clang/ClangASTImporter.cpp |
 | lldb/test/API/functionalities/limit-debug-info/one.cpp |
 | lldb/test/API/functionalities/limit-debug-info/onetwo.h |
Commit
bb4efab9a4d9431dbedb27f04249effd0a73812e
by Raphael Isemann[lldb] Use SBProcess::Continue instead of 'run' command in TestTargetAPI.py
This test is flaky on Green Dragon as it often fails when the process state is "Invalid" in the assert: self.assertEqual(process.GetState(), lldb.eStateExited) It seems this is related to just doing "run" which apparently invalidates the Target's process in case it's still running and needs to be restarted. Just doing 'continue' on the process (and ignoring the error in case it already finished) prevents that and makes this consistently pass for me.
Just pushing this out to get Green Dragon back online.
|
 | lldb/test/API/python_api/target/TestTargetAPI.py |
Commit
0426e28419799c35cf52fe3d773c5bab9928c699
by Vitaly Buka[NFC][StackSafety] Move out sort from the loop
|
 | llvm/lib/Analysis/StackSafetyAnalysis.cpp |
 | llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll |
Commit
4c30d4b4e5f2c2cb80910638e7827f7b85ee5568
by Vitaly Buka[NFC][StackSafety] Change map key comparison
|
 | llvm/lib/Analysis/StackSafetyAnalysis.cpp |