Commit
6f20744b7ff875bb5eb735d1e7636ad6a66d4526
by erich.keaneAdd support for ignored bitfield conditional codegen.
Currently we emit an error in just about every case of conditionals with a 'non simple' branch if treated as an LValue. This patch adds support for the special case where this is an 'ignored' lvalue, which permits the side effects from happening.
It also splits up the emit for conditional LValue in a way that should be usable to handle simple assignment expressions in similar situations.
Differential Revision: https://reviews.llvm.org/D123680
|
 | clang/lib/CodeGen/CodeGenFunction.h |
 | clang/test/CodeGenCXX/ignored-bitfield-conditional.cpp |
 | clang/lib/CodeGen/CGExpr.cpp |
Commit
b2c3ae0b6f05fd0c2184aea82637685a13b8dc4f
by platonov.aleksandr[Sema] Don't check bounds for function pointer
Currently, clang crashes with i386 target on the following code: ``` void f() { f + 0xdead000000000000UL; } ``` This problem is similar to the problem fixed in D104424, but that fix can't handle function pointer case, because `getTypeSizeInCharsIfKnown()` says that size is known and equal to 0 for function type.
This patch prevents bounds checking for function pointer, thus fixes the crash.
Fixes https://github.com/llvm/llvm-project/issues/50463
Reviewed By: erichkeane
Differential Revision: https://reviews.llvm.org/D122748
|
 | clang/lib/Sema/SemaChecking.cpp |
 | clang/test/Sema/unbounded-array-bounds.c |
Commit
60e34f8dddb4a3ae5b82e8d55728c021126c4af8
by jeffniu22[mlir][ods] Remove StrEnumAttr
StrEnumAttr has been deprecated in favour of EnumAttr, a solution based on AttrDef (https://reviews.llvm.org/D115181). This patch removes StrEnumAttr, along with all the custom ODS logic required to handle it.
See https://discourse.llvm.org/t/psa-stop-using-strenumattr-do-use-enumattr/5710 on how to transition to EnumAttr. In short,
``` // Before def MyEnumAttr : StrEnumAttr<"MyEnum", "", [ StrEnumAttrCase<"A">, StrEnumAttrCase<"B"> ]>;
// After (pick an integer enum of your choice) def MyEnum : I32EnumAttr<"MyEnum", "", [ I32EnumAttrCase<"A", 0>, I32EnumAttrCase<"B", 1> ]> { // Don't generate a C++ class! We want to use the AttrDef let genSpecializedAttr = 0; } // Define the AttrDef def MyEnum : EnumAttr<MyDialect, MyEnum, "my_enum">; ```
Reviewed By: rriddle, jpienaar
Differential Revision: https://reviews.llvm.org/D120834
|
 | mlir/tools/mlir-tblgen/RewriterGen.cpp |
 | mlir/tools/mlir-tblgen/EnumsGen.cpp |
 | mlir/include/mlir/TableGen/Attribute.h |
 | mlir/test/IR/attribute.mlir |
 | mlir/unittests/TableGen/enums.td |
 | mlir/unittests/TableGen/EnumsGenTest.cpp |
 | mlir/test/lib/Dialect/Test/TestOps.td |
 | mlir/include/mlir/IR/OpBase.td |
 | mlir/lib/TableGen/Attribute.cpp |
 | mlir/test/mlir-tblgen/pattern.mlir |
 | mlir/docs/OpDefinitions.md |
 | mlir/tools/mlir-tblgen/DirectiveCommonGen.cpp |
 | mlir/tools/mlir-tblgen/OpFormatGen.cpp |
Commit
adff142dc253d65b6560e420bba6b858d88d4a98
by corentinjabot[clang] Implement Change scope of lambda trailing-return-type
Implement P2036R3.
Captured variables by copy (explicitely or not), are deduced correctly at the point we know whether the lambda is mutable, and ill-formed before that.
Up until now, the entire lambda declaration up to the start of the body would be parsed in the parent scope, such that capture would not be available to look up.
The scoping is changed to have an outer lambda scope, followed by the lambda prototype and body.
The lambda scope is necessary because there may be a template scope between the start of the lambda (to which we want to attach the captured variable) and the prototype scope.
We also need to introduce a declaration context to attach the captured variable to (and several parts of clang assume captures are handled from the call operator context), before we know the type of the call operator.
The order of operations is as follow:
* Parse the init capture in the lambda's parent scope
* Introduce a lambda scope
* Create the lambda class and call operator
* Add the init captures to the call operator context and the lambda scope. But the variables are not capured yet (because we don't know their type). Instead, explicit captures are stored in a temporary map that conserves the order of capture (for the purpose of having a stable order in the ast dumps).
* A flag is set on LambdaScopeInfo to indicate that we have not yet injected the captures.
* The parameters are parsed (in the parent context, as lambda mangling recurses in the parent context, we couldn't mangle a lambda that is attached to the context of a lambda whose type is not yet known).
* The lambda qualifiers are parsed, at this point We can switch (for the second time) inside the lambda context, unset the flag indicating that we have not parsed the lambda qualifiers, record the lambda is mutable and capture the explicit variables.
* We can parse the rest of the lambda type, transform the lambda and call operator's types and also transform the call operator to a template function decl where necessary.
At this point, both captures and parameters can be injected in the body's scope. When trying to capture an implicit variable, if we are before the qualifiers of a lambda, we need to remember that the variables are still in the parent's context (rather than in the call operator's).
Reviewed By: aaron.ballman, #clang-language-wg, ChuanqiXu
Differential Revision: https://reviews.llvm.org/D119136
|
 | clang/lib/Sema/Sema.cpp |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/lib/Sema/SemaLambda.cpp |
 | clang/www/cxx_status.html |
 | clang/lib/Sema/TreeTransform.h |
 | clang/test/SemaCXX/warn-shadow-in-lambdas.cpp |
 | clang/include/clang/AST/DeclCXX.h |
 | clang/test/SemaCXX/lambda-capture-type-deduction.cpp |
 | clang/include/clang/Sema/ScopeInfo.h |
 | clang/lib/Sema/SemaExpr.cpp |
 | clang/docs/ReleaseNotes.rst |
 | clang/lib/Sema/SemaExprCXX.cpp |
 | clang/lib/Sema/SemaCXXScopeSpec.cpp |
 | clang/include/clang/Sema/Scope.h |
 | clang/include/clang/Sema/Sema.h |
 | clang/lib/Sema/Scope.cpp |
 | clang/test/CXX/expr/expr.prim/expr.prim.lambda/p11-1y.cpp |
 | clang/lib/Parse/ParseExprCXX.cpp |
Commit
38823b7f5f01e01c44360b17b4ab99b2729b7197
by erich.keaneFix Werror build issue from 6f20744b7ff875
|
 | clang/lib/CodeGen/CGExpr.cpp |
Commit
bad3798113f8760a7978d745d428a1271e75554c
by aaupov[BOLT] Fix data race in shortenInstructions
Address ThreadSanitizer warning
Reviewed By: maksfb
Differential Revision: https://reviews.llvm.org/D121338
|
 | bolt/lib/Passes/BinaryPasses.cpp |
Commit
36cb736665dbdaefd188d54376dc6c7f92e1fb68
by maks[BOLT] Ignore PC-relative relocations from data to data
BOLT expects PC-relative relocations in data sections to reference code and the relocated data to form a jump table. However, there are cases where PC-relative addressing is used for data-to-data references (e.g. clang-15 can generate such code). BOLT should recognize and ignore such relocations. Otherwise, they will be considered relocations not claimed by any jump table and cause a failure in the strict mode.
Reviewed By: yota9, Amir
Differential Revision: https://reviews.llvm.org/D123650
|
 | bolt/test/X86/data-to-data-pcrel.s |
 | bolt/lib/Rewrite/RewriteInstance.cpp |
Commit
ad95255b9215a9e467169e6109bd53561e589f0b
by floRevert "[LICM] Only create load in pre-header when promoting load."
This reverts commit 4bf3b7dc929c8288e9e5631978ef060d9140b251.
This might be causing another buildbot failure.
|
 | llvm/lib/Transforms/Scalar/LICM.cpp |
 | llvm/test/Transforms/LICM/scalar-promote.ll |
Commit
925acfea8836ffe97a1c1d76d31df3229e978a11
by corentinjabot[Clang] Fix html error in cxx_status.html [NFC]
|
 | clang/www/cxx_status.html |
Commit
487570fb8600bbb9ec3c535eb763796dff6daa8d
by aaupov[BOLT][TEST] Remove -no-pie from cflags/cxxflags
Align with an upstream change D120305 to make PIE the default on linux-gnu.
Add `-no-pie` to tests that require it.
Reviewed By: maksfb, yota9
Differential Revision: https://reviews.llvm.org/D123329
|
 | bolt/test/lit.cfg.py |
 | bolt/test/runtime/X86/shrinkwrapping-alignment.s |
 | bolt/test/X86/exceptions-args.test |
 | bolt/test/X86/jump-table-icp.test |
 | bolt/test/X86/tail-duplication-jt.s |
 | bolt/test/X86/zero-sized-object.s |
 | bolt/test/runtime/fptr.test |
 | bolt/test/AArch64/asm-func-debug.test |
 | bolt/test/X86/jump-table-footprint-reduction.test |
 | bolt/test/X86/jump-table-reference.test |
 | bolt/test/X86/indirect-goto.test |
 | bolt/test/X86/unreachable.test |
 | bolt/test/runtime/X86/shrinkwrapping-pushpop.s |
 | bolt/test/X86/issue20.s |
 | bolt/test/runtime/X86/shrinkwrapping-lock.s |
 | bolt/test/X86/shrinkwrapping-critedge.s |
 | bolt/test/X86/interprocedural-ref-entry-point.s |
 | bolt/test/runtime/X86/interp-overwrite-bug.s |
 | bolt/test/X86/loop-nest.test |
 | bolt/test/runtime/X86/user-func-reorder.c |
 | bolt/test/runtime/X86/exceptions-instrumentation.test |
 | bolt/test/X86/asm-func-debug.test |
 | bolt/test/runtime/X86/hot-end-symbol.s |
 | bolt/test/runtime/X86/section-reloc-with-addend.s |
 | bolt/test/X86/tail-duplication-cacheline.s |
 | bolt/test/X86/debug-fission-single.s |
 | bolt/test/runtime/X86/fix-branches-jrcxz.s |
 | bolt/test/X86/shrinkwrapping.test |
 | bolt/test/runtime/X86/instrumentation-dup-jts.s |
 | bolt/test/runtime/X86/instrumentation-ind-calls.s |
 | bolt/test/X86/vararg.test |
Commit
a3b73b60be4467d2194d3c95e7b943f1644cf92b
by aaronFix a typo with this test function name
The call and the function name don't line up correctly, so this was accidentally using an implicit function declaration when it didn't intend to.
|
 | clang-tools-extra/test/clang-tidy/checkers/bugprone-easily-swappable-parameters-implicits.c |
Commit
6345d7f2a829faea56ad522a7d5180043f862a5c
by Vitaly Buka[sanitizer] Don't run malloc hooks for stacktraces
Usually when we generated stacktraces the process is in error state, so running hooks may crash the process and prevent meaningfull error report.
Symbolizer, unwinder and pthread are potential source of mallocs.
https://b.corp.google.com/issues/228110771
Reviewed By: kda
Differential Revision: https://reviews.llvm.org/D123566
|
 | compiler-rt/lib/msan/msan_allocator.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_common.h |
 | compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_common.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h |
 | compiler-rt/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_markup.cpp |
 | compiler-rt/test/sanitizer_common/TestCases/malloc_hook_skip.cpp |
Commit
04641b212191e3cea73904d37c5a59b0f87f3247
by aaupov[BOLT][TEST] Add -no-pie to two tests
Missed these two tests in D123329 in a rebase.
|
 | bolt/test/runtime/iplt.c |
 | bolt/test/runtime/plt-lld.test |
Commit
557b131c885b0225d24b027dec3162e0ba051068
by congzhecao[DA] Refactor with a better API
Refactor from iteratively using BitCastInst::getOperand() to using stripPointerCasts() instead. This is an improvement since now we are able to analyze more cases, please refer to test cases added in this patch.
Reviewed By: Meinersbur, #loopoptwg
Differential Revision: https://reviews.llvm.org/D123559
|
 | llvm/lib/Analysis/DependenceAnalysis.cpp |
 | llvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheckFixedSize.ll |
Commit
fa5a4e1b95c8f37796c7ec53ce45d7e5971d281a
by sguelton[iwyu] Handle regressions in libLLVM header include
Running iwyu-diff on LLVM codebase since a96638e50ef5 detected a few regressions, fixing them.
|
 | llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp |
 | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp |
 | llvm/lib/Transforms/IPO/AttributorAttributes.cpp |
 | llvm/lib/LTO/ThinLTOCodeGenerator.cpp |
 | llvm/lib/CodeGen/RegAllocGreedy.cpp |
 | llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp |
 | llvm/include/llvm/Bitcode/BitcodeReader.h |
 | llvm/lib/LTO/LTOBackend.cpp |
Commit
e78f70bccb8919d74bbbe492aa2fb0eb230b7467
by Matthew.ArsenaultAMDGPU: Relax test check on tablegen debug output
Try to match tN and pointer for asserts and non-assert builds.
|
 | llvm/test/CodeGen/AMDGPU/store-to-constant-error.ll |
Commit
681b9466c9209ee6c7209761a309fb78c6fa1ef6
by Matthew.ArsenaultRegAllocGreedy: Remove redundant check for virtual registers
The set of interfering virtual registers obviously only includes virtual registers.
|
 | llvm/lib/CodeGen/RegAllocGreedy.cpp |
Commit
d791de0e25e13cd8ae066e6f0fa03b384502b02e
by efriedmaRestrict lvalue-to-rvalue conversions in CGExprConstant.
We were generating wrong code for cxx20-consteval-crash.cpp: instead of loading a value of a variable, we were using its address as the initializer.
Found while adding code to verify the size of constant initializers.
Differential Revision: https://reviews.llvm.org/D123648
|
 | clang/lib/CodeGen/CGExprConstant.cpp |
 | clang/test/CodeGenCXX/cxx20-consteval-crash.cpp |
Commit
26eec9e9dbc20186f6b810fe01d3a01aac8ae6f4
by joker.ephRevert "[clang] Implement Change scope of lambda trailing-return-type"
This reverts commit adff142dc253d65b6560e420bba6b858d88d4a98. This broke clang bootstrap: it made existing C++ code in LLVM invalid:
llvm/include/llvm/CodeGen/LiveInterval.h:630:53: error: captured variable 'Idx' cannot appear here [=](std::remove_reference_t<decltype(*Idx)> V, ^
|
 | clang/lib/Sema/Scope.cpp |
 | clang/lib/Sema/SemaLambda.cpp |
 | clang/include/clang/Sema/ScopeInfo.h |
 | clang/lib/Sema/SemaExprCXX.cpp |
 | clang/www/cxx_status.html |
 | clang/lib/Sema/SemaCXXScopeSpec.cpp |
 | clang/include/clang/AST/DeclCXX.h |
 | clang/test/SemaCXX/lambda-capture-type-deduction.cpp |
 | clang/test/SemaCXX/warn-shadow-in-lambdas.cpp |
 | clang/include/clang/Sema/Scope.h |
 | clang/lib/Sema/TreeTransform.h |
 | clang/lib/Sema/Sema.cpp |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/docs/ReleaseNotes.rst |
 | clang/lib/Parse/ParseExprCXX.cpp |
 | clang/lib/Sema/SemaExpr.cpp |
 | clang/test/CXX/expr/expr.prim/expr.prim.lambda/p11-1y.cpp |
 | clang/include/clang/Sema/Sema.h |
Commit
5b1b7108c8975159c1112ceea1cd7e213e1be97a
by thomasraoux[mlir][vector] Add unrolling pattern for TransposeOp
Support unrolling for vector.transpose following the same interface as other vector unrolling ops.
Differential Revision: https://reviews.llvm.org/D123688
|
 | mlir/include/mlir/Dialect/Vector/IR/VectorOps.td |
 | mlir/lib/Dialect/Vector/Transforms/VectorUnrollDistribute.cpp |
 | mlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp |
 | mlir/lib/Dialect/Vector/IR/VectorOps.cpp |
 | mlir/test/Dialect/Vector/vector-unroll-options.mlir |
Commit
bbcf11f5af98a6e0fa008e180404cfc397f336fa
by yitzhakm[clang][dataflow] Weaken abstract comparison to enable loop termination.
Currently, when the framework is used with an analysis that does not override `compareEquivalent`, it does not terminate for most loops. The root cause is the interaction of (the default implementation of) environment comparison (`compareEquivalent`) and the means by which locations and values are allocated. Specifically, the creation of certain values (including: reference and pointer values; merged values) results in allocations of fresh locations in the environment. As a result, analysis of even trivial loop bodies produces different (if isomorphic) environments, on identical inputs. At the same time, the default analysis relies on strict equality (versus some relaxed notion of equivalence). Together, when the analysis compares these isomorphic, yet unequal, environments, to determine whether the successors of the given block need to be (re)processed, the result is invariably "yes", thus preventing loop analysis from reaching a fixed point.
There are many possible solutions to this problem, including equivalence that is less than strict pointer equality (like structural equivalence) and/or the introduction of an explicit widening operation. However, these solutions will require care to be implemented correctly. While a high priority, it seems more urgent that we fix the current default implentation to allow termination. Therefore, this patch proposes, essentially, to change the default comparison to trivally equate any two values. As a result, we can say precisely that the analysis will process the loop exactly twice -- once to establish an initial result state and the second to produce an updated result which will (always) compare equal to the previous. While clearly unsound -- we are not reaching a fix point of the transfer function, in practice, this level of analysis will find many practical issues where a single iteration of the loop impacts abstract program state.
Note, however, that the change to the default `merge` operation does not affect soundness, because the framework already produces a fresh (sound) abstraction of the value when the two values are distinct. The previous setting was overly conservative.
Differential Revision: https://reviews.llvm.org/D123586
|
 | clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp |
 | clang/unittests/Analysis/FlowSensitive/TypeErasedDataflowAnalysisTest.cpp |
 | clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h |
 | clang/unittests/Analysis/FlowSensitive/TransferTest.cpp |
Commit
b8bac957d18bc159b9e0bb9978473faa4b8df03b
by mseborReplace %0 in function arguments with descriptive names.
|
 | llvm/test/Transforms/InstCombine/memrchr-4.ll |
 | llvm/test/Transforms/InstCombine/memrchr-2.ll |
 | llvm/test/Transforms/InstCombine/memrchr-3.ll |
Commit
2f98c5febce2840034010c7ad9931988fc8dc61b
by och95[BOLT] Update skipRelocation for aarch64
The ld might relax ADRP+ADD or ADRP+LDR sequences to the ADR+NOP, add the new case to the skipRelocation for aarch64.
Vladislav Khmelevsky, Advanced Software Technology Lab, Huawei
Differential Revision: https://reviews.llvm.org/D123334
|
 | bolt/lib/Core/Relocation.cpp |
 | bolt/test/AArch64/skip-got-rel.test |
 | bolt/test/runtime/plt-lld.test |
 | bolt/test/AArch64/Inputs/skip-got-rel.yaml |
Commit
acc56e55feee61fc0038bc132a94e54ce56ced98
by Jonas Devlieghere[lldb] Expand $ when using tcsh
Unlike for any of the other shells, we were escaping $ when using tcsh. There's nothing special about $ in tcsh and this prevents you from expanding shell variables, one of the main reasons this functionality exists in the first place.
Differential revision: https://reviews.llvm.org/D123690
|
 | lldb/unittests/Utility/ArgsTest.cpp |
 | lldb/source/Utility/Args.cpp |
 | lldb/test/Shell/Process/TestShell.test |
 | lldb/test/Shell/Process/Inputs/echo.c |
Commit
5d4df59de10396f13f9b011b58968c716318362d
by Vitaly BukaRevert "[sanitizer] Don't run malloc hooks for stacktraces"
Breaks android and iOS bots. https://green.lab.llvm.org/green/job/clang-san-iossim/5229/consoleFull#711521816a1ca8a51-895e-46c6-af87-ce24fa4cd561 https://lab.llvm.org/buildbot/#/builders/77/builds/16456
This reverts commit 6345d7f2a829faea56ad522a7d5180043f862a5c.
|
 | compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_markup.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h |
 | compiler-rt/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_common.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp |
 | compiler-rt/lib/msan/msan_allocator.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_common.h |
 | compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp |
 | compiler-rt/test/sanitizer_common/TestCases/malloc_hook_skip.cpp |
Commit
2a6669060f3533d144b12d1ec0faafe2de537994
by jezng[lld-macho][nfc] De-templatize UnwindInfoSection
Follow-on to {D123276}. Now that we work with an internal representation of compact unwind entries, we no longer need to template our UnwindInfoSectionImpl code based on the pointer size of the target architecture.
I've still kept the split between `UnwindInfoSectionImpl` and `UnwindInfoSection`. I'd introduced that split in order to do type erasure, but I think it's still useful to have in order to keep `UnwindInfoSection`'s definition in the header file clean.
Reviewed By: #lld-macho, oontvoo
Differential Revision: https://reviews.llvm.org/D123277
|
 | lld/MachO/UnwindInfoSection.h |
 | lld/MachO/UnwindInfoSection.cpp |
Commit
1732242bee499d639fd481a32f36c5c64e008e8e
by Matthew.ArsenaultRegAlloc: Fix remaining virtual registers after allocation failure
This testcase fails register allocation, but at the failure point there were also new split virtual registers. Previously this was assigning the failing register and not enqueueing the newly created split virtual registers. These would then never be allocated and assert in VirtRegRewriter.
|
 | llvm/test/CodeGen/AMDGPU/remaining-virtual-register-operands.ll |
 | llvm/lib/CodeGen/RegAllocBase.cpp |
Commit
667925d45a9ebd9c6e4ba7cac76d82fb9b735274
by nikolasklauser[libc++] `bitset::operator[] const` should return bool
Fixes https://github.com/llvm/llvm-project/issues/10686
Reviewed By: Mordante, ldionne, var-const, #libc
Spies: jloser, libcxx-commits, arphaman
Differential Revision: https://reviews.llvm.org/D122092
|
 | libcxx/include/vector |
 | libcxx/test/std/utilities/template.bitset/bitset.members/index.pass.cpp |
 | libcxx/test/std/utilities/template.bitset/bitset.members/index_const.pass.cpp |
 | libcxx/include/bitset |
 | libcxx/test/std/containers/sequences/vector.bool/const_reference.pass.cpp |
 | libcxx/include/__config |
Commit
d8d793f29b40767925578f721b35fba352d8296c
by corentinjabotFix compatibility with retroactive C++23 change [NFC]
Referring to capture in parameter list is now ill-formed. This change is made to prepare for https://reviews.llvm.org/D119136
|
 | llvm/include/llvm/CodeGen/LiveInterval.h |
Commit
03b807d3f2999888bbe395945987af06f201c142
by mseborReplace numbered function arguments with descriptive names.
|
 | llvm/test/Transforms/InstCombine/strnlen-5.ll |
 | llvm/test/Transforms/InstCombine/strnlen-3.ll |
 | llvm/test/Transforms/InstCombine/strnlen-2.ll |
 | llvm/test/Transforms/InstCombine/strnlen-4.ll |
Commit
c729d5be781a8e80137c11ab28aa14d9ace148db
by corentinjabot[clang] Implement Change scope of lambda trailing-return-type
Implement P2036R3.
Captured variables by copy (explicitely or not), are deduced correctly at the point we know whether the lambda is mutable, and ill-formed before that.
Up until now, the entire lambda declaration up to the start of the body would be parsed in the parent scope, such that captures would not be available to look up.
The scoping is changed to have an outer lambda scope, followed by the lambda prototype and body.
The lambda scope is necessary because there may be a template scope between the start of the lambda (to which we want to attach the captured variable) and the prototype scope.
We also need to introduce a declaration context to attach the captured variable to (and several parts of clang assume captures are handled from the call operator context), before we know the type of the call operator.
The order of operations is as follow:
* Parse the init capture in the lambda's parent scope * Introduce a lambda scope * Create the lambda class and call operator * Add the init captures to the call operator context and the lambda scope. But the variables are not capured yet (because we don't know their type). Instead, explicit captures are stored in a temporary map that conserves the order of capture (for the purpose of having a stable order in the ast dumps).
* A flag is set on LambdaScopeInfo to indicate that we have not yet injected the captures.
* The parameters are parsed (in the parent context, as lambda mangling recurses in the parent context, we couldn't mangle a lambda that is attached to the context of a lambda whose type is not yet known).
* The lambda qualifiers are parsed, at this point, we can switch (for the second time) inside the lambda context, unset the flag indicating that we have not parsed the lambda qualifiers, record the lambda is mutable and capture the explicit variables.
* We can parse the rest of the lambda type, transform the lambda and call operator's types and also transform the call operator to a template function decl where necessary.
At this point, both captures and parameters can be injected in the body's scope. When trying to capture an implicit variable, if we are before the qualifiers of a lambda, we need to remember that the variables are still in the parent's context (rather than in the call operator's).
This is a recommit of adff142dc2 after a fix in d8d793f29b4
Reviewed By: aaron.ballman, #clang-language-wg, ChuanqiXu
Differential Revision: https://reviews.llvm.org/D119136
|
 | clang/lib/Sema/Scope.cpp |
 | clang/lib/Sema/SemaCXXScopeSpec.cpp |
 | clang/test/SemaCXX/warn-shadow-in-lambdas.cpp |
 | clang/lib/Sema/Sema.cpp |
 | clang/www/cxx_status.html |
 | clang/lib/Sema/SemaLambda.cpp |
 | clang/lib/Sema/SemaExpr.cpp |
 | clang/lib/Parse/ParseExprCXX.cpp |
 | clang/test/CXX/expr/expr.prim/expr.prim.lambda/p11-1y.cpp |
 | clang/include/clang/Sema/Sema.h |
 | clang/lib/Sema/TreeTransform.h |
 | clang/test/SemaCXX/lambda-capture-type-deduction.cpp |
 | clang/include/clang/Sema/ScopeInfo.h |
 | clang/lib/Sema/SemaExprCXX.cpp |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/include/clang/Sema/Scope.h |
 | clang/docs/ReleaseNotes.rst |
 | clang/include/clang/AST/DeclCXX.h |
Commit
d038135e1913f3d68585fae6d5cf30da25b4d31a
by spatel[SimplifyCFG] add more tests for switch to select transform; NFC
Also, make test names more descriptive - additional coverage for D122485
|
 | llvm/test/Transforms/SimplifyCFG/switch-to-select-two-case.ll |
Commit
0ef46dc0f9f3f87fc3391bf6a407e22aa139e286
by spatel[SimplifyCFG] improve readability in switch-to-select; NFC
|
 | llvm/lib/Transforms/Utils/SimplifyCFG.cpp |
Commit
d951d937a07ea2f8fb811675dc776277d2d124d1
by Stanislav.Mekhanoshin[AMDGPU] Increate hazard for store dwordx3/4 to 2 waitstates on gfx940
Fixes: SWDEV-327053
Differential Revision: https://reviews.llvm.org/D123687
|
 | llvm/test/CodeGen/AMDGPU/gfx940-hazards.mir |
 | llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp |
 | llvm/test/CodeGen/AMDGPU/mai-hazards-gfx940.mir |
Commit
763ff89c0e0dcf77ee14c92936205bcf1b38385a
by Jonas Devlieghere[debugserver ] Un-conditionalize use of libcompression
Jason removed the include guards in 681f6c2f552f. This patch removes the corresponding CMake logic as well.
Differential revision: https://reviews.llvm.org/D123616
|
 | lldb/tools/debugserver/source/CMakeLists.txt |
Commit
bf38bdf7b3c8c8d84425188fc6d0db20adea39ad
by mseborRun update_test_checks.py after parameter renaming in r03b807d3f2999888bbe395945987af06f201c142 (NFC).
|
 | llvm/test/Transforms/InstCombine/strnlen-5.ll |
 | llvm/test/Transforms/InstCombine/strnlen-3.ll |
 | llvm/test/Transforms/InstCombine/strnlen-4.ll |
Commit
343f3de559c636dcec941613dca91e4fff6547a3
by Jonas Devlieghere[lldb] Fix a bug in the decorator matching logic.
This changes the decorator helper `_match_decorator_property` to consider `None` as the actual value as not a match. Using `None` for the pattern continues to be considered a match.
I discovered the issue because marking a test as NO_DEBUG_INFO_TESTCASE will cause the call to `self.getDebugInfo()` to return `None` and incorrectly skip or XFAIL the corresponding test.
I used the above scenario to create a test for the decorators.
Differential revision: https://reviews.llvm.org/D123401
|
 | lldb/test/API/test_utils/TestDecorators.py |
 | lldb/packages/Python/lldbsuite/test/decorators.py |
Commit
8887c63e327fb726b502b3b2fad44e50de60d5aa
by julian.lettnerAdapt "cross compile?" check for Apple Silicon
This piece of code tries to implement the semantics "cross compile?" to determine CFLAGS used for test binary compilation. ``` if(ANDROID OR ${arch} MATCHES "arm|aarch64|riscv32|riscv64") ```
Since Apple Silicon, macOS runs on arm64e, so we take the wrong branch when compiling and running tests locally "on the host" on an AS machine.
Furthermore, for Apple code, we use the separate `get_test_cflags_for_apple_platform` function to determine these test compiliation flags and `get_test_cc_for_arch` is only ever used in the "compile & run on host" case, so we can short-curcuit the "cross compile?" check here.
rdar://91446703
Differential Revision: https://reviews.llvm.org/D123633
|
 | compiler-rt/cmake/config-ix.cmake |
Commit
77d2c815f50b20d18f1207e4f442e2cf8eb8cec0
by thomasraoux[MLIR][GPU] Add GPU ops nvvm.mma.sync, nvvm.mma.ldmatrix, lane_id
This change adds three new operations to the GPU dialect: gpu.mma.sync, gpu.mma.ldmatrix, and gpu.lane_id. The former two are meant to target the lower level nvvm.mma.sync and nvvm.ldmatrix instructions, respectively. Lowerings are added for the new GPU operations for conversion to NVVM.
Reviewed By: ThomasRaoux
Differential Revision: https://reviews.llvm.org/D123647
|
 | mlir/test/Conversion/GPUToNVVM/mma-sync-to-nvvm.mlir |
 | mlir/include/mlir/Dialect/GPU/GPUOps.td |
 | mlir/test/Conversion/GPUToNVVM/gpu-to-nvvm.mlir |
 | mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp |
Commit
c709f503d7969945f7242a71325c2d4632b32b1c
by pklausler[flang] Emit a portability warning for padding in COMMON
When padding is required in a COMMON block to ensure alignment of a component, emit a portability warning.
Differential Revision: https://reviews.llvm.org/D123706
|
 | flang/lib/Semantics/compute-offsets.cpp |
Commit
f253a577b296cdf9a2319661079bf87fe31ccbe6
by rouson[flang] expand the num_images test coverage
Add a test with a range of num_images() intrinsic function invocations, including the standard-conforming but previously untested 'team' argument. Also test that several non-conforming num_images() invocations generate the correct error messages.
Differential Revision: https://reviews.llvm.org/D121938
|
 | flang/test/Semantics/num_images.f90 |
 | flang/test/Semantics/num_images01.f90 |
 | flang/test/Semantics/num_images02.f90 |
Commit
f19e90bc1f1726452058fb73b5dd5453e5fa0c99
by joker.ephApply clang-tidy fixes for readability-identifier-naming in OpenMPDialect.cpp (NFC)
|
 | mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp |
Commit
93b23c84399bd9f95332ebcbc170ea6edadd404e
by joker.ephApply clang-tidy fixes for llvm-else-after-return in SCF.cpp (NFC)
|
 | mlir/lib/Dialect/SCF/SCF.cpp |
Commit
80c600fe98ed1d0be4cc2a34d791cdaffdfb9c8e
by Jonas Devlieghere[lldb] Format LocateSymbolFileMacOSX (NFC)
|
 | lldb/source/Symbol/LocateSymbolFileMacOSX.cpp |
Commit
6443d0d413df7b67b149e7618c295c38869ecbcb
by Jonas Devlieghere[lldb] Remove reproducer logic from LocateSymbolFileMacOSX
|
 | lldb/test/Shell/Reproducer/Inputs/dsymforuuid.sh |
 | lldb/source/Symbol/LocateSymbolFileMacOSX.cpp |
 | lldb/test/Shell/Reproducer/TestDebugSymbols.test |
Commit
2f70fe1b5966621cc266eaa060348f8c64aa25ce
by aeubanks[gn build] Set CLANG_ENABLE_OPAQUE_POINTERS_INTERNAL=1
Matches official cmake build.
|
 | llvm/utils/gn/secondary/clang/include/clang/Config/BUILD.gn |
Commit
08bd7d557c23d4ff903608a19868e7f3fbc9ec20
by aeubanks[bazel] Set CLANG_ENABLE_OPAQUE_POINTERS_INTERNAL to 1
Matches official cmake build.
|
 | utils/bazel/llvm-project-overlay/clang/include/clang/Config/config.h |
Commit
d3531fc7f0053a7fe68317521ee6491da6e36733
by Vitaly Buka[sanitizer] Don't run malloc hooks for stacktraces
Usually when we generated stacktraces the process is in error state, so running hooks may crash the process and prevent meaningfull error report.
Symbolizer, unwinder and pthread are potential source of mallocs.
https://b.corp.google.com/issues/228110771
Reviewed By: kda
Differential Revision: https://reviews.llvm.org/D123566
|
 | compiler-rt/test/sanitizer_common/TestCases/malloc_hook_skip.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_common.h |
 | compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h |
 | compiler-rt/lib/msan/msan_allocator.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_markup.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_common.cpp |
Commit
ab8abeaf48abb3addcbdb6136b1975b4afa3b37c
by i[Driver] Change CLANG_ENABLE_OPAQUE_POINTERS_INTERNAL to affect driver default instead of cc1 default
The current cc1 CLANG_ENABLE_OPAQUE_POINTERS=on default difference is not ideal in that people contribute %clang_cc1 tests may assume the default ON behavior, which will cause failures on systems set to OFF.
cc1 option default dependent on CMake options should be used prudently (generally avoided). We prefer to limit target differences to Driver.
Change the CLANG_ENABLE_OPAQUE_POINTERS_INTERNAL mechanism introduced in D123122 to use a driver default instead. This is similar to the mechanism used for the -flegacy-pass-manager transition to new PM transition.
Reviewed By: #opaque-pointers, rsmith, aeubanks
Differential Revision: https://reviews.llvm.org/D123744
|
 | clang/test/Driver/rewrite-objc.m |
 | clang/test/Driver/opaque-pointers-off.c |
 | clang/test/CMakeLists.txt |
 | clang/test/lit.site.cfg.py.in |
 | clang/include/clang/Driver/Options.td |
 | clang/test/lit.cfg.py |
 | clang/test/Driver/rewrite-legacy-objc.m |
 | clang/lib/Driver/ToolChains/Clang.cpp |
Commit
18a01527eab65926405bad45a9be287677303b4c
by okkwon[mlir] Fix a typo to load lsp-mode correctly.
Differential Revision: https://reviews.llvm.org/D123745
|
 | mlir/utils/emacs/mlir-lsp-client.el |
Commit
34cc706b9664882c6b4564a42d3c108abd043009
by pklausler[flang] Fold IBITS() intrinsic function
Implement constant folding of IBITS(); add test.
Differential Revision: https://reviews.llvm.org/D123707
|
 | flang/test/Evaluate/fold-ibits.f90 |
 | flang/lib/Evaluate/fold-integer.cpp |
Commit
c98b601b7fad9500742a9221bd8de4a86d68175e
by i[randstruct] Fix -Wunused-but-set-variable with Clang>=D122271 in -DLLVM_ENABLE_ASSERTIONS=off builds
|
 | clang/lib/AST/Randstruct.cpp |
Commit
65d3850efe227f0375a25d1cc862059a695698ee
by thakis[gn build] (manually) port ab8abeaf48ab
|
 | llvm/utils/gn/secondary/clang/test/BUILD.gn |
Commit
3a54bbb0f2860b1d4c18b84ea2bc2f8c07330ac8
by Vitaly Buka[sanitizer] Disable malloc_hook_skip on Darwin
Followup to D123566
|
 | compiler-rt/test/sanitizer_common/TestCases/malloc_hook_skip.cpp |
Commit
a73f7ababb4b2de65c6e2cdd832fc1f8c21207cf
by pklausler[flang] Error handling for out-of-range CASE values
Catch and nicely describe errors in CASE range values that are out of range for the type of the SELECT CASE.
Differential Revision: https://reviews.llvm.org/D123708
|
 | flang/lib/Semantics/check-case.cpp |
 | flang/test/Semantics/case01.f90 |
Commit
ffd656a2fe5da8c3ad50fe353bcadeae009f0eb4
by fmayer[HWASan] symbolize: use buildid index for locals.
Reviewed By: eugenis
Differential Revision: https://reviews.llvm.org/D123644
|
 | compiler-rt/lib/hwasan/scripts/hwasan_symbolize |
Commit
d0828c5af9cedf13e41b92a94a8e4e0417a8cd27
by pc.wang[RISCV][NFC] Use addExpr() instead of createExpr()
It seems to be neater.
Reviewed By: asb
Differential Revision: https://reviews.llvm.org/D123675
|
 | llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp |
Commit
ef95a6e827e5e348b310d504535ed69c0303b695
by arjunpitchanathan[MLIR][Presburger] change some post-increments/decrements to pre-increments/decrements
|
 | mlir/lib/Analysis/Presburger/IntegerRelation.cpp |
 | mlir/lib/Analysis/Presburger/Simplex.cpp |
Commit
094ad0667c5eb61817b68a65a89201310157e57d
by arjunpitchanathan[MLIR][Presburger] change some `push_back`s to `emplace_back`s
|
 | mlir/lib/Analysis/Presburger/Simplex.cpp |
 | mlir/lib/Analysis/Presburger/PWMAFunction.cpp |
Commit
7226e7fd14c4e57f8ab5729990ee04bcdb1579af
by smeenai[cmake] Loosen multi-distribution restrictions
We've found that there are cases where it's useful to be able to include the same target in multiple distributions (e.g. if you want a distribution that's a superset of another distribution, for convenience purposes), and that there are cases where the distribution of a target and its umbrella can legitimately differ (e.g. the LTO library would commonly be distributed alongside your tools, but it also falls under the llvm-libraries umbrella, which would commonly be distributed separately). Relax the restrictions while providing an option to restore them (which is mostly useful to ensure you aren't accidentally placing targets in the wrong distributions).
There could be further refinements here (e.g. excluding a target from an umbrella if it's explicitly included in some other distribution, or having variables to control which targets are allowed to be duplicated or placed in a separate distribution than their umbrellas), but we can punt on those until there's an actual need.
|
 | llvm/cmake/modules/LLVMDistributionSupport.cmake |
 | llvm/docs/BuildingADistribution.rst |
Commit
71d88b4ba8b0d45070b2f52b807f461fec737638
by brad[Clang] Move Hexagon / VE IAS enabling to Generic_GCC::IsIntegratedAssemblerDefault, NFC
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D123438
|
 | clang/lib/Driver/ToolChains/Gnu.cpp |
 | clang/lib/Driver/ToolChains/Hexagon.h |
 | clang/lib/Driver/ToolChains/VEToolchain.h |
Commit
4f7585195d59877624ecaab003131e1662b4f5b2
by stellaraccident[NFC] Generically resolve body in FunctionOpInterface verifyBody.
Since the actual implementation class can arbitrarily shadow parts of the FunctionOpInterface exported API, access the body generically instead of via the use of the interface being defined.
Fixes https://github.com/llvm/llvm-project/issues/54807
Differential Revision: https://reviews.llvm.org/D123757
|
 | mlir/include/mlir/IR/FunctionInterfaces.td |
Commit
e0c44544655d0f799831004962b1f22fece31c5e
by bgaston2[Darwin][ASan][Sanitizer] Fixes Sanitizer NonUnique Identifier to Account for Mac arm64 architectures.
Current check assumes iOS as the only Apple devices running arm64. ```#if SANITIZER_MAC && !(defined(__arm64__) && SANITIZER_IOS)``` Stops Apple Silicon from being flagged as requiring unique RTTI. This introduced unexpected behavior within the sanitizer.
rdar://91446703
Differential Revision: https://reviews.llvm.org/D123736
|
 | compiler-rt/lib/sanitizer_common/sanitizer_platform.h |
Commit
a4f47a99aafe57db0176ef7dad1a9ba72854439f
by changhu779RISCV] Add clang builtins for CLZ instruction.
add intrinsic for CLZ
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D121915
|
 | clang/lib/CodeGen/CGBuiltin.cpp |
 | clang/include/clang/Basic/BuiltinsRISCV.def |
 | clang/test/CodeGen/RISCV/rvb-intrinsics/riscv64-zbb.c |
 | clang/test/CodeGen/RISCV/rvb-intrinsics/riscv32-zbb.c |
Commit
836e610d9332772ad4511e86ef126a200f1ab281
by richardRevert "[clang] Implement Change scope of lambda trailing-return-type"
This reverts commit c729d5be781a8e80137c11ab28aa14d9ace148db.
This change breaks thread safety annotations on lambdas.
|
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/include/clang/Sema/ScopeInfo.h |
 | clang/lib/Sema/SemaExprCXX.cpp |
 | clang/lib/Sema/Sema.cpp |
 | clang/lib/Sema/TreeTransform.h |
 | clang/lib/Sema/SemaExpr.cpp |
 | clang/include/clang/Sema/Sema.h |
 | clang/test/CXX/expr/expr.prim/expr.prim.lambda/p11-1y.cpp |
 | clang/lib/Sema/Scope.cpp |
 | clang/include/clang/Sema/Scope.h |
 | clang/include/clang/AST/DeclCXX.h |
 | clang/test/SemaCXX/lambda-capture-type-deduction.cpp |
 | clang/lib/Parse/ParseExprCXX.cpp |
 | clang/www/cxx_status.html |
 | clang/lib/Sema/SemaCXXScopeSpec.cpp |
 | clang/lib/Sema/SemaLambda.cpp |
 | clang/docs/ReleaseNotes.rst |
 | clang/test/SemaCXX/warn-shadow-in-lambdas.cpp |
Commit
61352a580a1f8e5818a6e5445517058d959bb86f
by stellaraccident[mlir] Introduce ml_program dialect.
Differential Revision: https://reviews.llvm.org/D120203
|
 | mlir/test/Dialect/MLProgram/invalid.mlir |
 | mlir/test/mlir-opt/commandline.mlir |
 | mlir/lib/Dialect/MLProgram/IR/MLProgramOps.cpp |
 | mlir/include/mlir/Dialect/CMakeLists.txt |
 | mlir/include/mlir/InitAllDialects.h |
 | mlir/lib/Dialect/MLProgram/IR/CMakeLists.txt |
 | mlir/include/mlir/Dialect/MLProgram/IR/CMakeLists.txt |
 | mlir/test/Dialect/MLProgram/ops.mlir |
 | mlir/include/mlir/Dialect/MLProgram/IR/MLProgramBase.td |
 | utils/bazel/llvm-project-overlay/mlir/BUILD.bazel |
 | mlir/include/mlir/Dialect/MLProgram/IR/MLProgram.h |
 | mlir/lib/Dialect/MLProgram/IR/MLProgramDialect.cpp |
 | mlir/lib/Dialect/MLProgram/CMakeLists.txt |
 | mlir/include/mlir/Dialect/MLProgram/CMakeLists.txt |
 | mlir/lib/Dialect/CMakeLists.txt |
 | mlir/include/mlir/Dialect/MLProgram/IR/MLProgramOps.td |
Commit
d2b339f17683465ecd04e905f60b93aed3502555
by pklausler[flang] Respect left tab limit with Tn editing after ADVANCE='NO'
Correct the implementation of non-advancing I/O after some testing to ensure that T tab edit descriptors are not allowed to back up into positions of a record prior to where it stood at the beginning of the I/O statement.
Differential Revision: https://reviews.llvm.org/D123709
|
 | flang/runtime/io-stmt.cpp |
 | flang/runtime/unit.cpp |
 | flang/runtime/unit.h |
 | flang/runtime/connection.h |
 | flang/runtime/io-stmt.h |
Commit
bfafa105aab05e2c243e74114739b7d37f8ab0be
by i[Driver] Simplify some hasFlag patterns with addOptInFlag/addOptOutFlag. NFC
|
 | clang/lib/Driver/ToolChains/Clang.cpp |
Commit
7c87d75d74f3c2943b286b239ec6ff96fc5109c7
by ruiling.songtest: Don't depend on behavior of switch lower in one test. NFC
This is a preliminary change to update the test so that it does not depend on how switch-case will be lowered. The following change will lower switch-case more optimally that will make the test no longer valid.
Reviewed by: arsenm
Differential Revision: https://reviews.llvm.org/D123606
|
 | llvm/test/CodeGen/AMDGPU/ipra-return-address-save-restore.ll |
Commit
1e01f95057a702658a88879223586fde0122f038
by ruiling.songLowerSwitch: Avoid inserting NewDefault block
The NewDefault was used to simplify the updating of PHI nodes, but it causes some inefficiency for target that will run structurizer later. For example, for a simple two-case switch, the extra NewDefault is causing unstructured CFG like:
O / \ O O / \ / \ C1 ND C2 \ | / \ | / D
The change is to avoid the ND(NewDefault) block, that is we will get a structured CFG for above example like:
O / \ / \ O O / \ / \ C1 \ / C2 \-> D <-/
The IR change introduced by this patch should be trivial to other targets, so I am doing this unconditionally.
Fall-through among the cases will also cause unstructured CFG, but it need more work and will be addressed in a separate change.
Reviewed by: arsenm
Differential Revision: https://reviews.llvm.org/D123607
|
 | llvm/test/Transforms/LowerSwitch/feature.ll |
 | llvm/test/Transforms/UnifyLoopExits/switch.ll |
 | llvm/test/Transforms/StructurizeCFG/interleaved-loop-order.ll |
 | llvm/test/Transforms/LowerSwitch/2014-06-23-PHIlowering.ll |
 | llvm/test/CodeGen/AMDGPU/multilevel-break.ll |
 | llvm/lib/Transforms/Utils/LowerSwitch.cpp |
 | llvm/test/Transforms/Util/lowerswitch.ll |
 | llvm/test/Transforms/LowerSwitch/do-not-handle-impossible-values.ll |
 | llvm/test/Transforms/FixIrreducible/switch.ll |
Commit
73da7eed8fac84c9005518740f12d58389998d95
by i[clang-tidy] Add portability-std-allocator-const check
Report use of ``std::vector<const T>`` (and similar containers of const elements). These are now allowed in standard C++ due to undefined ``std::allocator<const T>``. They do not compile with libstdc++ or MSVC. Future libc++ will remove the extension (D120996). See docs/clang-tidy/checks/portability-std-allocator-const.rst for detail.
I have attempted clean-up in a large code base. Here are some statistics:
* 98% are related to the container `std::vector`, among `deque/forward_list/list/multiset/queue/set/stack/vector`. * 24% are related to `std::vector<const std::string>`. * Both `std::vector<const absl::string_view>` and `std::vector<const int>` contribute 2%. The other contributors spread over various class types.
The check can be useful to other large code bases and may serve as an example for future libc++ strictness improvement.
Reviewed By: sammccall
Differential Revision: https://reviews.llvm.org/D123655
|
 | clang-tools-extra/clang-tidy/portability/CMakeLists.txt |
 | clang-tools-extra/clang-tidy/portability/StdAllocatorConstCheck.h |
 | clang-tools-extra/docs/clang-tidy/checks/portability-std-allocator-const.rst |
 | clang-tools-extra/docs/ReleaseNotes.rst |
 | clang-tools-extra/clang-tidy/portability/PortabilityTidyModule.cpp |
 | clang-tools-extra/docs/clang-tidy/checks/list.rst |
 | clang-tools-extra/clang-tidy/portability/StdAllocatorConstCheck.cpp |
 | clang-tools-extra/test/clang-tidy/checkers/portability-std-allocator-const.cpp |
Commit
bd4463bebfe8545c8e626fc7828beac3509b656f
by llvmgnsyncbot[gn build] Port 73da7eed8fac
|
 | llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/portability/BUILD.gn |
Commit
26dbb93704bf39a198909d04ad8c49b4bde46cce
by i[Driver] Fix -fpascal-strings on Darwin
|
 | clang/lib/Driver/ToolChains/Darwin.cpp |
Commit
376c2df0baeb6c7bf1b37d4ef25844d77d298cb3
by brad[Driver] Sort Generic_GCC::IsIntegratedAssemblerDefault, NFC
|
 | clang/lib/Driver/ToolChains/Gnu.cpp |
Commit
c36fbe05a719cd5c88b5f655f3d49d6b4e32ab51
by Vitaly BukaRevert "[sanitizer] Don't run malloc hooks for stacktraces"
Msan crashes on clang-s390x-linux bot
This reverts commit d3531fc7f0053a7fe68317521ee6491da6e36733.
|
 | compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_common.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_common.h |
 | compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h |
 | compiler-rt/test/sanitizer_common/TestCases/malloc_hook_skip.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_markup.cpp |
 | compiler-rt/lib/msan/msan_allocator.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp |
Commit
392d55c1e2d777e9843864e1022d476599334dc9
by uday[MLIR][GPU] Add canonicalization patterns for folding simple gpu.wait ops.
* Fold away redundant %t = gpu.wait async + gpu.wait [%t] pairs.
* Fold away %t = gpu.wait async ... ops when %t has no uses.
* Fold away gpu.wait [] ops.
* In case of %t1 = gpu.wait async [%t0], replace all uses of %t1 with %t0.
Differential Revision: https://reviews.llvm.org/D121878
|
 | mlir/include/mlir/Dialect/GPU/GPUOps.td |
 | mlir/test/Dialect/GPU/canonicalize.mlir |
 | mlir/lib/Dialect/GPU/IR/GPUDialect.cpp |
Commit
35ea326047ef1220f26dc69593db9842a7dfeec1
by carl.ritson[AMDGPU] Try to avoid inserting duplicate s_inst_prefetch
Check for existing s_inst_prefetch instructions when configuring prefetches during loop alignment.
Reviewed By: rampitec, foad
Differential Revision: https://reviews.llvm.org/D123569
|
 | llvm/lib/Target/AMDGPU/SIISelLowering.cpp |
 | llvm/test/CodeGen/AMDGPU/no-dup-inst-prefetch.ll |
Commit
ea47373af4bf4d1a7f4b8f9b23da55220670ae37
by mahesha.comp[AMDGPU][NFC] Organize code around reserving VGPR32 for AGPR copy.
This is an NFC patch in preparation to fix a bug related to always reserving VGPR32 for AGPR copy.
Reviewed By: rampitec
Differential Revision: https://reviews.llvm.org/D123651
|
 | llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp |
 | llvm/lib/Target/AMDGPU/SIInstrInfo.cpp |
 | llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp |
 | llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h |
Commit
3766ca75f87452736f8e4718b75de0eb3b3dcc4e
by uday[MLIR] Fix missing return statement warning in PatternMatch.h
Fix missing return statement warning in PatternMatch.h. NFC.
``` mlir/include/mlir/IR/PatternMatch.h:983:3: warning: no return statement in function returning non-void [-Wreturn-type] ```
Differential Revision: https://reviews.llvm.org/D123756
|
 | mlir/include/mlir/IR/PatternMatch.h |
Commit
38706dd9401407fa9de649f6acbb2f2bec756279
by Lian.Wang[RISCV][NFC] Refactor patterns for Multiply Add instructions
Reviewed By: craig.topper, frasercrmck
Differential Revision: https://reviews.llvm.org/D123355
|
 | llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td |
 | llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td |
Commit
3100893f633facf7a02f5403a58f665cddb33825
by Lian.Wang[RISCV] Remove sext_inreg+riscv_grev/riscv_gorc isel patterns
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D123565
|
 | llvm/lib/Target/RISCV/RISCVInstrInfoZb.td |
 | llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp |
 | llvm/test/CodeGen/RISCV/rv64zbp.ll |
Commit
62d4686be3a2cd864b92b16a4ff7137be8d15e89
by momchil.velikovRevert "[AArch64] Async unwind - Adjust unwind info in AArch64LoadStoreOptimizer"
This reverts commit ecbf32dd88fc91b4fe709dc14bb3493dda6e8854.
It's possible this patch is the reason for an asertion failure `!NodePtr->isKnownSentinel()` in `AArch64LoadStoreOpt::mergeUpdateInsn` (https://lab.llvm.org/buildbot/#/builders/185/builds/1555) reverting while I investigate.
|
 | llvm/test/CodeGen/AArch64/fcopysign.ll |
 | llvm/test/CodeGen/AArch64/swifttail-call.ll |
 | llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp |
 | llvm/test/CodeGen/AArch64/arm64-fp128.ll |
 | llvm/test/CodeGen/AArch64/tail-call.ll |
Commit
defce20cbb774ebc818a15445bc21a38739afad6
by jay.foad[AMDGPU] Add a test for flat scratch SVS addressing
|
 | llvm/test/CodeGen/AMDGPU/flat-scratch-svs.ll |
Commit
d79ad2f1dbc2db63121620f55d6cfa915f2733ac
by Jan Svoboda[clang][lex] NFCI: Use FileEntryRef in PPCallbacks::InclusionDirective()
This patch changes type of the `File` parameter in `PPCallbacks::InclusionDirective()` from `const FileEntry *` to `Optional<FileEntryRef>`.
With the API change in place, this patch then removes some uses of the deprecated `FileEntry::getName()` (e.g. in `DependencyGraph.cpp` and `ModuleDependencyCollector.cpp`).
Reviewed By: dexonsmith, bnbarham
Differential Revision: https://reviews.llvm.org/D123574
|
 | clang/tools/libclang/CXIndexDataConsumer.cpp |
 | clang-tools-extra/clang-move/Move.cpp |
 | clang-tools-extra/clang-tidy/utils/IncludeInserter.cpp |
 | clang-tools-extra/clang-tidy/portability/RestrictSystemIncludesCheck.h |
 | clang/lib/Frontend/PrintPreprocessedOutput.cpp |
 | clang-tools-extra/pp-trace/PPCallbacksTracker.h |
 | clang/lib/Frontend/DependencyFile.cpp |
 | clang/tools/libclang/CIndex.cpp |
 | clang-tools-extra/clangd/Headers.cpp |
 | clang-tools-extra/clangd/unittests/ParsedASTTests.cpp |
 | clang-tools-extra/clang-tidy/altera/KernelNameRestrictionCheck.cpp |
 | clang-tools-extra/modularize/CoverageChecker.cpp |
 | clang-tools-extra/clangd/unittests/HeadersTests.cpp |
 | clang/unittests/Lex/PPCallbacksTest.cpp |
 | clang-tools-extra/clang-tidy/bugprone/SuspiciousIncludeCheck.cpp |
 | clang-tools-extra/clangd/Headers.h |
 | clang-tools-extra/clangd/index/IndexAction.cpp |
 | clang-tools-extra/clang-tidy/modernize/MacroToEnumCheck.cpp |
 | clang/include/clang/Lex/PPCallbacks.h |
 | clang/lib/Lex/PreprocessingRecord.cpp |
 | clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp |
 | clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.h |
 | clang/lib/Frontend/Rewrite/InclusionRewriter.cpp |
 | clang-tools-extra/modularize/PreprocessorTracker.cpp |
 | clang-tools-extra/pp-trace/PPCallbacksTracker.cpp |
 | clang/lib/Frontend/ModuleDependencyCollector.cpp |
 | clang-tools-extra/clang-tidy/llvm/IncludeOrderCheck.cpp |
 | clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.cpp |
 | clang-tools-extra/clang-tidy/modernize/DeprecatedHeadersCheck.cpp |
 | clang-tools-extra/clang-tidy/portability/RestrictSystemIncludesCheck.cpp |
 | clang/include/clang/Tooling/DependencyScanning/ModuleDepCollector.h |
 | clang/lib/CodeGen/MacroPPCallbacks.cpp |
 | clang/lib/CodeGen/MacroPPCallbacks.h |
 | clang-tools-extra/clangd/ParsedAST.cpp |
 | clang/tools/libclang/CXIndexDataConsumer.h |
 | clang-tools-extra/clang-tidy/readability/DuplicateIncludeCheck.cpp |
 | clang/lib/Serialization/ASTReader.cpp |
 | clang/include/clang/Lex/PreprocessingRecord.h |
 | clang/tools/libclang/Indexing.cpp |
 | clang-tools-extra/clang-tidy/llvmlibc/RestrictSystemLibcHeadersCheck.cpp |
 | clang/lib/Frontend/DependencyGraph.cpp |
 | clang/lib/Frontend/PrecompiledPreamble.cpp |
 | clang/lib/Lex/PPDirectives.cpp |
Commit
8de6cb129736bdb47c8d6305a8bf5033fbac9f2f
by andrzej.warzynski[flang] Fix DYLIB builds
https://reviews.llvm.org/D123211 broke builds that set both `LLVM_BUILD_LLVM_DYLIB` and `LLVM_LINK_LLVM_DYLIB` (see [1]). This patch fixes that.
The build failure was caused by the fact that the LLVMPasses library, which is an LLVM "component", was listed directly as link-time dependency. Instead, one should use `LINK_COMPONENTS` in CMake files. I made an identical mistake recently and then subsequently fixed it in https://reviews.llvm.org/D121461 - please visit that revision for more detail.
I'm merging this without a review. The change is straightforward, we recently discussed it and I was able to confirm locally that it fixes the build issue.
[1] https://lab.llvm.org/buildbot/#/builders/177/builds/4619
|
 | flang/lib/Frontend/CMakeLists.txt |
Commit
49b39c4f2e4b0dfac3eff10cfed309a13a243c59
by Stanislav.Mekhanoshin[AMDGPU] Remove redundand RequiredAlignment assignment. NFCI.
Differential Revision: https://reviews.llvm.org/D123699
|
 | llvm/lib/Target/AMDGPU/SIISelLowering.cpp |
Commit
6ba1b9075dc1fef6c32eafa71495bfec803321e4
by hokein.wuReland "[AST] Add a new TemplateKind for template decls found via a using decl.""
This is the template version of https://reviews.llvm.org/D114251.
This patch introduces a new template name kind (UsingTemplateName). The UsingTemplateName stores the found using-shadow decl (and underlying template can be retrieved from the using-shadow decl). With the new template name, we can be able to find the using decl that a template typeloc (e.g. TemplateSpecializationTypeLoc) found its underlying template, which is useful for tooling use cases (include cleaner etc).
This patch merely focuses on adding the node to the AST.
Next steps: - support using-decl in qualified template name; - update the clangd and other tools to use this new node; - add ast matchers for matching different kinds of template names;
Differential Revision: https://reviews.llvm.org/D123127
|
 | clang/lib/AST/ODRHash.cpp |
 | clang/lib/AST/TextNodeDumper.cpp |
 | clang/include/clang/AST/PropertiesBase.td |
 | clang/unittests/AST/TemplateNameTest.cpp |
 | clang/test/CXX/temp/temp.deduct.guide/p3.cpp |
 | clang/lib/AST/ASTImporter.cpp |
 | clang/lib/AST/Type.cpp |
 | clang/lib/Sema/SemaDeclCXX.cpp |
 | clang/unittests/AST/ASTImporterTest.cpp |
 | clang-tools-extra/clangd/SemanticHighlighting.cpp |
 | clang/lib/AST/ASTStructuralEquivalence.cpp |
 | clang/unittests/AST/CMakeLists.txt |
 | clang/include/clang/AST/TextNodeDumper.h |
 | clang/lib/AST/ItaniumMangle.cpp |
 | clang/test/AST/ast-dump-using-template.cpp |
 | clang/lib/AST/ASTContext.cpp |
 | clang/include/clang/AST/TemplateName.h |
 | clang/lib/Sema/SemaDecl.cpp |
 | clang/tools/libclang/CIndex.cpp |
 | clang-tools-extra/clangd/DumpAST.cpp |
 | clang/lib/AST/TemplateName.cpp |
 | clang/lib/Sema/SemaTemplate.cpp |
Commit
04a3f3f167dbf90fb11524c00af5313c2b135ad3
by llvmgnsyncbot[gn build] Port 6ba1b9075dc1
|
 | llvm/utils/gn/secondary/clang/unittests/AST/BUILD.gn |
Commit
6c93e1d329e6c6ef828ec63c66f4cb39ee9cb9ce
by andrzej.warzynski[flang][driver] Add support for `-mmlir`
The semantics of `-mmlir` are identical to `-mllvm`. The only notable difference is that `-mmlir` options should be forwarded to MLIR rather than LLVM.
Note that MLIR llvm::cl options are lazily constructed on demand (see the definition of options in PassManagerOptions.cpp). This means that: * MLIR global options are only visible when explicitly initialised and displayed only when using `-mmlir --help`, * Flang and LLVM global options are always visible and displayed when using either `-mllvm -help` or `-mmlir --help`.
In other words, `-mmlir --help` is a superset of `-mllvm --help`. This is not ideal, but we'd need to refactor all option definitions in Flang and LLVM to improve this. I suggesting leaving this for later.
Differential Revision: https://reviews.llvm.org/D123297
|
 | flang/lib/Frontend/FrontendActions.cpp |
 | flang/lib/FrontendTool/ExecuteCompilerInvocation.cpp |
 | clang/include/clang/Driver/Options.td |
 | flang/include/flang/Frontend/FrontendOptions.h |
 | flang/test/Driver/mllvm_vs_mmlir.f90 |
 | clang/lib/Driver/ToolChains/Flang.cpp |
 | flang/test/Driver/driver-help.f90 |
 | flang/test/Driver/driver-help-hidden.f90 |
 | flang/lib/Frontend/CompilerInvocation.cpp |
 | flang/lib/FrontendTool/CMakeLists.txt |
Commit
2d06420879d7c139cb40e9a4dc3677897672c1ec
by joker.ephApply clang-tidy fixes for performance-for-range-copy in SCF.cpp (NFC)
|
 | mlir/lib/Dialect/SCF/SCF.cpp |
Commit
35f48edb91fff12e52373dd48cea2133ce52f37f
by joker.ephApply clang-tidy fixes for llvm-qualified-auto in VectorTransforms.cpp (NFC)
|
 | mlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp |
Commit
d2bcb0a129f1e60d291fe967426e3686d9ea0587
by fruitclover[flang] Allow IMPLICIT NONE(EXTERNAL) with GenericDetails
Restrictions of IMPLICIT NONE(EXTERNAL) prohibits usage of c_associated from iso_c_binding (with explicit interface) without external definiton - relax associated check.
Reviewed By: klausler
Differential Revision: https://reviews.llvm.org/D120971
|
 | flang/lib/Semantics/resolve-names.cpp |
 | flang/test/Semantics/implicit12.f90 |
Commit
ba038a308021203d9d565b96c2eea5bd2f231ce2
by fruitclover[flang] Do not ICE on out-of-range data statement designator
Print error message instead of assert trigger.
Reviewed By: klausler
Differential Revision: https://reviews.llvm.org/D123132
|
 | flang/lib/Evaluate/fold-designator.cpp |
 | flang/test/Semantics/data06.f90 |
Commit
68efe6356551237e967c23c1bf5fd01dc4a2fc90
by fruitclover[flang] Fix ICE for sqrt(0.0) evaluation
During real range reduction to [0.5, 4) with
SQRT(2**(2a) * x) = SQRT(2**(2a)) * SQRT(x) = 2**a * SQRT(x)
we fall into inf. recursion if IsZero() == true.
Explicitly handle SQRT(0.0) instead of additional checks during folding. Also add helpers for +0.0/-0.0 generation to clean up a bit.
Reviewed By: klausler
Differential Revision: https://reviews.llvm.org/D123131
|
 | flang/lib/Evaluate/real.cpp |
 | flang/test/Evaluate/folding28.f90 |
 | flang/include/flang/Evaluate/real.h |
Commit
2c14cdf831b677063a6518904b765c1f08d8557b
by flo[VPlan] Turn external defs in Value -> VPValue mapping.
This addresses an existing TODO by keeping a mapping of external IR Value * definitions wrapped in VPValues for use in a VPlan.
Reviewed By: Ayal
Differential Revision: https://reviews.llvm.org/D123700
|
 | llvm/lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp |
 | llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp |
 | llvm/lib/Transforms/Vectorize/VPlan.cpp |
 | llvm/lib/Transforms/Vectorize/VPlan.h |
 | llvm/unittests/Transforms/Vectorize/VPlanTest.cpp |
 | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp |
Commit
0c44115e5120167fc573e36dd878f4f95f5d63e6
by paul.walker[SVE] Add support for non-element-type sized scaling when lowering MGATHER/MSCATTER.
The lowering code did not use the scale operand of MGATHER/MSCATTER nodes, but instead assumed scaled indices were always scaled based on the element type of the memory type. This patch adds the missing support by rewritting the nodes as unscaled variants.
Differential Revision: https://reviews.llvm.org/D123670
|
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp |
 | llvm/test/CodeGen/AArch64/sve-masked-scatter.ll |
 | llvm/include/llvm/CodeGen/ValueTypes.h |
 | llvm/test/CodeGen/AArch64/sve-masked-gather.ll |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
 | llvm/include/llvm/Support/MachineValueType.h |
Commit
2366a43b3c50be09f70ba4bd795d95349ab90908
by zinenko[mlir] initial support for opaque pointers in the LLVM dialect
LLVM IR has introduced and is moving forward with the concept of opaque pointers, i.e. pointer types that are not carrying around the pointee type. Instead, memory-related operations indicate the type of the data being accessed through the opaque pointer. Introduce the initial support for opaque pointers in the LLVM dialect:
- `LLVMPointerType` to support omitting the element type; - alloca/load/store/gep to support opaque pointers in their operands and results; this requires alloca and gep to store the element type as an attribute; - memory-related intrinsics to support opaque pointers in their operands; - translation to LLVM IR for the ops above is no longer using methods deprecated in LLVM API due to the introduction of opaque pointers.
Unlike LLVM IR, MLIR can afford to support both opaque and non-opaque pointers at the same time and simplify the transition. Translation to LLVM IR of MLIR that involves opaque pointers requires the LLVMContext to be configured to always use opaque pointers.
Reviewed By: wsmoses
Differential Revision: https://reviews.llvm.org/D123310
|
 | mlir/include/mlir/Dialect/LLVMIR/LLVMTypes.h |
 | mlir/test/Dialect/LLVMIR/invalid.mlir |
 | mlir/test/Dialect/LLVMIR/types.mlir |
 | mlir/lib/Dialect/LLVMIR/IR/LLVMTypes.cpp |
 | mlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td |
 | mlir/lib/Dialect/LLVMIR/IR/TypeDetail.h |
 | mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp |
 | mlir/lib/Target/LLVMIR/TypeToLLVM.cpp |
 | mlir/docs/Dialects/LLVM.md |
 | mlir/test/Target/LLVMIR/opaque-ptr.mlir |
 | mlir/lib/Dialect/LLVMIR/IR/LLVMTypeSyntax.cpp |
 | mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td |
 | mlir/test/Dialect/LLVMIR/opaque-ptr.mlir |
Commit
09141f1adf2dd400e0104e87270f7b7fb6a5cd8d
by zinenko[mlir] Split intrinsics out of LLVMOps.td
Move the operations that correspond to LLVM IR intrinsics in a separate .td file. This makes it easier to maintain the intrinsics and decreases the compile time of LLVMDialect.cpp by ~25%.
Depends On D123310
Reviewed By: wsmoses, jacquesguan
Differential Revision: https://reviews.llvm.org/D123315
|
 | mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td |
 | mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp |
 | utils/bazel/llvm-project-overlay/mlir/BUILD.bazel |
 | mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td |
 | mlir/lib/Dialect/LLVMIR/IR/LLVMIntrinsicOps.cpp |
 | mlir/docs/Dialects/LLVM.md |
 | mlir/include/mlir/Dialect/LLVMIR/CMakeLists.txt |
 | mlir/lib/Dialect/LLVMIR/CMakeLists.txt |
 | mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp |
 | mlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td |
 | mlir/include/mlir/Dialect/LLVMIR/LLVMDialect.h |
Commit
d064c4801c927ad5a706b66eaee4814fcc5ea45e
by zinenko[mlir] Introduce Transform dialect
This dialect provides operations that can be used to control transformation of the IR using a different portion of the IR. It refers to the IR being transformed as payload IR, and to the IR guiding the transformation as transform IR.
The main use case for this dialect is orchestrating fine-grain transformations on individual operations or sets thereof. For example, it may involve finding loop-like operations with specific properties (e.g., large size) in the payload IR, applying loop tiling to those and only those operations, and then applying loop unrolling to the inner loops produced by the previous transformations. As such, it is not intended as a replacement for the pass infrastructure, nor for the pattern rewriting infrastructure. In the most common case, the transform IR will be processed and applied to payload IR by a pass. Transformations expressed by the transform dialect may be implemented using the pattern infrastructure or any other relevant MLIR component.
This dialect is designed to be extensible, that is, clients of this dialect are allowed to inject additional operations into this dialect using the newly introduced in this patch `TransformDialectExtension` mechanism. This allows the dialect to avoid a dependency on the implementation of the transformation as well as to avoid introducing dialect-specific transform dialects.
See https://discourse.llvm.org/t/rfc-interfaces-and-dialects-for-precise-ir-transformation-control/60927.
Reviewed By: nicolasvasilache, Mogball, rriddle
Differential Revision: https://reviews.llvm.org/D123135
|
 | mlir/test/Dialect/Transform/test-interpreter.mlir |
 | mlir/include/mlir/Dialect/Transform/IR/TransformDialect.td |
 | utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel |
 | mlir/tools/mlir-opt/CMakeLists.txt |
 | mlir/include/mlir/Dialect/Transform/IR/TransformInterfaces.h |
 | mlir/tools/mlir-opt/mlir-opt.cpp |
 | mlir/lib/Dialect/Transform/IR/CMakeLists.txt |
 | mlir/test/lib/Dialect/CMakeLists.txt |
 | mlir/include/mlir/Dialect/Transform/IR/CMakeLists.txt |
 | mlir/lib/Dialect/Transform/CMakeLists.txt |
 | mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.td |
 | mlir/test/mlir-opt/commandline.mlir |
 | mlir/lib/Dialect/Transform/IR/TransformDialect.cpp |
 | mlir/test/Dialect/Transform/test-dialect-injection.mlir |
 | mlir/test/lib/Dialect/Transform/CMakeLists.txt |
 | mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.h |
 | mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.cpp |
 | mlir/test/lib/Dialect/Transform/TestTransformDialectInterpreter.cpp |
 | mlir/lib/Dialect/Transform/IR/TransformInterfaces.cpp |
 | mlir/include/mlir/Dialect/Transform/IR/TransformDialect.h |
 | mlir/lib/Dialect/CMakeLists.txt |
 | mlir/include/mlir/Dialect/CMakeLists.txt |
 | mlir/include/mlir/Dialect/Transform/CMakeLists.txt |
 | utils/bazel/llvm-project-overlay/mlir/BUILD.bazel |
 | mlir/include/mlir/Dialect/Transform/IR/TransformInterfaces.td |
 | mlir/include/mlir/InitAllDialects.h |
 | mlir/test/lib/Dialect/Transform/lit.local.cfg |
Commit
53fd8db79192f38feaec11c761e0d0fbdf1516b0
by david.truby[Clang][AArch64][SVE] Allow subscript operator for SVE types
Undefined behaviour is just passed on to extract_element when the index is out of bounds. Subscript on svbool_t is not allowed as this doesn't really have meaningful semantics.
Differential Revision: https://reviews.llvm.org/D122732
|
 | clang/lib/CodeGen/CGExprScalar.cpp |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/test/Sema/aarch64-sve-vector-subscript-ops.c |
 | clang/lib/AST/ExprConstant.cpp |
 | clang/lib/Sema/SemaExpr.cpp |
 | clang/test/CodeGen/aarch64-sve-vector-subscript-ops.c |
Commit
66c44b20b4a538fbb1bae8bc9533c25f5a006bd5
by david.truby[Clang][AArch64][SVE] Add shift operators for SVE vector types
This patch enables shift operators on SVE vector types, as well as supporting vector-scalar shift operations. Shifts by a scalar that is wider than the contained type in the vector are permitted but as in the C standard if the value is larger than the width of the type the behavior is undefined.
Differential Revision: https://reviews.llvm.org/D123303
|
 | clang/lib/Sema/SemaExpr.cpp |
 | clang/test/CodeGen/aarch64-sve-vector-shift-ops.c |
 | clang/test/Sema/aarch64-sve-vector-shift-ops.c |
 | clang/test/SemaCXX/sizeless-1.cpp |
 | clang/test/Sema/sizeless-1.c |
Commit
a305d8f44ec8e91739c1f1e714cbfd19acc80489
by llvm-dev[X86] Adjust fsetcc/fmin/fmax costs to match SoG (Issue #54889)
znver1/2 models were incorrectly modelling these as 3 cycle latency instructions on the wrong pipe and znver1 ymm variants also require double pumping.
Now matches AMD SoG, Agner and instlatx64 numbers.
Thanks to @fabian-r for the report
|
 | llvm/lib/Target/X86/X86ScheduleZnver2.td |
 | llvm/test/tools/llvm-mca/X86/Znver1/resources-sse1.s |
 | llvm/lib/Target/X86/X86ScheduleZnver1.td |
 | llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s |
 | llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s |
 | llvm/test/tools/llvm-mca/X86/Znver1/resources-sse2.s |
 | llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s |
 | llvm/test/tools/llvm-mca/X86/Znver2/resources-sse1.s |
Commit
52d346e715cfaa08a71cdc8982627a3a598e47dd
by paul.robinson[PS4] NFC refactor of PS4 toolchain class, prep for PS5
|
 | clang/lib/Driver/ToolChains/PS4CPU.h |
 | clang/include/clang/Basic/DiagnosticDriverKinds.td |
 | clang/lib/Driver/ToolChains/PS4CPU.cpp |
Commit
bc408afbfebef71460a7f8b4313021956633ef21
by antiagainst[mlir][vector] Fold splat constant transpose
Reviewed By: ThomasRaoux
Differential Revision: https://reviews.llvm.org/D123595
|
 | mlir/lib/Dialect/Vector/IR/VectorOps.cpp |
 | mlir/test/Dialect/Vector/vector-transfer-to-vector-load-store.mlir |
 | mlir/test/Dialect/Vector/canonicalize.mlir |
Commit
e54236dfb5982bc8358bad62a27e6048f06a0272
by antiagainst[mlir][vector] Cast away leading one dims for insert ops
Reviewed By: ThomasRaoux
Differential Revision: https://reviews.llvm.org/D123621
|
 | mlir/lib/Dialect/Vector/Transforms/VectorDropLeadUnitDim.cpp |
 | mlir/test/Dialect/Vector/vector-dropleadunitdim-transforms.mlir |
Commit
a29d9ba1f584745c1a169da5d08f10b27623cfb0
by thakisRevert "[gn build] Port 73da7eed8fac"
This reverts commit bd4463bebfe8545c8e626fc7828beac3509b656f. Breaks check-clang-tools on Windows, see comment on https://reviews.llvm.org/D123655
|
 | llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/portability/BUILD.gn |
Commit
33ab2e3c84fe877f742f2c361c0a97b3451610c3
by llvmgnsyncbot[gn build] Port 73da7eed8fac
|
 | llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/portability/BUILD.gn |
Commit
dd47ab750b584a320bf61d58a3965a03f3871c1b
by thakisRevert "[clang-tidy] Add portability-std-allocator-const check"
This reverts commit 73da7eed8fac84c9005518740f12d58389998d95. Breaks check-clang-tools on Windows, see comment on https://reviews.llvm.org/D123655
|
 | clang-tools-extra/docs/ReleaseNotes.rst |
 | clang-tools-extra/clang-tidy/portability/StdAllocatorConstCheck.h |
 | clang-tools-extra/clang-tidy/portability/PortabilityTidyModule.cpp |
 | clang-tools-extra/test/clang-tidy/checkers/portability-std-allocator-const.cpp |
 | clang-tools-extra/clang-tidy/portability/CMakeLists.txt |
 | clang-tools-extra/docs/clang-tidy/checks/portability-std-allocator-const.rst |
 | clang-tools-extra/clang-tidy/portability/StdAllocatorConstCheck.cpp |
 | clang-tools-extra/docs/clang-tidy/checks/list.rst |
Commit
65fcd31ef153b5f8f17140483fb5de3e1c2deff4
by llvmgnsyncbot[gn build] Port dd47ab750b58
|
 | llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/portability/BUILD.gn |
Commit
e5a5e008256c20f4c2d870d687eda4caef25f9ea
by zinenko[mlir] fix compiler warnings
-Wsign-compare and -Wunsued-value in the recently introduced code.
|
 | mlir/include/mlir/Dialect/Transform/IR/TransformDialect.h |
 | mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.cpp |
Commit
0ff322246bcd5c20fdda5e6d1215ee961db2abdc
by qiaopeixin[flang] Fix float-number representation bug
The float number is represented as (-1)^s * 1.f * 2^(-127) for 32-bit, where s is the signed flag, f is the mantissa. When the exponent bits are all zeros, the float number is represented as (-1)^s * 0.f *2^(-126) for 32-bit, in which case, the intPart is '0'.
Reviewed By: Jean Perier
https://reviews.llvm.org/D123673
|
 | flang/lib/Evaluate/real.cpp |
 | flang/unittests/Evaluate/real.cpp |
 | flang/test/Lower/Intrinsics/real.f90 |
Commit
0b55a8dc6fe81a9b3f8c67ec0b5192baa4bc80b8
by qiaopeixin[flang] Fix intrinsic interface for DIMAG/DCONJG
The intrinsics DREAL, DIMAG, and DCONJG are from Fortran 77 extensions. For DREAL, the type of argument is extended to any complex. For DIMAG and DCONJG, the type of argument for them should be complex(8). For DIMAG, the result type should be real(8). For DCONJG, the result type should be complex(8). Fix the intrinsic interface for them and add test cases for the semantic checks and the lowering.
Reviewed By: Jean Perier
Differential Revision: https://reviews.llvm.org/D123459
|
 | flang/unittests/Evaluate/intrinsics.cpp |
 | flang/lib/Evaluate/intrinsics.cpp |
 | flang/test/Semantics/intrinsics01.f90 |
 | flang/test/Lower/Intrinsics/dreal.f90 |
 | flang/test/Lower/Intrinsics/dconjg.f90 |
 | flang/test/Lower/Intrinsics/dimag.f90 |
Commit
58d9ab70aef3d7ad5b34c525afc430e122409054
by nikolasklauser[libc++][ranges] Implement ranges::minmax and ranges::minmax_element
Reviewed By: var-const, #libc, ldionne
Spies: sstefan1, ldionne, BRevzin, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D120637
|
 | libcxx/include/CMakeLists.txt |
 | libcxx/include/__functional/identity.h |
 | libcxx/test/std/algorithms/alg.sorting/alg.min.max/ranges.minmax.pass.cpp |
 | libcxx/include/algorithm |
 | libcxx/include/__algorithm/ranges_minmax.h |
 | libcxx/test/libcxx/algorithms/ranges_robust_against_copying_projections.pass.cpp |
 | libcxx/include/__algorithm/minmax_element.h |
 | libcxx/include/__algorithm/ranges_minmax_element.h |
 | libcxx/benchmarks/algorithms.bench.cpp |
 | libcxx/test/libcxx/private_headers.verify.cpp |
 | libcxx/include/module.modulemap |
 | libcxx/test/std/library/description/conventions/customization.point.object/niebloid.compile.pass.cpp |
 | libcxx/test/std/algorithms/alg.sorting/alg.min.max/ranges.minmax_element.pass.cpp |
 | libcxx/docs/Status/RangesAlgorithms.csv |
 | libcxx/include/__algorithm/minmax.h |
 | libcxx/test/libcxx/algorithms/alg.sorting/assert.min.max.pass.cpp |
 | libcxx/docs/Status/Cxx20Issues.csv |
 | libcxx/test/libcxx/algorithms/ranges_robust_against_copying_comparators.pass.cpp |
 | libcxx/include/type_traits |
Commit
5bf9aa38abc6ed8d959e2401639b97deadccd225
by llvmgnsyncbot[gn build] Port 58d9ab70aef3
|
 | llvm/utils/gn/secondary/libcxx/include/BUILD.gn |
Commit
369adba0435e22722c6291142b2ce4265ee36ca3
by andrew.savonichev[NVPTX] 64-bit atom.{and,or,xor,min,max} require sm_32 or higher
PTX ISA spec, s9.7.12.4. Parallel Synchronization and Communication Instructions: atom
Target ISA Notes 64-bit atom.{and,or,xor,min,max} require sm_32 or higher.
Differential Revision: https://reviews.llvm.org/D123038
|
 | llvm/lib/Target/NVPTX/NVPTXIntrinsics.td |
 | llvm/test/CodeGen/NVPTX/atomics.ll |
 | llvm/lib/Target/NVPTX/NVPTXInstrInfo.td |
Commit
230f32696497bf788ac7f4365aecabb26f6670f1
by andrew.savonichev[NVPTX] shfl.sync is introduced in PTX 6.0
PTX ISA spec, s9.7.8.6. Data Movement and Conversion Instructions: shfl.sync
PTX ISA Notes Introduced in PTX ISA version 6.0.
Target ISA Notes Requires sm_30 or higher.
Differential Revision: https://reviews.llvm.org/D123039
|
 | llvm/test/CodeGen/NVPTX/shfl-sync-p.ll |
 | llvm/test/CodeGen/NVPTX/shfl-sync.ll |
 | llvm/lib/Target/NVPTX/NVPTXIntrinsics.td |
Commit
4cef5c397d5fae8256318e8c74a2653f5c54eeb7
by andrew.savonichev[NVPTX] .attribute(.managed) is only supported for sm_30 and PTX 4.0
PTX ISA spec, s5.4.8. Variable Attribute Directive: .attribute
PTX ISA Notes Introduced in PTX ISA version 4.0.
Target ISA Notes .managed attribute requires sm_30 or higher.
Differential Revision: https://reviews.llvm.org/D123040
|
 | llvm/test/CodeGen/NVPTX/managed.ll |
 | llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp |
 | llvm/lib/Target/NVPTX/NVPTXAsmPrinter.h |
Commit
32949401a86aea1cfc0a04bef566c2af30c82e39
by andrew.savonichev[NVPTX] Avoid dots in global names
It seems that ptxas cannot parse them: ptxas fatal: Parsing error near '.2': syntax error
Differential Revision: https://reviews.llvm.org/D123041
|
 | llvm/test/CodeGen/NVPTX/b52037.ll |
 | llvm/test/CodeGen/NVPTX/shfl.ll |
 | llvm/test/CodeGen/NVPTX/vote.ll |
 | llvm/test/CodeGen/NVPTX/ld-st-addrrspace.py |
 | llvm/test/CodeGen/NVPTX/shfl-sync-p.ll |
 | llvm/test/CodeGen/NVPTX/shfl-sync.ll |
 | llvm/test/CodeGen/NVPTX/match.ll |
 | llvm/test/CodeGen/NVPTX/shfl-p.ll |
 | llvm/test/CodeGen/NVPTX/barrier.ll |
Commit
b6183a57a10b03bdad83e4bef02990673c155011
by andrew.savonichev[NVPTX] Fix barrier.ll LIT test
The second parameter should be a multiple of the warp size (32).
PTX ISA spec, s9.7.12.1. Parallel Synchronization and Communication Instructions: bar, barrier
barrier.sync{.aligned} a{, b};
Operand b specifies the number of threads participating in the barrier. If no thread count is specified, all threads in the CTA participate in the barrier. When specifying a thread count, the value must be a multiple of the warp size.
Differential Revision: https://reviews.llvm.org/D123470
|
 | llvm/test/CodeGen/NVPTX/barrier.ll |
Commit
1ba8f4f67dcf52cf628caa6e84c3526e936fa6b4
by david.green[AArch64] Move v4i8 concat load lowering to a combine.
The existing code was not updating the uses of loads that it recreated, leading to incorrect chains which could break the ordering between nodes. This moves the code to a combine instead, and makes sure we update the chain references. This does mean it happens earlier - potentially before the concats are simplified. This can lead to inefficiencies in the codegen, which will be fixed in followups.
|
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
 | llvm/test/CodeGen/AArch64/insert-extend.ll |
 | llvm/test/CodeGen/AArch64/insert-subvector.ll |
Commit
4ff70dba3839ce9510499a79f93522b67cab504c
by fabian.wolff[libc++] Fix undefined behavior in `std::filebuf`
Fixes https://github.com/llvm/llvm-project/issues/49267. Fixes https://github.com/llvm/llvm-project/issues/49282. Fixes https://github.com/llvm/llvm-project/issues/49789.
Reviewed By: ldionne
Differential Revision: https://reviews.llvm.org/D122257
|
 | libcxx/include/fstream |
 | libcxx/test/std/input.output/file.streams/fstreams/filebuf.assign/nonmember_swap_min.pass.cpp |
 | libcxx/test/std/input.output/file.streams/fstreams/filebuf.assign/nonmember_swap.pass.cpp |
Commit
ef141aec3c81b33bd2022f258e6ca8d4b1611fd3
by pklausler[flang] Improve appearance of message attachments
Error messages can have a list of attachments; these are used to point to related source locations, supply additional information, and to encapsulate error messages that were *not* emitted in a given context to explain why a warning was justified.
This patch adds a message severity ("Because") for that last case, and extends to AttachTo() API to provide a means for overriding the severity of an attached message.
Some existing message attachments had their severities adjusted, now that we're printing them. And operator==() for Message was cleaned up while debugging after I noticed that it was recursively O(N**2) and subject to returning a false positive.
Differential Revision: https://reviews.llvm.org/D123710
|
 | flang/include/flang/Parser/message.h |
 | flang/lib/Semantics/resolve-names.cpp |
 | flang/lib/Semantics/check-select-rank.cpp |
 | flang/lib/Semantics/expression.cpp |
 | flang/test/Semantics/call25.f90 |
 | flang/lib/Parser/message.cpp |
 | flang/lib/Semantics/check-call.cpp |
Commit
11f47b791f96ca04b4cf9233d72febc704606dcf
by jhuber6[OpenMP] Make offloading sections have the SHF_EXCLUDE flag
Offloading sections can be embedded in the host during codegen via a section. This section was originally marked as metadata to prevent it from being loaded, but these sections are completely unused at runtime so the linker should automatically drop them from the final executable or shard library. This flag adds support for the SHF_EXCLUDE flag in target lowering and uses it.
Reviewed By: JonChesterfield, MaskRay
Differential Revision: https://reviews.llvm.org/D122987
|
 | llvm/include/llvm/MC/SectionKind.h |
 | llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp |
 | llvm/test/CodeGen/X86/offload_sections.ll |
Commit
e471ba3d0122d4c6601029d81c385cb6ebb9d7a4
by jhuber6[Object] Add binary format for bundling offloading metadata
We need to embed certain metadata along with a binary image when we wish to perform a device-linking job on it. Currently this metadata was embedded in the section name of the data itself. This worked, but made adding new metadata very difficult and didn't work if the user did any sort of section linking.
This patch introduces a custom binary format for bundling offloading metadata with a device object file. This binary format is fundamentally a simple string map table with some additional data and an embedded image. I decided to use a custom format rather than using an existing format (ELF, JSON, etc) because of the specialty use-case of this. We need a simple binary format that can be concatenated without requiring other external dependencies.
This extension will make it easier to extend the linker wrapper's capabilties with whatever data is necessary. Eventually this will allow us to remove all the external arguments passed to the linker wrapper and embed it directly in the host's linker so device linking behaves exactly like host linking.
Reviewed By: JonChesterfield
Differential Revision: https://reviews.llvm.org/D122069
|
 | llvm/unittests/Object/OffloadingTest.cpp |
 | llvm/lib/Object/CMakeLists.txt |
 | llvm/lib/Object/OffloadBinary.cpp |
 | llvm/unittests/Object/CMakeLists.txt |
 | llvm/include/llvm/Object/OffloadBinary.h |
Commit
4f1065156b828f447b8b1a6848c3264184b5c860
by llvmgnsyncbot[gn build] Port e471ba3d0122
|
 | llvm/utils/gn/secondary/llvm/lib/Object/BUILD.gn |
 | llvm/utils/gn/secondary/llvm/unittests/Object/BUILD.gn |
Commit
1fdf952deeb9a02aa34794af3c1a7d13a30e068e
by chris.bieneman[HLSL] Add Semantic syntax, and SV_GroupIndex
HLSL has a language feature called Semantics which get attached to declarations like attributes and are used in a variety of ways.
One example of semantic use is here with the `SV_GroupIndex` semantic which, when applied to an input for a compute shader is pre-populated by the driver with a flattened thread index.
Differential Revision: https://reviews.llvm.org/D122699
# Conflicts: # clang/include/clang/Basic/Attr.td # clang/include/clang/Basic/AttrDocs.td
|
 | clang/lib/Parse/ParseDecl.cpp |
 | clang/include/clang/Basic/Attributes.h |
 | clang/include/clang/Basic/DiagnosticParseKinds.td |
 | clang/test/SemaHLSL/Semantics/entry_parameter.hlsl |
 | clang/include/clang/Basic/AttrDocs.td |
 | clang/test/ParserHLSL/lit.local.cfg |
 | clang/include/clang/Parse/Parser.h |
 | clang/lib/Parse/ParseHLSL.cpp |
 | clang/lib/Sema/SemaDeclAttr.cpp |
 | clang/utils/TableGen/ClangAttrEmitter.cpp |
 | clang/include/clang/Basic/AttributeCommonInfo.h |
 | clang/test/ParserHLSL/semantic_parsing.hlsl |
 | clang/lib/Parse/CMakeLists.txt |
 | clang/include/clang/Basic/Attr.td |
Commit
f80e47884cf676dfa69dcda1ffa7479b47444f8a
by llvmgnsyncbot[gn build] Port 1fdf952deeb9
|
 | llvm/utils/gn/secondary/clang/lib/Parse/BUILD.gn |
Commit
d43d9e1d5c98e64db1054b4fb91d044299d3f717
by kevin.neal[FPEnv][InstSimplify] Fold fsub -0.0, -X ==> X
Currently the fsub optimizations in InstSimplify don't know how to fold -0.0 - (-X) to X when the constrained intrinsics are used. This adds partial support. The rest of the support will come later with work on the IR matchers.
This review is split out from D107285.
Differential Revision: https://reviews.llvm.org/D123396
|
 | llvm/lib/Analysis/InstructionSimplify.cpp |
 | llvm/test/Transforms/InstSimplify/strictfp-fsub.ll |
Commit
12c1022679d40e2442c9f6020281c5a010e27dee
by john.brawn[AArch64] Lowering and legalization of strict FP16
For strict FP16 to work correctly needs some changes in lowering and legalization: * SelectionDAGLegalize::PromoteNode was missing handling for some strict fp opcodes. * Some of the custom lowering of strict fp operations needed to be adjusted to work with FP16. * Custom lowering needed to be added for round-to-int operations.
With this, and the previous patches for the rest of the strict fp isel, we can set IsStrictFPEnabled = true.
Differential Revision: https://reviews.llvm.org/D115620
|
 | llvm/test/CodeGen/AArch64/fp-intrinsics-fp16.ll |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
 | llvm/test/CodeGen/AArch64/fp-intrinsics.ll |
 | llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp |
Commit
1b1466c346694c02ff0e30c96a50701b58bc4830
by john.brawn[AArch64] Adjust aarch64 constrained intrinsics tests and un-XFAIL
Remove the checking of the generated asm, as that's already tested elsewhere, and adjust some tests that were expecting the wrong intrinsic to be generated.
Differential Revision: https://reviews.llvm.org/D118259
|
 | clang/test/CodeGen/aarch64-v8.2a-fp16-intrinsics-constrained.c |
 | clang/test/CodeGen/aarch64-neon-intrinsics-constrained.c |
Commit
27a8735a444fb311838f06f8d0d5b10ca9b541f6
by john.brawn[AArch64] Add mayRaiseFPException to appropriate instructions
This is mostly handled by adding "let mayRaiseFPException = 1" before the definition of the relevant instruction classes, but there are a couple of complications: * When we have a multiclass where currently some instantiations are of instructions that can raise an exception and others aren't we need to split that into two multiclasses, one inheriting from the other using a multiclass parameter to enable exceptions. * In a couple of places in the globalisel instruction selector we need to manually set the NoFPExcept flag. There's also another place that looks like it should need it, but that code is never hit for those opcodes due to them being handled by the generic instruction selector, so I've instead just removed them from the switch.
Differential Revision: https://reviews.llvm.org/D115352
|
 | llvm/test/CodeGen/AArch64/GlobalISel/fold-brcond-fcmp.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/select-intrinsic-trunc.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/select-fp-casts.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/select-fmul-indexed.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/select-floor.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/select-binop.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/select-faddp.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/select-static.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/select-ceil.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/select-imm.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/select.mir |
 | llvm/test/CodeGen/AArch64/strict-fp-opt.ll |
 | llvm/lib/Target/AArch64/AArch64InstrInfo.td |
 | llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp |
 | llvm/test/CodeGen/AArch64/GlobalISel/select-frint.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/select-nearbyint.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/select-fcmp.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/fold-select.mir |
 | llvm/lib/Target/AArch64/AArch64InstrFormats.td |
 | llvm/test/CodeGen/AArch64/GlobalISel/fold-fp-select.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/select-neon-vector-fcmp.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/preselect-process-phis.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/select-sqrt.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/select-fma.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/select-intrinsic-round.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/select-with-no-legality-check.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/select-frint-nofp16.mir |
Commit
9b200074b17af425bc4366b7b0c3ba74c1f5b89a
by pklausler[flang] Fix combining cases of USE association & generic interfaces
Fortran admits a few ways to have multiple symbols with the same name in the same scope. Two of them involve generic interfaces (from INTERFACE or GENERIC, the syntax doesn't matter); these are allowed to inhabit a scope with either a derived type or a subprogram that is also a specific procedure of the generic. (But not both a derived type and a subprogram; they could not cohabit a scope anyway, generic or not.)
In cases of USE association, f18 needs to be capable of combining use-associated generic interfaces with other use-associated entities. Two generics get merged (this case was nearly correct); a generic and a derived type can merge into a GenericDetails with a shadowed derivedType(); and a generic can replace or ignore a use-associated procedure of the same name so long as that procedure is already one of its specifics.
Further, these modifications to the use-associated generic interface must be made to a local copy of the symbol. The previous code was messing directly with the symbol in the module's scope.
The fix is basically a reimplementation of the member function DoAddUse() in name resolution.
Differential Revision: https://reviews.llvm.org/D123704
|
 | flang/test/Semantics/resolve17.f90 |
 | flang/lib/Semantics/symbol.cpp |
 | flang/lib/Semantics/resolve-names.cpp |
 | flang/test/Semantics/modfile07.f90 |
Commit
00871e2f4f9fdebcfe84f998c17c47465079bc67
by chenglin.bi[SimplifyCFG] Try to fold switch with single result value and power-of-2 cases to mask+select
When switch with 2^n cases go to one result, check if the 2^n cases can be covered by n bit masks. If yes we can use "and condition, ~mask" to simplify the switch
case 0 2 4 6 -> and condition, -7 https://alive2.llvm.org/ce/z/jjH_0N
case 0 2 8 10 -> and condition, -11 https://alive2.llvm.org/ce/z/K7E-2V
case 2 4 8 12 -> and (sub condition, 2), -11 https://alive2.llvm.org/ce/z/CrxbYg
Fix one case of https://github.com/llvm/llvm-project/issues/39957
Reviewed By: spatel
Differential Revision: https://reviews.llvm.org/D122485
|
 | llvm/lib/Transforms/Utils/SimplifyCFG.cpp |
 | llvm/test/Transforms/SimplifyCFG/switch-to-select-two-case.ll |
Commit
a5a258e208b44508b877e2395df51f92403245b3
by paul.walker[SVE] Refactor MGATHER lowering for unsupported passthru values.
Handle unsupported passthru values before lowering the gather to target specific nodes. This is a simplification that's on the road to moving more of MGATHER lowering into td based isel.
Differential Revision: https://reviews.llvm.org/D123683
|
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
Commit
f14ebe91c5dd6be5b64a45e479291cd08676be0c
by aeubanks[clang-format] Skip preprocessor lines when finding the record lbrace
With D117142, we would now format
``` struct A { #define A void f() { a(); } #endif }; ```
into
``` struct A { #ifdef A void f() { a(); } #endif }; ```
because we were looking for the record lbrace without skipping preprocess lines.
Fixes https://github.com/llvm/llvm-project/issues/54901.
Reviewed By: curdeius, owenpan
Differential Revision: https://reviews.llvm.org/D123737
|
 | clang/unittests/Format/FormatTest.cpp |
 | clang/lib/Format/UnwrappedLineFormatter.cpp |
Commit
4c564940a14f55d2315d2676b10fea0660ea814a
by thomasraoux[mlir][nvgpu] Add NVGPU dialect (architectural specific gpu dialect)
This introduce a new dialect for vendro specific ptx operations. This also adds the first operation ldmatrix as an example. More operations will be added in follow up patches. This new dialect is meant to be a bridge between GPU and Vector dialectis and NVVM dialect.
This is based on the RFC proposed here: https://discourse.llvm.org/t/rfc-add-nv-gpu-dialect-hw-specific-extension-of-gpu-dialect-for-nvidia-gpus/61466/8
Differential Revision: https://reviews.llvm.org/D123266
|
 | mlir/include/mlir/InitAllDialects.h |
 | mlir/include/mlir/Dialect/NVGPU/NVGPU.td |
 | mlir/lib/Dialect/NVGPU/IR/CMakeLists.txt |
 | mlir/test/mlir-opt/commandline.mlir |
 | mlir/lib/Dialect/CMakeLists.txt |
 | mlir/lib/Dialect/NVGPU/CMakeLists.txt |
 | mlir/lib/Dialect/NVGPU/IR/NVGPUDialect.cpp |
 | mlir/include/mlir/Dialect/NVGPU/CMakeLists.txt |
 | utils/bazel/llvm-project-overlay/mlir/BUILD.bazel |
 | mlir/test/Dialect/NVGPU/roundtrip.mlir |
 | mlir/include/mlir/Dialect/CMakeLists.txt |
 | mlir/include/mlir/Dialect/NVGPU/NVGPUDialect.h |
Commit
a919d3d8881ebb11ca7c815080b0c199df7579e0
by andrew.litteken[IROutliner] Ensure that incoming blocks of PHINodes are included in the unique numbering gneration for phi nodes for each exit path
Issue: https://github.com/llvm/llvm-project/issues/54431
PHINodes that need to be generated to accommodate a PHINode outside the region due to different output paths need to have their own numbering to determine the number of output schemes required to properly handle all the outlined regions. This numbering was previously only determined by the order and values of the incoming values, as well as the parent block of the PHINode. This adds the incoming blocks to the calculation of a hash value for these PHINodes as well, and the supporting infrastructure to give each block in a region a corresponding canonical numbering.
Reviewer: paquette
Differential Revision: https://reviews.llvm.org/D122207
|
 | llvm/lib/Analysis/IRSimilarityIdentifier.cpp |
 | llvm/test/Transforms/IROutliner/phi-node-exit-path-order.ll |
 | llvm/lib/Transforms/IPO/IROutliner.cpp |
Commit
7ef9dd3c61fd85b430bcd74f7ce2c075d93fe4fa
by paul.robinson[PS4] Fix a couple of typos
|
 | clang/lib/Driver/ToolChains/PS4CPU.h |
Commit
d6eb480afbc038871570fa053d772c913cd77a61
by andrew.litteken[IROutliner] Ensure that phi values that are passed in as arguments are remapped as arguments
Issue: https://github.com/llvm/llvm-project/issues/54430
For incoming values of phi nodes added to an outlined function to accommodate different exit paths in the function, when a value is a constant that is passed into the outlined function as an argument, we find the corresponding value in the first extracted function used to fill the overall outlined function. When this value is an argument, the corresponding value used will be the old value, prior to outlining. This patch maintains a mapping from these values to arguments, and uses this mapping to update the added phi node accordingly.
Reviewers: paquette
Differential Revision: https://reviews.llvm.org/D122206
|
 | llvm/lib/Transforms/IPO/IROutliner.cpp |
 | llvm/test/Transforms/IROutliner/exit-phi-nodes-incoming-value-constant-argument.ll |
 | llvm/include/llvm/Transforms/IPO/IROutliner.h |
Commit
6f8eba06c289728176371f4b18831506ca6abddc
by andrew.littekenRevert "[IROutliner] Ensure that phi values that are passed in as arguments are remapped as arguments"
Failing test due to typo
This reverts commit d6eb480afbc038871570fa053d772c913cd77a61.
|
 | llvm/include/llvm/Transforms/IPO/IROutliner.h |
 | llvm/lib/Transforms/IPO/IROutliner.cpp |
 | llvm/test/Transforms/IROutliner/exit-phi-nodes-incoming-value-constant-argument.ll |
Commit
6111ddedc8910d2b55dba4036c5489873791ceb3
by pklausler[flang] Defer all function result type processing
When a type specification appears in the prefix of a FUNCTION statement, defer its processing as late as possible so that any symbols in the tpe specification can be resolved in the function's scope to local declarations, including use-associated symbols. f18 was already doing this deferral in a limited form for derived types, and this patch makes it work for intrinsic type parameter values as well.
In short, "real(kind(x)) function foo(x)" now works as it should.
"As late as possible" means the end of the specification part, or the first appearance of the function result name in the specification part.
Differential Revision: https://reviews.llvm.org/D123705
|
 | flang/test/Semantics/resolve108.f90 |
 | flang/lib/Semantics/resolve-names.cpp |
Commit
48fbcedb385d5086dff5cb1cefd35b94f786d338
by koraq[libc++] Adds a missing include.
This fixes the modular build.
|
 | libcxx/test/std/iterators/predef.iterators/move.iterators/move.sentinel/base.pass.cpp |
Commit
77b75ca53f464d4400d0b86458f97037b35a4999
by maks[BOLT][perf2bolt] Fix base address calculation for shared objects
When processing profile data for shared object or PIE, perf2bolt needs to calculate base address of the binary based on the map info reported by the perf tool. When the mapping data provided is for the second (or any other than the first) segment and the segment's file offset does not match its memory offset, perf2bolt uses wrong assumption about the binary base address.
Add a function to calculate binary base address using the reported memory mapping and use the returned base for further address adjustments.
Reviewed By: yota9
Differential Revision: https://reviews.llvm.org/D123755
|
 | bolt/include/bolt/Core/BinaryContext.h |
 | bolt/lib/Core/BinaryContext.cpp |
 | bolt/unittests/Core/CMakeLists.txt |
 | bolt/unittests/Core/BinaryContext.cpp |
 | bolt/lib/Profile/DataAggregator.cpp |
 | bolt/include/bolt/Profile/DataAggregator.h |
Commit
104e086a4f095cd53a384f0e37c97506106eda3e
by mseborUse descriptive register names for readability (NFC).
|
 | llvm/test/Transforms/InstCombine/strlen-4.ll |
Commit
64d9b233b9905a951b450eff5b258707a35e110f
by Jonas Devlieghere[lldb] Prevent crash when adding a stop hook with --shlib
Currently, lldb crashes when adding a stop hook with --shlib because we unconditionally use the target in SymbolContextSpecifier::AddSpecification. This patch prevents the crash and add a test.
rdar://68524781
Differential revision: https://reviews.llvm.org/D123746
|
 | lldb/source/Symbol/SymbolContext.cpp |
 | lldb/test/Shell/Commands/command-stop-hook-no-target.test |
Commit
99d9c44434f57df5f188146925eea3bd8771260d
by Jonas Devlieghere[lldb] Port Process::PrintWarning* to use the new diagnostic events
Port the two Process::PrintWarning functions to use the new diagnostic events through Debugger::ReportWarning. I kept the wrapper function in the process, but delegated the work to the Module. Consistent with the current code, the Module ensures the warning is only printed once per module.
Differential revision: https://reviews.llvm.org/D123698
|
 | lldb/include/lldb/Core/Module.h |
 | lldb/test/Shell/Process/Optimization.test |
 | lldb/source/Target/Process.cpp |
 | lldb/include/lldb/Target/Process.h |
 | lldb/source/Core/Module.cpp |
 | lldb/test/Shell/Process/UnsupportedLanguage.test |
Commit
ef7cba71486df8d6905000f932805774f1cbcc46
by zequanwu[LLDB][NativePDB] Fix inline line info in line table
It fixes the following case: ``` 0602 line 1 (+1) 0315 code 0x15 (+0x15) 0B2B code 0x20 (+0xB) line 2 (+1) 0602 line 3 (+1) 0311 code 0x31 (+0x11) ... ```
Inline ranges should have following mapping: `[0x15, 0x20) -> line 1` `[0x20, 0x31) -> line 2` Inline line entries: `0x15, line 1`, `0x20, line 2`, `0x31, line 3`.
Reviewed By: labath
Differential Revision: https://reviews.llvm.org/D123092
|
 | lldb/test/Shell/SymbolFile/NativePDB/inline_sites.test |
 | lldb/test/Shell/SymbolFile/NativePDB/Inputs/inline_sites.lldbinit |
 | lldb/test/Shell/SymbolFile/NativePDB/Inputs/inline_sites.s |
 | lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp |
Commit
3dbf524ad75bf4aa6d4a1f72b82000943a1d967c
by zequanwu[LLDB][NativePDB] Fix a crash when S_DEFRANGE_SUBFIELD_REGISTER descirbes a simple type
When a variable is simple type and has 64 bits, the debug info may look like the following when targeting 32bit windows. The variable's content is split into two 32bits registers. ``` 480 | S_LOCAL [size = 12] `x` type=0x0013 (__int64), flags = param 492 | S_DEFRANGE_SUBFIELD_REGISTER [size = 20] register = EAX, may have no name = true, offset in parent = 0 range = [0001:0073,+7), gaps = [] 512 | S_DEFRANGE_SUBFIELD_REGISTER [size = 20] register = ECX, may have no name = true, offset in parent = 4 range = [0001:0073,+7), gaps = [] ```
Reviewed By: labath
Differential Revision: https://reviews.llvm.org/D122943
|
 | lldb/test/Shell/SymbolFile/NativePDB/subfield_register_simple_type.s |
 | lldb/test/Shell/SymbolFile/NativePDB/Inputs/subfield_register_simple_type.lldbinit |
 | lldb/source/Plugins/SymbolFile/NativePDB/PdbUtil.cpp |
Commit
78d70a1c976934587e6d4c5698c348b8f09d9d96
by andrew.savonichev[NVPTX] Disable parens for identifiers starting with '$'
ptxas fails to parse such syntax:
mov.u64 %rd1, ($str); fatal : Parsing error near '$str': syntax error
A new MCAsmInfo option was added because InParens parameter of MCExpr::print is not sufficient to disable parens completely. MCExpr::print resets it to false for a recursive call in case of unary or binary expressions.
Differential Revision: https://reviews.llvm.org/D123702
|
 | llvm/include/llvm/MC/MCAsmInfo.h |
 | llvm/test/CodeGen/NVPTX/no-extra-parens.ll |
 | llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp |
 | llvm/lib/MC/MCExpr.cpp |
Commit
b9ca972b1ff0548a831fe416cec8d39f7e569c94
by i[clang-tidy] Add portability-std-allocator-const check
Report use of `std::vector<const T>` (and similar containers of const elements). These are now allowed in standard C++ due to undefined `std::allocator<const T>`. They do not compile with libstdc++ or MSVC. Future libc++ will remove the extension (D120996). See docs/clang-tidy/checks/portability-std-allocator-const.rst for detail.
I have attempted clean-up in a large code base. Here are some statistics:
* 98% are related to the container `std::vector`, among `deque/forward_list/list/multiset/queue/set/stack/vector`. * 24% are related to `std::vector<const std::string>`. * Both `std::vector<const absl::string_view>` and `std::vector<const int>` contribute 2%. The other contributors spread over various class types.
The check can be useful to other large code bases and may serve as an example for future libc++ strictness improvement.
Note: on MSVC where -fdelayed-template-parsing is the default, the check cannot catch cases in uninstantiated templates.
Reviewed By: sammccall
Differential Revision: https://reviews.llvm.org/D123655
|
 | clang-tools-extra/clang-tidy/portability/StdAllocatorConstCheck.cpp |
 | clang-tools-extra/docs/clang-tidy/checks/portability-std-allocator-const.rst |
 | clang-tools-extra/clang-tidy/portability/CMakeLists.txt |
 | clang-tools-extra/clang-tidy/portability/StdAllocatorConstCheck.h |
 | clang-tools-extra/docs/clang-tidy/checks/list.rst |
 | clang-tools-extra/clang-tidy/portability/PortabilityTidyModule.cpp |
 | clang-tools-extra/docs/ReleaseNotes.rst |
 | clang-tools-extra/test/clang-tidy/checkers/portability-std-allocator-const.cpp |
Commit
664c111c958c14e3250fe9e82ba16de05fb4772f
by pklausler[flang] Always encode multi-byte output in UTF-8
A recent change to implement UTF-8 encoding should have made the encoding conditional only for CHARACTER(KIND=1) to enable UTF-8 output vs. Latin-1 or whatever. UTF-8 output of wider CHARACTER kinds should not be conditional (until we choose to support UCS-16, maybe). So wider CHARACTER kinds are being emitted with extra zero bytes; this patch fixes them.
Differential Revision: https://reviews.llvm.org/D123711
|
 | flang/runtime/connection.h |
 | flang/runtime/io-stmt.cpp |
 | flang/runtime/edit-output.cpp |
Commit
5193f2a55816c484c3343a5fc04dbd30e22a372c
by andrew.savonichevRevert "[NVPTX] Disable parens for identifiers starting with '$'"
This reverts commit 78d70a1c976934587e6d4c5698c348b8f09d9d96.
Failed on Mips32: https://lab.llvm.org/buildbot#builders/109/builds/36628
# CHECK: # fixup A - offset: 0, value: ($tmp0), kind: fixup_Mips_26 <stdin>:580:2: note: possible intended match here # fixup A - offset: 0, value: $tmp0, kind: fixup_Mips_26
|
 | llvm/test/CodeGen/NVPTX/no-extra-parens.ll |
 | llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp |
 | llvm/lib/MC/MCExpr.cpp |
 | llvm/include/llvm/MC/MCAsmInfo.h |
Commit
2c2568f39ec641aa8f1dcc011f2ce642c2d3423f
by spatel[InstCombine] canonicalize select with signbit test
This is part of solving issue #54750 - in that example we have both forms of the compare and do not recognize the equivalence.
|
 | llvm/test/Transforms/InstCombine/logical-select.ll |
 | llvm/test/Transforms/InstCombine/ashr-lshr.ll |
 | llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp |
 | llvm/test/Transforms/InstCombine/truncating-saturate.ll |
Commit
02eab52866775f1476028129d1b114235fddc127
by i[ELF][AArch64] Fix unneeded thunk for branches to hidden undefined weak
Similar to D119787 for PPC64.
A hidden undefined weak may change its binding to local before some `isUndefinedWeak` code, so some `isUndefinedWeak` code needs to be changed to `isUndefined`. The undefined non-weak case has been errored, so just using `isUndefined` is fine.
The Linux kernel recently has a usage that a branch from 0xffff800008491ee0 references a hidden undefined weak symbol `vfio_group_set_kvm`. It relies on the behavior that a branch to undefined weak resolving to the next instruction, otherwise it'd see spurious relocation out of range errors.
Fixes https://github.com/ClangBuiltLinux/linux/issues/1624
Differential Revision: https://reviews.llvm.org/D123750
|
 | lld/ELF/Arch/AArch64.cpp |
 | lld/ELF/InputSection.cpp |
 | lld/test/ELF/aarch64-undefined-weak.s |
Commit
3efad612d234f938d5012317cfb827e2bf8a1ee7
by chris.bieneman[HLSL] Pointers are unsupported in HLSL
HLSL does not support pointers or references. This change generates errors in sema for generating pointer, and reference types as well as common operators (address-of, dereference, arrow), which are used with pointers and are unsupported in HLSL.
Reviewed By: aaron.ballman
Differential Revision: https://reviews.llvm.org/D123167
|
 | clang/lib/Sema/SemaExpr.cpp |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/test/SemaHLSL/prohibit_reference.hlsl |
 | clang/lib/Sema/SemaType.cpp |
 | clang/test/SemaHLSL/prohibit_pointer.hlsl |
 | clang/lib/Sema/SemaExprMember.cpp |
Commit
6ee71e53e56b382d3f3a38751f84b02feb0befda
by yhs[BPF] handle opaque-pointer for __builtin_preserve_enum_value
Opaque pointer [1] is enabled as the default with commit [2]. Andrii found that current __builtin_preserve_enum_value() can only handle non opaque pointer code pattern and will segfault with latest llvm main branch where opaque-pointer is enabled by default.
This patch added the opaque pointer support. Besides llvm selftests, also verified with bpf-next bpf selftests.
[1] https://llvm.org/docs/OpaquePointers.html [2] https://reviews.llvm.org/D123122
Differential Revision: https://reviews.llvm.org/D123800
|
 | llvm/lib/Target/BPF/BPFAbstractMemberAccess.cpp |
 | llvm/test/CodeGen/BPF/CORE/intrinsic-typeinfo-enum-value-opaque-pointer.ll |
Commit
234678fbf9cf05c232221bb8253ed658507f3b49
by llvmgnsyncbot[gn build] Port b9ca972b1ff0
|
 | llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/portability/BUILD.gn |
Commit
5955a0f9375a8c0b134eeb4a8de5155dcce7c94f
by efriedmaAllow flexible array initialization in C++.
Flexible array initialization is a C/C++ extension implemented in many compilers to allow initializing the flexible array tail of a struct type that contains a flexible array. In clang, this is currently restricted to C. But this construct is used in the Microsoft SDK headers, so I'd like to extend it to C++.
For now, this doesn't handle dynamic initialization; probably not hard to implement, but it's extra code, and I don't think it's necessary for the expected uses. And we explicitly fail out of constant evaluation.
I've added some additional code to assert that initializers have the correct size, with or without flexible array init. This might catch issues unrelated to flexible array init.
Differential Revision: https://reviews.llvm.org/D123649
|
 | clang/lib/CodeGen/CGDecl.cpp |
 | clang/test/SemaCXX/constant-expression-cxx11.cpp |
 | clang/lib/Sema/SemaInit.cpp |
 | clang/test/CodeGenCXX/flexible-array-init.cpp |
 | clang/include/clang/Basic/DiagnosticASTKinds.td |
 | clang/lib/AST/ExprConstant.cpp |
 | clang/lib/AST/Decl.cpp |
 | clang/lib/CodeGen/CodeGenModule.cpp |
 | clang/include/clang/AST/Decl.h |
Commit
d054959786eeec6311218efd857c0cca658b6f77
by pklausler[flang] Fix shape analysis of RESHAPE result
Shape analysis of RESHAPE(..., SHAPE=s) should of course return the SHAPE= actual argument when it is constant; but when it is not, its length is still known, and thus so is the rank of the result of RESHAPE(), and shape analysis should at least return a shape vector of the right length rather than a result that makes the result appear to be a scalar, which can lead to some bogus error messages.
Also, while here: rename a private GetShapeHelper::AsShape() routine so that it can't be confused with the ones in the API of shape.h.
Differential Revision: https://reviews.llvm.org/D123712
|
 | flang/lib/Evaluate/shape.cpp |
 | flang/test/Semantics/call03.f90 |
 | flang/include/flang/Evaluate/shape.h |
 | flang/lib/Evaluate/intrinsics.cpp |
Commit
428775d5186fb075e76563c5ebab8607c3620a13
by Jonas Devlieghere[lldb] Remove TestShell.test
Remove TestShell.test because it's failing on the bot with "this is a non-interactive debug session, cannot get permission to debug processes." The only thing that's special about this test is the shell we're launching with. I need to do a bit of digging to understand why that's causing this error.
rdar://91766931
|
 | lldb/test/Shell/Process/TestShell.test |
Commit
7726ad04e2633a843fb9743e5adfbb404446e657
by paul.robinson[PS5] Add basic PS5 driver behavior
This adds a PS5-specific ToolChain subclass, which defines some basic PS5 driver behavior. Future patches will add more target-specific driver behavior.
|
 | clang/test/Driver/ps4-linker-win.c |
 | clang/test/Driver/ps4-ps5-linker-win.c |
 | clang/test/Driver/ps4-ps5-linker-non-win.c |
 | clang/lib/Driver/Driver.cpp |
 | clang/test/Driver/inhibit-downstream-commands.c |
 | clang/test/Driver/no-integrated-as.c |
 | clang/lib/Driver/ToolChains/PS4CPU.h |
 | clang/test/Driver/ps4-ps5-relax-relocations.c |
 | clang/test/Driver/no-integrated-as.s |
 | clang/test/Driver/ps4ps5base.c |
 | clang/lib/Driver/ToolChains/Clang.cpp |
 | clang/test/Driver/ps4-header-search.c |
 | clang/test/Driver/ps4-runtime-flags.c |
 | clang/lib/Driver/ToolChains/PS4CPU.cpp |
 | clang/test/Driver/ps4cpu.c |
 | clang/test/Driver/ps4-linker-non-win.c |
 | clang/test/Driver/ps5-sdk-root.c |
 | clang/test/Driver/ps4-ps5-header-search.c |
 | clang/lib/Lex/InitHeaderSearch.cpp |
 | clang/test/Driver/ps4-relax-relocations.c |
 | clang/test/Driver/ps4-ps5-runtime-flags.c |
Commit
8cf83e96591b2ab3e748c0dc5ff019397e00f1ab
by brad[VE][compiler-rt] Correct location of VE support in clear_cache function, NFC
Looks like when the VE support was added it was added a few lines below where it should have been.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D123439
|
 | compiler-rt/lib/builtins/clear_cache.c |
Commit
96e45a8958cbfb5906f5b8b3c2423ad5dd884963
by vdonaldson[flang] Use full result range for clock_gettime implementation of SYSTEM_CLOCK
Update the primary clock_gettime implementation of SYSTEM_CLOCK to use the full range of values, dependent on the type kind of the requested result. Counts/sec and count max for supported kinds become:
kind counts/sec count max
1 10 127 2 1000 32767 4 1000 2147483647 8 1000000000 9223372036854775807 16 1000000000 9223372036854775807
The secondary "fallback" implementation is not changed.
Real valued COUNT_RATE arguments are not changed.
The test program below has calls for kinds 1, 2, 4, 8, 16. Support for these types varies by compiler. The code as given can be restricted to accommodate these variations, with results shown below.
subroutine c integer(1) c1, r1, m1 integer(2) c2, r2, m2 integer(4) c4, r4, m4 integer(8) c8, r8, m8 integer(16) c16, r16, m16
print* print '(a5,3a22)', 'kind', 'counts/sec', 'count max', 'count' print*
call system_clock(c1, r1, m1) print '(i5,3i22)', 1, r1, m1, c1
call system_clock(c2, r2, m2) print '(i5,3i22)', 2, r2, m2, c2
call system_clock(c4, r4, m4) print '(i5,3i22)', 4, r4, m4, c4
call system_clock(c8, r8, m8) print '(i5,3i22)', 8, r8, m8, c8
call system_clock(c16, r16, m16) print '(i5,3i22)', 16, r16, m16, c16 end
subroutine k(j) j = 0 do i=1,1000000000 j = j + i enddo end
program p do i=1,1 ! increase loop count to check for (kind=1) wraparound call k(j) call c enddo end
=== flang output without change (last column counts vary per run) ===
kind counts/sec count max count
1 -24 127 83 2 1000 290 211 4 1000 290 211 8 1000000000 290448383 211631452 16 1000000000 290448383 211633853
=== flang output with change (last column counts vary per run) ===
1 10 127 21 2 1000 32767 2100 4 1000 2147483647 2100 8 1000000000 9223372036854775807 2100183374 16 1000000000 9223372036854775807 2100185353
Other compilers; kind support varies (last column counts vary per run). Test and ouput modified to avoid crashes and normalize results. Some negative values indicate unsupported kinds; others are bugs.
kind counts/sec count max count
1 0 0 -127 2 0 0 -32767 4 1000 2147483647 69271692 8 1000000000 9223372036854775807 69271692353290 16 1000000000 9223372036854775807 69271692354794
=======
1 10 127 0 2 1000 32767 0 4 1000000 2147483647 0 8 10000000 9223372036854775807 9
=======
1 0 0 -127 2 1000 32767 3263 4 10000 2147483647 1788192630 8 1000000 9223372036854775807 1649443459263095
=======
1 -24 -1 36 2 1000 -1 -10716 4 1000 2147483647 176018980 8 1000 9223372036854775807 1649443460644
=======
2 100 28799 23080 4 100 8639999 4285480 8 100 8639999 4285480 16 100 8639999 4285480
=======
1 -24 -1 4 2 1000 23551 -26108 4 1000 86399999 67541508 8 1000000 9223372036854775807 1649443541508087
|
 | flang/docs/Extensions.md |
 | flang/runtime/time-intrinsic.cpp |
Commit
f14334ffa1191ad734d2a994609cf8220c5b7abf
by michaelrj[libc][docs] Add doc for libc string functions
This patch adds a document describing the status of the string functions in LLVM-libc.
Reviewed By: sivachandra, jeffbailey
Differential Revision: https://reviews.llvm.org/D123645
|
 | libc/test/src/__support/CMakeLists.txt |
 | libc/docs/index.rst |
 | libc/docs/strings.rst |
Commit
c4f059e5094edd216761fd8345ceb6345836d91d
by Louis Dionne[libc++][NFC] Add missing 'return 0' to test
|
 | libcxx/test/std/utilities/memory/allocator.traits/allocate_at_least.pass.cpp |
Commit
753aabeaae6547975e7212d38100e9c6201c0aa5
by vtjnash[X86] Fix test case for SoftPromoteHalf of STRICT_FP_EXTEND/STRICT_FP_ROUND.
Tests that should have been with 33b9f3abd78ffe31e2f468f64d36dbdf75b25d6e when writing the tests that should have been with 0daf9b8e41327b1511b2bbc272184ff4fdb8de79.
Differential Revision: https://reviews.llvm.org/D123739
|
 | llvm/test/CodeGen/X86/half-constrained.ll |
Commit
eb14135e35bf2463a5c52394f311d47c18d72dee
by pklausler[flang] Correct interaction between generics and intrinsics
Fortran allows a generic interface to have he same name as an intrinsic procedure. If the intrinsic is explicitly marked with the INTRINSIC attribute, restrictions apply (C848) - the generic must contain only functions or subroutines, depending on the intrinsic. Explicit or not, the generic overrides the intrinsic, but the intrinsic behavior must still be available for calls whose actual arguments do not match any of the specific procedures.
Semantics was not checking constraint C848, and it didn't allow an explicit INTRINSIC attribute on a name of a generic interface.
Differential Revision: https://reviews.llvm.org/D123713
|
 | flang/lib/Semantics/check-declarations.cpp |
 | flang/test/Semantics/resolve109.f90 |
 | flang/lib/Semantics/expression.cpp |
 | flang/lib/Semantics/resolve-names.cpp |
Commit
6cf0b1b3da3e8662baf030a2d741e3becaaab2b0
by efriedmaComment out assertions about initializer size added in D123649.
They're causing failures in LLVM test-suite. Added some regression tests that explain the issue.
|
 | clang/lib/CodeGen/CGDecl.cpp |
 | clang/test/CodeGen/flexible-array-init.c |
 | clang/lib/CodeGen/CodeGenModule.cpp |
Commit
cddcf2170ae8d5a199bb99aac2fd27f520696efe
by browneee[DFSan] Avoid replacing uses of functions in comparisions.
This can cause crashes by accidentally optimizing out checks for extern_weak_func != nullptr, when replaced with a known-not-null wrapper.
This solution isn't perfect (only avoids replacement on specific patterns) but should address common cases.
Internal reference: b/185245029
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D123701
|
 | llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp |
 | llvm/test/Instrumentation/DataFlowSanitizer/Inputs/abilist.txt |
 | llvm/test/Instrumentation/DataFlowSanitizer/extern_weak.ll |
Commit
eb156cb25e209b31eca2aaccae2bd56535986d03
by tra[NVPTX][tests] Do not run the test CodeGen/Generic/2010-11-04-BigByval.ll
NVPTX does not support the testcase llvm/test/CodeGen/Generic/2010-11-04-BigByval.ll There are NVPTX specific testcases for byval args in the llvm/test/CodeGen/NVPTX The test is marked as UNSUPPORTED for NVPTX due to unacceptable run time when using XFAIL
Differential Revision: https://reviews.llvm.org/D122939
|
 | llvm/test/CodeGen/Generic/2010-11-04-BigByval.ll |
Commit
de026aeb8ebb92717ead36bf14bf82356d9b11e1
by pklausler[flang] Raise FP exceptions from runtime conversion to binary
Formatted READs of REAL should convert the exception flags from the decimal-to-binary conversion library into real runtime FP exceptions so that they at least show up in the termination message of a STOP statement.
Differential Revision: https://reviews.llvm.org/D123714
|
 | flang/runtime/edit-input.cpp |
Commit
cb6f8d77a207d87094cc4e775bc44a501381ac50
by bixia[mlir][sparse][taco] Use the SparseCompiler from python/tools.
Copy the implementation of SparseCompiler from python/tools to taco/tools until we have a common place to install it. Modify TACO to use this SparseCompiler for compilation and jitting.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D123696
|
 | mlir/test/Integration/Dialect/SparseTensor/taco/tools/mlir_sparse_compiler.py |
 | mlir/test/Integration/Dialect/SparseTensor/taco/tools/mlir_pytaco_utils.py |
Commit
f20968e00667955f9911864ea922d5a24f548d0d
by i[Driver] Remove unneeded -f[no-]pascal-strings translation. NFC
They used to translate to -m[no-]pascal-strings. This is unneeded after 28c96319c8ab397c2e7d1a47b852bf2afae4f04b or some point in 2009 when -m[no-]pascal-strings became aliases for -f[no-]pascal-strings.
|
 | clang/lib/Driver/ToolChains/Darwin.cpp |
Commit
724709e09ddcb4951a5f1c42238d3a8491424831
by pklausler[flang] Make F0.1 output editing of zero edge case consistent
The statement PRINT '(2F0.1)', 0.0, 0.5 should emit consistent ".0 .5" output, not "0.0 .5".
Differential Revision: https://reviews.llvm.org/D123715
|
 | flang/unittests/Runtime/NumericalFormatTest.cpp |
 | flang/runtime/edit-output.cpp |
Commit
a68612a964b43d8382a93bb36084b51f2add756f
by pklausler[flang][runtime] Preserve effect of positioning in record in non-advancing output
When formatted non-advancing output ends in a control edit descriptor like nX or Tn or TRn that effectively extends the record, fill any gap with explicit blanks at the completion of the WRITE.
Differential Revision: https://reviews.llvm.org/D123716
|
 | flang/runtime/io-stmt.cpp |
Commit
31ea4798ad0990838ccd27f80ca112f177ce91d9
by isanbard[randstruct] Add test for "-frandomize-layout-seed-file" flag
This test makes sure that the "-frandomize-layout-seed" and "-frandomize-layout-seed-file" flags generate the same layout for the record.
Reviewed By: aaron.ballman, MaskRay
Differential Revision: https://reviews.llvm.org/D123636
|
 | clang/unittests/AST/RandstructTest.cpp |
Commit
8065e482189104af30acf46c16ac6c5f6e270d0a
by pklausler[flang] Inner INTRINSIC must not shadow host generic
A generic interface (however spelled) can have the same name as an intrinsic procedure in the same scope. When an explicit INTRINSIC attribute statement appears in a nested scope, semantics was unconditionally declaring a new symbol that hid the generic entirely. Catch this case and create instead a host association symbol for the generic that can then be decorated with the INTRINSIC attribute.
Differential Revision: https://reviews.llvm.org/D123718
|
 | flang/lib/Semantics/resolve-names.cpp |
Commit
95199af4ae36c0e05714a99d084237d8e1cd14c2
by pklausler[flang] Local generics must not shadow host-associated generics
It is possible for generic interfaces of equivalent (but not necessarily identical -- operator(.eq.) is equivalent to operator(==)) names to be declared in a host scope and a nested scope, and the nested declaration should function as an extension of the host's.
Differential Revision: https://reviews.llvm.org/D123719
|
 | flang/test/Semantics/resolve110.f90 |
 | flang/lib/Semantics/resolve-names.cpp |
Commit
db6796dfa8645e87629dc8b8c165dd6ccbc64dfa
by joker.ephApply clang-tidy fixes for modernize-use-default-member-init in SparseTensorUtils.cpp (NFC)
|
 | mlir/lib/ExecutionEngine/SparseTensorUtils.cpp |
Commit
72e2b4e7a762b4768a068c25909f8bedca47112e
by joker.ephApply clang-tidy fixes for modernize-use-default-member-init in PDLLServer.cpp (NFC)
|
 | mlir/lib/Tools/mlir-pdll-lsp-server/PDLLServer.cpp |
Commit
27dead3e3a532625704654a0b66d77f8654d1af2
by isanbardRevert "[randstruct] Add test for "-frandomize-layout-seed-file" flag"
There's a test failure.
This reverts commit 31ea4798ad0990838ccd27f80ca112f177ce91d9.
|
 | clang/unittests/AST/RandstructTest.cpp |
Commit
142cbd500b1a635d8933e033b7a5fc5c5e0f04b3
by pklausler[flang] Fix TYPE/CLASS IS (T(...)) in SELECT TYPE
TYPE IS and CLASS IS guards in SELECT TYPE constructs are allowed to specify the same type as the type of the selector but f18's implementation of that predicate required strict equality of the derived type representations. We need to allow for assumed values of LEN type parameters to match explicit and deferred type parameter values in the selector and require equality for KIND type parameters. Implement DerivedTypeSpec::Match() to perform this more relaxed type comparison, and use it in check-select-type.cpp.
Differential Revision: https://reviews.llvm.org/D123721
|
 | flang/lib/Semantics/type.cpp |
 | flang/lib/Semantics/check-select-type.cpp |
 | flang/test/Semantics/selecttype01.f90 |
 | flang/include/flang/Semantics/type.h |
Commit
03049c51251189b5aafed825095f3adcd52b3dee
by Jonas DevlieghereRevert "[lldb] Pin the shared cache when iterating over its images"
This reverts commit af969141fa285157044e34fb6b27963c3278241b because it didn't have the intended performance benefit to offset the increase in our (virtual) memory usage.
|
 | lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp |
Commit
8c77a75fb6a82a4cc2182bca89e007e7190a83de
by isanbard[randstruct] Add test for "-frandomize-layout-seed-file" flag
This test makes sure that the "-frandomize-layout-seed" and "-frandomize-layout-seed-file" flags generate the same layout for the record.
Reviewed By: aaron.ballman, MaskRay
Differential Revision: https://reviews.llvm.org/D123636
|
 | clang/unittests/AST/RandstructTest.cpp |
Commit
894a591cf6fc542e6fc5d84222c839495a3d832f
by thomasraoux[mlir][nvgpu] Move mma.sync and ldmatrix in nvgpu dialect
Move gpu operation mma.sync and ldmatrix in nvgpu as they are specific to nvidia target.
Differential Revision: https://reviews.llvm.org/D123824
|
 | mlir/lib/Conversion/CMakeLists.txt |
 | mlir/include/mlir/Conversion/Passes.h |
 | mlir/test/Conversion/NVGPUToNVVM/mma-sync-to-nvvm.mlir |
 | mlir/lib/Conversion/NVGPUToNVVM/CMakeLists.txt |
 | mlir/include/mlir/Dialect/GPU/GPUOps.td |
 | mlir/test/Conversion/GPUToNVVM/mma-sync-to-nvvm.mlir |
 | mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp |
 | mlir/lib/Conversion/NVGPUToNVVM/NVGPUToNVVM.cpp |
 | mlir/include/mlir/Dialect/NVGPU/NVGPU.td |
 | mlir/test/Dialect/NVGPU/roundtrip.mlir |
 | mlir/include/mlir/Conversion/NVGPUToNVVM/NVGPUToNVVM.h |
 | mlir/include/mlir/Conversion/Passes.td |
Commit
af91446aa2903324c81d9e0b0a8a9fc037edc1a4
by Jonas Devlieghere[lldb] Show the DBGError if dsymForUUID can't find a dSYM
Show the user the DBGError (if available) when dsymForUUID fails.
rdar://90949180
Differential revision: https://reviews.llvm.org/D123743
|
 | lldb/source/Symbol/LocateSymbolFileMacOSX.cpp |
 | lldb/test/Shell/SymbolFile/Inputs/dsymforuuid.sh |
 | lldb/source/Symbol/LocateSymbolFileMacOSX.cpp.rej |
 | lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp |
 | test/Shell/SymbolFile/Inputs/dsymforuuid.sh |
 | lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp |
 | lldb/source/Symbol/LocateSymbolFile.cpp |
 | lldb/source/Plugins/Process/mach-core/ProcessMachCore.cpp |
 | lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp |
 | test/Shell/SymbolFile/add-dsym.test |
 | lldb/source/Commands/CommandObjectTarget.cpp |
 | lldb/test/Shell/SymbolFile/add-dsym.test |
 | lldb/include/lldb/Symbol/LocateSymbolFile.h |
 | lldb/source/Interpreter/CommandReturnObject.cpp |
 | lldb/test/Shell/SymbolFile/Inputs/a.yaml |
 | lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp |
 | test/Shell/SymbolFile/Inputs/a.yaml |
Commit
625dedc3fe60f1b1010a96c9fee43119f6dfe121
by pklausler[flang] Allow modification of construct entities
Construct entities from ASSOCIATE, SELECT TYPE, and SELECT RANK are modifiable if the are associated with modifiable variables without vector subscripts. Update WhyNotModifiable() to accept construct entities that are appropriate.
A need for more general error reporting from one overload of WhyNotModifiable() caused its result type to change to std::optional<parser::Message> instead of ::MessageFixedText, and this change had some consequences that rippled through call sites.
Some test results that didn't allow for modifiable construct entities needed to be updated.
Differential Revision: https://reviews.llvm.org/D123722
|
 | flang/lib/Semantics/check-omp-structure.cpp |
 | flang/test/Semantics/resolve57.f90 |
 | flang/lib/Semantics/tools.cpp |
 | flang/test/Semantics/modifiable01.f90 |
 | flang/lib/Semantics/resolve-names.cpp |
 | flang/test/Semantics/selecttype03.f90 |
 | flang/include/flang/Semantics/tools.h |
Commit
1255e9734880608f4b56a9fa8e9e99baf41d9784
by Jonas DevlieghereRemove folder introduced by incorrect patch level
|
 | test/Shell/SymbolFile/Inputs/a.yaml |
 | test/Shell/SymbolFile/add-dsym.test |
 | test/Shell/SymbolFile/Inputs/dsymforuuid.sh |
Commit
4975c3a9494c37997774bf9254ff79a85c5e5c7f
by Matthew.ArsenaultMachineFunction: Remove unused field
|
 | llvm/include/llvm/CodeGen/MachineFunction.h |
Commit
6f3f19a36b72e6cc91318f61386ba4fbda8bb388
by Matthew.Arsenaultllvm-reduce: Fix some copy-pasted comment errors
|
 | llvm/tools/llvm-reduce/deltas/ReduceInstructions.cpp |
 | llvm/tools/llvm-reduce/deltas/ReduceBasicBlocks.cpp |
Commit
9196f5dab757cc2d2f59b5295140fb1f7f4354c2
by Matthew.ArsenaultMachineCSE: Report this requires SSA
|
 | llvm/lib/CodeGen/MachineCSE.cpp |
 | llvm/test/CodeGen/AMDGPU/machine-cse-ssa.mir |
Commit
a0f9e4ed2a472f0a41a4d292a9c5fc939ae064ad
by Matthew.Arsenaultllvm-reduce: Fix handling of generic virtual registers
Try to preserve register banks, types and names. Fixes the lowest hanging fruit in issue 54894.
|
 | llvm/tools/llvm-reduce/ReducerWorkItem.cpp |
 | llvm/tools/llvm-reduce/deltas/ReduceInstructionsMIR.cpp |
 | llvm/test/tools/llvm-reduce/mir/generic-vreg.mir |
Commit
b4ace5da45672bbfa36c9adc74f5399d1ccd8a65
by Matthew.Arsenaultllvm-reduce: Fix asserting on undef virtual registers
This was only populating the virtual register map for def operands that appeared in the function, but that may not exist if there are only undef uses.
|
 | llvm/tools/llvm-reduce/ReducerWorkItem.cpp |
 | llvm/test/tools/llvm-reduce/mir/undef-virt-reg.mir |
Commit
c528fbf8824b5004f9ff895de392ef731644edea
by Matthew.ArsenaultAMDGPU: Fix assert if v_mov_b32_dpp is last instruction in the block
This can happen if the use instruction is a phi.
Fixes issue 49961
|
 | llvm/lib/Target/AMDGPU/SIInstrInfo.cpp |
 | llvm/test/CodeGen/AMDGPU/dpp_combine.mir |
Commit
7c71ce97e7be0a00322459527564ad1194e1e4b5
by pklausler[flang] Defer NAMELIST group item name resolution
Items in NAMELIST groups might be host-associated implicitly-typed variables, but name resolution can't know that when the NAMELIST appears in a specification part and the host's execution part has not yet been analyzed. So defer NAMELIST group item name resolution to the end of the execution part. This is safe because nothing else in name resolution depends on whether a variable is in a NAMELIST group or not.
Differential Revision: https://reviews.llvm.org/D123723
|
 | flang/test/Semantics/resolve40.f90 |
 | flang/test/Semantics/call19.f90 |
 | flang/lib/Semantics/resolve-names.cpp |
Commit
df29ec2f548ba717f80270952ca5754131c4e1fb
by Matthew.ArsenaultAMDGPU: Select i8/i16 global and flat atomic load/store
As far as I know these should be atomic anyway, as long as the address is aligned. Unaligned atomics hit an ugly error in AtomicExpand.
|
 | llvm/lib/Target/AMDGPU/BUFInstructions.td |
 | llvm/test/CodeGen/AMDGPU/flat_atomics.ll |
 | llvm/lib/Target/AMDGPU/FLATInstructions.td |
 | llvm/test/CodeGen/AMDGPU/global_atomics.ll |
Commit
3217ca0863681c5e73e1e0f19e9de350249c45b8
by Matthew.Arsenaultllvm-reduce: Copy register allocation hints to clone
|
 | llvm/tools/llvm-reduce/ReducerWorkItem.cpp |
 | llvm/test/tools/llvm-reduce/mir/preserve-reg-hints.mir |
Commit
e33b07f8599523e1e39b20b134dfc870635353bc
by Matthew.Arsenaultllvm-reduce: Inform MRI of used phys reg masks
I'm not sure how to directly observe this invisible cache for a test.
|
 | llvm/tools/llvm-reduce/ReducerWorkItem.cpp |
Commit
7086a1db80e1e09463744f6f6840eb771e3faeef
by Dhruva.Chakrabarti[libomptarget] [amdgpu] Hostcall offset check should consider implicit args
Fixed hostcall offset check to compare against kernarg segment size and implicit arguments. Improved the corresponding debug print.
Reviewed By: JonChesterfield
Differential Revision: https://reviews.llvm.org/D123827
|
 | openmp/libomptarget/plugins/amdgpu/src/rtl.cpp |
Commit
2503f286486c1f545d22dd03923478727946caf4
by pklausler[flang] Accept TYPE(intrinsic type) in declarations only for non-extension type
To avoid clashing with names of user derived types, the redundant syntax TYPE(intrinsic type spec) must be interpreted as a monomorphic derived type when "intrinsic type spec" is a single word. This affects TYPE(BYTE) and TYPE(DOUBLECOMPLEX), but not TYPE(DOUBLE COMPLEX) in free form source.
Differential Revision: https://reviews.llvm.org/D123724
|
 | flang/docs/Extensions.md |
 | flang/lib/Parser/Fortran-parsers.cpp |
Commit
f163106f394a57708b1a12d321231a200372023d
by Matthew.Arsenaultllvm-reduce: Handle cloning MachineFrameInfo and stack objects
This didn't work at all before, and would assert on any frame index. Also copy the other fields, which I believe should cover everything. There are a few that are untested since MIR serialization is apparently still missing them (isStatepointSpillSlot, ObjectSSPLayout, and ObjectSExt/ObjectZExt).
|
 | llvm/tools/llvm-reduce/ReducerWorkItem.cpp |
 | llvm/test/tools/llvm-reduce/mir/preserve-frame-info.mir |
 | llvm/include/llvm/CodeGen/MachineFrameInfo.h |
Commit
ffdba713f5bb338ffc7cb6b6e807c0c969daac8e
by joker.ephFix MLIR website generation
|
 | mlir/include/mlir/Dialect/NVGPU/CMakeLists.txt |
Commit
2d9b7fdaa379cfa3ce21259bf6669b71cab2b75d
by ben.shi[utils] Use git to checkout code instead of svn in building docker image
Reviewed By: sammccall
Differential Revision: https://reviews.llvm.org/D123795
|
 | llvm/utils/docker/nvidia-cuda/Dockerfile |
 | llvm/utils/docker/build_docker_image.sh |
 | llvm/utils/docker/scripts/checkout.sh |
 | llvm/utils/docker/debian10/Dockerfile |
Commit
6d45558c1a05d4ae925bdf628b8cefa947a589f3
by Matthew.ArsenaultMips/GlobalISel: Add stub post-legalizer combiner
This enables no combines, just adds the boilerplate for the new pass.
|
 | llvm/lib/Target/Mips/MipsCombine.td |
 | llvm/lib/Target/Mips/Mips.h |
 | llvm/lib/Target/Mips/Mips.td |
 | llvm/lib/Target/Mips/CMakeLists.txt |
 | llvm/lib/Target/Mips/MipsTargetMachine.cpp |
 | llvm/lib/Target/Mips/MipsPostLegalizerCombiner.cpp |
Commit
a1303b23c9de6ef6d667aa923ec266ca4a0334e7
by Matthew.Arsenaultclang/AMDGPU: Define macro for -munsafe-fp-atomics
The HIP headers want to use this to swap the implementation of the function, rather than relying on backend expansion of the generic atomic instruction.
Fixes: SWDEV-332998
|
 | clang/lib/Basic/Targets/AMDGPU.cpp |
 | clang/test/Driver/amdgpu-macros.cl |
Commit
0cefd53d6eed5d5ed5d117580d4feecf6d1b74b7
by i[gcov][test] Change some legacy PM tests to new PM and remove others
|
 | llvm/test/Transforms/GCOVProfiling/three-element-mdnode.ll |
 | llvm/test/Transforms/GCOVProfiling/version.ll |
 | llvm/test/Transforms/GCOVProfiling/global-ctor.ll |
 | llvm/test/Transforms/GCOVProfiling/linezero.ll |
 | llvm/test/Transforms/GCOVProfiling/linkagename.ll |
 | llvm/test/Transforms/GCOVProfiling/exit-block.ll |
 | llvm/test/Transforms/GCOVProfiling/function-numbering.ll |
 | llvm/test/Transforms/GCOVProfiling/modules.ll |
Commit
3d79c52f31041e0a11ea48814c0d009518063a3d
by jacquesguan[mlir][LLVMIR] Add more vector predication intrinsic ops.
This revision adds vector predication select, merge and load/store intrinsic ops.
Differential Revision: https://reviews.llvm.org/D123477
|
 | mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir |
 | mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td |
Commit
2a9386726b3e28a45c8bef2f640970e688875572
by aaupov[BOLT][NFC] Use LLVM_REVISION instead of BOLT_VERSION_STRING
Remove duplicate version string identification
Reviewed By: rafauler
Differential Revision: https://reviews.llvm.org/D123549
|
 | bolt/lib/Utils/CommandLineOpts.cpp |
 | bolt/CMakeLists.txt |
 | bolt/include/bolt/Utils/BoltRevision.inc.in |
Commit
f4cc757560b8282bd321e1547f6e8a13722be2bc
by Matthew.ArsenaultAdd missing word in llc docs
|
 | llvm/docs/CommandGuide/llc.rst |
Commit
1aa4f0bb6cc21b7666718f5534c88d03152ddfb1
by jacquesguan[RISCV][VP] Add RVV codegen for vp.trunc.
Differential Revision: https://reviews.llvm.org/D123579
|
 | llvm/test/CodeGen/RISCV/rvv/vtrunc-vp-mask.ll |
 | llvm/lib/Target/RISCV/RISCVISelLowering.h |
 | llvm/test/CodeGen/RISCV/rvv/vtrunc-vp.ll |
 | llvm/lib/Target/RISCV/RISCVISelLowering.cpp |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vector-trunc-vp.ll |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vector-trunc-vp-mask.ll |
Commit
35bd41916b10a9312ec33e90580497bc4c7f22fe
by jpienaar[mlir] Add assert to fail with more info (NFC)
This would have assert before during tensor type construction with opaque error, assert and fail earlier now.
|
 | mlir/lib/Interfaces/InferTypeOpInterface.cpp |
Commit
b5d884a38c3524fdba82c525f2cd0237e85c60ee
by i[PGO][test] Change opt -foo tests to -passes= and remove duplicates
|
 | llvm/test/Transforms/PGOProfile/indirect_call_promotion_musttail.ll |
 | llvm/test/Transforms/PGOProfile/indirect_call_promotion.ll |
 | llvm/test/Transforms/PGOProfile/PR41279.ll |
 | llvm/test/Transforms/PGOProfile/noreturncall.ll |
 | llvm/test/Transforms/PGOProfile/unreachable_bb.ll |
 | llvm/test/Transforms/PGOProfile/PR41279_2.ll |
 | llvm/test/Transforms/PGOProfile/indirect_call_profile.ll |
 | llvm/test/Transforms/PGOProfile/fix_bfi.ll |
 | llvm/test/Transforms/PGOProfile/icp_covariant_call_return.ll |
 | llvm/test/Transforms/PGOProfile/memop_size_from_strlen.ll |
 | llvm/test/Transforms/PGOProfile/icp_vararg.ll |
 | llvm/test/Transforms/PGOProfile/indirect_call_promotion_byval.ll |
 | llvm/test/Transforms/PGOProfile/indirect_call_promotion_vla.ll |
 | llvm/test/Transforms/PGOProfile/suppl-profile.ll |
 | llvm/test/Transforms/PGOProfile/irreducible.ll |
 | llvm/test/Transforms/PGOProfile/branch2.ll |
 | llvm/test/Transforms/Util/call-promotion-utils-ptrcast.ll |
 | llvm/test/Transforms/PGOProfile/noprofile.ll |
 | llvm/test/Transforms/PGOProfile/loop2.ll |
 | llvm/test/Transforms/PGOProfile/multiple_hash_profile.ll |
 | llvm/test/Transforms/PGOProfile/X86/macho.ll |
 | llvm/test/Transforms/PGOProfile/memop_hash.ll |
 | llvm/test/Transforms/PGOProfile/counter_promo_nest.ll |
 | llvm/test/Transforms/PGOProfile/large_count_remarks.ll |
 | llvm/test/Transforms/PGOProfile/single_bb.ll |
 | llvm/test/Transforms/PGOProfile/diag_mismatch.ll |
 | llvm/test/Transforms/PGOProfile/thinlto_samplepgo_icp.ll |
 | llvm/test/Transforms/PGOProfile/thinlto_indirect_call_promotion.ll |
 | llvm/test/Transforms/PGOProfile/PR28219.ll |
 | llvm/test/Transforms/PGOProfile/infinite_loop_gen.ll |
 | llvm/test/Transforms/PGOProfile/loop1.ll |
 | llvm/test/Transforms/PGOProfile/memop_size_opt_skip_ranges_promote_three.ll |
 | llvm/test/Transforms/PGOProfile/select2.ll |
 | llvm/test/Transforms/PGOProfile/counter_promo_mexits.ll |
 | llvm/test/Transforms/PGOProfile/branch1.ll |
 | llvm/test/Transforms/PGOProfile/memop_size_opt.ll |
 | llvm/test/Transforms/PGOProfile/landingpad.ll |
 | llvm/test/Transforms/Util/call-promotion-utils-ptrcast-attribute.ll |
 | llvm/test/Transforms/PGOProfile/memcpy.ll |
 | llvm/test/Transforms/PGOProfile/diag_no_profile.ll |
 | llvm/test/Transforms/PGOProfile/icp_vararg_sret.ll |
 | llvm/test/Transforms/PGOProfile/diag_no_funcprofdata.ll |
 | llvm/test/Transforms/PGOProfile/fix_entry_count.ll |
 | llvm/test/Transforms/PGOProfile/criticaledge.ll |
 | llvm/test/Transforms/PGOProfile/memop_size_opt_zero.ll |
 | llvm/test/Transforms/PGOProfile/indirect_call_profile_funclet.ll |
 | llvm/test/Transforms/PGOProfile/indirectbr.ll |
 | llvm/test/Transforms/PGOProfile/switch.ll |
 | llvm/test/Transforms/PGOProfile/icp_invoke_nouse.ll |
 | llvm/test/Transforms/PGOProfile/consecutive-zeros.ll |
 | llvm/test/Transforms/PGOProfile/memop_size_annotation.ll |
 | llvm/test/Transforms/PGOProfile/counter_promo_nest-inseltpoison.ll |
 | llvm/test/Transforms/PGOProfile/diag_no_value_sites.ll |
 | llvm/test/Transforms/PGOProfile/counter_promo_exit_catchswitch.ll |
 | llvm/test/Transforms/PGOProfile/select1.ll |
 | llvm/test/Transforms/PGOProfile/diag_FE_profile.ll |
 | llvm/test/Transforms/PGOProfile/bfi_verification.ll |
 | llvm/test/Transforms/PGOProfile/select_hash_conflict.ll |
 | llvm/test/Transforms/PGOProfile/memop_clone.ll |
 | llvm/test/Transforms/PGOProfile/icp_covariant_invoke_return.ll |
 | llvm/test/Transforms/PGOProfile/indirect_call_annotation.ll |
 | llvm/test/Transforms/PGOProfile/icp_mismatch_msg.ll |
 | llvm/test/Transforms/PGOProfile/comdat_internal.ll |
 | llvm/test/Transforms/PGOProfile/do-not-instrument.ll |
 | llvm/test/Transforms/PGOProfile/icp_sample.ll |
 | llvm/test/Transforms/PGOProfile/icp_invoke.ll |
 | llvm/test/Transforms/PGOProfile/callbr.ll |
 | llvm/test/Transforms/PGOProfile/comdat_rename.ll |
 | llvm/test/Transforms/PGOProfile/instr_entry_bb.ll |
 | llvm/test/Transforms/PGOProfile/counter_promo.ll |
 | llvm/test/Transforms/PGOProfile/statics_counter_naming.ll |
 | llvm/test/Transforms/PGOProfile/memop_profile_funclet.ll |
Commit
59058c441a9ba421b8f45cf1482544fd72ecb558
by thomasraoux[mlir][vector] Add operations used for Vector distribution
Add vector op warp_execute_on_lane_0 that will be used to do incremental vector distribution in order to target warp level vector programming for architectures with GPU-like SIMT programming model. The idea behing the op is discussed further on discourse: https://discourse.llvm.org/t/vector-vector-distribution-large-vector-to-small-vector/1983/23
Differential Revision: https://reviews.llvm.org/D123703
|
 | mlir/lib/Dialect/Vector/IR/CMakeLists.txt |
 | mlir/lib/Dialect/Vector/IR/VectorOps.cpp |
 | mlir/include/mlir/Dialect/Vector/IR/VectorOps.h |
 | mlir/test/Dialect/Vector/invalid.mlir |
 | mlir/include/mlir/Dialect/Vector/IR/VectorOps.td |
 | utils/bazel/llvm-project-overlay/mlir/BUILD.bazel |
 | mlir/test/Dialect/Vector/ops.mlir |
Commit
407b613d7344a37662a9933d5684dd207917e577
by luweining[LoongArch] Add support for selecting constant materializations.
Integer materializing can generate LU12I_W, ORI, LU32I_D, LU52I_D and ADDI_W instructions.
According to the sign-extended behavior of these instructions (except ORI), the generated instruction sequence can be improved.
For example, load -1 into general register: The ADDI_W instruction performs the operation that the [31:0] bit data in the general register `rj` plus the 12-bit immediate `simm12` sign extension 32-bit data; the resultant [31:0] bit is sign extension, then written into the general register `rd`.
Normal sequence:
``` lu12i.w $a0, -1 ori $a0, $a0, 2048 ```
Improved with sign-extended instruction:
``` addi.w $a0, $zero, -1 ```
Reviewed By: SixWeining, MaskRay
Differential Revision: https://reviews.llvm.org/D123290
|
 | llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMatInt.cpp |
 | llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.cpp |
 | llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMatInt.h |
 | llvm/test/CodeGen/LoongArch/imm.ll |
 | llvm/lib/Target/LoongArch/MCTargetDesc/CMakeLists.txt |
Commit
d324d6b5dc80f5a6d477a5fc8404bfa9e2f708b4
by i[PGO][test] Remove duplicate --pgo-instr-memop tests
|
 | llvm/test/Transforms/PGOProfile/statics_counter_naming.ll |
Commit
98c22f68e6605c3ee802d57f130c724731411856
by i[PGO][test] Fix memop_size_opt.ll
|
 | llvm/test/Transforms/PGOProfile/memop_size_opt.ll |
Commit
f9486f213975ffdcf794036d0785f594d13ad612
by michael.hliao[LoongArch] Fix shared build. NFC.
|
 | llvm/lib/Target/LoongArch/TargetInfo/CMakeLists.txt |
Commit
fa2762a251f316d2a83f12a3147494ecfd311a6e
by thomasraoux[mlir] Update bazel file after adding nvgpu to nvvm conversion
|
 | utils/bazel/llvm-project-overlay/mlir/BUILD.bazel |
Commit
e6873bfbcd356c6aeb0e0bc165326f9fc8f02cbd
by pklausler[flang][runtime] Don't skip input spaces when they are significant
When formatted input (not list-directed or NAMELIST) is in "BZ" mode, either because a BZ control edit descriptor appeared in a FORMAT or BLANK="ZERO" appeared in OPEN or READ, input editing must not skip over blanks before or within the input field.
Differential Revision: https://reviews.llvm.org/D123725
|
 | flang/unittests/Runtime/NumericalFormatTest.cpp |
 | flang/runtime/iostat.cpp |
 | flang/runtime/io-stmt.h |
 | flang/include/flang/Runtime/iostat.h |
 | flang/runtime/edit-input.cpp |
Commit
90a17ef6cc3451945d7f3c40a0a9b5ab1b3a26e5
by nicolai.haehnleAMDGPU: Add mixed sign/zero-extend multiply-add test
There's a missed opportunity here that a later patch will exploit.
|
 | llvm/test/CodeGen/AMDGPU/mad_64_32.ll |
Commit
5232c5c5d41489a07d0e72a0e87229a58950f94a
by chiahungduan[mlir] Fix verification order of nested ops.
In order to increase parallism, certain ops with regions and have the IsIsolatedFromAbove trait will have their verification delayed. That means the region verifier may access the invalid ops and may lead to a crash.
Reviewed By: rriddle
Differential Revision: https://reviews.llvm.org/D122771
|
 | mlir/test/Dialect/MemRef/invalid.mlir |
 | mlir/test/Dialect/Func/invalid.mlir |
 | mlir/test/lib/Dialect/Test/TestDialect.cpp |
 | mlir/test/IR/invalid.mlir |
 | mlir/test/lib/Dialect/Test/TestOps.td |
 | mlir/test/IR/test-verification-order.mlir |
 | mlir/lib/IR/Verifier.cpp |
Commit
f097088b0515eea5fb8a3bb6d6a4ad66a907eee2
by nicolai.haehnleAMDGPU: Add more mad_64_32 test cases
Test the behavior when a MUL is used multiple times, as well as when it is uniform.
Run the tests for gfx9 as well, which added S_MUL_HI_[IU]32.
|
 | llvm/test/CodeGen/AMDGPU/mad_64_32.ll |
Commit
b483ce12281e31311efacf0047f95767517dcde9
by i[ELF][ARM] Fix unneeded thunk for branches to hidden undefined weak
Similar to D123750 for AArch64.
|
 | lld/test/ELF/arm-undefined-weak.s |
 | lld/ELF/Arch/ARM.cpp |
Commit
545d353b3cab4c739246651e06e8bccd134627c0
by Lian.Wang[RISCV][NFC] Refactor VL patterns for vnsrl and vnsra
Reviewed By: frasercrmck
Differential Revision: https://reviews.llvm.org/D123274
|
 | llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td |
Commit
43e0cedc1e3d01cb8b2a7ada4418cf76e9382613
by Vitaly Buka[NFC] Reformat a part of TestingConfig.py
|
 | llvm/utils/lit/lit/TestingConfig.py |
Commit
b61f173f243136594287d68d3781a92b29cb102c
by Vitaly Buka[lit] Forward more sanitizer env in TestingConfig
|
 | llvm/utils/lit/lit/TestingConfig.py |
Commit
5206c2c167ed8826bf233d0e424a87c5e11bc807
by brad[Driver] Move Lanai IAS enabling to Generic_GCC::IsIntegratedAssemblerDefault, NFC
Reviewed By: MaskRay, jpienaar
Differential Revision: https://reviews.llvm.org/D123836
|
 | clang/lib/Driver/ToolChains/Lanai.h |
 | clang/lib/Driver/ToolChains/Gnu.cpp |
Commit
7a80912dd8430489f5090a84abcb212d9c40842f
by joker.ephApply clang-tidy fixes for modernize-use-default-member-init in ControlFlowSinkUtils.cpp (NFC)
|
 | mlir/lib/Transforms/Utils/ControlFlowSinkUtils.cpp |
Commit
4197475eb06ed8d6fd021414635fe21b50c6b1b7
by joker.ephApply clang-tidy fixes for readability-identifier-naming in TestTypes.cpp (NFC)
|
 | mlir/test/lib/Dialect/Test/TestTypes.cpp |
Commit
8e43cbab33765c476337571e5ed11b005199dd0d
by daniil[UpdateTestChecks] Add NVPTX support in update_llc_test_checks.py
This patch makes possible generating NVPTX assembly check lines with update_llc_test_checks.py utility.
Differential Revision: https://reviews.llvm.org/D122986
|
 | llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/nvptx-basic.ll |
 | llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/nvptx-basic.ll.expected |
 | llvm/utils/UpdateTestChecks/asm.py |
 | llvm/utils/UpdateTestChecks/isel.py |
 | llvm/utils/UpdateTestChecks/common.py |
 | llvm/test/tools/UpdateTestChecks/update_llc_test_checks/nvptx-basic.test |
Commit
afa7c5ddc6bd35213948eb91b434e3c04e6b14bc
by brad[WebAssembly] Remove TODO comment for IAS, NFC
IAS has been enabled on WebAssembly since commit 0a55d3f557a74cfb459b24e442072302d5444baf.
|
 | llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.cpp |
Commit
866bd4df477706c6ad1e5d6d2876d7a6eed4def8
by courbet[NFC] Add test in preparation for D123849.
|
 | llvm/test/Transforms/ExpandMemCmp/X86/bcmp.ll |
Commit
46a13a0ef847dbe3226f4b3d8726ef25c8909293
by courbet[ExpandMemCmp] Properly expand `bcmp` to an equality pattern.
Before that change, constant-size `bcmp` would miss an opportunity to generate a more efficient equality pattern and would generate a -1/0-1 pattern instead.
Differential Revision: https://reviews.llvm.org/D123849
|
 | llvm/lib/CodeGen/ExpandMemCmp.cpp |
 | llvm/test/CodeGen/X86/memcmp-pgso-x32.ll |
 | llvm/test/CodeGen/X86/memcmp-optsize-x32.ll |
 | llvm/test/Transforms/ExpandMemCmp/X86/bcmp.ll |
 | llvm/test/CodeGen/X86/memcmp-pgso.ll |
 | llvm/test/CodeGen/X86/memcmp-optsize.ll |
Commit
f097885b07435bb6cd64440ed23c60660024285e
by thakis[gn build] (manually) port 6d45558c1a05d (MipsGenPostLegalizeGICombiner)
|
 | llvm/utils/gn/secondary/llvm/lib/Target/Mips/BUILD.gn |
Commit
49cb4fef02e635bf304906232214166c7531d753
by zhongyunde[AArch64][SelectionDAG] Refactor to support more scalable vector extending stores
Similar to D122281, we should firstly exclude all scalable vector extending stores and then selectively enable those which we directly support.
Also merge integer and float scalable vector into scalable_vector_valuetypes.
Reviewed By: paulwalker-arm
Differential Revision: https://reviews.llvm.org/D123449
|
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
Commit
1d83750f631d60bf6f371fa3fd0efc0499470d3f
by nikolasklauser[libc++] Implement ranges::copy{, _n, _if, _backward}
Reviewed By: Mordante, var-const, #libc
Spies: sstefan1, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D122982
|
 | libcxx/include/module.modulemap |
 | libcxx/include/__algorithm/copy.h |
 | libcxx/include/__algorithm/ranges_copy_if.h |
 | libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy_n.pass.cpp |
 | libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy.pass.cpp |
 | libcxx/test/libcxx/private_headers.verify.cpp |
 | libcxx/include/CMakeLists.txt |
 | libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy_if.pass.cpp |
 | libcxx/include/__algorithm/ranges_copy_n.h |
 | libcxx/include/__algorithm/unwrap_iter.h |
 | libcxx/include/__algorithm/copy_backward.h |
 | libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy_backward.pass.cpp |
 | libcxx/include/algorithm |
 | libcxx/include/__algorithm/ranges_copy.h |
 | libcxx/docs/Status/RangesAlgorithms.csv |
 | libcxx/include/__algorithm/ranges_copy_backward.h |
Commit
4dba3d4c539f5ffa025d6dc356862dff3e70784f
by llvmgnsyncbot[gn build] Port 1d83750f631d
|
 | llvm/utils/gn/secondary/libcxx/include/BUILD.gn |
Commit
8fbed6870bb290d8f62840b3bb29c16ffec7f3ed
by lebedev.ri[UpdateTestChecks] Prevent rapid onset insanity when forced to write LoopVectorize-driven costmodel tests
Subj, or on other words, we have a lot of tests that are driven by the LoopVectorizer's debug output, but we don't have any meaningful way to autogenerate checklines in them, which means that an insurmountable amount of manual work is required when modifying the appropriate cost models.
That is not sustainable, so this presents a solution.
Reviewed By: RKSimon
Differential Revision: https://reviews.llvm.org/D121133
|
 | llvm/test/tools/UpdateTestChecks/update_analyze_test_checks/loopvectorize-costmodel.test |
 | llvm/utils/update_analyze_test_checks.py |
 | llvm/test/tools/UpdateTestChecks/update_analyze_test_checks/Inputs/x86-loopvectorize-costmodel.ll.expected |
 | llvm/test/tools/UpdateTestChecks/update_analyze_test_checks/Inputs/x86-loopvectorize-costmodel.ll |
 | llvm/utils/UpdateTestChecks/common.py |
Commit
5865a74755aceacaee624c66fcfac803d8c8ebf9
by lebedev.riRequire asserts in newly added test
|
 | llvm/test/tools/UpdateTestChecks/update_analyze_test_checks/loopvectorize-costmodel.test |
Commit
24c84bd2363a7195d928ce9beb568b66d8e64869
by momchil.velikov[AArch64] Async unwind - Fix MTE codegen emitting frame adjustments in a loop
When untagging the stack, the compiler may emit a sequence like: ``` .LBB0_1: st2g sp, [sp], #32 sub x8, x8, #32 cbnz x8, .LBB0_1 stg sp, [sp], #16 ``` These stack adjustments cannot be described by CFI instructions.
This patch disables merging of SP update with untagging, i.e. makes the compiler use an additional scratch register (there should be plenty available at this point as we are in the epilogue) and generate: ``` mov x9, sp mov x8, #256 stg x9, [x9], #16 .LBB0_1: sub x8, x8, #32 st2g x9, [x9], #32 cbnz x8, .LBB0_1 add sp, sp, #272 ``` Merging is disabled only when we need to generate asynchronous unwind tables.
Reviewed By: eugenis
Differential Revision: https://reviews.llvm.org/D114548
|
 | llvm/lib/Target/AArch64/AArch64FrameLowering.cpp |
 | llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp |
 | llvm/test/CodeGen/AArch64/settag.ll |
Commit
4db65e279b96e2af9a4ea2c1e2acc40a64de2a0e
by antiagainst[mlir][vector] Reorder elementwise(transpose)
Similar to the existing pattern for reodering cast(transpose), this makes transpose following transpose and increases the chance of embedding the transposition inside contraction op. Actually cast ops are just special instances of elementwise ops.
Reviewed By: ThomasRaoux
Differential Revision: https://reviews.llvm.org/D123596
|
 | mlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp |
 | mlir/test/Dialect/Vector/vector-reduce-to-contract.mlir |
Commit
33d3fc4466479285121cbb1a62db249454da0bda
by aaron[C89/C2x] Diagnose calls to a function without a prototype but passes arguments
This catches places where a function without a prototype is accidentally used, potentially passing an incorrect number of arguments, and is a follow-up to the work done in https://reviews.llvm.org/D122895 and described in the RFC (https://discourse.llvm.org/t/rfc-enabling-wstrict-prototypes-by-default-in-c). The diagnostic is grouped under the new -Wdeprecated-non-prototypes warning group and is enabled by default.
The diagnostic is disabled if the function being called was implicitly declared (the user already gets an on-by-default warning about the creation of the implicit function declaration, so no need to warn them twice on the same line). Additionally, the diagnostic is disabled if the declaration of the function without a prototype was in a location where the user explicitly disabled deprecation warnings for functions without prototypes (this allows the provider of the API a way to disable the diagnostic at call sites because the lack of prototype is intentional).
|
 | clang/test/Analysis/svalbuilder-float-cast.c |
 | clang/test/Analysis/nullability.c |
 | clang/test/Sema/warn-deprecated-non-prototype.c |
 | clang/docs/ReleaseNotes.rst |
 | clang/lib/Sema/SemaExpr.cpp |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
Commit
f263dac4465c251e37af9787baf5e9f56138e369
by Jan Svoboda[clang][parse] NFCI: Use FileEntryRef in Parser::ParseModuleImport()
This patch removes use of the deprecated `DirectoryEntry::getName()` from `Parser` by using `{File,Directory}EntryRef` instead.
Reviewed By: bnbarham
Differential Revision: https://reviews.llvm.org/D123767
|
 | clang/lib/Parse/Parser.cpp |
Commit
9d98f58959b12b6ddab5ac10453e1464bb830e96
by Jan Svoboda[clang][CodeGen] NFCI: Use FileEntryRef
This patch removes use of the deprecated `DirectoryEntry::getName()` from clangCodeGen by using `{File,Directory}EntryRef` instead.
Reviewed By: bnbarham
Differential Revision: https://reviews.llvm.org/D123768
|
 | clang/lib/CodeGen/CGDebugInfo.cpp |
 | clang/lib/CodeGen/CGObjCGNU.cpp |
Commit
99b4874a53cf4cd39a164a63b5505baace825d7c
by Jan Svoboda[clang] NFCI: Use DirectoryEntryRef in collectIncludePCH
This patch removes use of the deprecated `DirectoryEntry::getName()` from `collectIncludePCH` by using `{File,Directory}EntryRef` instead.
Reviewed By: bnbarham
Differential Revision: https://reviews.llvm.org/D123769
|
 | clang/lib/Frontend/CompilerInstance.cpp |
Commit
713e716cdaef1ee069f27bb71fd232a782565e0a
by Jan Svoboda[clang] NFCI: Use FileEntryRef in FileManagerTest
This patch removes use of the deprecated `{File,Directory}Entry::getName()` from `FileManager` unit tests by using `{File,Directory}EntryRef` instead.
Reviewed By: bnbarham
Differential Revision: https://reviews.llvm.org/D123770
|
 | clang/unittests/Basic/FileManagerTest.cpp |
Commit
0b09b5d44837ea71c6bf017607b33f283c4417c6
by Jan Svoboda[clang][lex] NFC: Use FileEntryRef in PreprocessorLexer::getFileEntry()
This patch changes the return type of `PreprocessorLexer::getFileEntry()` so that its clients may stop using the deprecated APIs of `FileEntry`.
Reviewed By: bnbarham
Differential Revision: https://reviews.llvm.org/D123772
|
 | clang/include/clang/Lex/PreprocessorLexer.h |
 | clang/lib/Sema/SemaCodeComplete.cpp |
 | clang/lib/Lex/PreprocessorLexer.cpp |
Commit
57a4f9bd493bca0dc78b16951c7d3f3fadfbc2f2
by aaronFix failing test case found by bots:
https://lab.llvm.org/buildbot#builders/109/builds/36683 https://lab.llvm.org/buildbot#builders/164/builds/15456 (and others)
|
 | clang/test/SemaObjC/nonnull.m |
Commit
4f277f28ab88bb96c8da1da96dda11bab17a3da7
by aaupov[BOLT] Check if LLVM_REVISION is defined
Handle the case where LLVM_REVISION is undefined (due to LLVM_APPEND_VC_REV=OFF or otherwise) by setting "<unknown>" value as before D123549.
Reviewed By: yota9
Differential Revision: https://reviews.llvm.org/D123852
|
 | bolt/lib/Utils/CommandLineOpts.cpp |
Commit
61bd985f2a6f58a5f796ba742a7378e60bf1c51a
by gribozavrAdjust Bazel BUILD files for 6d45558c1
|
 | utils/bazel/llvm-project-overlay/llvm/BUILD.bazel |
Commit
be0905a333d6f7c4d7f5c70c18211463e53473cd
by jun[Clang][Sema] Fix invalid redefinition error in if/switch/for statement
Clang should no longer incorrectly diagnose a variable declaration inside of a lambda expression that shares the name of a variable in a containing if/while/for/switch init statement as a redeclaration.
After this patch, clang is supposed to accept code below:
void foo() { for (int x = [] { int x = 0; return x; }(); ;) ; }
Fixes https://github.com/llvm/llvm-project/issues/54913
Differential Revision: https://reviews.llvm.org/D123840
|
 | clang/docs/ReleaseNotes.rst |
 | clang/lib/Sema/IdentifierResolver.cpp |
 | clang/test/SemaCXX/cxx1z-init-statement.cpp |
Commit
7ed01ba88d67a0eb79663547f9ec21d106f7b281
by Jan Svoboda[clang][deps] NFC: Inline function with single caller
|
 | clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h |
 | clang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp |
Commit
26b0ecb8985b7e76a5ca0965d3d464611eda14f0
by Jan Svoboda[clang][deps] NFC: Update documentation
|
 | clang/tools/clang-scan-deps/ClangScanDeps.cpp |
Commit
be5c15c7aee1ef4964c88031555ed6b0f59ebc23
by lebedev.ri[NFC][Costmodel][LV][X86] Refresh one or two interleaved load/store tests
|
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i64-stride-3.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i8-stride-7.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i8-stride-3.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-5.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-f32-stride-3.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-f64-stride-3.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i64-stride-7.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-2.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i64-stride-2.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i32-stride-4.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-f64-stride-3.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-f32-stride-7.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-6.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-f64-stride-4.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i8-stride-2.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i32-stride-5.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-7.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-3.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i8-stride-3.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-8.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i32-stride-8.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i8-stride-4.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i32-stride-2.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i8-stride-2.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-f64-stride-2.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i64-stride-3.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i32-stride-6.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-f64-stride-8.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i8-stride-6.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i32-stride-7.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-f64-stride-5.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i32-stride-3.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i64-stride-4.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-4.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i64-stride-5.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i32-stride-8.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-f32-stride-4.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i64-stride-6.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i64-stride-7.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i64-stride-4.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i64-stride-5.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-f32-stride-7.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-f64-stride-6.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i32-stride-5.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i8-stride-5.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-f64-stride-5.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-5.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i32-stride-2.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i64-stride-2.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-f64-stride-7.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i32-stride-4.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i8-stride-8.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-f32-stride-5.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-f32-stride-2.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-f64-stride-4.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-6.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i32-stride-6.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i8-stride-7.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-2.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i64-stride-8.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-f32-stride-4.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i32-stride-7.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-7.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i32-stride-3.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i64-stride-6.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-f32-stride-8.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-f32-stride-3.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i8-stride-4.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-8.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-f32-stride-8.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-f64-stride-6.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-4.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-f32-stride-6.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-f64-stride-8.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i8-stride-6.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i64-stride-8.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i8-stride-5.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-f32-stride-5.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-f32-stride-2.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-3.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-f64-stride-2.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-f64-stride-7.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-f32-stride-6.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i8-stride-8.ll |
Commit
04000c2f928a7adc32138a664d167f01b642bef3
by corentinjabot[clang] Implement Change scope of lambda trailing-return-type
Implement P2036R3.
Captured variables by copy (explicitely or not), are deduced correctly at the point we know whether the lambda is mutable, and ill-formed before that.
Up until now, the entire lambda declaration up to the start of the body would be parsed in the parent scope, such that capture would not be available to look up.
The scoping is changed to have an outer lambda scope, followed by the lambda prototype and body.
The lambda scope is necessary because there may be a template scope between the start of the lambda (to which we want to attach the captured variable) and the prototype scope.
We also need to introduce a declaration context to attach the captured variable to (and several parts of clang assume captures are handled from the call operator context), before we know the type of the call operator.
The order of operations is as follow:
* Parse the init capture in the lambda's parent scope
* Introduce a lambda scope
* Create the lambda class and call operator
* Add the init captures to the call operator context and the lambda scope. But the variables are not capured yet (because we don't know their type). Instead, explicit captures are stored in a temporary map that conserves the order of capture (for the purpose of having a stable order in the ast dumps).
* A flag is set on LambdaScopeInfo to indicate that we have not yet injected the captures.
* The parameters are parsed (in the parent context, as lambda mangling recurses in the parent context, we couldn't mangle a lambda that is attached to the context of a lambda whose type is not yet known).
* The lambda qualifiers are parsed, at this point We can switch (for the second time) inside the lambda context, unset the flag indicating that we have not parsed the lambda qualifiers, record the lambda is mutable and capture the explicit variables.
* We can parse the rest of the lambda type, transform the lambda and call operator's types and also transform the call operator to a template function decl where necessary.
At this point, both captures and parameters can be injected in the body's scope. When trying to capture an implicit variable, if we are before the qualifiers of a lambda, we need to remember that the variables are still in the parent's context (rather than in the call operator's).
Reviewed By: aaron.ballman, #clang-language-wg, ChuanqiXu
Differential Revision: https://reviews.llvm.org/D119136
|
 | clang/lib/Sema/SemaCXXScopeSpec.cpp |
 | clang/include/clang/AST/DeclCXX.h |
 | clang/lib/Sema/TreeTransform.h |
 | clang/include/clang/Sema/Scope.h |
 | clang/lib/Sema/SemaExpr.cpp |
 | clang/lib/Sema/Scope.cpp |
 | clang/lib/Sema/Sema.cpp |
 | clang/lib/Sema/SemaExprCXX.cpp |
 | clang/test/SemaCXX/lambda-capture-type-deduction.cpp |
 | clang/include/clang/Sema/ScopeInfo.h |
 | clang/lib/Sema/SemaLambda.cpp |
 | clang/www/cxx_status.html |
 | clang/docs/ReleaseNotes.rst |
 | clang/test/CXX/expr/expr.prim/expr.prim.lambda/p11-1y.cpp |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/include/clang/Parse/Parser.h |
 | clang/include/clang/Sema/Sema.h |
 | clang/lib/Parse/ParseExprCXX.cpp |
 | clang/test/SemaCXX/warn-shadow-in-lambdas.cpp |
Commit
b1bb76a731d283368ae2b0a0913d76f18f107a6d
by daniil[NFC][UpdateTestChecks] Fix whitespace in common.py and asm.py
While working on D122986, noticed that indentation size varies even within one file. Fixed that - now indentation is 2 spaces everywhere. This indentation
Differential Revision: https://reviews.llvm.org/D123859
|
 | llvm/utils/UpdateTestChecks/common.py |
 | llvm/utils/UpdateTestChecks/asm.py |
Commit
eafe182fdc6b595486b419156b713d11a2cee384
by fraser[VP] Rename ISD::VP_FPROUND and ISD::VP_FPEXT
Rename them to be more closely related to their non-VP counterparts.
Reviewed By: jacquesguan, ym1813382441
Differential Revision: https://reviews.llvm.org/D123847
|
 | llvm/include/llvm/IR/VPIntrinsics.def |
Commit
52e6a27690ca8e5f07cc646716c3736475b7746b
by iClean up `OMPAtomicDirective::Create`
|
 | clang/lib/Sema/SemaOpenMP.cpp |
 | clang/include/clang/AST/StmtOpenMP.h |
 | clang/lib/AST/StmtOpenMP.cpp |
Commit
c7d4a05228090cb6b1b7f6e5d300f197897ac756
by aaronProperly identify builtins in a diagnostic note
When emitting a "conflicting types" warning for a function declaration, it's more clear to diagnose the previous declaration specifically as being a builtin if it one.
|
 | clang/lib/Sema/SemaDecl.cpp |
 | clang/test/Sema/prototype-redecls.c |
Commit
6c5ae8e9744b6dab85efab404b0338fe70b0bd73
by zinenko[mlir] Support opaque types in LLVM IR -> MLIR translation
LLVM IR is moving towards adoption of opaque pointer types. These require extra information to be passed when constructing some operations, in particular GEP and Alloca. Adapt the builders of said operations and modify the translation code to handle both opaque and non-opaque pointers.
This incidentally adds the translation for Alloca alignment and fixes the translation of struct-related GEP indices that must be constant.
Reviewed By: wsmoses
Differential Revision: https://reviews.llvm.org/D123792
|
 | mlir/test/Target/LLVMIR/import-opaque.ll |
 | mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td |
 | mlir/lib/Target/LLVMIR/TypeFromLLVM.cpp |
 | mlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp |
 | mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp |
 | mlir/test/Target/LLVMIR/import.ll |
Commit
bed8212157bbf298cddf2e156940452e5067ea05
by jeffniu22[mlir][ods][NFC] Move enum attribute definitions from OpBase.td to EnumAttr.td
This diff moves `EnumAttr` tablegen definitions (specifically, `IntEnumAttr` and `BitEnumAttr`-related classes) from `OpBase.td` to `EnumAttr.td`. No functionality is changed.
Reviewed By: rriddle
Differential Revision: https://reviews.llvm.org/D123551
|
 | mlir/include/mlir/IR/EnumAttr.td |
 | mlir/include/mlir/IR/OpBase.td |
 | mlir/test/mlir-tblgen/op-attribute.td |
 | mlir/include/mlir/Dialect/Arithmetic/IR/ArithmeticBase.td |
 | mlir/unittests/TableGen/enums.td |
 | mlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td |
 | mlir/include/mlir/Dialect/Vector/IR/VectorOps.td |
 | mlir/include/mlir/Dialect/GPU/ParallelLoopMapperAttr.td |
Commit
ca2be81e34a6d87edb8e555dfac94ab68ee20f70
by pklausler[flang] Fix Symbol::Rank for ProcEntityDetails
When a procedure pointer or procedure dummy argument has a defined interface, the rank of the pointer (or dummy) is the rank of the interface.
Also tweak code discovered in shape analysis when investigating this problam so that it returns a vector of emptied extents rather than std::nullopt when the extents are not scope-invariant, so that the rank can at least be known.
Differential Revision: https://reviews.llvm.org/D123727
|
 | flang/lib/Evaluate/shape.cpp |
 | flang/include/flang/Semantics/symbol.h |
 | flang/test/Evaluate/rewrite01.f90 |
Commit
ed499ddcdaa6a47d21d98c12f29a94386cd4643a
by gh[MLIR] Fix operation clone
Operation clone is currently faulty.
Suppose you have a block like as follows:
``` (%x0 : i32) { %x1 = f(%x0) return %x1 } ```
The test case we have is that we want to "unroll" this, in which we want to change this to compute `f(f(x0))` instead of just `f(x0)`. We do so by making a copy of the body at the end of the block and set the uses of the argument in the copy operations with the value returned from the original block. This is implemented as follows: 1) map to the block arguments to the returned value (`map[x0] = x1`). 2) clone the body
Now for this small example, this works as intended and we get the following.
``` (%x0 : i32) { %x1 = f(%x0) %x2 = f(%x1) return %x2 } ```
This is because the current logic to clone `x1 = f(x0)` first looks up the arguments in the map (which finds `x0` maps to `x1` from the initialization), and then sets the map of the result to the cloned result (`map[x1] = x2`).
However, this fails if `x0` is not an argument to the op, but instead used inside the region, like below.
``` (%x0 : i32) { %x1 = f() { yield %x0 } return %x1 } ```
This is because cloning an op currently first looks up the args (none), sets the map of the result (`map[%x1] = %x2`), and then clones the regions. This results in the following, which is clearly illegal:
``` (%x0 : i32) { %x1 = f() { yield %x0 } %x2 = f() { yield %x2 } return %x2 } ```
Diving deeper, this is partially due to the ordering (how this PR fixes it), as well as how region cloning works. Namely it will first clone with the mapping, and then it will remap all operands. Since the ordering above now has a map of `x0 -> x1` and `x1 -> x2`, we end up with the incorrect behavior here.
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D122531
|
 | mlir/include/mlir/IR/Operation.h |
 | mlir/test/lib/IR/TestClone.cpp |
 | mlir/test/lib/IR/CMakeLists.txt |
 | mlir/lib/IR/Operation.cpp |
 | mlir/tools/mlir-opt/mlir-opt.cpp |
 | mlir/test/IR/test-clone.mlir |
Commit
04e094a33629e97d4ec51db4d5ca56066d82b030
by i[PGO] Remove legacy PM passes
Legacy PM for optimization pipeline was deprecated in 13.0.0 and Clang dropped legacy PM support in D123609. This change removes legacy PM passes for PGO so that downstream projects won't be able to use it. It seems appropriate to start removing such "add-on" features like instrumentations, before we remove more stuff after 15.x is branched.
I have checked many LLVM users and only ldc[1] uses the legacy PGO pass.
[1]: https://github.com/ldc-developers/ldc/issues/3961
Reviewed By: davidxl
Differential Revision: https://reviews.llvm.org/D123834
|
 | llvm/include/llvm/InitializePasses.h |
 | llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp |
 | llvm/test/CodeGen/AMDGPU/opt-pipeline.ll |
 | llvm/include/llvm/Transforms/Instrumentation.h |
 | llvm/lib/Transforms/IPO/PassManagerBuilder.cpp |
 | llvm/lib/Transforms/Instrumentation/PGOMemOPSizeOpt.cpp |
 | llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp |
 | llvm/include/llvm/LinkAllPasses.h |
 | llvm/include/llvm/Transforms/IPO/PassManagerBuilder.h |
 | llvm/lib/Transforms/Instrumentation/Instrumentation.cpp |
Commit
3430ae1e7baa11992084e3624eb28f9dfd941ec7
by jeffniu22[mlir] Update LICM to support Graph Regions
Changes the algorithm of LICM to support graph regions (no guarantee of topologically sorted order). Also fixes an issue where ops with recursive side effects and regions would not be hoisted if any nested ops used operands that were defined within the nested region.
Reviewed By: rriddle
Differential Revision: https://reviews.llvm.org/D122465
|
 | mlir/lib/Interfaces/LoopLikeInterface.cpp |
 | mlir/test/lib/Dialect/Test/TestOps.td |
 | mlir/test/Transforms/loop-invariant-code-motion.mlir |
Commit
2f78f9455f85e61fcfeb1dc3a13d62c912aa0c96
by zequanwu[LLDB][NativePDB] Fix subfield_register_simple_type.s test
|
 | lldb/test/Shell/SymbolFile/NativePDB/subfield_register_simple_type.s |