1. Update comment for <template-param-decl> mangling to match extended (details)
  2. GlobalISel: Support physical register inputs in patterns (details)
  3. GlobalISel: Add G_FMAD instruction (details)
  4. [ORC] Add a missing #include atomic. (details)
  5. [analyzer] pr43179: Make CallDescription defensive against C variadic (details)
  6. [analyzer] Add minimal support for fix-it hints. (details)
  7. [Core] Remove use of ClangASTContext in DumpDataExtractor (details)
  8. [test] Add a FIXME test for stop-command-source-on-error (details)
  9. [X86] Replace -mcpu with -mattr on some tests. (details)
  10. [X86] Add a AVX512VBMI command line to min-legal-vector-width.ll. Always (details)
  11. [IR] CallBrInst: scan+update arg list when indirect dest list changes (details)
  12. [ORC][RPC] Join server thread before checking condition in unit test. (details)
  13. [InstCombine] Refactor substitution of instruction in the parent BB (details)
  14. [AArch64][GlobalISel] Enable the localizer for optimized builds. (details)
  15. Update lld tests dynamic-list.s and symbol-override.s to use llvm-nm (details)
  16. Use musttail for variadic method thunks when possible (details)
Commit e8b3553992670e4581bf584ea87b72ff87e0848f by richard-llvm
Update comment for <template-param-decl> mangling to match extended
mangling rule in r371004.
llvm-svn: 371252
The file was modifiedclang/lib/AST/ItaniumMangle.cpp (diff)
Commit 3e45c7028881a005dfb719b19248731dfe1d5369 by Matthew.Arsenault
GlobalISel: Support physical register inputs in patterns
llvm-svn: 371253
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.s.sendmsg.mir (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.s.sendmsghalt.mir (diff)
The file was modifiedllvm/utils/TableGen/CodeGenRegisters.h (diff)
The file was modifiedllvm/utils/TableGen/GlobalISelEmitter.cpp (diff)
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.s.sendmsg.mir
The file was addedllvm/test/TableGen/
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-constant.mir (diff)
The file was modifiedllvm/utils/TableGen/CodeGenRegisters.cpp (diff)
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h (diff)
Commit cf10372119ca48ed0330d8225ca6165bf1dea801 by Matthew.Arsenault
GlobalISel: Add G_FMAD instruction
llvm-svn: 371254
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp (diff)
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir (diff)
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h (diff)
The file was modifiedllvm/unittests/CodeGen/GlobalISel/MachineIRBuilderTest.cpp (diff)
The file was modifiedllvm/include/llvm/Target/GlobalISel/ (diff)
The file was modifiedllvm/include/llvm/Target/ (diff)
The file was modifiedllvm/include/llvm/Support/TargetOpcodes.def (diff)
Commit 7c848acf0a86f521ee432fd22d9583cd73193545 by Lang Hames
[ORC] Add a missing #include atomic.
Hopefully this will fix the bot build failures from r371245.
llvm-svn: 371255
The file was modifiedllvm/unittests/ExecutionEngine/Orc/QueueChannel.h (diff)
Commit 2b1b4cab9605a33a6c90079b44bdddf048104e08 by Artem Dergachev
[analyzer] pr43179: Make CallDescription defensive against C variadic
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:
llvm-svn: 371256
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h (diff)
The file was modifiedclang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp (diff)
The file was addedclang/test/Analysis/cast-value-weird.cpp
The file was modifiedclang/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:
llvm-svn: 371257
The file was modifiedclang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def (diff)
The file was modifiedclang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h (diff)
The file was modifiedclang/test/Analysis/analyzer-config.c (diff)
The file was modifiedclang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h (diff)
The file was modifiedclang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp (diff)
The file was modifiedclang/test/Analysis/plist-output.m (diff)
The file was modifiedclang/include/clang/StaticAnalyzer/Checkers/ (diff)
The file was addedclang/test/Analysis/virtualcall-fixits.cpp
The file was modifiedclang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp (diff)
The file was modifiedclang/test/Analysis/ (diff)
The file was modifiedclang/lib/StaticAnalyzer/Core/BugReporter.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp (diff)
The file was modifiedclang/test/Analysis/dead-stores.c (diff)
The file was modifiedclang/test/Analysis/objc-arc.m (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
Differential Revision:
llvm-svn: 371258
The file was modifiedlldb/include/lldb/Symbol/ClangASTContext.h (diff)
The file was modifiedlldb/source/Core/DumpDataExtractor.cpp (diff)
The file was modifiedlldb/include/lldb/Symbol/TypeSystem.h (diff)
The file was modifiedlldb/source/Symbol/ClangASTContext.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
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
The file was addedlldb/lit/Settings/Inputs/
The file was addedlldb/lit/Settings/Inputs/
The file was addedlldb/lit/Settings/TestStopCommandSourceOnError.test
Commit a31112e3576a5ae0b0959dd20a66d3689d8d9014 by craig.topper
[X86] Replace -mcpu with -mattr on some tests.
llvm-svn: 371260
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/sqrt.ll (diff)
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/pr42674.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
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
The file was modifiedllvm/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
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
* Nathan Chancellor
* Will Deacon
* Andrew Murray
* Craig Topper
Link: Link: Link:
Reviewers: craig.topper, chandlerc
Reviewed By: craig.topper
Subscribers: void, javed.absar, kristof.beyls, hiraditya, llvm-commits,
nathanchance, srhines
Tags: #llvm
Differential Revision:
llvm-svn: 371262
The file was modifiedllvm/include/llvm/IR/Instructions.h (diff)
The file was modifiedllvm/unittests/IR/InstructionsTest.cpp (diff)
The file was modifiedllvm/lib/IR/Instructions.cpp (diff)
Commit 88cddb7a1c1700b9c57e58e08a24f76bc4dd1d4b by Lang Hames
[ORC][RPC] Join server thread before checking condition in unit test.
Otherwise we have a race on the sent-messages count.
llvm-svn: 371263
The file was modifiedllvm/unittests/ExecutionEngine/Orc/RPCUtilsTest.cpp (diff)
Commit 7d677adf2df62aadb8401651ef81d7df2c954afc by e.menezes
[InstCombine] Refactor substitution of instruction in the parent BB
Add the new method `LibCallSimplifier::substituteInParent()` that calls
`LibCallSimplifier::replaceAllUsesWith()' and
`LibCallSimplifier::eraseFromParent()` back to back, simplifying the
resulting code.
llvm-svn: 371264
The file was modifiedllvm/lib/Transforms/Utils/SimplifyLibCalls.cpp (diff)
The file was modifiedllvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h (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%
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:
llvm-svn: 371266
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/gisel-commandline-option.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/swifterror.ll (diff)
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetMachine.cpp (diff)
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/localizer-in-O0-pipeline.mir (diff)
Commit c1779194097f0553c292750195673ae65fdc4d32 by matthew.voss
Update 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
llvm-svn: 371267
The file was modifiedlld/test/ELF/symbol-override.s (diff)
The file was modifiedlld/test/ELF/dynamic-list.s (diff)
Commit 28328c3771e4241366ecb7aba8963dc92b3065d7 by rnk
Use 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
Fixes PR43173.
Differential Revision:
llvm-svn: 371269
The file was modifiedclang/test/CodeGenCXX/linetable-virtual-variadic.cpp (diff)
The file was modifiedclang/lib/CodeGen/CGVTables.cpp (diff)
The file was addedclang/test/CodeGenCXX/ms-thunks-variadic-return.cpp
The file was modifiedclang/test/CodeGenCXX/thunks.cpp (diff)