|
 | clang/lib/AST/ItaniumMangle.cpp (diff) |
|
 | llvm/utils/TableGen/GlobalISelEmitter.cpp (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-constant.mir (diff) |
 | llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp (diff) |
 | llvm/test/TableGen/gisel-physreg-input.td |
 | llvm/utils/TableGen/CodeGenRegisters.h (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.s.sendmsg.mir |
 | llvm/utils/TableGen/CodeGenRegisters.cpp (diff) |
 | llvm/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.s.sendmsg.mir (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.s.sendmsghalt.mir (diff) |
|
 | llvm/include/llvm/Support/TargetOpcodes.def (diff) |
 | llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h (diff) |
 | llvm/include/llvm/Target/GenericOpcodes.td (diff) |
 | llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp (diff) |
 | llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td (diff) |
 | llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir (diff) |
 | llvm/unittests/CodeGen/GlobalISel/MachineIRBuilderTest.cpp (diff) |
|
 | llvm/unittests/ExecutionEngine/Orc/QueueChannel.h (diff) |
Commit
2b1b4cab9605a33a6c90079b44bdddf048104e08
by Artem Dergachev[analyzer] pr43179: Make CallDescription defensive against C variadic functions. Most functions that our checkers react upon are not C-style variadic functions, and therefore they have as many actual arguments as they have formal parameters. However, it's not impossible to define a variadic function with the same name. This will crash any checker that relies on CallDescription to check the number of arguments but silently assumes that the number of parameters is the same. Change CallDescription to check both the number of arguments and the number of parameters by default. If we're intentionally trying to match variadic functions, allow specifying arguments and parameters separately (possibly omitting any of them). For now we only have one CallDescription which would make use of those, namely __builtin_va_start itself. Differential Revision: https://reviews.llvm.org/D67019 llvm-svn: 371256
|
 | clang/test/Analysis/cast-value-weird.cpp |
 | clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h (diff) |
 | clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp (diff) |
 | clang/lib/StaticAnalyzer/Core/CallEvent.cpp (diff) |
Commit
6cee434ed10ead6b7416ca5ee9592b2b207eeb0f
by Artem Dergachev[analyzer] Add minimal support for fix-it hints. Allow attaching fixit hints to Static Analyzer BugReports. Fixits are attached either to the bug report itself or to its notes (path-sensitive event notes or path-insensitive extra notes). Add support for fixits in text output (including the default text output that goes without notes, as long as the fixit "belongs" to the warning). Add support for fixits in the plist output mode. Implement a fixit for the path-insensitive DeadStores checker. Only dead initialization warning is currently covered. Implement a fixit for the path-sensitive VirtualCall checker when the virtual method is not pure virtual (in this case the "fix" is to suppress the warning by qualifying the call). Both fixits are under an off-by-default flag for now, because they require more careful testing. Differential Revision: https://reviews.llvm.org/D65182 llvm-svn: 371257
|
 | clang/lib/StaticAnalyzer/Core/BugReporter.cpp (diff) |
 | clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp (diff) |
 | clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h (diff) |
 | clang/test/Analysis/plist-output.m (diff) |
 | clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp (diff) |
 | clang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp (diff) |
 | clang/test/Analysis/objc-arc.m (diff) |
 | clang/test/Analysis/virtualcall-fixits.cpp |
 | clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h (diff) |
 | clang/test/Analysis/analyzer-config.c (diff) |
 | clang/include/clang/StaticAnalyzer/Checkers/Checkers.td (diff) |
 | clang/test/Analysis/dead-stores.c (diff) |
 | clang/test/Analysis/edges-new.mm (diff) |
 | clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp (diff) |
 | clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def (diff) |
Commit
b482db6dfeda8631afae3ca706ad3e3ccfd87d5d
by apl[Core] Remove use of ClangASTContext in DumpDataExtractor Summary: DumpDataExtractor uses ClangASTContext in order to get the proper llvm fltSemantics for the type it needs so that it can dump floats in a more precise way. However, there's no reason that this behavior needs to be specific ClangASTContext. Instead, I think it makes sense to ask TypeSystems for the float semantics for a type of a given size. Differential Revision: https://reviews.llvm.org/D67239 llvm-svn: 371258
|
 | lldb/include/lldb/Symbol/TypeSystem.h (diff) |
 | lldb/include/lldb/Symbol/ClangASTContext.h (diff) |
 | lldb/source/Symbol/ClangASTContext.cpp (diff) |
 | lldb/source/Core/DumpDataExtractor.cpp (diff) |
Commit
92ada4ab0c7bbb2fbeb4ccec8b31e3bfcc3829b7
by Jonas Devlieghere[test] Add a FIXME test for stop-command-source-on-error Modifying the interpreter settings is tricky because they don't take effect until we create a new command interpreter, which should be merely an implementation detail. This leads to confusing and unexpected scenarios. This adds a test cases with FIXMEs for some of the odd scenarios I encountered. I didn't XFAIL the test because I don't think there's a way to get an unexpected PASS if any of the commands succeeds and splitting up the file in multiple tests seems excessive. llvm-svn: 371259
|
 | lldb/lit/Settings/TestStopCommandSourceOnError.test |
 | lldb/lit/Settings/Inputs/DontStopCommandSource.in |
 | lldb/lit/Settings/Inputs/StopCommandSource.in |
|
 | llvm/test/Transforms/LoopVectorize/X86/pr42674.ll (diff) |
 | llvm/test/Transforms/SLPVectorizer/X86/sqrt.ll (diff) |
Commit
03936cb0f942a9a78220ffc25d2849f29a1c4511
by craig.topper[X86] Add a AVX512VBMI command line to min-legal-vector-width.ll. Always enable fast-variable-shuffle Trying to minimize the features we need to manipulate when this is updated for D67259. The VBMI is interesting because it enables some improved combining for truncates. I enabled fast-variable-shuffle because all the CPUs we're going to add implicitly enable it. So they can share check lines. llvm-svn: 371261
|
 | llvm/test/CodeGen/X86/min-legal-vector-width.ll (diff) |
Commit
7a7bba289521e6d4da199565cf72dc9eaed3d671
by ndesaulniers[IR] CallBrInst: scan+update arg list when indirect dest list changes Summary: There's an unspoken invariant of callbr that the list of BlockAddress Constants in the "function args" list match the BasicBlocks in the "other labels" list. (This invariant is being added to the LangRef in https://reviews.llvm.org/D67196). When modifying the any of the indirect destinations of a callbr instruction (possible jump targets), we need to update the function arguments if the argument is a BlockAddress whose BasicBlock refers to the indirect destination BasicBlock being replaced. Otherwise, many transforms that modify successors will end up violating that invariant. A recent change to the arm64 Linux kernel exposed this bug, which prevents the kernel from booting. I considered maintaining a mapping from indirect destination BasicBlock to argument operand BlockAddress, but this ends up being a one to potentially many (though usually one) mapping. Also, the list of arguments to a function (or more typically inline assembly) ends up being less than 10. The implementation is significantly simpler to just rescan the full list of arguments. Because of the one to potentially many relationship, the full arg list must be scanned (we can't stop at the first instance). Thanks to the following folks that reported the issue and helped debug it: * Nathan Chancellor * Will Deacon * Andrew Murray * Craig Topper Link: https://bugs.llvm.org/show_bug.cgi?id=43222 Link: https://github.com/ClangBuiltLinux/linux/issues/649 Link: https://lists.infradead.org/pipermail/linux-arm-kernel/2019-September/678330.html Reviewers: craig.topper, chandlerc Reviewed By: craig.topper Subscribers: void, javed.absar, kristof.beyls, hiraditya, llvm-commits, nathanchance, srhines Tags: #llvm Differential Revision: https://reviews.llvm.org/D67252 llvm-svn: 371262
|
 | llvm/lib/IR/Instructions.cpp (diff) |
 | llvm/include/llvm/IR/Instructions.h (diff) |
 | llvm/unittests/IR/InstructionsTest.cpp (diff) |
|
 | llvm/unittests/ExecutionEngine/Orc/RPCUtilsTest.cpp (diff) |
Commit
7d677adf2df62aadb8401651ef81d7df2c954afc
by e.menezes[InstCombine] Refactor substitution of instruction in the parent BB (NFC) Add the new method `LibCallSimplifier::substituteInParent()` that calls `LibCallSimplifier::replaceAllUsesWith()' and `LibCallSimplifier::eraseFromParent()` back to back, simplifying the resulting code. llvm-svn: 371264
|
 | llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h (diff) |
 | llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp (diff) |
Commit
a1cf4d9795f24745920d85ca779864cf538ff8ac
by Amara Emerson[AArch64][GlobalISel] Enable the localizer for optimized builds. Despite the fact that the localizer's original motivation was to fix horrendous constant spilling at -O0, shortening live ranges still has net benefits even with optimizations enabled. On an -Os build of CTMark, doing this improves code size by 0.5% geomean. There are a few regressions, bullet increasing in size by 0.5%. One example from bullet where code size increased slightly was due to GlobalISel actually now generating the same code as SelectionDAG. So we actually have an opportunity in future to implement better heuristics for localization and therefore be *better* than SDAG in some cases. In relation to other optimizations though that one is relatively minor. Differential Revision: https://reviews.llvm.org/D67303 llvm-svn: 371266
|
 | llvm/lib/Target/AArch64/AArch64TargetMachine.cpp (diff) |
 | llvm/test/CodeGen/AArch64/GlobalISel/localizer-in-O0-pipeline.mir (diff) |
 | llvm/test/CodeGen/AArch64/GlobalISel/swifterror.ll (diff) |
 | llvm/test/CodeGen/AArch64/GlobalISel/gisel-commandline-option.ll (diff) |
Commit
c1779194097f0553c292750195673ae65fdc4d32
by matthew.vossUpdate lld tests dynamic-list.s and symbol-override.s to use llvm-nm The following tests failed on Windows bots due to nm not being available: lld/test/ELF/dynamic-list.s lld/test/ELF/symbol-override.s llvm-svn: 371267
|
 | lld/test/ELF/dynamic-list.s (diff) |
 | lld/test/ELF/symbol-override.s (diff) |
Commit
28328c3771e4241366ecb7aba8963dc92b3065d7
by rnkUse musttail for variadic method thunks when possible This avoids cloning variadic virtual methods when the target supports musttail and the return type is not covariant. I think we never implemented this previously because it doesn't handle the covariant case. But, in the MS ABI, there are some cases where vtable thunks must be emitted even when the variadic method defintion is not available, so it looks like we need to implement this. Do it for both ABIs, since it's a nice size improvement and simplification for Itanium. Emit an error when emitting thunks for variadic methods with a covariant return type. This case is essentially not implementable unless the ABI provides a way to perfectly forward variadic arguments without a tail call. Fixes PR43173. Differential Revision: https://reviews.llvm.org/D67028 llvm-svn: 371269
|
 | clang/test/CodeGenCXX/linetable-virtual-variadic.cpp (diff) |
 | clang/test/CodeGenCXX/thunks.cpp (diff) |
 | clang/lib/CodeGen/CGVTables.cpp (diff) |
 | clang/test/CodeGenCXX/ms-thunks-variadic-return.cpp |