Commit
bd7f7e2ebae4e5bc95f0ca65efbc72575ca31c14
by sander.desmalen[GlobalISel] Add scalable property to LLT types.
This patch aims to add the scalable property to LLT. The rest of the patch-series changes the interfaces to take/return ElementCount and TypeSize, which both have the ability to represent the scalable property.
The changes are mostly mechanical and aim to be non-functional changes for fixed-width vectors.
For scalable vectors some unit tests have been added, but no effort has been put into making any of the GlobalISel algorithms work with scalable vectors yet. That will be left as future work.
The work is split into a series of 5 patches to make reviews easier.
Reviewed By: arsenm
Differential Revision: https://reviews.llvm.org/D104450
|
 | llvm/lib/Support/LowLevelType.cpp |
 | llvm/lib/CodeGen/LowLevelType.cpp |
 | llvm/unittests/CodeGen/LowLevelTypeTest.cpp |
 | llvm/include/llvm/Support/LowLevelTypeImpl.h |
 | llvm/utils/TableGen/GlobalISelEmitter.cpp |
Commit
c97cf73867dd42d18361226ad43dfca00278dce3
by fraser[Utils][vim] Add missing highlights for fast-math flags
This patch adds the `afn`, `contract`, and `reassoc` fast-math flags.
It also fixes up `fneg`'s order in the alphabetized list.
Reviewed By: MaskRay, craig.topper
Differential Revision: https://reviews.llvm.org/D104541
|
 | llvm/utils/vim/syntax/llvm.vim |
Commit
060208b4c8b78b2456b8440d9597c9f584676bf4
by springerm[mlir][NFC] Move SubTensorOp and SubTensorInsertOp to TensorDialect
The main goal of this commit is to remove the dependency of Standard dialect on the Tensor dialect.
* Rename SubTensorOp -> tensor.extract_slice, SubTensorInsertOp -> tensor.insert_slice. * Some helper functions are (already) duplicated between the Tensor dialect and the MemRef dialect. To keep this commit smaller, this will be cleaned up in a separate commit. * Additional dialect dependencies: Shape --> Tensor, Tensor --> Standard * Remove dialect dependencies: Standard --> Tensor * Move canonicalization test cases to correct dialect (Tensor/MemRef).
Note: This is a fixed version of https://reviews.llvm.org/D104499, which was reverted due to a missing update to two CMakeFile.txt.
Differential Revision: https://reviews.llvm.org/D104676
|
 | mlir/test/Dialect/Linalg/comprehensive-func-bufferize.mlir |
 | mlir/test/Transforms/canonicalize.mlir |
 | mlir/test/Dialect/Linalg/tile-tensors.mlir |
 | mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp |
 | mlir/test/Dialect/Linalg/roundtrip.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-subtensor-insert.mlir |
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgOps.td |
 | mlir/test/Conversion/ShapeToStandard/shape-to-standard.mlir |
 | mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp |
 | mlir/test/Dialect/Tensor/canonicalize.mlir |
 | mlir/lib/Dialect/Linalg/Transforms/Bufferize.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp |
 | mlir/test/Dialect/Linalg/subtensor-of-padtensor.mlir |
 | mlir/test/IR/invalid-ops.mlir |
 | mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp |
 | mlir/test/Dialect/Linalg/hoist-padding.mlir |
 | mlir/test/Dialect/Linalg/hoisting.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-subtensor-insert-multiple-uses.mlir |
 | mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td |
 | mlir/lib/Dialect/Linalg/Transforms/Hoisting.cpp |
 | mlir/lib/Conversion/ShapeToStandard/ShapeToStandard.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp |
 | mlir/test/Dialect/Linalg/comprehensive-func-bufferize-analysis.mlir |
 | mlir/test/Dialect/Linalg/tile-and-fuse-tensors.mlir |
 | mlir/test/IR/core-ops.mlir |
 | mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp |
 | mlir/test/Dialect/Linalg/tile-and-pad-tensors.mlir |
 | mlir/test/Dialect/Linalg/bufferize.mlir |
 | mlir/include/mlir/Dialect/Shape/IR/ShapeBase.td |
 | mlir/test/Dialect/Linalg/fusion-tensor-pattern.mlir |
 | mlir/lib/Dialect/Tensor/IR/CMakeLists.txt |
 | mlir/test/Dialect/Linalg/canonicalize.mlir |
 | mlir/include/mlir/Dialect/Shape/IR/Shape.h |
 | mlir/include/mlir/Dialect/StandardOps/IR/Ops.h |
 | mlir/include/mlir/Dialect/Linalg/Transforms/Hoisting.h |
 | mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h |
 | mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir |
 | mlir/test/Dialect/Linalg/tile-and-distribute.mlir |
 | mlir/include/mlir/Dialect/Tensor/IR/Tensor.h |
 | mlir/test/Dialect/Linalg/drop-unit-extent-dims.mlir |
 | mlir/include/mlir/Dialect/Tensor/IR/TensorOps.td |
 | mlir/test/Conversion/TosaToStandard/tosa-to-standard.mlir |
 | mlir/include/mlir/Dialect/Linalg/Utils/Utils.h |
 | mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp |
 | mlir/lib/Conversion/TosaToStandard/TosaToStandard.cpp |
 | mlir/include/mlir/Dialect/StandardOps/IR/Ops.td |
 | mlir/test/Dialect/Linalg/fusion-sequence.mlir |
 | mlir/lib/Dialect/StandardOps/CMakeLists.txt |
 | mlir/test/Dialect/MemRef/canonicalize.mlir |
 | mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp |
 | mlir/test/Dialect/Standard/canonicalize.mlir |
 | mlir/lib/Dialect/Tensor/IR/TensorOps.cpp |
 | mlir/test/lib/Dialect/Linalg/TestLinalgFusionTransforms.cpp |
 | mlir/lib/Conversion/TosaToStandard/TosaToStandardPass.cpp |
 | mlir/lib/Dialect/StandardOps/IR/Ops.cpp |
 | mlir/test/Dialect/Linalg/vectorization.mlir |
 | mlir/test/Dialect/SCF/canonicalize.mlir |
 | mlir/lib/Dialect/Linalg/Utils/Utils.cpp |
 | mlir/include/mlir/Conversion/Passes.td |
Commit
d7227a5bc718940fa9bf90ba443e1dff6ded68cc
by 1.int32[clang][Analyzer] Track null stream argument in alpha.unix.Stream .
The checker contains check for passing a NULL stream argument. This change should make more easy to identify where the passed pointer becomes NULL.
Reviewed By: NoQ
Differential Revision: https://reviews.llvm.org/D104640
|
 | clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp |
 | clang/test/Analysis/stream-note.c |
Commit
04395fd6cb0949dfe628353cd61bcec3625b8c0d
by nikita.ppv[ConstantFolding] Separate conditions in GEP evaluation (NFC)
Handle to gep p, 0-v case separately, and not as part of the loop that ensures all indices are constant integers. Those two things are not really related.
|
 | llvm/lib/Analysis/ConstantFolding.cpp |
Commit
c6a91ee6aaaacbda0c37973112b2e0d609c82321
by graham.hunter[Clang][OpenMP] Monotonic does not apply to SIMD
The codegen for simd constructs was affected by the presence (or absence) of the 'monotonic' schedule modifier for worksharing loops. The modifier is only intended to apply to the scheduling of chunks for a thread, not iterations of a loop inside a chunk.
In addition, the monotonic modifier was applied to worksharing loops by default if no schedule clause was present; the referenced part of the OpenMP 4.5 spec in the code (section 2.7.1) only applies if the user specified a schedule clause with a static kind but no modifier. Without a user-specified schedule clause we should default to nonmonotonic scheduling.
Reviewed By: ABataev
Differential Revision: https://reviews.llvm.org/D103793
|
 | clang/test/OpenMP/for_simd_codegen.cpp |
 | clang/test/OpenMP/schedule_codegen.cpp |
 | clang/lib/CodeGen/CodeGenFunction.h |
 | clang/test/OpenMP/teams_distribute_parallel_for_simd_schedule_codegen.cpp |
 | clang/lib/CodeGen/CGStmtOpenMP.cpp |
 | clang/test/OpenMP/target_parallel_for_simd_codegen.cpp |
 | clang/test/OpenMP/teams_distribute_simd_codegen.cpp |
 | clang/test/OpenMP/teams_distribute_simd_dist_schedule_codegen.cpp |
 | clang/test/OpenMP/target_teams_distribute_simd_codegen.cpp |
 | clang/test/OpenMP/target_teams_distribute_parallel_for_simd_if_codegen.cpp |
 | clang/test/OpenMP/distribute_parallel_for_simd_codegen.cpp |
 | clang/test/OpenMP/target_teams_distribute_simd_dist_schedule_codegen.cpp |
 | clang/test/OpenMP/parallel_for_simd_codegen.cpp |
 | clang/test/OpenMP/target_teams_distribute_parallel_for_simd_schedule_codegen.cpp |
 | clang/test/OpenMP/distribute_simd_codegen.cpp |
Commit
703b0ed8e208e5e6cf001689ea0a92296552f032
by martin[ADT] Add StringRef consume_front_lower and consume_back_lower
These serve as a convenient combination of consume_front/back and startswith_lower/endswith_lower, consistent with other existing case insensitive methods named <operation>_lower.
Differential Revision: https://reviews.llvm.org/D104218
|
 | llvm/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp |
 | llvm/unittests/ADT/StringRefTest.cpp |
 | llvm/include/llvm/ADT/StringRef.h |
 | llvm/tools/llvm-rc/llvm-rc.cpp |
Commit
35cf5b109769ceb356a9013ca0c0f60fbd230080
by Raphael Isemann[lldb] Bumb Clang version requirement for TestBasicEntryValues.py to 11
The test only passes with Clang>=11 so adjust the decorator.
Failure output for Clang 10 is:
--- FileCheck trace (code=1) --- FileCheck main.cpp -check-prefix=FUNC1-GNU
FileCheck input: Address: a.out[0x0000000000401127] (a.out.PT_LOAD[1]..text + 263) Summary: a.out`func1(int&) + 23 at main.cpp:25:1 Module: file = "functionalities/param_entry_vals/basic_entry_values/BasicEntryValues_GNU.test_dwo/a.out", arch = "x86_64" CompileUnit: id = {0x00000000}, file = "functionalities/param_entry_vals/basic_entry_values/main.cpp", language = "c++11" Function: id = {0x400000000000010a}, name = "func1(int&)", mangled = "_Z5func1Ri", range = [0x0000000000401110-0x0000000000401129) FuncType: id = {0x400000000000010a}, byte-size = 0, decl = main.cpp:13, compiler_type = "void (int &)" Blocks: id = {0x400000000000010a}, range = [0x00401110-0x00401129) LineEntry: [0x0000000000401127-0x0000000000401130): functionalities/param_entry_vals/basic_entry_values/main.cpp:25:1 Symbol: id = {0x0000002c}, range = [0x0000000000401110-0x0000000000401129), name="func1(int&)", mangled="_Z5func1Ri"
FileCheck output:
functionalities/param_entry_vals/basic_entry_values/main.cpp:23:16: error: FUNC1-GNU: expected string not found in input // FUNC1-GNU: name = "sink", type = "int &", location = DW_OP_GNU_entry_value
|
 | lldb/test/API/functionalities/param_entry_vals/basic_entry_values/TestBasicEntryValues.py |
Commit
d6565a2dbcbe0932cd5cbb95bf2fc06855dfe938
by thakis[lld/mac] Add explicit "no unwind info" entries for functions without unwind info
Fixes PR50529. With this, lld-linked Chromium base_unittests passes on arm macs.
Surprisingly, no measurable impact on link time.
Differential Revision: https://reviews.llvm.org/D104681
|
 | lld/MachO/UnwindInfoSection.cpp |
 | lld/test/MachO/tools/validate-unwind-info.py |
 | lld/test/MachO/compact-unwind.s |
Commit
98e2b1a8dd8ff03b6289a40a16fe749834257494
by Raphael Isemann[lldb] Adjust Clang version requirements for tail_call_frames tests
Those tests are all failing for older Clang versions. This is adding the respective test decorators for the passing Clang versions to get the recently revived matrix bot green.
|
 | lldb/test/API/functionalities/tail_call_frames/inlining_and_tail_calls/TestInliningAndTailCalls.py |
 | lldb/test/API/functionalities/tail_call_frames/unambiguous_sequence/TestUnambiguousTailCalls.py |
 | lldb/test/API/functionalities/tail_call_frames/disambiguate_call_site/TestDisambiguateCallSite.py |
 | lldb/test/API/functionalities/tail_call_frames/disambiguate_tail_call_seq/TestDisambiguateTailCallSeq.py |
 | lldb/test/API/functionalities/tail_call_frames/disambiguate_paths_to_common_sink/TestDisambiguatePathsToCommonSink.py |
 | lldb/test/API/functionalities/tail_call_frames/thread_step_out_message/TestArtificialFrameStepOutMessage.py |
 | lldb/test/API/functionalities/tail_call_frames/sbapi_support/TestTailCallFrameSBAPI.py |
 | lldb/test/API/functionalities/tail_call_frames/cross_object/TestCrossObjectTailCalls.py |
 | lldb/test/API/functionalities/tail_call_frames/cross_dso/TestCrossDSOTailCalls.py |
Commit
d17798823ca2213af353e125f6f5233522dda7ce
by flo[SCEV] Retain AddExpr flags when subtracting a foldable constant.
Currently we drop wrapping flags for expressions like (A + C1)<flags> - C2.
But we can retain flags under certain conditions:
* Adding a smaller constant is NUW if the original AddExpr was NUW.
* Adding a constant with the same sign and small magnitude is NSW, if the original AddExpr was NSW.
This can improve results after using `SimplifyICmpOperands`, which may subtract one in order to use stricter predicates, as is the case for `isKnownPredicate`.
Reviewed By: efriedma
Differential Revision: https://reviews.llvm.org/D104319
|
 | llvm/lib/Analysis/ScalarEvolution.cpp |
 | llvm/test/Analysis/LoopAccessAnalysis/reverse-memcheck-bounds.ll |
 | llvm/test/Transforms/IndVarSimplify/eliminate-exit-no-dl.ll |
Commit
bb6afc69b212b756b51b165672bd3531032afa01
by herhut[mlir][memref] Add memref.copy operation
As the name suggests, it copies from one memref to another.
Differential Revision: https://reviews.llvm.org/D104657
|
 | mlir/test/Dialect/MemRef/ops.mlir |
 | mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td |
 | mlir/test/Dialect/MemRef/invalid.mlir |
Commit
28058d4cd10dac8129a5d5760597e832ea6eef81
by omair.javaid[LLDB] Skip TestExitDuringExpression on aarch64/linux buildbot
TestExitDuringExpression test_exit_before_one_thread_no_unwind fails sporadically on both Arm and AArch64 linux buildbots. This seems like manifesting itself on a fully loaded machine. I have not found a reliable timeout value so marking it skip for now.
|
 | lldb/test/API/functionalities/thread/exit_during_expression/TestExitDuringExpression.py |
Commit
2ef1fbfe0e341c3d4706f54ae15b8a5a8eee7b16
by danilaAdd norm sub-target feature to table gen for ARC
This adds the `norm` sub-target feature (without backing implementation for now) to table gen.
Differential Revision: https://reviews.llvm.org/D104558
|
 | llvm/lib/Target/ARC/ARC.td |
 | llvm/lib/Target/ARC/ARCSubtarget.h |
Commit
c462048cc4c088f6d12e6a55c1ceb54fd731a2b3
by Raphael Isemann[lldb][NFC] Use SubsystemRAII in XcodeSDKModuleTests
|
 | lldb/unittests/SymbolFile/DWARF/XcodeSDKModuleTests.cpp |
Commit
9d110f915918fc6c2338837a15856c92a79f7b94
by Pushpinder.Singh[AMDGPU][Libomptarget] Move allow_access_to_all_gpu_agents to rtl.cpp
Moving this method helps eliminate a use of g_atl_machine.
Reviewed By: JonChesterfield
Differential Revision: https://reviews.llvm.org/D104691
|
 | openmp/libomptarget/plugins/amdgpu/impl/internal.h |
 | openmp/libomptarget/plugins/amdgpu/impl/data.cpp |
 | openmp/libomptarget/plugins/amdgpu/src/rtl.cpp |
 | openmp/libomptarget/plugins/amdgpu/impl/system.cpp |
Commit
82c1fb575034f81f861a299d8280a5668854a2bc
by ivan.butygin[mlir] Fix invalid handling of AllocOp symbolOperands by SimplifyAllocConst.
symbolOperands were completely ignored by SimplifyAllocConst. Also, slightly improved diagnostic message for verifyAllocLikeOp.
Differential Revision: https://reviews.llvm.org/D104260
|
 | mlir/test/Dialect/MemRef/canonicalize.mlir |
 | mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp |
 | mlir/test/Transforms/canonicalize.mlir |
Commit
5dd4d0d46fb892975bbb3a086da5a3a9996ced4d
by Andrey.Churbanov[OpenMP] libomp: fix dynamic loop dispatcher
Restructured dynamic loop dispatcher code. Fixed use of dispatch buffers for nonmonotonic dynamic (static_steal) schedule: - eliminated possibility of stealing iterations of the wrong loop when victim thread changed its buffer to work on another loop; - fixed race when victim thread changed its buffer to work in nested parallel; - eliminated "static" property of the schedule, that is now a single thread can execute whole loop.
Differential Revision: https://reviews.llvm.org/D103648
|
 | openmp/runtime/src/kmp_dispatch_hier.h |
 | openmp/runtime/test/worksharing/for/omp_for_schedule_runtime.c |
 | openmp/runtime/src/kmp_settings.cpp |
 | openmp/runtime/src/kmp_dispatch.h |
 | openmp/runtime/src/kmp_dispatch.cpp |
 | openmp/runtime/test/worksharing/for/omp_par_in_loop.c |
 | openmp/runtime/src/kmp.h |
 | openmp/runtime/test/env/kmp_set_dispatch_buf.c |
 | openmp/runtime/test/worksharing/for/kmp_set_dispatch_buf.c |
Commit
87bdde4962ea926e81a3534119ac8f02901b75b9
by nikita.ppv[ConstantFold] Skip bitcast -> GEP transform for opaque pointers
Same as with the InstCombine transform, this is not possible for bitcasts involving opaque pointers, as GEP preserves opaqueness.
|
 | llvm/lib/IR/ConstantFold.cpp |
 | llvm/test/Transforms/InstCombine/opaque-ptr.ll |
Commit
e638a290f7d0bb85dbf81ba34eaaeef8c8d1b42d
by nikita.ppv[ConstantFold] Delay fetching pointer element type
Don't do this while stipping pointer casts, instead fetch it at the end. This improves compatibility with opaque pointers for the case where the base object is not opaque.
|
 | llvm/test/Transforms/InstCombine/opaque-ptr.ll |
 | llvm/lib/Analysis/ConstantFolding.cpp |
Commit
34cccdaed7e7952a9191231ffa62b1b22eac35c8
by flo[BitcodeReader] Validate Strtab before accessing.
This fixes a crash with invalid bitcode files that have records referencing names in Strtab, but Strtab is not present or the index is out-of-bounds.
This fixes the following clusterfuzz issue: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=29895
Reviewed By: arsenm
Differential Revision: https://reviews.llvm.org/D95554
|
 | llvm/test/Bitcode/invalid-record-strtab.ll |
 | llvm/test/Bitcode/invalid-record-strtab.ll.bc |
 | llvm/lib/Bitcode/Reader/BitcodeReader.cpp |
Commit
952a0f23852ce9448b10458449b0aa39061ffee5
by huberjn[Libomptarget] Introduce new globalization runtime calls
Summary: This patch introduces the new globalization runtime to be used by D97680. These runtime calls will replace the __kmpc_data_sharing_push_stack and __kmpc_data_sharing_pop_stack functions.
Reviewed By: tianshilei1992
Differential Revision: https://reviews.llvm.org/D102532
|
 | openmp/libomptarget/deviceRTLs/common/src/omptarget.cu |
 | openmp/libomptarget/deviceRTLs/interface.h |
 | openmp/libomptarget/deviceRTLs/common/src/data_sharing.cu |
Commit
a83ce95b097689f4ebd2c3b45c0778d0b6946d00
by graham.hunter[clang] Remove unused capture in closure
c6a91ee6aaaa removed uses of IsMonotonic from OpenMP SIMD codegen, but that left a capture of the variable unused which upset buildbots using -Werror.
|
 | clang/lib/CodeGen/CGStmtOpenMP.cpp |
Commit
b2f48cc9142012aeac16b8a28070f630e6711d5d
by rosie.sumpter[SLP][AArch64] Add SLP vectorizer tests for XOR and AND reductions. NFC
These regression tests show missed SLP vectorization opportunities, which will be fixed in a future commit (see: https://reviews.llvm.org/D104538).
Differential Revision: https://reviews.llvm.org/D104708
|
 | llvm/test/Transforms/SLPVectorizer/AArch64/slp-and-reduction.ll |
 | llvm/test/Transforms/SLPVectorizer/AArch64/slp-xor-reduction.ll |
Commit
48e2d3a5c23f7a11972c30f92d48d85a6a6bf1bd
by Raphael Isemann[lldb][NFC] Remove an outdated comment in HostInfoBase
We should *never* use static local variables in this file as this makes unittesting the plugin code impossible (and this whole 'testing' thing has turned out to be rather useful so far).
|
 | lldb/source/Host/common/HostInfoBase.cpp |
Commit
68d133a3e8c961965eff9a66b36742a7fcb30165
by huberjn[OpenMP] Simplify GPU memory globalization
Summary: Memory globalization is required to maintain OpenMP standard semantics for data sharing between worker and master threads. The GPU cannot share data between its threads so must allocate global or shared memory to store the data in. Currently this is implemented fully in the frontend using the `__kmpc_data_sharing_push_stack` and __kmpc_data_sharing_pop_stack` functions to emulate standard CPU stack sharing. The front-end scans the target region for variables that escape the region and must be shared between the threads. Each variable then has a field created for it in a global record type.
This patch replaces this functinality with a single allocation command, effectively mimicing an alloca instruction for the variables that must be shared between the threads. This will be much slower than the current solution, but makes it much easier to optimize as we can analyze each variable independently and determine if it is not captured. In the future, we can replace these calls with an `alloca` and small allocations can be pushed to shared memory.
Reviewed By: tianshilei1992
Differential Revision: https://reviews.llvm.org/D97680
|
 | clang/test/OpenMP/nvptx_teams_codegen.cpp |
 | clang/test/OpenMP/nvptx_lambda_capturing.cpp |
 | clang/test/OpenMP/nvptx_target_teams_distribute_parallel_for_codegen.cpp |
 | clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp |
 | clang/test/OpenMP/nvptx_nested_parallel_codegen.cpp |
 | clang/lib/CodeGen/CGOpenMPRuntimeGPU.h |
 | clang/test/OpenMP/nvptx_target_teams_distribute_codegen.cpp |
 | clang/test/OpenMP/nvptx_data_sharing.cpp |
 | llvm/test/Transforms/PhaseOrdering/openmp-opt-module.ll |
 | llvm/include/llvm/Frontend/OpenMP/OMPKinds.def |
 | clang/test/OpenMP/declare_target_codegen_globalization.cpp |
 | clang/test/OpenMP/assumes_include_nvptx.cpp |
 | clang/test/OpenMP/nvptx_target_parallel_codegen.cpp |
 | llvm/test/Transforms/OpenMP/globalization_remarks.ll |
 | clang/test/OpenMP/nvptx_parallel_for_codegen.cpp |
 | clang/test/OpenMP/nvptx_target_codegen.cpp |
 | clang/test/OpenMP/nvptx_distribute_parallel_generic_mode_codegen.cpp |
 | clang/test/OpenMP/nvptx_target_parallel_reduction_codegen.cpp |
 | clang/test/OpenMP/nvptx_target_parallel_reduction_codegen_tbaa_PR46146.cpp |
 | clang/test/OpenMP/nvptx_teams_reduction_codegen.cpp |
 | llvm/lib/Transforms/IPO/OpenMPOpt.cpp |
 | clang/test/OpenMP/nvptx_target_parallel_num_threads_codegen.cpp |
 | clang/test/OpenMP/nvptx_target_parallel_proc_bind_codegen.cpp |
 | clang/test/OpenMP/target_parallel_debug_codegen.cpp |
 | clang/test/OpenMP/nvptx_target_teams_codegen.cpp |
 | clang/test/OpenMP/nvptx_multi_target_parallel_codegen.cpp |
 | clang/test/OpenMP/nvptx_target_teams_distribute_parallel_for_simd_codegen.cpp |
 | clang/test/OpenMP/nvptx_parallel_codegen.cpp |
Commit
6c782e6eb0390097a02ae20bed7c502b8ee15696
by flo[SCEV] Reduce code to handle predicates in applyLoopGuards (NFC).
Hoist out common recurrence check and sink updating the map, to reduce the code required to support additional predicates.
|
 | llvm/lib/Analysis/ScalarEvolution.cpp |
Commit
873ff5a72864fdf60614cca8adbd0d869fc9a9a2
by jingu.kang[SimpleLoopUnswich] Fixa a bug on ComputeUnswitchedCost with partial unswitch
There was a bug from cost calculation for partially invariant unswitch.
The costs of non-duplicated blocks are substracted from the total LoopCost, so anything that is duplicated should not be counted.
Differential Revision: https://reviews.llvm.org/D103816
|
 | llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp |
 | llvm/test/Transforms/SimpleLoopUnswitch/partial-unswitch.ll |
Commit
a8dd7094d364f6fb4921627a36b920e5098e88c3
by david.spickett[lldb] Remove more redundant SetStatus(eReturnStatusFailed)
Mostly by converting uses of GetErrorStream to AppendError, so that the call to SetStatus is implicit.
Some remain where it isn't certain that you'll have a message to set, or you want the output to be on stdout.
One place in CommandObjectWatchpoint previously didn't set the status to failed at all. However it's pretty obvious that it should do so.
Reviewed By: teemperor
Differential Revision: https://reviews.llvm.org/D104697
|
 | lldb/source/Commands/CommandObjectPlatform.cpp |
 | lldb/source/Commands/CommandObjectVersion.cpp |
 | lldb/source/Commands/CommandObjectWatchpoint.cpp |
 | lldb/source/Interpreter/CommandObject.cpp |
 | lldb/source/Commands/CommandObjectReproducer.cpp |
 | lldb/source/Commands/CommandObjectTarget.cpp |
Commit
ea011ec5ed53599305de62ca5fcfd31f4b3448c3
by meera.nakrani[AArch64LoadStoreOptimizer] Recommit: Generate more STPs by renaming registers earlier
This is a recommit that fixes unwanted STP generation by checking that the base register has not been modified or used elsewhere.
Our initial motivating case was memcpy's with alignments > 16. The loads/stores, to which small memcpy's expand, are kept together in several places so that we get a sequence like this for a 64 bit copy: LD w0 LD w1 ST w0 ST w1 The load/store optimiser can generate a LDP/STP w0, w1 from this because the registers read/written are consecutive. In our case however, the sequence is optimised during ISel, resulting in: LD w0 ST w0 LD w0 ST w0 This instruction reordering allows reuse of registers. Since the registers are no longer consecutive (i.e. they are the same), it inhibits LDP/STP creation. The approach here is to perform renaming: LD w0 ST w0 LD w1 ST w1 to enable the folding of the stores into a STP. We do not yet generate the LDP due to a limitation in the renaming implementation, but plan to look at that in a follow-up so that we fully support this case. While this was initially motivated by certain memcpy's, this is a general approach and thus is beneficial for other cases too, as can be seen in some test changes.
Differential Revision: https://reviews.llvm.org/D103597
|
 | llvm/test/CodeGen/AArch64/consthoist-gep.ll |
 | llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp |
 | llvm/test/CodeGen/AArch64/GlobalISel/byval-call.ll |
 | llvm/test/CodeGen/AArch64/stp-opt-with-renaming.mir |
 | llvm/test/CodeGen/AArch64/ldst-opt.ll |
Commit
e790d3667ed4d8f8df0b55f7c93fee0045c0e626
by nikita.ppv[OpaquePtr] Handle addrspacecasts in InstCombine
This adds support for addrspace casts involving opaque pointers to InstCombine, as well as the isEliminableCastPair() helper (otherwise the assertion failure would just move there).
Add PointerType::hasSameElementTypeAs() to hide the element type details.
Differential Revision: https://reviews.llvm.org/D104668
|
 | llvm/test/Transforms/InstCombine/opaque-ptr.ll |
 | llvm/include/llvm/IR/DerivedTypes.h |
 | llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp |
 | llvm/lib/IR/Instructions.cpp |
Commit
244e98ff480859e969a99d07064745b075f3a892
by huberjn[Libomptarget] Improve device runtime implementation for globalized variables.
Currently the runtime implementation of `__kmpc_alloc_shared` is extremely slow because it allocated memory for each thread individually. This patch adds a small buffer for the threads to share data and will greatly improve performance for builds where all globalization could not be optimized out. If the shared buffer is full, then memory will not only be allocated per-warp rather than per-thread.
Depends on D97680
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D104666
|
 | openmp/libomptarget/deviceRTLs/common/omptarget.h |
 | openmp/libomptarget/deviceRTLs/common/src/data_sharing.cu |
 | openmp/libomptarget/deviceRTLs/common/src/omptarget.cu |
 | openmp/libomptarget/deviceRTLs/interface.h |
 | openmp/libomptarget/deviceRTLs/common/src/omp_data.cu |
Commit
6fc51c9f7d6647ba78e5a235e7d8bfcf3ab2ede0
by huberjn[OpenMP] Replace GPU globalization calls with shared memory in the middle-end
Summary: The changes introduced in D97680 create a simpler interface to code that needs to be globalized. This interface is used to simplify the globalization calls in the middle end. We can check any globalization call that is only called by a single thread in the team and replace it with a static shared memory buffer.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D97818
|
 | llvm/lib/Transforms/IPO/OpenMPOpt.cpp |
 | llvm/test/Transforms/OpenMP/replace_globalization.ll |
Commit
dd1b121c99de6bd7186e23e2bf34edb02db7c076
by isanbard[llvm-diff] Constify APIs so that there aren't conflicts
Some APIs work with const variables while others don't. This can cause conflicts when calling one from the other.
This is NFC.
Differential Revision: https://reviews.llvm.org/D104719
|
 | llvm/tools/llvm-diff/DiffConsumer.cpp |
 | llvm/tools/llvm-diff/DifferenceEngine.h |
 | llvm/tools/llvm-diff/DiffLog.cpp |
 | llvm/tools/llvm-diff/DiffConsumer.h |
 | llvm/tools/llvm-diff/DiffLog.h |
 | llvm/tools/llvm-diff/DifferenceEngine.cpp |
Commit
3accff2553c00c3237876edd6066e1701c52e66c
by i[llvm-objcopy] Fix some namespace style issues
https://llvm.org/docs/CodingStandards.html#use-namespace-qualifiers-to-implement-previously-declared-functions
Reviewed By: jhenderson
Differential Revision: https://reviews.llvm.org/D104693
|
 | llvm/tools/llvm-objcopy/ConfigManager.cpp |
 | llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp |
 | llvm/tools/llvm-objcopy/ELF/Object.cpp |
Commit
c747b7d1d9a2c9e4ba82ce93c9273c1662d6994a
by Steven Wu[llvm] Fix lto tests that requires ld64
Since Xcode 13, ld64 requires linking libSystem for all the executable. Fix the tests that needs to run ld64 by linking libSystem from sysroot.
rdar://77332728
Reviewed By: fhahn
Differential Revision: https://reviews.llvm.org/D104332
|
 | llvm/test/tools/lto/hide-linkonce-odr.ll |
 | llvm/test/lit.cfg.py |
 | llvm/test/lit.site.cfg.py.in |
 | llvm/test/tools/lto/no-bitcode.s |
 | llvm/test/tools/lto/opt-level.ll |
 | llvm/test/tools/lto/print-stats.ll |
Commit
03d7e61c87eb94083d22ff55cf30c0a378ab6824
by huberjn[OpenMP] Internalize functions in OpenMPOpt to improve IPO passes
Summary: Currently the attributor needs to give up if a function has external linkage. This means that the optimization introduced in D97818 will only apply to static functions. This change uses the Attributor to internalize OpenMP device routines by making a copy of each function with private linkage and replacing the uses in the module with it. This allows for the optimization to be applied to any regular function.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D102824
|
 | llvm/lib/Transforms/IPO/Attributor.cpp |
 | llvm/include/llvm/Transforms/IPO/Attributor.h |
 | llvm/lib/Transforms/IPO/OpenMPOpt.cpp |
 | llvm/test/Transforms/OpenMP/replace_globalization.ll |
 | clang/test/OpenMP/remarks_parallel_in_multiple_target_state_machines.c |
 | clang/test/OpenMP/remarks_parallel_in_target_state_machine.c |
 | llvm/test/Transforms/OpenMP/single_threaded_execution.ll |
Commit
002905907432b19c1ce303d2cd8e3896dd360683
by tianshilei1992[NFC][OpenMP][Offloading] Unified the construction of mapping table entry
This patch unifies construction of mapping table entry to use `emplace`.
Reviewed By: grokos
Differential Revision: https://reviews.llvm.org/D104580
|
 | openmp/libomptarget/src/device.cpp |
Commit
78d404a11dd33c8349fd9b6ef5876d523c457f0e
by hans[clang][c++20] Fix false warning for unused private fields when a class has only defaulted comparison operators.
Fixes bug 50263
When "unused-private-field" flag is on if you have a struct with private members and only defaulted comparison operators clang will warn about unused private fields.
If you where to write the comparison operators by hand no warning is produced.
This is a bug since defaulting a comparison operator uses all private members .
The fix is simple, in CheckExplicitlyDefaultedFunction just clear the list of unused private fields if the defaulted function is a comparison function.
Differential revision: https://reviews.llvm.org/D102186
|
 | clang/lib/Sema/SemaDeclCXX.cpp |
 | clang/test/SemaCXX/warn-unused-private-field.cpp |
Commit
7adf713a5e22b44c7cc746bcd379d844277a19f2
by Louis Dionne[libc++] Change forward_list::swap to use propagate_on_container_swap for noexcept specification
The current implementation of `std::forward_list::swap` uses `propagate_on_container_move_assignment` for `noexcept` specification. This patch changes it to use `propagate_on_container_swap`, as it should.
Fixes https://llvm.org/PR50224.
Differential Revision: https://reviews.llvm.org/D101899
|
 | libcxx/include/forward_list |
Commit
a7786badb75b8c7cd425fefaeefc0a99fe8b49d8
by Matthew.ArsenaultAMDGPU: Move zeroed FP high bits optimization to patterns
|
 | llvm/lib/Target/AMDGPU/SIInstructions.td |
 | llvm/lib/Target/AMDGPU/SIISelLowering.cpp |
 | llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h |
 | llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp |
 | llvm/lib/Target/AMDGPU/SIInstrInfo.td |
 | llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td |
 | llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp |
Commit
47553356ef0d3cda501af056baeba346002c62b3
by thakis[gn build] manually port c747b7d1d9a2 (config.osx_sysroot)
|
 | llvm/utils/gn/secondary/llvm/test/BUILD.gn |
Commit
40d6d2c49dd16641a6fd40916e1cc9a58513ed15
by zoecarver[libcxx][ranges] Add `ranges::iter_swap`.
Differential Revision: https://reviews.llvm.org/D102809
|
 | libcxx/include/iterator |
 | libcxx/include/module.modulemap |
 | libcxx/include/CMakeLists.txt |
 | libcxx/test/std/iterators/iterator.requirements/iterator.cust/iterator.cust.move/iter_move.pass.cpp |
 | libcxx/test/std/iterators/iterator.requirements/iterator.cust/unqualified_lookup_wrapper.h |
 | libcxx/include/__iterator/iter_swap.h |
 | libcxx/test/std/iterators/iterator.requirements/iterator.cust/iterator.cust.swap.pass.cpp |
Commit
f53d791520d85c5404381ff3ad92cb918256029d
by iImprove the diagnostic of DiagnosticInfoResourceLimit (and warn-stack-size in particular)
Before: `warning: stack size limit exceeded (888) in main` After: `warning: stack frame size (888) exceeds limit (100) in function 'main'` (the -Wframe-larger-than limit will be mentioned)
Reviewed By: nickdesaulniers
Differential Revision: https://reviews.llvm.org/D104667
|
 | llvm/test/CodeGen/X86/warn-stack.ll |
 | llvm/lib/CodeGen/PrologEpilogInserter.cpp |
 | llvm/test/CodeGen/ARM/warn-stack.ll |
 | llvm/test/CodeGen/AMDGPU/stack-size-overflow.ll |
 | clang/test/Misc/backend-stack-frame-diagnostics-fallback.cpp |
 | clang/test/Misc/backend-resource-limit-diagnostics.cl |
 | llvm/include/llvm/IR/DiagnosticInfo.h |
 | llvm/lib/IR/DiagnosticInfo.cpp |
 | llvm/test/CodeGen/AMDGPU/exceed-max-sgprs.ll |
Commit
d797a7f8da18e39d8ce1913175601faf2002a005
by Stanislav.Mekhanoshin[AMDGPU] Use performOptimizedStructLayout for LDS sort
This gives better packing.
Differential Revision: https://reviews.llvm.org/D104331
|
 | llvm/test/CodeGen/AMDGPU/update-lds-alignment.ll |
 | llvm/test/CodeGen/AMDGPU/lower-module-lds-constantexpr.ll |
 | llvm/test/CodeGen/AMDGPU/lower-module-lds-global-alias.ll |
 | llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp |
 | llvm/test/CodeGen/AMDGPU/lower-module-lds-global-uses.ll |
Commit
bd240b3d77c4157a99d029fa9fa431c53b748ef1
by zhijian[AIX][XCOFF] generate eh_info when vector registers are saved according to the traceback table.
Summary:
generate eh_info when vector registers are saved according to the traceback table.
struct eh_info_t {
unsigned version; /* EH info version 0 */ #if defined(64BIT)
char _pad[4]; /* padding */ #endif
unsigned long lsda; /* Pointer to Language Specific Data Area */ unsigned long personality; /* Pointer to the personality routine */ };
the value of lsda and personality is zero when the number of vector registers saved is large zero and there is not personality of the function
Reviewers: Jason Liu Differential Revision: https://reviews.llvm.org/D103651
|
 | llvm/test/CodeGen/PowerPC/aix-emit-tracebacktable-clobber-register.ll |
 | llvm/lib/CodeGen/AsmPrinter/AIXException.cpp |
 | llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp |
Commit
4474958d3a97dede2caa0920f7c4a4dc7aac57d3
by samitolvanenThinLTO: Fix inline assembly references to static functions with CFI
Create an internal alias with the original name for static functions that are renamed in promoteInternals to avoid breaking inline assembly references to them.
Link: https://github.com/ClangBuiltLinux/linux/issues/1354
Reviewed By: pcc
Differential Revision: https://reviews.llvm.org/D104058
|
 | llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp |
 | llvm/test/Transforms/ThinLTOBitcodeWriter/cfi-icall-static-inline-asm.ll |
Commit
805e1a58965b52e9473c6c2a2db2a4d089511200
by llvmgnsyncbot[gn build] Port 40d6d2c49dd1
|
 | llvm/utils/gn/secondary/libcxx/include/BUILD.gn |
Commit
9ad8a1f6fb2aea775736cd59129b7299be443c5c
by Matthew.ArsenaultAMDGPU: Fix high 16-bit optimization on gfx9
We can do this optimization in the majority of cases, but we currently don't have a way to do it. We do not track/model which instructions have which behavior, the control bit to change the high bit behavior, or making use of preserved bits at all. This is a bit fuzzy since we don't know precisely how the source instruction will be lowered, but that only really matters in one case (for fma_mixlo).
We do need to fixup some of these cases after selection, but the pattern helps eliminate many of these zexts.
|
 | llvm/test/CodeGen/AMDGPU/fptrunc.f16.ll |
 | llvm/test/CodeGen/AMDGPU/preserve-hi16.ll |
 | llvm/lib/Target/AMDGPU/SIInstructions.td |
 | llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp |
Commit
d03736455ceeeb8ce639b65b4965436297cf24a4
by patrickeholland[MCA] [In-order pipeline] Fix for 0 latency instruction causing assertion to fail.
0 latency instructions now get processed and retired properly within the in-order pipeline. Had to fix a bug within TimelineView.cpp as well that would show up when a 0 latency instruction was the first instruction in the source.
Differential Revision: https://reviews.llvm.org/D104675
|
 | llvm/lib/MCA/Stages/InOrderIssueStage.cpp |
 | llvm/tools/llvm-mca/Views/TimelineView.cpp |
Commit
2662351e3b75052f3ab273b36ee7d64b5cb7cb85
by huberjn[OpenMP] Add new OpenMP globalization functions to library info
Summary: The changes to globalization introduced in D97680 created two new functions to push / pop shareably memory on the GPU, __kmpc_alloc_shared and __kmpc_free_shared. This patch adds these new runtime functions to the library info so they can be used by the HeapToStack attributor interface. This optimization replaces malloc / free pairs with stack memory if legal.
Reviewed By: tianshilei1992
Differential Revision: https://reviews.llvm.org/D102087
|
 | llvm/lib/Analysis/MemoryBuiltins.cpp |
 | llvm/unittests/Analysis/TargetLibraryInfoTest.cpp |
 | llvm/lib/Analysis/TargetLibraryInfo.cpp |
 | llvm/include/llvm/Analysis/TargetLibraryInfo.def |
Commit
7d69da71dd35f91a5d4310b16940405e7f0c2f20
by huberjn[OpenMP] Enable HeapToStack conversion in OpenMPOpt for new RTL globalization calls
Summary: The changes to globalization introduced in D97680 introduce a large amount of overhead by default. The old globalization method would always ignore globalization code if executing in SPMD mode. This wasn't strictly correct as data sharing is still possible in SPMD mode. The new interface is correct but introduces globalization code even when unnecessary. This optimization will use the existing HeapToStack transformation in the attributor to allow for unneeded globalization to be replaced with thread-private stack memory. This is done using the newly introduced library instances for the RTL functions added in D102087.
Depends on D97818
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D102197
|
 | llvm/lib/Transforms/IPO/OpenMPOpt.cpp |
 | llvm/test/Transforms/OpenMP/remove_globalization.ll |
 | llvm/test/Transforms/PhaseOrdering/openmp-opt-module.ll |
 | llvm/include/llvm/Frontend/OpenMP/OMPKinds.def |
 | llvm/test/Transforms/OpenMP/gpu_state_machine_function_ptr_replacement.ll |
Commit
2e120920acd2241658f87a995c3a685603e992f3
by Matthew.ArsenaultAMDGPU: Add baseline test for instructions zeroing high bits
|
 | llvm/test/CodeGen/AMDGPU/high-bits-zeroed-16-bit-ops.mir |
Commit
317e92a3e82f88f111e04132195d9daa6b97f1ab
by arthur.j.odwyer[libc++] Enable `explicit` conversion operators, even in C++03 mode.
C++03 didn't support `explicit` conversion operators; but Clang's C++03 mode does, as an extension, so we can use it. This lets us make the conversion explicit in `std::function` (even in '03), and remove some silly metaprogramming in `std::basic_ios`.
Drive-by improvements to the tests for these operators, in addition to making sure all these tests also run in `c++03` mode.
Differential Revision: https://reviews.llvm.org/D104682
|
 | libcxx/include/__memory/shared_ptr.h |
 | libcxx/test/std/diagnostics/syserr/syserr.errcode/syserr.errcode.observers/bool.pass.cpp |
 | libcxx/include/istream |
 | libcxx/include/__mutex_base |
 | libcxx/include/ios |
 | libcxx/test/std/language.support/support.exception/propagation/exception_ptr.pass.cpp |
 | libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.cap/operator_bool.pass.cpp |
 | libcxx/include/ostream |
 | libcxx/include/__config |
 | libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.obs/op_bool.pass.cpp |
 | libcxx/include/__memory/unique_ptr.h |
 | libcxx/include/functional |
 | libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.obs/op_bool.pass.cpp |
 | libcxx/include/__functional_03 |
 | libcxx/test/std/diagnostics/syserr/syserr.errcode/syserr.errcode.observers/bool.compile.fail.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.obs/op_bool.pass.cpp |
 | libcxx/include/system_error |
 | libcxx/test/std/input.output/iostreams.base/ios/iostate.flags/bool.pass.cpp |
 | libcxx/include/exception |
Commit
39f8a792f0ac4efed11ac906ba76137fc0c9f6a8
by Matthew.ArsenaultAMDGPU: Try to eliminate clearing of high bits of 16-bit instructions
These used to consistently be zeroed pre-gfx9, but gfx9 made the situation complicated since now some still do and some don't. This also manages to pick up a few cases that the pattern fails to optimize away.
We handle some cases with instruction patterns, but some get through. In particular this improves the integer cases.
|
 | llvm/test/CodeGen/AMDGPU/preserve-hi16.ll |
 | llvm/test/CodeGen/AMDGPU/fmax_legacy.f16.ll |
 | llvm/test/CodeGen/AMDGPU/llvm.minnum.f16.ll |
 | llvm/test/CodeGen/AMDGPU/fptrunc.f16.ll |
 | llvm/test/CodeGen/AMDGPU/usubsat.ll |
 | llvm/test/CodeGen/AMDGPU/fmin3.ll |
 | llvm/test/CodeGen/AMDGPU/strict_fsub.f16.ll |
 | llvm/test/CodeGen/AMDGPU/fmax3.ll |
 | llvm/test/CodeGen/AMDGPU/fmin_legacy.f16.ll |
 | llvm/test/CodeGen/AMDGPU/llvm.maxnum.f16.ll |
 | llvm/test/CodeGen/AMDGPU/strict_fadd.f16.ll |
 | llvm/test/CodeGen/AMDGPU/high-bits-zeroed-16-bit-ops.mir |
 | llvm/lib/Target/AMDGPU/SIFoldOperands.cpp |
 | llvm/test/CodeGen/AMDGPU/strict_fmul.f16.ll |
 | llvm/test/CodeGen/AMDGPU/uaddsat.ll |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.frexp.exp.f16.ll |
 | llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp |
 | llvm/lib/Target/AMDGPU/GCNSubtarget.h |
 | llvm/test/CodeGen/AMDGPU/strict_fma.f16.ll |
Commit
87dbe6c4ef4fdaac093ff82a7bd2b2ca2cf5bc3a
by Louis Dionne[libc++] NFC: Add missing all.h to the modulemap
|
 | libcxx/include/module.modulemap |
Commit
709f8186a45e28c0640c999a8b779433dc0eb525
by Raphael Isemann[lldb] Add missing string include to lldb-server's main
|
 | lldb/test/API/tools/lldb-server/main.cpp |
Commit
015c27caa2c9de22a0a2181675101412ec777cf8
by david.green[ARM] Change some Gather/Scatter interface types to Instructions. NFC
These returned Values are cast to an Instruction already, this just cleans up the interface a little to match the expected types.
|
 | llvm/lib/Target/ARM/MVEGatherScatterLowering.cpp |
Commit
30e36c9b3c6a6889ea54c0a4cca60768dfc64421
by huberjn[Attributor] Add interface to emit remarks in Attributor
Summary: This patch adds support for the Attributor to emit remarks on behalf of some other pass. The attributor can now optionally take a callback function that returns an OptimizationRemarkEmitter object when given a Function pointer. If this is availible then a remark will be emitted for the corresponding pass name.
Depends on D102197
Reviewed By: sstefan1 thegameg
Differential Revision: https://reviews.llvm.org/D102444
|
 | llvm/lib/Transforms/IPO/AttributorAttributes.cpp |
 | llvm/test/Transforms/OpenMP/remove_globalization.ll |
 | llvm/test/Transforms/OpenMP/replace_globalization.ll |
 | llvm/include/llvm/Transforms/IPO/Attributor.h |
 | llvm/lib/Transforms/IPO/OpenMPOpt.cpp |
Commit
4e78bd3836ce7352c5c5e1818e88a781498f216e
by spatel[InstCombine][test] add tests for FP min/max with negated op; NFC
|
 | llvm/test/Transforms/InstCombine/minnum.ll |
 | llvm/test/Transforms/InstCombine/maxnum.ll |
Commit
bfd172999be779cb441f40472f97646e4f73c2e7
by spatel[InstCombine][test] add tests for FP min/max with negated op; NFC
|
 | llvm/test/Transforms/InstCombine/minimum.ll |
 | llvm/test/Transforms/InstCombine/maximum.ll |
Commit
b1f6ef92ec795d877a94e099e86363c39cbd359a
by spatel[InstCombine] reduce code duplication for FP min/max with casts fold; NFC
|
 | llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp |
Commit
948016228fdfb647ad7bcc978fde173504e3df82
by iImprove clang -Wframe-larger-than= diagnostic
Match the style in D104667.
This commit is for non-LTO diagnostics, while D104667 is for LTO and llc diagnostics.
|
 | clang/test/Misc/backend-stack-frame-diagnostics.cpp |
 | clang/include/clang/Basic/DiagnosticFrontendKinds.td |
 | clang/test/Frontend/backend-diagnostic.c |
 | clang/test/Misc/backend-stack-frame-diagnostics-fallback.cpp |
 | clang/lib/CodeGen/CodeGenAction.cpp |
Commit
8d84751ac488ad11e0964704e9ea5366731355f7
by rnkRevert "[LLD] [COFF] Avoid doing repeated fuzzy symbol lookup for each iteration. NFC."
This reverts commit e1adf90826a57b674eee79b071fb46c1f5683cd0.
This appears to affect the way that C++ mangled symbols appear in the import library when using a .def file that names a C++ free function with no name decoration. I will follow up with a reduced test case shortly.
|
 | lld/COFF/Driver.cpp |
Commit
b54ccab5096dc186fbc8343e1af75b5ccb09821b
by huberjn[Attributor] Add an option to increase the max number of iterations
Right now the Attributor defaults to 32 fixed point iterations unless it is set explicitly by a command line flag. This patch allows this to be configured when the attributor instance is created. The maximum is then increased in OpenMPOpt if the target is a kernel. This is because the globalization analysis can result in larger iteration counts due to many dependent instances running at once.
Depends on D102444
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D104416
|
 | llvm/lib/Transforms/IPO/Attributor.cpp |
 | llvm/lib/Transforms/IPO/OpenMPOpt.cpp |
 | llvm/include/llvm/Transforms/IPO/Attributor.h |
Commit
ca1560da7251494ae099d8a74b38b89e605e19cb
by huberjn[OpenMP][NFC] Add new optimizations to OpenMPOpt comment header
Summary: Adds mentions to the new globalization optimizations added to the OpenMPOpt comment header.
|
 | llvm/lib/Transforms/IPO/OpenMPOpt.cpp |
Commit
f4c06bcb67a1eba13a7f164961586dddaf8ebd5f
by Akira[CodeGen] Don't create fake FunctionDecls when generating block/byref copy/dispose helper functions
We found out that these fake functions would cause clang to crash if the changes proposed in https://reviews.llvm.org/D98799 were made.
Differential Revision: https://reviews.llvm.org/D104082
|
 | clang/test/CodeGenCXX/debug-info-blocks.cpp |
 | clang/test/CodeGenObjC/debug-info-block-helper.m |
 | clang/test/CodeGenObjC/debug-info-blocks.m |
 | clang/lib/CodeGen/CGBlocks.cpp |
Commit
fa5f425209c7f977326923262f8309f070b2553d
by phosek[compiler-rt][CMake] Drop flags that are set by default for Fuchsia
-Wl,-z,now is set by the Fuchsia driver, -Wl,-z,relro is the default in LLD.
|
 | compiler-rt/CMakeLists.txt |
Commit
b9792638b0bfb308e0c7c125ac78f4ebf910c11b
by phosek[compiler-rt] Make use of undefined symbols configurable
We want to disable the use of undefined symbols on Fuchsia, but there are cases where it might be desirable so may it configurable.
Differential Revision: https://reviews.llvm.org/D104728
|
 | compiler-rt/CMakeLists.txt |
Commit
e7091da10b3012e29cd4a11c29b620dd08ee6dee
by cjdb[libcxx][docs] updates the ranges status paper
* indicates whether work has been started or completed * consolidates content that was split for dependency reasons (iff everything has been merged) * makes things a lot more fine-grained * turns sub-CSVs into lists * puts links into description section and removes patch column * adds links to c++draft on occasion
These changes heavily prioritise the the reader of the generated HTML file, not the source.
Differential Revision: https://reviews.llvm.org/D103295
|
 | libcxx/docs/OneRangesProposalStatus.csv |
Commit
ed7086ad46f99f639b85ea6c8bda7c1a71be7c53
by phosek[CMake] Fix the option declaration
This addresses build issue introduced in b9792638b0bfb308e0c7c125ac78f4ebf910c11b.
|
 | compiler-rt/CMakeLists.txt |
Commit
e4ec61308326c1f4c960577e8494e1d6024b0130
by cjdb[libcxx][doc] corrects LWG links in the One Ranges section
|
 | libcxx/docs/RangesIssuePaperStatus.csv |
Commit
bc768aac2e4ebc3613f1e5601b15f663a6385044
by huberjn[OpenMP] Remove OpenMP CUDA Target Parallel compiler flag
Summary: The changes introduced in D97680 turns this command line option into a no-op so it can be removed entirely.
Reviewed By: tianshilei1992
Differential Revision: https://reviews.llvm.org/D102940
|
 | clang/include/clang/Driver/Options.td |
 | clang/include/clang/Basic/LangOptions.def |
 | clang/lib/Frontend/CompilerInvocation.cpp |
 | clang/lib/Driver/ToolChains/Clang.cpp |
Commit
33c9438f116693b2f97c0c60376c32e0b8cb62f2
by samitolvanenRevert "ThinLTO: Fix inline assembly references to static functions with CFI"
This reverts commit 4474958d3a97dede2caa0920f7c4a4dc7aac57d3.
Breaks check-llvm on Mac.
|
 | llvm/test/Transforms/ThinLTOBitcodeWriter/cfi-icall-static-inline-asm.ll |
 | llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp |
Commit
7bb7fa12e73bd3c9fb66f05825758d729dd96ba5
by nikita.ppv[OpaquePtr] Support changing load type in InstCombine
When the load type is changed to ptr, we need the load pointer type to also be ptr, because it's not allowed to create a pointer to an opaque pointer. This is achieved by adjusting the getPointerTo() API to return an opaque pointer for an opaque pointer base type.
Differential Revision: https://reviews.llvm.org/D104718
|
 | llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp |
 | llvm/test/Transforms/InstCombine/opaque-ptr.ll |
 | llvm/lib/IR/Type.cpp |
 | llvm/include/llvm/IR/Type.h |
Commit
ae1093921fc83294a310cd6e7bb721970754ddcb
by nikita.ppvRevert "[compiler-rt] Make use of undefined symbols configurable"
This reverts commit ed7086ad46f99f639b85ea6c8bda7c1a71be7c53. This reverts commit b9792638b0bfb308e0c7c125ac78f4ebf910c11b.
This breaks cmake with message:
CMake Error at llvm-project/compiler-rt/CMakeLists.txt:449: Parse error. Expected "(", got newline with text "
|
 | compiler-rt/CMakeLists.txt |
Commit
ab6002871d837490ed333ed9ff4993cb75964cad
by isanbard[llvm-diff] Add support for diffing the callbr instruction
The only wrinkle is that we can't process the "blockaddress" arguments of the callbr until the blocks have been equated. So we force them to be "unified" before checking.
This was left out when the callbr instruction was added.
Differential Revision: https://reviews.llvm.org/D104606
|
 | llvm/test/tools/llvm-diff/callbr.ll |
 | llvm/tools/llvm-diff/DifferenceEngine.cpp |
Commit
46db43240f0f24e76ab903db8086f53a7dddbedf
by isanbard[llvm-diff] Explicitly check ConstantArrays
Global initializers may be ConstantArrays. They need to be checked explicitly, because different-yet-still-equivalent type names may be used for each, and/or a GEP instruction may appear in one.
|
 | llvm/tools/llvm-diff/DifferenceEngine.cpp |
 | llvm/test/tools/llvm-diff/initializers.ll |
Commit
dedeb661911188a8022e8c6a51cb212a2dbeb82c
by thakisMake lit configs relocatable again after c747b7d1d9a
See https://reviews.llvm.org/D77184 for background.
|
 | llvm/test/CMakeLists.txt |
 | llvm/test/lit.site.cfg.py.in |
Commit
356d6b7b8a762ea63d06fe4bafd1b91e413affea
by thakis[gn build] manually port c747b7d1d9a2 more (config.osx_sysroot)
|
 | llvm/utils/gn/secondary/llvm/test/BUILD.gn |
Commit
21c008d5a5b1e0c2ec3c1659cff961f4b0ccea2c
by phosekRevert "[cmake] [compiler-rt] Call llvm_setup_rpath() when adding shared libraries."
This reverts commit 78fd93e0396a19cb89d4b874c7cc42255888df56 as a follow up to D91099.
|
 | compiler-rt/cmake/Modules/AddCompilerRT.cmake |
Commit
64cf5eba06bd4f81954253b1e7a10be6fe92403e
by bjoern[clang-format] Add new LambdaBodyIndentation option
Currently the lambda body indents relative to where the lambda signature is located. This instead lets the user choose to align the lambda body relative to the parent scope that contains the lambda declaration. Thus:
someFunction([] { lambdaBody(); });
will always have the same indentation of the body even when the lambda signature goes on a new line:
someFunction( [] { lambdaBody(); });
whereas before lambdaBody would be indented 6 spaces.
Differential Revision: https://reviews.llvm.org/D102706
|
 | clang/lib/Format/Format.cpp |
 | clang/unittests/Format/FormatTest.cpp |
 | clang/lib/Format/UnwrappedLineFormatter.cpp |
 | clang/docs/ReleaseNotes.rst |
 | clang/include/clang/Format/Format.h |
 | clang/docs/ClangFormatStyleOptions.rst |
Commit
4aeb2e60df98a07e6a2a3cc16fc9ad1c1001d563
by gcmnIntroduce a Bazel build configuration
This patch introduces configuration for a Bazel BUILD in a side directory in the monorepo.
This is following the approval of https://github.com/llvm/llvm-www/blob/main/proposals/LP0002-BazelBuildConfiguration.md
As detailed in the README, the Bazel BUILD is not supported by the community in general, and is maintained only by interested parties. It follows the requirements of the LLVM peripheral tier: https://llvm.org/docs/SupportPolicy.html#peripheral-tier.
This is largely copied from https://github.com/google/llvm-bazel, with a few filepath tweaks and the addition of the README.
Reviewed By: echristo, keith, dblaikie, kuhar
Differential Revision: https://reviews.llvm.org/D90352
|
 | utils/bazel/deps_impl/terminfo_test.c |
 | utils/bazel/llvm-project-overlay/llvm/template_rule.bzl |
 | utils/bazel/deps_impl/terminfo_system.BUILD |
 | utils/bazel/.gitignore |
 | utils/bazel/llvm-project-overlay/mlir/tblgen.bzl |
 | utils/bazel/llvm-project-overlay/mlir/linalggen.bzl |
 | utils/bazel/llvm-project-overlay/.bazelignore |
 | utils/bazel/deps_impl/zlib_external.BUILD |
 | utils/bazel/WORKSPACE |
 | utils/bazel/llvm_configs/abi-breaking.h.cmake |
 | utils/bazel/llvm_configs/BUILD.bazel |
 | utils/bazel/llvm-project-overlay/llvm/tblgen.bzl |
 | utils/bazel/deps_impl/terminfo_disable.BUILD |
 | utils/bazel/llvm-project-overlay/llvm/BUILD.bazel |
 | utils/bazel/deps_impl/zlib_system.BUILD |
 | utils/bazel/llvm-project-overlay/llvm/config.bzl |
 | utils/bazel/.bazelrc |
 | utils/bazel/llvm-project-overlay/llvm/cc_plugin_library.bzl |
 | utils/bazel/BUILD.bazel |
 | utils/bazel/.bazelignore |
 | utils/bazel/llvm-project-overlay/clang/BUILD.bazel |
 | utils/bazel/llvm-project-overlay/llvm/include/llvm/Config/llvm-config.h |
 | utils/bazel/terminfo.bzl |
 | utils/bazel/third_party_build/BUILD |
 | utils/bazel/third_party_build/vulkan_headers.BUILD |
 | utils/bazel/overlay_directories.py |
 | utils/bazel/llvm-project-overlay/mlir/BUILD.bazel |
 | utils/bazel/llvm-project-overlay/mlir/build_defs.bzl |
 | utils/bazel/llvm-project-overlay/clang/include/clang/Config/config.h |
 | utils/bazel/llvm_configs/llvm-config.h.cmake |
 | utils/bazel/.bazelversion |
 | utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel |
 | utils/bazel/llvm-project-overlay/llvm/include/llvm/Config/config.h |
 | utils/bazel/zlib.bzl |
 | utils/bazel/deps_impl/BUILD.bazel |
 | utils/bazel/llvm-project-overlay/clang/unittests/BUILD.bazel |
 | utils/bazel/llvm-project-overlay/llvm/binary_alias.bzl |
 | utils/bazel/llvm_configs/config.h.cmake |
 | utils/bazel/deps_impl/zlib_disable.BUILD |
 | utils/bazel/third_party_build/zlib.BUILD |
 | utils/bazel/llvm-project-overlay/llvm/unittests/BUILD.bazel |
 | utils/bazel/configure.bzl |
 | utils/bazel/vulkan_sdk.bzl |
 | utils/bazel/README.md |
Commit
5bcbc7ee526cea839f34fcf2969ceef128f6f51c
by rnkAdd regression test for maybeMangle issue
This was crbug.com/1222724, which caused D104529 to be reverted. The new test fails when D104529 is reapplied locally.
|
 | lld/test/COFF/def-export-cpp.s |
Commit
e4e31e19bb87d154a2da1f5479f778c13a120b3c
by riddleriver[mlir][OpGen] Cache Identifiers for known attribute names in AbstractOperation.
Operations currently rely on the string name of attributes during attribute lookup/removal/replacement, in build methods, and more. This unfortunately means that some of the most used APIs in MLIR require string comparisons, additional hashing(+mutex locking) to construct Identifiers, and more. This revision remedies this by caching identifiers for all of the attributes of the operation in its corresponding AbstractOperation. Just updating the autogenerated usages brings up to a 15% reduction in compile time, greatly reducing the cost of interacting with the attributes of an operation. This number can grow even higher as we use these methods in handwritten C++ code.
Methods for accessing these cached identifiers are exposed via `<attr-name>AttrName` methods on the derived operation class. Moving forward, users should generally use these methods over raw strings when an attribute name is necessary.
Differential Revision: https://reviews.llvm.org/D104167
|
 | mlir/include/mlir/Dialect/MemRef/IR/MemRef.h |
 | mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp |
 | mlir/include/mlir/Dialect/Affine/IR/AffineOps.h |
 | mlir/include/mlir/IR/OperationSupport.h |
 | mlir/lib/TableGen/OpClass.cpp |
 | mlir/test/mlir-tblgen/op-attribute.td |
 | mlir/unittests/Interfaces/DataLayoutInterfacesTest.cpp |
 | mlir/lib/IR/MLIRContext.cpp |
Commit
87e59e47e936f15e407dba1b963393dd96ff96fb
by riddleriver[mlir] Remove the Identifier ThreadLocalCache from MLIRContext
This used to be important for reducing lock contention when accessing identifiers, but the cost of the cache can be quite large if parsing in a multi-threaded context. After D104167, the win of keeping a cache is not worth the cost.
Differential Revision: https://reviews.llvm.org/D104737
|
 | mlir/lib/IR/MLIRContext.cpp |
Commit
e35677c07c07c639a5b664d6857e22f105d98a3a
by Louis Dionne[libc++] NFC: Remove unused c++98 Lit feature
|
 | libcxx/test/std/utilities/function.objects/func.bind_front/bind_front.pass.cpp |
 | libcxx/test/std/utilities/function.objects/func.bind_front/bind_front.verify.cpp |
Commit
422adaa879b2de5a682eaed1a4f7cf86e9ea12b4
by huberjn[OpenMP] Add thread limit environment variable support to plugins
The OpenMP 5.1 standard defines the environment variable `OMP_TEAMS_THREAD_LIMIT` to limit the number of threads that will be run in a single block. This patch adds support for this into the AMDGPU and CUDA plugins.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D103923
|
 | openmp/libomptarget/plugins/cuda/src/rtl.cpp |
 | openmp/libomptarget/plugins/amdgpu/src/rtl.cpp |
Commit
7942ebdf01b35fae240cd8a0550a3da9f03615c4
by daltenty[clang] Add cc1 option for dumping layout for all complete types
This change adds an option which, in addition to dumping the record layout as is done by -fdump-record-layouts, causes us to compute the layout for all complete record types (rather than the as-needed basis which is usually done by clang), so that we will dump them as well. This is useful if we are looking for layout differences across large code bases without needing to instantiate every type we are interested in.
Reviewed By: dexonsmith
Differential Revision: https://reviews.llvm.org/D104484
|
 | clang/include/clang/Basic/LangOptions.def |
 | clang/test/Layout/dump-complete.cpp |
 | clang/lib/AST/Decl.cpp |
 | clang/include/clang/Driver/Options.td |
Commit
36b66ab9ed4f5eac721b3faea1f5b0bddd29c95b
by ajcbik[mlir][sparse] add support for "simply dynamic" sparse tensor expressions
Slowly we are moving toward full support of sparse tensor *outputs*. First step was support for all-dense annotated "sparse" tensors. This step adds support for truly sparse tensors, but only for operations in which the values of a tensor change, but not the nonzero structure (this was refered to as "simply dynamic" in the [Bik96] thesis).
Some background text was posted on discourse: https://llvm.discourse.group/t/sparse-tensors-in-mlir/3389/25
Reviewed By: gussmith23
Differential Revision: https://reviews.llvm.org/D104577
|
 | mlir/test/Dialect/SparseTensor/sparse_out.mlir |
 | mlir/lib/Dialect/SparseTensor/IR/SparseTensorDialect.cpp |
 | mlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp |
 | mlir/test/Dialect/SparseTensor/invalid.mlir |
 | mlir/test/Dialect/SparseTensor/conversion.mlir |
 | mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp |
Commit
544d20eab662e29640c8435033e7458e5ee1857e
by kadircet[clangd] Dont index ObjCCategoryDecls for completion
They are already provided by Sema, deserializing from preamble if need be. Moreover category names are meaningless outside interface/implementation context, hence they were only causing noise.
Differential Revision: https://reviews.llvm.org/D104540
|
 | clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp |
 | clang-tools-extra/clangd/CodeComplete.cpp |
 | clang-tools-extra/clangd/unittests/SymbolCollectorTests.cpp |
Commit
44feacc736e1ae35beafdf1cbfe59f7ff6688157
by huberjn[OpenMP] Change remaining globalization from an analysis remark to missed
After landing the globalization optimizations, the precense of globalization on the device that was not put in shared or stack memory is a failed optimization with performance consequences so it should indicate a missed remark.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D104735
|
 | llvm/test/Transforms/PhaseOrdering/openmp-opt-module.ll |
 | llvm/test/Transforms/OpenMP/globalization_remarks.ll |
 | llvm/lib/Transforms/IPO/OpenMPOpt.cpp |
Commit
e3b2f1b6823f4f06da222545857809e6ee7962b6
by pklausler[flang] [NFC] Repair build with GCC 7.3
Work around two problems with GCC 7.3. One is its inability to implement "constexpr operator=(...) = default;" in a class with a std::optional<> component; another is a legitimate- looking warning about an unused variable.
Differential Revision: https://reviews.llvm.org/D104731
|
 | flang/lib/Evaluate/formatting.cpp |
 | flang/lib/Semantics/check-declarations.cpp |
 | flang/lib/Evaluate/type.cpp |
 | flang/include/flang/Evaluate/type.h |
Commit
b259740801d3515810ecc15bf0c24b0d476a1608
by lei[PowerPC][NFC] Clean up builtin sema checks
Cleanup sema checking for 64bit builtins or builtins that require specific feature support.
Reviewed By: NeHuang
Differential Revision: https://reviews.llvm.org/D104664
|
 | clang/lib/Sema/SemaChecking.cpp |
Commit
600074980410e3069e0e21294cc785c6bf38c0e3
by riddleriver[mlir] Fix build on gcc-5 after D104167
|
 | mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp |
 | mlir/test/mlir-tblgen/op-attribute.td |
Commit
cadfaf2df46faf1dfe86db989583a477f27e22b4
by phosek[compiler-rt] Make use of undefined symbols configurable
We want to disable the use of undefined symbols on Fuchsia, but there are cases where it might be desirable so may it configurable.
Differential Revision: https://reviews.llvm.org/D104728
|
 | compiler-rt/CMakeLists.txt |
Commit
b13cbf537f5da58d091dfe4a4642ab19aea582fa
by ajcbik[mlir][sparse] integration test for "simply dynamic" sparse output tensors
Reviewed By: gussmith23
Differential Revision: https://reviews.llvm.org/D104583
|
 | mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_out_simple.mlir |
Commit
449b179902a0cf8c9e0b4d198ee37f75447eb2ff
by petergn build: Rebase clang-tblgen include path against root_build_dir instead of root_out_dir.
Fixes clang cross-compilation.
Also remove some redundant include path arguments.
|
 | llvm/utils/gn/secondary/clang/include/clang/Basic/BUILD.gn |
 | llvm/utils/gn/secondary/clang/include/clang/Serialization/BUILD.gn |
 | llvm/utils/gn/secondary/clang/include/clang/Sema/BUILD.gn |
 | llvm/utils/gn/secondary/clang/utils/TableGen/clang_tablegen.gni |
 | llvm/utils/gn/secondary/clang/include/clang/Parse/BUILD.gn |
Commit
a8bf33ad36837b398d3dabfd5fff1142660a1dca
by thakis[clang] unbreak Index/preamble-reparse-changed-module.m with LLVM_APPEND_VC_REV=NO after 7942ebdf01b3
See revision b8b7a9dcdcbc for prior art.
|
 | clang/include/clang/Serialization/ASTBitCodes.h |
Commit
1cfdcae653140b1df5932767862a08f5a1b6106f
by huberjn[Attributor] Fix AAExecutionDomain returning true on invalid states
This patch fixes a problem with the AAExecutionDomain attributor not checking if it is in a valid state. This can cause it to incorrectly return that a block is executed in a single threaded context after the attributor failed for any reason.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D103186
|
 | llvm/lib/Transforms/IPO/OpenMPOpt.cpp |
Commit
e387778722f93705db903aa755529568a05dd9db
by i[ELF] Optimize ScriptLexer::getLineNumber by caching the previous line number and offset
getLineNumber() was counting the number of line feeds from the start of the buffer to the current token. For large linker scripts this became a performance bottleneck. For one 4MB linker script over 4 minutes was spent in getLineNumber's StringRef::count.
Store the line number from the last token, and only count the additional line feeds since the last token.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D104137
|
 | lld/ELF/ScriptLexer.cpp |
 | lld/ELF/ScriptLexer.h |
Commit
6a40bb01f60c9d4adf24d8f25cccd8307f76538d
by listmailprecommit test for D104665
|
 | llvm/test/Transforms/InstCombine/umulo.ll |
Commit
959dbd1761cddbe8c53509459dbc0463f86c1b50
by phosekRevert "Revert "[cmake] [compiler-rt] Call llvm_setup_rpath() when adding shared libraries.""
This reverts commit 21c008d5a5b1e0c2ec3c1659cff961f4b0ccea2c since it broke the build on macOS and Windows with the following error:
The install of the clang_rt.<na,e> target requires changing an RPATH from the build tree, but this is not supported with the Ninja generator unless on an ELF-based platform. The CMAKE_BUILD_WITH_INSTALL_RPATH variable may be set to avoid this relinking step.
|
 | compiler-rt/cmake/Modules/AddCompilerRT.cmake |
Commit
5c8659801a4976ef2b327f4071d98086efd42a36
by hoy[CSSPGO][llvm-profgen] Handle return to external transition.
In a callback case, a return from internal code, say A, to external runtime can happen. The external runtime can then call back to another internal routine, say B. Making an artificial branch that looks like a return from A to B can confuse the unwinder to treat the instruction before B as the call instruction.
Reviewed By: wenlei, wmi
Differential Revision: https://reviews.llvm.org/D104546
|
 | llvm/tools/llvm-profgen/PerfReader.cpp |
Commit
c9aaf34b8db884faa3d3ced4d2fb88fd45697408
by bruno.cardoso[SemaCXX] Handle lack of TypeSourceInfo on special member functions in templated lambdas
During template instantiation involving templated lambdas, clang could hit an assertion in `TemplateDeclInstantiator::SubstFunctionType` since the functions are not associated with any `TypeSourceInfo`:
`assert(OldTInfo && "substituting function without type source info");`
This path is triggered when using templated lambdas like the one added as a test to this patch. To fix this:
- Create `TypeSourceInfo`s for special members and make sure the template instantiator can get through all patterns. - Introduce a `SpecialMemberTypeInfoRebuilder` tree transform to rewrite such member function arguments. Without this, we get errors like:
`error: only special member functions and comparison operators may be defaulted`
since `getDefaultedFunctionKind` can't properly recognize these functions as special members as part of `SetDeclDefaulted`.
Fixes PR45828 and PR44848
Differential Revision: https://reviews.llvm.org/D88327
|
 | clang/lib/Sema/SemaDeclCXX.cpp |
 | clang/lib/Sema/TreeTransform.h |
 | clang/test/SemaCXX/lambdas-implicit-explicit-template.cpp |
 | clang/lib/Sema/SemaTemplateInstantiate.cpp |
 | clang/lib/Sema/SemaTemplateInstantiateDecl.cpp |
Commit
d693957e58ff498dba7ef1d05c08849693abff35
by eugenis[scudo] Handle predefined M_MEMTAG_TUNING_* constants (NFC).
Bionic <malloc.h> may provide the definitions of M_MEMTAG_TUNING_* constants. Do not redefine them in that case.
Differential Revision: https://reviews.llvm.org/D104758
|
 | compiler-rt/lib/scudo/standalone/include/scudo/interface.h |
Commit
6e962fcc3d671a12407b7885682c907a0bfc69cd
by petergn build: Add support for building ubsan_minimal.
Differential Revision: https://reviews.llvm.org/D104754
|
 | llvm/utils/gn/secondary/compiler-rt/lib/BUILD.gn |
 | llvm/utils/gn/secondary/compiler-rt/lib/ubsan_minimal/BUILD.gn |
Commit
0439ba99031b7b0690ea2cd49ac517b32c139892
by petergn build: Only build the TSan runtime on 64-bit platforms.
TSan only supports 64-bit platforms.
Differential Revision: https://reviews.llvm.org/D104755
|
 | llvm/utils/gn/secondary/compiler-rt/lib/BUILD.gn |
Commit
36b538f583a7dfadf8f6c677b61110ee239e7e4d
by riddleriver[mlir][NFC] Move several small methods from .cpp to .h to allow more aggressive inlining
Differential Revision: https://reviews.llvm.org/D104756
|
 | mlir/include/mlir/IR/Attributes.h |
 | mlir/lib/IR/Attributes.cpp |
 | mlir/include/mlir/IR/Types.h |
 | mlir/lib/IR/Types.cpp |
 | mlir/include/mlir/IR/Operation.h |
 | mlir/lib/IR/Region.cpp |
 | mlir/lib/IR/Operation.cpp |
 | mlir/include/mlir/IR/Region.h |
Commit
a0d96fdd3a4cda4d882076eff436301e1ec19055
by taolq[llvm][Inliner] Make PriorityInlineOrder lazily updated
This patch makes PriorityInlineOrder lazily updated. The PriorityInlineOrder would lazily update the desirability of a call site if it's decreasing.
Reviewed By: kazu
Differential Revision: https://reviews.llvm.org/D104654
|
 | llvm/lib/Transforms/IPO/Inliner.cpp |
Commit
493d6928fe1096aed3af35b0794bf79c00976b19
by Jon Roelofs[Remarks] Make memsize remarks report as an analysis, not a missed opportunity.
Differential revision: https://reviews.llvm.org/D104078
|
 | llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp |
 | llvm/test/CodeGen/AArch64/memsize-remarks.ll |
 | llvm/include/llvm/Transforms/Utils/MemoryOpRemark.h |
 | llvm/lib/Transforms/Utils/MemoryOpRemark.cpp |
Commit
cafae0561920883f3269aa9a89aa4035b6a226e1
by cjdb[libcxx][NFC] prepares `<type_traits>` for moving out forward and swap
* `<type_traits>` depends on `std::forward`, so we replaced it with `static_cast<T&&>`. * `swap`'s return type is confusing, so it's been rearranged to improve readabilitiy.
|
 | libcxx/include/utility |
 | libcxx/include/type_traits |
Commit
18465bcf4dbad4a4035f1f306b1a787e0bf92828
by riddleriver[mlir][NFC] Cleanup the MLIRTestReducer pass
|
 | mlir/test/lib/Reducer/MLIRTestReducer.cpp |
Commit
6569cf2a44bf95106e7168bdb79c4674742708fa
by riddleriver[mlir] Add a ThreadPool to MLIRContext and refactor MLIR threading usage
This revision refactors the usage of multithreaded utilities in MLIR to use a common thread pool within the MLIR context, in addition to a new utility that makes writing multi-threaded code in MLIR less error prone. Using a unified thread pool brings about several advantages:
* Better thread usage and more control We currently use the static llvm threading utilities, which do not allow multiple levels of asynchronous scheduling (even if there are open threads). This is due to how the current TaskGroup structure works, which only allows one truly multithreaded instance at a time. By having our own ThreadPool we gain more control and flexibility over our job/thread scheduling, and in a followup can enable threading more parts of the compiler.
* The static nature of TaskGroup causes issues in certain configurations Due to the static nature of TaskGroup, there have been quite a few problems related to destruction that have caused several downstream projects to disable threading. See D104207 for discussion on some related fallout. By having a ThreadPool scoped to the context, we don't have to worry about destruction and can ensure that any additional MLIR thread usage ends when the context is destroyed.
Differential Revision: https://reviews.llvm.org/D104516
|
 | mlir/test/Dialect/Affine/SuperVectorize/compose_maps.mlir |
 | mlir/include/mlir/IR/Threading.h |
 | mlir/test/Dialect/Affine/slicing-utils.mlir |
 | llvm/include/llvm/Support/ThreadPool.h |
 | mlir/include/mlir/IR/MLIRContext.h |
 | mlir/test/Pass/pipeline-parsing.mlir |
 | mlir/lib/IR/MLIRContext.cpp |
 | mlir/lib/Pass/Pass.cpp |
 | llvm/lib/Support/ThreadPool.cpp |
 | mlir/test/IR/diagnostic-handler-filter.mlir |
 | mlir/lib/IR/Verifier.cpp |
 | mlir/lib/Transforms/Inliner.cpp |
 | mlir/test/Pass/pass-timing.mlir |
Commit
e8c8ce0974edca7bc21ce53826ff7b2c0456d70a
by thakis[gn build] don't build ubsan_minimal on mac
It doesn't build there, see http://45.33.8.238/macm1/12180/step_4.txt
|
 | llvm/utils/gn/secondary/compiler-rt/lib/BUILD.gn |
Commit
0246dd30046a95985f1abdfeafc39b2083dedfb0
by riddleriver[mlir] Fix slicing-utils.mlir test after D104516
Remove the duplicate unnecessary CHECK labels at the bottom of the file.
|
 | mlir/test/Dialect/Affine/slicing-utils.mlir |
Commit
72d4cd627c74f7497a772561f49de5bd9c07b2d6
by huberjn[OpenMP] Introduce an CMake find module for OpenMP Target support
This introduces a CMake find module for detecting target offloading support in a compiler. The goal is to make it easier to incorporate target offloading into a cmake project.
Reviewed By: tianshilei1992
Differential Revision: https://reviews.llvm.org/D104710
|
 | openmp/tools/Modules/CMakeLists.txt |
 | openmp/tools/Modules/README.rst |
 | openmp/tools/Modules/FindOpenMPTarget.cmake |
Commit
c43e8c0eeffe04b4c761273349fe287866c7fb8c
by riddleriver[mlir][OpDefGen] Don't emit attribute name getters when there are no attributes
This avoids generating otherwise unnecessary methods.
|
 | mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp |
Commit
84bd07aff901e4f35b48ae46699dd9424d16f90c
by riddleriver[mlir] Fix GCC5 build after D104516
GCC5 isn't able to implicitly capture `this` properly in an `auto` lambda.
|
 | mlir/lib/Pass/Pass.cpp |
Commit
4666f309df8bffa602d055f8ccd2bc93d1a24888
by joker.ephFix typo in Toy Tutorial Ch-4
multiple_transpose -> multiply_transpose
|
 | mlir/docs/Tutorials/Toy/Ch-4.md |
Commit
b7d2c173ebbbd48342d498ebc8a1127dbc6d87b1
by mkazantsev[LSR] Filter out zero factors. PR50765
Zero factor leads to division by zero and failure of corresponding assert as shown in PR50765. We should filter out such factors.
Differential Revision: https://reviews.llvm.org/D104702 Reviewed By: huihuiz, reames
|
 | llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp |
 | llvm/test/Transforms/LoopStrengthReduce/pr50765.ll |
Commit
976926e8ee3e3c9f7c391281eab89e0d1b02092a
by mkazantsev[Test] Clear out br i1 undef from tests to avoid UB
We don't want to test possible unexpected impact of such branches. Replacing them with regular conditions. Idea by Nikita Popov.
|
 | llvm/test/Transforms/LoopDeletion/eval_first_iteration.ll |
Commit
f681fd927e883301658dcac9a78109ee0aba12a8
by zequanwuRevert "[CodeGen] Don't create fake FunctionDecls when generating block/byref"
That commit causes crash with error "!dbg attachment points at wrong subprogram for function" on iOS platforms.
This reverts commit f4c06bcb67a1eba13a7f164961586dddaf8ebd5f.
|
 | clang/test/CodeGenCXX/debug-info-blocks.cpp |
 | clang/lib/CodeGen/CGBlocks.cpp |
 | clang/test/CodeGenObjC/debug-info-blocks.m |
 | clang/test/CodeGenObjC/debug-info-block-helper.m |
Commit
842b4c83cb751d5f371ba27881fc92fdbd38d850
by mkazantsev[LoopDeletion] Exploit undef Phi inputs when symbolically executing 1st iteration
Follow-up on Roman's idea expressed in D103959. - If a Phi has undefined inputs from live blocks: - and no other inputs, assume it is undef itself; - and exactly one non-undef input, we can assume that all undefs are equal to this input.
Differential Revision: https://reviews.llvm.org/D104618 Reviewed By: lebedev.ri, nikic
|
 | llvm/lib/Transforms/Scalar/LoopDeletion.cpp |
 | llvm/test/Transforms/LoopDeletion/eval_first_iteration.ll |
Commit
5cb5225cf5c2adb55c55af842c4df5876e47169e
by jim[M68k] Refactor codegen patterns for logic operations and add tests for it
Refactor pat for and, or and xor operation and add missing tests for it
Reviewed By: myhsu
Differential Revision: https://reviews.llvm.org/D104626
|
 | llvm/test/CodeGen/M68k/Arith/bitwise.ll |
 | llvm/lib/Target/M68k/M68kInstrArithmetic.td |
Commit
0365af1a87ebc17a75dc6352e63cf1be536a49b4
by jim[M68k] Add testcases for shift and rotate instructions
Add codegen testcases for lsl, lsr, asr, rol and ror instructions.
Reviewed By: myhsu
Differential Revision: https://reviews.llvm.org/D104685
|
 | llvm/test/CodeGen/M68k/ShiftRotate/rol.ll |
 | llvm/test/CodeGen/M68k/ShiftRotate/lsr.ll |
 | llvm/test/CodeGen/M68k/ShiftRotate/asr.ll |
 | llvm/test/CodeGen/M68k/ShiftRotate/ror.ll |
 | llvm/test/CodeGen/M68k/ShiftRotate/lsl.ll |
Commit
dfafd56daa003c1cf0604afda308111f7fff2f04
by minyihh[M68k] Fix incorrect #include-ed file in M68kSubtarget
In https://reviews.llvm.org/rG2193347e72fa , a cpp file is accidentally included instead of its header file counterpart. This patch fixes this error.
|
 | llvm/lib/Target/M68k/M68kSubtarget.cpp |
Commit
36111f28edb1182273c6409c3fb7808e0e9cbd60
by ikudrin[TableGen] Fix printing second PC-relative operand
If an instruction has several operands and a PC-relative one is not the first of them, the generator may produce the code that does not pass the 'Address' parameter to the printout method. For example, for an Arm instruction 'LE LR, $imm', it reuses the same code as for other instructions where the second operand is not PC-relative:
void ARMInstPrinter::printInstruction(...) { ... case 11: // BF16VDOTI_VDOTD, BF16VDOTI_VDOTQ, BF16VDOTS_VDOTD, ... printOperand(MI, 1, STI, O); O << ", "; printOperand(MI, 2, STI, O); break; ...
The patch fixes that by considering 'PCRel' when comparing 'AsmWriterOperand' values.
Differential Revision: https://reviews.llvm.org/D104698
|
 | llvm/utils/TableGen/AsmWriterInst.h |
 | llvm/test/TableGen/AsmWriterPCRelOp.td |
Commit
1cb7849a552c24ea2541d56561d03c8f0b46ca98
by martinRevert "[AArch64LoadStoreOptimizer] Recommit: Generate more STPs by renaming registers earlier"
This reverts commit ea011ec5ed53599305de62ca5fcfd31f4b3448c3.
This still causes some miscompiles, I'll follow up in the phabricator review with a sample of that issue (which is part of the sample of the previous issue).
|
 | llvm/test/CodeGen/AArch64/ldst-opt.ll |
 | llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp |
 | llvm/test/CodeGen/AArch64/consthoist-gep.ll |
 | llvm/test/CodeGen/AArch64/GlobalISel/byval-call.ll |
 | llvm/test/CodeGen/AArch64/stp-opt-with-renaming.mir |
Commit
0e55112242f644fdd59c382f774bf0f92143969f
by uday[NFC][PDL] Fix documentation typo, redundant test
Correct a documentation typo, and delete a duplicate test in `pdl-to-pdl-interp-rewriter.mlir`.
Reviewed By: pr4tgpt, bondhugula, rriddle
Differential Revision: https://reviews.llvm.org/D104688
|
 | mlir/include/mlir/Dialect/PDL/IR/PDLDialect.td |
 | mlir/test/Conversion/PDLToPDLInterp/pdl-to-pdl-interp-rewriter.mlir |
Commit
a873b6d466f5c4b2e939eb02c38425e5f7ffa513
by uday[MLIR] Generalize detecting mods during slice computing
During slice computation of affine loop fusion, detect one id as the mod of another id w.r.t a constant in a more generic way. Restrictions on co-efficients of the ids is removed. Also, information from the previously calculated ids is used for simplification of affine expressions, e.g.,
If `id1` = `id2`, `id_n - divisor * id_q - id_r + id1 - id2 = 0`, is simplified to: `id_n - divisor * id_q - id_r = 0`.
If `c` is a non-zero integer, `c*id_n - c*divisor * id_q - c*id_r = 0`, is simplified to: `id_n - divisor * id_q - id_r = 0`.
Reviewed By: bondhugula, ayzhuang
Differential Revision: https://reviews.llvm.org/D104614
|
 | mlir/lib/Analysis/AffineStructures.cpp |
 | mlir/test/Transforms/loop-fusion.mlir |
Commit
a21a6f51bcd54f04ec35a515af28260dc3374189
by gysit[mlir][linalg] Change the pretty printed FillOp operand order.
The patch changes the pretty printed FillOp operand order from output, value to value, output. The change is a follow up to https://reviews.llvm.org/D104121 that passes the fill value using a scalar input instead of the former capture semantics.
Differential Revision: https://reviews.llvm.org/D104356
|
 | mlir/test/Dialect/Linalg/canonicalize.mlir |
 | mlir/test/Dialect/Linalg/vectorization.mlir |
 | mlir/test/Dialect/Linalg/tiled-loops.mlir |
 | mlir/test/Dialect/Linalg/transform-patterns.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-3d-input-ncdhw-filter-dhwcf-call.mlir |
 | mlir/test/Dialect/Linalg/named-ops.mlir |
 | mlir/test/Dialect/Linalg/bufferize.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/benchmark_matmul_i8_i8_i32.mlir |
 | mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp |
 | mlir/lib/Dialect/Vector/VectorTransforms.cpp |
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgOps.h |
 | mlir/test/mlir-cpu-runner/unranked_memref.mlir |
 | mlir/test/Dialect/Linalg/roundtrip.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-2d-nchw-call.mlir |
 | mlir/test/python/dialects/linalg/ops.py |
 | mlir/test/Integration/Dialect/Linalg/CPU/benchmark_matmul.mlir |
 | mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp |
 | mlir/test/Dialect/Linalg/fusion-sequence.mlir |
 | mlir/test/Dialect/Linalg/forward-vector-transfers.mlir |
 | mlir/test/Dialect/Linalg/generalize-named-ops.mlir |
 | mlir/test/Dialect/Linalg/comprehensive-func-bufferize.mlir |
 | mlir/test/Dialect/Linalg/fusion-tensor-pattern.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-3d-ncdhw-call.mlir |
 | mlir/test/mlir-cpu-runner/utils.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-3d-ndhwc-call.mlir |
 | mlir/test/Dialect/Linalg/fusion-pattern.mlir |
 | mlir/test/python/dialects/linalg/opsrun.py |
 | mlir/test/Dialect/Linalg/tile-and-fuse-tensors.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/matmul-vs-matvec.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-3d-call.mlir |
 | mlir/test/Dialect/Linalg/tile.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-1d-call.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-1d-nwc-call.mlir |
 | mlir/test/Dialect/Linalg/loops.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-1d-input-nwc-filter-wcf-call.mlir |
 | mlir/test/Dialect/Vector/vector-transfer-full-partial-split.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-2d-input-nchw-filter-hwcf-call.mlir |
 | mlir/test/Dialect/Linalg/invalid.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-1d-input-ncw-filter-wcf-call.mlir |
 | mlir/test/Dialect/Linalg/fusion.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/benchmark_matmul_column_major_as_row_major.mlir |
 | mlir/test/Dialect/Linalg/comprehensive-func-bufferize-analysis.mlir |
 | mlir/test/mlir-cpu-runner/sgemm_naive_codegen.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-2d-nhwc-call.mlir |
 | mlir/test/Dialect/Linalg/drop-unit-extent-dims.mlir |
 | mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir |
 | mlir/test/Dialect/Linalg/promotion_options.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-2d-call.mlir |
 | mlir/test/Integration/Dialect/Async/CPU/microbench-linalg-async-parallel-for.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-2d-input-nhwc-filter-hwcf-call.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-3d-input-ndhwc-filter-dhwcf-call.mlir |
 | mlir/test/mlir-cpu-runner/async.mlir |
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-1d-ncw-call.mlir |
Commit
fdf54f5c506a12ca509b5af0967347a2848b3b77
by martin[LLD] [MinGW] Print the lld-link command to stderr
This is consistent with how clang prints its internal commands with -### and -v.
When linking with -verbose, we get log messages from the actual linking written to stderr. By printing the command to the same stream, we make sure they appear in a sensible chronological order.
Differential Revision: https://reviews.llvm.org/D104527
|
 | lld/test/MinGW/driver.test |
 | lld/test/MinGW/lib.test |
 | lld/MinGW/Driver.cpp |
Commit
011b502ce850f423991c97356f566548372c50ca
by i[llvm-objcopy][MachO] Fix namespace style issues
|
 | llvm/tools/llvm-objcopy/MachO/Object.cpp |
 | llvm/tools/llvm-objcopy/MachO/MachOObjcopy.cpp |
 | llvm/tools/llvm-objcopy/MachO/MachOReader.cpp |
 | llvm/tools/llvm-objcopy/MachO/MachOWriter.cpp |
 | llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp |
Commit
f1a18fb6993bcc7d646753c70faa0444abb8cc5c
by martin[LLD] [MinGW] Silence the printouts in one test. NFC.
This particular linker invocation is only run to check that we accept options, but we don't inspect the generated command line. As all other commands in the file have their output piped to FileCheck, the lit test doesn't print any other output; therefore silence this one for consistency as well.
|
 | lld/test/MinGW/driver.test |
Commit
2b43209ee37ce27cede17cf5424e7655adfe3ac2
by Stanislav.Mekhanoshin[AMDGPU] Propagate LDS align into to instructions
Differential Revision: https://reviews.llvm.org/D104316
|
 | llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp |
 | llvm/test/CodeGen/AMDGPU/ds_write2.ll |
 | llvm/test/CodeGen/AMDGPU/ds_read2.ll |
 | llvm/test/CodeGen/AMDGPU/lower-module-lds.ll |
 | llvm/test/CodeGen/AMDGPU/lower-kernel-lds.ll |
 | llvm/test/CodeGen/AMDGPU/lower-module-lds-used-list.ll |
 | llvm/test/CodeGen/AMDGPU/replace-lds-by-ptr-lds-offsets.ll |
 | llvm/test/CodeGen/AMDGPU/lower-kernel-lds-constexpr.ll |
 | llvm/test/CodeGen/AMDGPU/lower-kernel-lds-super-align.ll |
 | llvm/test/CodeGen/AMDGPU/lower-kernel-lds-global-uses.ll |
 | llvm/test/CodeGen/AMDGPU/lower-kernel-and-module-lds.ll |
Commit
7cef24ee83cd85b0d7917e7d574287615a717e44
by gysit[mlir][linalg] Adapt the FillOp builder signature.
Change the build operand order from output, value to value, output. The patch makes the argument order consistent with the pretty printed order updated by https://reviews.llvm.org/D104356.
Differential Revision: https://reviews.llvm.org/D104359
|
 | mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp |
 | mlir/lib/Dialect/Vector/VectorTransforms.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp |
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td |
 | mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/Promotion.cpp |
 | mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/Bufferize.cpp |
Commit
c65f3f562b15588a444322afe3f2cd3693681730
by jay.foad[AMDGPU] Simplify collectReachableCallees. NFCI.
Don't use SCC iterators when we're only interested in reachability. Use df_begin/df_end inline to find reachable nodes.
Differential Revision: https://reviews.llvm.org/D104704
|
 | llvm/lib/Target/AMDGPU/Utils/AMDGPULDSUtils.cpp |
Commit
5ab96fa16b31c0f019da63ae2bce3820e672d897
by flo[SCEV] Add tests with single-cond range check generated by InstComb.
|
 | llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info.ll |
Commit
adee485adf84ae8af4105ab4e0b62753245f420d
by flo[SCEV] Support signed predicates in applyLoopGuards.
This adds handling for signed predicates, similar to how unsigned predicates are already handled.
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D104732
|
 | llvm/lib/Analysis/ScalarEvolution.cpp |
 | llvm/test/Analysis/ScalarEvolution/sext-mul.ll |
 | llvm/test/Analysis/ScalarEvolution/max-trip-count.ll |
 | llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info.ll |
 | llvm/test/Analysis/Delinearization/a.ll |
 | llvm/test/Analysis/ScalarEvolution/max-trip-count-address-space.ll |
Commit
aa58fdb3960bf1ea25c2c088fba96700cb7e7071
by flo[llvm] Update tests that got missed in adee485adf84ae8a.
|
 | llvm/test/Transforms/LoopVersioningLICM/loopversioningLICM2.ll |
 | llvm/test/Transforms/LoopStrengthReduce/X86/nested-loop.ll |
Commit
f1844f15c1ad54b78f2d84087df4b51fe5f703f6
by gysit[mlir][linalg] Change the FillOp library call signature.
Adapt the FillOp library call signature to the updated operand order introduced in https://reviews.llvm.org/D10412. The patch reverts the special treatment of FillOp in LinalgToStandard.
Differential Revision: https://reviews.llvm.org/D104360
|
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgOps.h |
 | mlir/lib/Conversion/LinalgToStandard/LinalgToStandard.cpp |
Commit
157473a58f02b8f2ad12ecbaaa1af32d0342257b
by jay.foad[IR] Simplify createReplacementInstr
NFCI, although the test change shows that ConstantExpr::getAsInstruction is better than the old implementation of createReplacementInstr because it propagates things like the sdiv "exact" flag.
Differential Revision: https://reviews.llvm.org/D104124
|
 | llvm/lib/IR/ReplaceConstant.cpp |
 | clang/test/CodeGenCUDA/managed-var.cu |
Commit
dfb8c0873984e24ac98a41a372dbe31d8feb629e
by jay.foad[AMDGPU] Stop using LegacyLegalizerInfo. NFCI.
Differential Revision: https://reviews.llvm.org/D103684
|
 | llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp |
Commit
f0d43a29e30da8f2758e17e1c242917288ab9a0b
by nicolas.vasilache[mlir][LLVMIR] Fold ExtractValueOp coming from InsertValueOp
Differential Revision: https://reviews.llvm.org/D104769
|
 | mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td |
 | mlir/test/Dialect/LLVMIR/canonicalize.mlir |
 | mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp |
Commit
3ee6f1a4fa83fa1e737324e77c27d3cc967d36bc
by nikita.ppv[LLParser] Remove special handling for call address space
Spin-off from D104740: I don't think this special handling is needed anymore. Calls in textual IR are annotated with addrspace(N) (which defaults to the program address space from data layout) and specifies the expected pointer address space of the callee. There is no need to special-case the program address space on top of that, as it already is the default expected address space, and we shouldn't allow use of the program address space if the call was explicitly annotated with some other address space.
The IsCall parameter is retained because it will be used again soon.
Differential Revision: https://reviews.llvm.org/D104752
|
 | llvm/lib/AsmParser/LLParser.cpp |
Commit
cfb1cb4491d7aac218d9fd903a69b46bbc21118b
by nikita.ppv[TTI] Make assertion compatible with opaque pointers
Dropping the TODO here because it applies to all uses of this method.
|
 | llvm/include/llvm/Analysis/TargetTransformInfoImpl.h |
Commit
3c4dbf6ea9a06d0e5b460895bc5677ca7e382b4e
by joe.ellis[Verifier] Fail on overrunning and invalid indices for {insert,extract} vector intrinsics
With regards to overrunning, the langref (llvm/docs/LangRef.rst) specifies:
(llvm.experimental.vector.insert) Elements ``idx`` through (``idx`` + num_elements(``subvec``) - 1) must be valid ``vec`` indices. If this condition cannot be determined statically but is false at runtime, then the result vector is undefined.
(llvm.experimental.vector.extract) Elements ``idx`` through (``idx`` + num_elements(result_type) - 1) must be valid vector indices. If this condition cannot be determined statically but is false at runtime, then the result vector is undefined.
For the non-mixed cases (e.g. inserting/extracting a scalable into/from another scalable, or inserting/extracting a fixed into/from another fixed), it is possible to statically check whether or not the above conditions are met. This was previously missing from the verifier, and if the conditions were found to be false, the result of the insertion/extraction would be replaced with an undef.
With regards to invalid indices, the langref (llvm/docs/LangRef.rst) specifies:
(llvm.experimental.vector.insert) ``idx`` represents the starting element number at which ``subvec`` will be inserted. ``idx`` must be a constant multiple of ``subvec``'s known minimum vector length.
(llvm.experimental.vector.extract) The ``idx`` specifies the starting element number within ``vec`` from which a subvector is extracted. ``idx`` must be a constant multiple of the known-minimum vector length of the result type.
Similarly, these conditions were not previously enforced in the verifier. In some circumstances, invalid indices were permitted silently, and in other circumstances, an undef was spawned where a verifier error would have been preferred.
This commit adds verifier checks to enforce the constraints above.
Differential Revision: https://reviews.llvm.org/D104468
|
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-extract-subvector.ll |
 | llvm/test/CodeGen/AArch64/sve-extract-vector.ll |
 | llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-opts-cmpne.ll |
 | llvm/lib/IR/Verifier.cpp |
 | llvm/test/CodeGen/AArch64/sve-insert-vector.ll |
 | llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert-subvector.ll |
 | llvm/test/Transforms/InstCombine/canonicalize-vector-extract.ll |
 | llvm/test/Transforms/InstCombine/canonicalize-vector-insert.ll |
 | llvm/test/Verifier/insert-extract-intrinsics-invalid.ll |
Commit
1b1c8e4a984c07a3c985408d3d80c8e24e60d3d1
by david.spickett[lldb] Remove CommandReturnObject's SetError(StringRef)
Replacing existing uses with AppendError.
SetError is also part of the SBI API. This remains but instead of calling the underlying SetError it will call AppendError.
Reviewed By: teemperor
Differential Revision: https://reviews.llvm.org/D104768
|
 | lldb/source/Commands/CommandObjectReproducer.cpp |
 | lldb/source/Commands/CommandObjectTrace.cpp |
 | lldb/source/Interpreter/CommandReturnObject.cpp |
 | lldb/source/Commands/CommandObjectMultiword.cpp |
 | lldb/source/API/SBCommandReturnObject.cpp |
 | lldb/source/Commands/CommandObjectBreakpoint.cpp |
 | lldb/include/lldb/Interpreter/CommandReturnObject.h |
 | lldb/source/Commands/CommandObjectThread.cpp |
 | lldb/source/Commands/CommandObjectType.cpp |
 | lldb/source/Commands/CommandObjectProcess.cpp |
 | lldb/source/Interpreter/CommandObject.cpp |
Commit
5af8bacc940243038478da1c92c3481cbdfcece3
by aqjune[InstSimplify] Add more poison folding optimizations
This adds more poison folding optimizations to InstSimplify.
Since all binary operators propagate poison, these are fine.
Also, the precondition of `select cond, undef, x` -> `x` is relaxed to allow the case when `x` is undef.
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D104661
|
 | llvm/lib/Analysis/InstructionSimplify.cpp |
 | llvm/test/Transforms/InstSimplify/and.ll |
 | llvm/test/Transforms/InstSimplify/ConstProp/poison.ll |
 | llvm/test/Transforms/InstSimplify/select-inseltpoison.ll |
 | llvm/test/Transforms/InstSimplify/mul.ll |
 | llvm/test/Transforms/InstCombine/getelementptr.ll |
 | llvm/test/Transforms/InstSimplify/shift.ll |
 | llvm/test/Transforms/InstCombine/select-binop-cmp.ll |
 | llvm/test/Transforms/InstCombine/and-narrow.ll |
 | llvm/test/Transforms/InstSimplify/sub.ll |
 | llvm/test/Transforms/InstSimplify/select.ll |
 | llvm/test/Transforms/InstSimplify/fcmp.ll |
 | llvm/test/Transforms/InstSimplify/or.ll |
Commit
24037c37b6c4043faae7bf396b735e1ba36e46e0
by hansAdd support for #pragma system_header with -fms-extensions
Clang already supports the pragma prefixed by "GCC" or "clang".
MSVC has more recently added support for the pragma, but without any prefix; see https://devblogs.microsoft.com/cppblog/broken-warnings-theory/#external-headers
Differential revision: https://reviews.llvm.org/D104770
|
 | clang/lib/Lex/Pragma.cpp |
 | clang/test/Preprocessor/pragma_sysheader.c |
 | clang/test/Preprocessor/Inputs/pragma_sysheader.h |
 | clang/test/Preprocessor/pragma_sysheader.h |
 | clang/test/Lexer/pragma-operators.cpp |
Commit
ff4b1d379f3f3d2dfd9f9b4fc5715676024b8024
by lebedev.ri[NFCI-ish][SimplifyCFGPass] Rework and generalize `ret` block tail-merging
This changes the approach taken to tail-merge the blocks to always create a new block instead of trying to reuse some block, and generalizes it to support dealing not with just the `ret` in the future.
This effectively lifts the CallBr restriction, although this isn't really intentional. That is the only non-NFC change here, i'm not sure if it's reasonable/feasible to temporarily retain it.
Other restrictions of the transform remain.
Reviewed By: rnk
Differential Revision: https://reviews.llvm.org/D104598
|
 | llvm/test/Transforms/SimplifyCFG/suppress-zero-branch-weights.ll |
 | llvm/test/Transforms/SimplifyCFG/2003-08-17-FoldSwitch.ll |
 | llvm/test/Transforms/SimplifyCFG/hoist-dbgvalue.ll |
 | llvm/test/Transforms/LoopUnroll/ARM/upperbound.ll |
 | llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp |
 | llvm/test/Transforms/SimplifyCFG/basictest.ll |
 | llvm/test/Transforms/SimplifyCFG/FoldValueComparisonIntoPredecessors-no-new-successors.ll |
 | llvm/test/Transforms/SimplifyCFG/ConditionalTrappingConstantExpr.ll |
 | llvm/test/Transforms/SimplifyCFG/FoldValueComparisonIntoPredecessors-domtree-preservation-edgecase.ll |
 | llvm/test/Transforms/SimplifyCFG/rangereduce.ll |
 | llvm/test/CodeGen/ARM/speculation-hardening-sls.ll |
 | llvm/test/Transforms/SimplifyCFG/pr48778-sdiv-speculation.ll |
 | llvm/test/Transforms/SimplifyCFG/SimplifyEqualityComparisonWithOnlyPredecessor-domtree-preservation-edgecase.ll |
 | llvm/test/Transforms/SimplifyCFG/return-merge.ll |
 | llvm/test/Transforms/SimplifyCFG/switch-masked-bits.ll |
Commit
76c931ae42cf1080199a238446306e8554ebb6de
by zarko[AIX][PowerPC] Remove error when specifying mabi=vec-default on AIX
The default Altivec ABI was implemented but the clang error for specifying its use still remains. Users could get around this but not specifying the type of Altivec ABI but we need to remove the error.
Reviewed By: jsji
Differential Revision: https://reviews.llvm.org/D102094
|
 | clang/lib/Driver/ToolChains/Clang.cpp |
 | clang/test/Driver/aix-vec_extabi.c |
 | clang/lib/Frontend/CompilerInvocation.cpp |
 | clang/test/Driver/aix-vec-extabi.c |
 | clang/include/clang/Basic/DiagnosticDriverKinds.td |
 | clang/test/CodeGen/altivec.c |
 | clang/test/Preprocessor/aix-vec_extabi.c |
Commit
ca7f4715858137dc97ac782cead65ba706bffa3c
by owenca[clang-format] Fix a bug that indents else-comment-if incorrectly
PR50809
Differential Revision: https://reviews.llvm.org/D104774
|
 | clang/unittests/Format/FormatTest.cpp |
 | clang/lib/Format/UnwrappedLineParser.cpp |
Commit
12cb8ca6686041990f83eab1897b41f70f6f123c
by rosie.sumpter[AArch64] Add CodeGen tests for vector reduction intrinsics. NFC
Tests are added for vector reduce OR, AND and XOR.
Differential Revision: https://reviews.llvm.org/D104771
|
 | llvm/test/CodeGen/AArch64/reduce-xor.ll |
 | llvm/test/CodeGen/AArch64/reduce-or.ll |
 | llvm/test/CodeGen/AArch64/reduce-and.ll |
Commit
8a5165b3b9f20017ad28e28d7bc519f1855f0bfa
by Raphael Isemann[lldb][NFC] Remove some redundant semicolons on HostInfoMacOSX
|
 | lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm |
Commit
fe63db25bcc0dd31fc471f60591a0f24ee8dbf57
by david.spickett[lldb] Remove asserts in CommandReturnObject SetError and AppendError
I added asserts to these in https://reviews.llvm.org/D104525. They are available (directly or otherwise) via the API so we should not assert.
Restore the previous behaviour. If the message is empty, we return early before printing anything. For SetError don't assert that the error is a failure.
The remaining assert is in AppendRawError which is not part of the API.
Reviewed By: teemperor
Differential Revision: https://reviews.llvm.org/D104778
|
 | lldb/source/Interpreter/CommandReturnObject.cpp |
Commit
8c01deb8e65490d730e8a2eac1e4ffa8822ce992
by nikita.ppv[ARMParallelDSP] Remove unnecessary wrapper function (NFC)
AreSequentialAccesses() forwards directly to isConsecutiveAccess() and has an unnecessary template parameter to boot.
|
 | llvm/lib/Target/ARM/ARMParallelDSP.cpp |
Commit
4de0c400317e5a92d57f2c76545061a9e7de22f8
by lebedev.ri[NFC][ARM] Fix update_llc_test_checks for armv7-apple-ios, autogenerate ifcvt5.ll/ifcvt6.ll
|
 | llvm/utils/UpdateTestChecks/asm.py |
 | llvm/test/CodeGen/ARM/ifcvt5.ll |
 | llvm/test/CodeGen/ARM/ifcvt6.ll |
Commit
15be15073ef6eb2c4fd734917322909d405f16e2
by lebedev.ri[NFC][ARM] Fix update_llc_test_checks for thumbv7-apple-ios, autogenerate switch-minsize.ll
|
 | llvm/utils/UpdateTestChecks/asm.py |
 | llvm/test/CodeGen/ARM/switch-minsize.ll |
Commit
3c94869632d3f762c1699d4d920c1ac2721b95c0
by lebedev.ri[NFC][ARM] Fix update_llc_test_checks for aarch64-apple-ios/thumbv7s-apple-darwin, autogenerate a few tests
|
 | llvm/utils/UpdateTestChecks/asm.py |
 | llvm/test/CodeGen/AArch64/branch-relax-asm.ll |
 | llvm/test/CodeGen/AArch64/GlobalISel/swifterror.ll |
 | llvm/test/CodeGen/ARM/ifcvt-iter-indbr.ll |
 | llvm/test/CodeGen/AArch64/swifterror.ll |
Commit
b77972ac4f05a45fabdd76f60ac1deb5816512b5
by lebedev.ri[NFC][AArch64] Autogenerate a few more tests
|
 | llvm/test/CodeGen/AArch64/check-sign-bit-before-extension.ll |
 | llvm/test/CodeGen/AArch64/sve-breakdown-scalable-vectortype.ll |
Commit
eb7ce97870d919961f5a41804d33684abbef1188
by lebedev.ri[NFC][ARM] Fix update_llc_test_checks for thumbv7-apple-darwin, autogenerate thumb2-ifcvt1.ll
|
 | llvm/test/CodeGen/Thumb2/thumb2-ifcvt1.ll |
 | llvm/utils/UpdateTestChecks/asm.py |
Commit
a16cb95a3a44b471fcbdb67b0844de9018b27873
by jay.foad[AMDGPU] Remove unused multiclass MUBUF_Real_gfx10_with_name
|
 | llvm/lib/Target/AMDGPU/BUFInstructions.td |
Commit
a0d05ed848990c06c6dcdfc2e37bc8f13f7fe470
by sgueltonHandle interactions between reserved identifier and user-defined suffixes
According to https://eel.is/c++draft/over.literal
> double operator""_Bq(long double); // OK: does not use the reserved identifier _Bq ([lex.name]) > double operator"" _Bq(long double); // ill-formed, no diagnostic required: uses the reserved identifier _Bq ([lex.name])
Obey that rule by keeping track of the operator literal name status wrt. leading whitespace.
Fix: https://bugs.llvm.org/show_bug.cgi?id=50644
Differential Revision: https://reviews.llvm.org/D104299
|
 | clang/lib/AST/Decl.cpp |
 | clang/lib/Sema/SemaExprCXX.cpp |
 | clang/lib/Parse/ParseExprCXX.cpp |
 | clang/include/clang/Sema/Sema.h |
 | clang/test/Sema/reserved-identifier.cpp |
Commit
707224ea16f67c9a4fb97e89f5599838fd622841
by lebedev.ri[NFC] Update arm_function_name.ll after 4de0c400317e5a92d57f2c76545061a9e7de22f8
|
 | llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/arm_function_name.ll.expected |
Commit
0c0628c92c0d3638f5739ecb28ba554347feccdf
by Louis Dionne[libc++] Remove ad-hoc modules tests that are now unnecessary
Since we now have modules-enabled CI, it is now redundant to have ad-hoc tests that check arbitrary things about our modules support. Instead, the whole test suite should pass with modules enabled, period.
This patch also removes the module cache path workaround: one would expect that modules work properly without that workaround. If that isn't the case and we do run into flaky test failures, we can re-enable the workaround temporarily (but that would be very vexing and we should fix Clang ASAP if that's the case).
Differential Revision: https://reviews.llvm.org/D104746
|
 | libcxx/test/libcxx/modules/clocale_exports.compile.pass.cpp |
 | libcxx/test/libcxx/modules/cstdint_exports.compile.pass.cpp |
 | libcxx/test/libcxx/modules/stdint_h_exports.compile.pass.cpp |
 | libcxx/test/libcxx/modules/cinttypes_exports.compile.pass.cpp |
 | libcxx/test/libcxx/modules/inttypes_h_exports.compile.pass.cpp |
 | libcxx/test/libcxx/modules/stds_include.sh.cpp |
 | libcxx/utils/libcxx/test/features.py |
Commit
48421ac441bf64ec940b13c2dee1bc1a7671e878
by jdenny.ornl[OpenMP] Improve ref count debug messages
For example, without this patch:
``` $ cat test.c int main() { int x; #pragma omp target enter data map(alloc: x) #pragma omp target exit data map(release: x) ; return 0; } $ clang -fopenmp -fopenmp-targets=nvptx64-nvidia-cuda test.c $ LIBOMPTARGET_DEBUG=1 ./a.out |& grep 'Creating\|Mapping exists' Libomptarget --> Creating new map entry with HstPtrBegin=0x00007ffcace8e448, TgtPtrBegin=0x00007f12ef600000, Size=4, Name=unknown Libomptarget --> Mapping exists with HstPtrBegin=0x00007ffcace8e448, TgtPtrBegin=0x00007f12ef600000, Size=4, updated RefCount=1 ```
There are two problems in this example:
* `RefCount` is not reported when a mapping is created, but it might be 1 or infinite. In this case, because it's created by `omp target enter data`, it's 1. Seeing that would make later `RefCount` messages easier to understand. * `RefCount` is still 1 at the `omp target exit data`, but it's reported as `updated`. The reason it's still 1 is that, upon deletions, the reference count is generally not updated in `DeviceTy::getTgtPtrBegin`, where the report is produced. Instead, it's zeroed later in `DeviceTy::deallocTgtPtr`, where it's actually removed from the mapping table.
This patch makes the following changes:
* Report the reference count when creating a mapping. * Where an existing mapping is reported, always report a reference count action: * `update suppressed` when `UpdateRefCount=false` * `incremented` * `decremented` * `deferred final decrement`, which replaces the misleading `updated` in the above example * Add comments to `DeviceTy::getTgtPtrBegin` to explain why it does not zero the reference count. (Please advise if these comments miss the point.) * For unified shared memory, don't report confusing messages like `RefCount=` or `RefCount= updated` given that reference counts are irrelevant in this case. Instead, just report `for unified shared memory`. * Use `INFO` not `DP` consistently for `Mapping exists` messages. * Fix device table dumps to print `INF` instead of `-1` for an infinite reference count.
Reviewed By: jhuber6, grokos
Differential Revision: https://reviews.llvm.org/D104559
|
 | openmp/docs/design/Runtimes.rst |
 | openmp/libomptarget/src/device.h |
 | openmp/libomptarget/src/private.h |
 | openmp/libomptarget/test/offloading/info.c |
 | openmp/libomptarget/src/device.cpp |
Commit
9fa5e3280d0bfdb90e3f2823f5bc63446628682d
by jdenny.ornl[OpenMP] Fix delete map type in ref count debug messages
For example, without this patch:
``` $ cat test.c int main() { int x; #pragma omp target enter data map(alloc: x) #pragma omp target enter data map(alloc: x) #pragma omp target enter data map(alloc: x) #pragma omp target exit data map(delete: x) ; return 0; } $ clang -fopenmp -fopenmp-targets=nvptx64-nvidia-cuda test.c $ LIBOMPTARGET_DEBUG=1 ./a.out |& grep 'Creating\|Mapping exists\|last' Libomptarget --> Creating new map entry with HstPtrBegin=0x00007ffddf1eaea8, TgtPtrBegin=0x00000000013bb040, Size=4, RefCount=1, Name=unknown Libomptarget --> Mapping exists with HstPtrBegin=0x00007ffddf1eaea8, TgtPtrBegin=0x00000000013bb040, Size=4, RefCount=2 (incremented), Name=unknown Libomptarget --> Mapping exists with HstPtrBegin=0x00007ffddf1eaea8, TgtPtrBegin=0x00000000013bb040, Size=4, RefCount=3 (incremented), Name=unknown Libomptarget --> Mapping exists with HstPtrBegin=0x00007ffddf1eaea8, TgtPtrBegin=0x00000000013bb040, Size=4, RefCount=2 (decremented) Libomptarget --> There are 4 bytes allocated at target address 0x00000000013bb040 - is not last ```
`RefCount` is reported as decremented to 2, but it ought to be reset because of the `delete` map type, and `is not last` is incorrect.
This patch migrates the reset of reference counts from `DeviceTy::deallocTgtPtr` to `DeviceTy::getTgtPtrBegin`, which then correctly reports the reset. Based on the `IsLast` result from `DeviceTy::getTgtPtrBegin`, `targetDataEnd` then correctly reports `is last` for any deletion. `DeviceTy::deallocTgtPtr` is responsible only for the final reference count decrement and mapping removal.
An obscure side effect of this patch is that a `delete` map type when the reference count is infinite yields `DelEntry=IsLast=false` in `targetDataEnd` and so no longer results in a `DeviceTy::deallocTgtPtr` call. Without this patch, that call is a no-op anyway besides some unnecessary locking and mapping table lookups.
Reviewed By: grokos
Differential Revision: https://reviews.llvm.org/D104560
|
 | openmp/libomptarget/src/device.h |
 | openmp/libomptarget/src/omptarget.cpp |
 | openmp/libomptarget/src/device.cpp |
Commit
c125af82a5ff5dbbbcb8ebc5cde156d41e6ac281
by Jinsong Ji[DAGCombine] Check reassoc flags in aggressive fsub fusion
The is from discussion in https://reviews.llvm.org/D104247#inline-993387
The contract and reassoc flags shouldn't imply each other .
All the aggressive fsub fusion reassociate operations, we should guard them with reassoc flag check.
Reviewed By: mcberg2017
Differential Revision: https://reviews.llvm.org/D104723
|
 | llvm/test/CodeGen/AMDGPU/fpext-free.ll |
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp |
 | llvm/test/CodeGen/PowerPC/fma-assoc.ll |
Commit
87065c0d242d955e6f3fddf5cbc790d025c3521c
by gchatelet[libc] add benchmarks for memcmp and bzero
Differential Revision: https://reviews.llvm.org/D104511
|
 | libc/src/string/CMakeLists.txt |
 | libc/benchmarks/CMakeLists.txt |
 | libc/benchmarks/LibcMemoryBenchmarkMain.cpp |
Commit
5dfdc1812d9b9c043204d39318f6446424d8f2d7
by jonathanchesterfield[OpenMP][AMDGCN] Apply fix for isnan, isinf and isfinite for amdgcn.
This fixes issues with various return types(bool/int) and was already in place for nvptx headers, adjusted to work for amdgcn. This does not affect hip as the change is guarded with OPENMP_AMDGCN. Similar to D85879.
Reviewed By: jdoerfert, JonChesterfield, yaxunl
Differential Revision: https://reviews.llvm.org/D104677
|
 | clang/test/Headers/hip-header.hip |
 | clang/lib/Headers/__clang_hip_cmath.h |
 | clang/test/Headers/openmp_device_math_isnan.cpp |
Commit
1e9b6b89a7b5c49612018b120c2c142106056f82
by spatel[InstCombine] convert FP min/max with negated op to fabs
This is part of improving floating-point patterns seen in: https://llvm.org/PR39480
We don't require any FMF because the 2 potential corner cases (-0.0 and NaN) are correctly handled without FMF: 1. -0.0 is treated as strictly less than +0.0 with maximum/minimum, so fabs/fneg work as expected. 2. +/- 0.0 with maxnum/minnum is indeterminate, so transforming to fabs/fneg is more defined. 3. The sign of a NaN may be altered by this transform, but that is allowed in the default FP environment.
If there are FMF, they are propagated from the min/max call to one or both new operands which seems to agree with Alive2: https://alive2.llvm.org/ce/z/bem_xC
|
 | llvm/test/Transforms/InstCombine/minnum.ll |
 | llvm/test/Transforms/InstCombine/maximum.ll |
 | llvm/test/Transforms/InstCombine/minimum.ll |
 | llvm/test/Transforms/InstCombine/maxnum.ll |
 | llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp |
Commit
a37cf17834d39411ed1d669098b428f8374c5b45
by craig.topper[RISCV] Add explicit copy to V0 in the masked vmsge(u).vx intrinsic handling.
This is consistent with our other masked vector instructions. Previously we found cases where not doing this broke fast reg alloc.
|
 | llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp |
Commit
38b7b1d4a2930cc82e69a8069fad4b363f73a212
by jdenny.ornl[UpdateCCTestChecks][NFC] Permit other comments in common.py
Some parts of common.py already permit comment styles besides `;`. Handle the remaining cases. Specifically, a future patch will extend update_cc_test_checks.py to call add_global_checks.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D104713
|
 | llvm/utils/UpdateTestChecks/common.py |
Commit
ad0085d3381a28041244fe6847f6ac1ce8dd052e
by spatel[InstCombine] Eliminate casts to optimize ctlz operation
If a ctlz operation is performed on higher datatype and then downcasted, then this can be optimized by doing a ctlz operation on a lower datatype and adding the difference bitsize to the result of ctlz to provide the same output:
https://alive2.llvm.org/ce/z/8uup9M
The original problem is shown in https://llvm.org/PR50173
Differential Revision: https://reviews.llvm.org/D103788
|
 | llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp |
 | llvm/test/Transforms/InstCombine/zext-ctlz-trunc-to-ctlz-add.ll |
Commit
8cfc08013299d873edd364436aa78e7effb28dd4
by david.green[ARM] Limit v6m unrolling with multiple live outs
v6m cores only have a limited number of registers available. Unrolling can mean we spend more on stack spills and reloads than we save from the unrolling. This patch adds an extra heuristic to put a limit on the unroll count for loops with multiple live out values, as measured from the LCSSA phi nodes.
Differential Revision: https://reviews.llvm.org/D104659
|
 | llvm/test/Transforms/LoopUnroll/ARM/v6munroll.ll |
 | llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp |
Commit
656001e7b2b939d9bce4fb58831d314dc67ddf7a
by spatel[ValueTracking] look through bitcast of vector in computeKnownBits
This borrows as much as possible from the SDAG version of the code (originally added with D27129 and since updated with big endian support).
In IR, we can test more easily for correctness than we did in the original patch. I'm using the simplest cases that I could find for InstSimplify: we computeKnownBits on variable shift amounts to see if they are zero or in range. So shuffle constant elements into a vector, cast it, and shift it.
The motivating x86 example from https://llvm.org/PR50123 is also here. We computeKnownBits in the caller code, but we only check if the shift amount is in range. That could be enhanced to catch the 2nd x86 test - if the shift amount is known too big, the result is 0.
Alive2 understands the datalayout and agrees that the tests here are correct - example: https://alive2.llvm.org/ce/z/KZJFMZ
Differential Revision: https://reviews.llvm.org/D104472
|
 | llvm/test/Transforms/InstCombine/X86/x86-vector-shifts.ll |
 | llvm/test/Transforms/InstSimplify/shift-knownbits.ll |
 | llvm/lib/Analysis/ValueTracking.cpp |
Commit
be9a87fe9bc395074c383c07fbd9c0bce953985f
by vlovich[clang-format] Add IfMacros option
https://bugs.llvm.org/show_bug.cgi?id=49354
Differential Revision: https://reviews.llvm.org/D102730
|
 | clang/lib/Format/TokenAnnotator.cpp |
 | clang/include/clang/Format/Format.h |
 | clang/docs/ClangFormatStyleOptions.rst |
 | clang/docs/ReleaseNotes.rst |
 | clang/lib/Format/FormatToken.h |
 | clang/lib/Format/Format.cpp |
 | clang/unittests/Format/FormatTest.cpp |
 | clang/lib/Format/FormatTokenLexer.cpp |
Commit
b58dfd87da5cb19693764869a9a158f88c3d4bde
by gcmnUpdate Bazel BUILD files up to be9a87fe9b
Differential Revision: https://reviews.llvm.org/D104791
|
 | utils/bazel/llvm-project-overlay/mlir/BUILD.bazel |
Commit
6cc6ada143236f16faf8b383d73e00e709fa6a9f
by tomasz.miasko[Demangle][Rust] Hide implementation details NFC
Move content of the "public" header into the implementation file.
This also renames two enumerations that were previously used through `rust_demangle::` scope, to avoid breaking a build bot with older version of GCC that rejects uses of enumerator through `E::A` if there is a variable with the same name as enumeration `E` in the scope.
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D104362
|
 | llvm/include/llvm/Demangle/RustDemangle.h |
 | llvm/lib/Demangle/RustDemangle.cpp |
Commit
00d3f7cc3c264adc360d0282ba8a27de2a004b94
by nikita.ppv[LAA] Make getPointersDiff() API compatible with opaque pointers
Make getPointersDiff() and sortPtrAccesses() compatible with opaque pointers by explicitly passing in the element type instead of determining it from the pointer element type.
The SLPVectorizer result is slightly non-optimal in that unnecessary pointer bitcasts are added.
Differential Revision: https://reviews.llvm.org/D104784
|
 | llvm/lib/Analysis/LoopAccessAnalysis.cpp |
 | llvm/include/llvm/Analysis/LoopAccessAnalysis.h |
 | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp |
 | llvm/test/Transforms/SLPVectorizer/X86/opaque-ptr.ll |
Commit
2fd3037ac615643fe8058292d2b89bb19a49cb2f
by aqjune[ConstantFold] Allow propagation of poison for and/or i1
They were disallowed due to its bad interaction with select i1 -> and/or i1. The transformation is now disabled by D101191, so let's revive this.
|
 | llvm/lib/IR/ConstantFold.cpp |
Commit
560170fa2de5ed3d8720bf6a88c7652ceb47ff8c
by zoecarver[libcxx][views] Add drop_view.
The first view in the libc++ ranges library 🚀
Differential Revision: https://reviews.llvm.org/D102037
|
 | libcxx/test/std/ranges/range.adaptors/range.drop/base.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.drop/ctad.compile.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.drop/types.h |
 | libcxx/include/__ranges/drop_view.h |
 | libcxx/test/std/ranges/range.adaptors/range.drop/ctor.default.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.drop/dangling.cache.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.drop/general.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.drop/ctor.view.pass.cpp |
 | libcxx/include/CMakeLists.txt |
 | libcxx/test/std/ranges/range.adaptors/range.drop/end.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.drop/begin.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.drop/size.pass.cpp |
 | libcxx/include/ranges |
Commit
45d5373511711c7876e884e9460f99f904b5d0e3
by llvmgnsyncbot[gn build] Port 560170fa2de5
|
 | llvm/utils/gn/secondary/libcxx/include/BUILD.gn |
Commit
5616a79398c7f10d92daf7d6387b195e95f2ac7e
by gh[MLIR][LLVM] Expose type translator from LLVM to MLIR Type
This commit moves the type translator from LLVM to MLIR to a public header for use by external projects or other code
Differential Revision: https://reviews.llvm.org/D104726
|
 | mlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp |
 | mlir/lib/Target/LLVMIR/TypeTranslation.cpp |
 | mlir/include/mlir/Target/LLVMIR/TypeTranslation.h |
Commit
71f6f7e00a5946871c1390f4d29998d25ccf0d59
by ghRevert "[MLIR][LLVM] Expose type translator from LLVM to MLIR Type"
This reverts commit 5616a79398c7f10d92daf7d6387b195e95f2ac7e.
|
 | mlir/lib/Target/LLVMIR/TypeTranslation.cpp |
 | mlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp |
 | mlir/include/mlir/Target/LLVMIR/TypeTranslation.h |
Commit
5d44d56f7deb086ac91664fbd053d703cefd3da9
by kuterdinel[Attributor] Derive AAFunctionReachability attribute.
This attribute uses Attributor's internal 'optimistic' call graph information to answer queries about function call reachability.
Functions can become reachable over time as new call edges are discovered.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D104599
|
 | llvm/unittests/Transforms/IPO/AttributorTest.cpp |
 | llvm/include/llvm/Transforms/IPO/Attributor.h |
 | llvm/lib/Transforms/IPO/AttributorAttributes.cpp |
Commit
072f5180f2d33a3323a164fe19a7a477e93073a9
by Adrian PrantlImprove error handling in llvm-dwarfdump.
Without this patch we're only showing a generic error message derived from the error code to the end user.
rdar://79378794
Differential Revision: https://reviews.llvm.org/D104483
|
 | llvm/test/tools/llvm-dwarfdump/X86/lc_malformed.test |
 | llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp |
Commit
7b81fdf984ddc298ae2a1f672b64926e30946c3c
by Adrian Prantlclang-format llvm-dwarfdump.cpp
|
 | llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp |
Commit
ec08f03be3942d4ae6694d0f7a9b490fe3cbba9b
by zequanwu[OpaquePtr] Mangle intrinsics with opaque pointers arguments
Mangling intrinsics with opaque pointer arguments using "op"+{address space}.
Differential Revision: https://reviews.llvm.org/D104272
|
 | llvm/lib/IR/Function.cpp |
 | llvm/test/Verifier/opaque-ptr.ll |
Commit
e3d24b45b8f808ec66213e134c4ceda5202fbe31
by samitolvanenThinLTO: Fix inline assembly references to static functions with CFI
Create an internal alias with the original name for static functions that are renamed in promoteInternals to avoid breaking inline assembly references to them.
This relands commit 4474958d3a97dede2caa0920f7c4a4dc7aac57d3 with a fix to a use-of-uninitialized-value error that tripped MemorySanitizer.
Link: https://github.com/ClangBuiltLinux/linux/issues/1354
Reviewed By: nickdesaulniers, pcc
Differential Revision: https://reviews.llvm.org/D104058
|
 | llvm/test/Transforms/ThinLTOBitcodeWriter/cfi-icall-static-inline-asm.ll |
 | llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp |
Commit
f660af46e3df342245b6a0aacd8989c5a2212552
by nikita.ppv[OpaquePtr] Support call instruction
Add support for call of opaque pointer, currently only possible for indirect calls.
This requires a bit of special casing in LLParser, as calls do not specify the callee operand type explicitly.
Differential Revision: https://reviews.llvm.org/D104740
|
 | llvm/lib/IR/Verifier.cpp |
 | llvm/lib/Bitcode/Reader/BitcodeReader.cpp |
 | llvm/test/Assembler/opaque-ptr.ll |
 | llvm/lib/Bitcode/Writer/ValueEnumerator.cpp |
 | llvm/lib/AsmParser/LLParser.cpp |
Commit
00c93d8801f13058a4cd9b70a2747b5a9908e2a4
by riddleriverFix flang build after D104167
|
 | flang/include/flang/Optimizer/Dialect/FIROps.td |
 | flang/lib/Optimizer/Dialect/FIROps.cpp |
Commit
56709b869570f7825d335d633bc829511980c253
by Cyndy Ishida[TextAPI] add symbol name prefixes to central location, NFC
These prefixes are used for printing the symbols coming from tbd files and they were redundant across locations
|
 | llvm/lib/Object/TapiFile.cpp |
 | llvm/tools/llvm-tapi-diff/DiffEngine.cpp |
 | llvm/include/llvm/TextAPI/Symbol.h |
 | llvm/tools/llvm-tapi-diff/DiffEngine.h |
Commit
e5f2b035dd8ff5cce3e12d5ab7e478f7e66b9117
by nikita.ppv[OpaquePtr] Support invoke instruction
With call support in place, this is only a matter of relaxing a bitcode reader assertion.
|
 | llvm/test/Assembler/opaque-ptr.ll |
 | llvm/lib/Bitcode/Reader/BitcodeReader.cpp |
Commit
dbbc8d8333f29cf4ad6f4793da1adf71bbfdac69
by thakis[lld/mac] Don't crash on absolute symbols in unwind info generation
Fixes a regression from d6565a2dbcbe and PR50820.
|
 | lld/MachO/UnwindInfoSection.cpp |
 | lld/test/MachO/compact-unwind.s |
Commit
8321335fd8ae9110f4faaabce6ef62c28b8f16cf
by nikita.ppv[InstCombine] Use getFunctionType()
Avoid fetching pointer element type...
|
 | llvm/test/Transforms/InstCombine/opaque-ptr.ll |
 | llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp |
Commit
fb9f9497dc013a0e8d41d24748fc142cb6f4081a
by Cyndy Ishida[llvm-tapi-diff] Wrap empty string around StringLiteral NFC
This prevents invalid implicit conversation which caused buildbot failure.
|
 | llvm/tools/llvm-tapi-diff/DiffEngine.cpp |
Commit
b06fbdeae752e59cdf36a1cd26be8a6dcd51e862
by leonardchan[compiler-rt][hwasan] Add InitState options to thread initialization
Similar to InitOptions in asan, we can use this optional struct for initializing some members thread objects before they are created. On linux, this is unused and can remain undefined. On fuchsia, this will just be the stack bounds.
Differential Revision: https://reviews.llvm.org/D104553
|
 | compiler-rt/lib/hwasan/hwasan_thread_list.h |
 | compiler-rt/lib/hwasan/hwasan_thread.h |
 | compiler-rt/lib/hwasan/hwasan_thread.cpp |
 | compiler-rt/lib/hwasan/hwasan_linux.cpp |
Commit
5076d27ff01913a280e8ca8b40d38fb11fe7113d
by Adrian PrantlUpdate test after https://reviews.llvm.org/D104483
|
 | llvm/test/DebugInfo/dwarfdump-invalid.test |
Commit
f086ef3e83fd466fef2fbd1f9184d540675db0f6
by nikita.ppv[Constants] Handle addrspacecast with opaque pointer type
This is the same change as D104668, but for constant expression addrspacecasts.
|
 | llvm/lib/IR/Constants.cpp |
 | llvm/test/Transforms/InstCombine/opaque-ptr.ll |
Commit
7a38a757a16830c25c1402258682c0d18290d84d
by Adrian PrantlMove dwarfdump-invalid.test into the tools/llvm-dwarfdump directory.
|
 | llvm/test/DebugInfo/Inputs/invalid.elf |
 | llvm/test/tools/llvm-dwarfdump/X86/Inputs/invalid.elf.3 |
 | llvm/test/tools/llvm-dwarfdump/X86/Inputs/invalid.elf.2 |
 | llvm/test/tools/llvm-dwarfdump/X86/dwarfdump-invalid.test |
 | llvm/test/DebugInfo/Inputs/invalid.elf.3 |
 | llvm/test/tools/llvm-dwarfdump/X86/Inputs/invalid.elf |
 | llvm/test/DebugInfo/dwarfdump-invalid.test |
 | llvm/test/DebugInfo/Inputs/invalid.elf.2 |
Commit
0eac975b51cca5b54a1f516d05a233c215375eda
by caij2003Reland "[AArch64] handle -Wa,-march="
This reverts commit fd11a26d368c5a909fb88548fef2cee7a6c2c931, which was reverted by 9145a3d4ab7eb05d9fb113b5392e8961df629b88 due to a test failure on aarch64 backend, e.g. https://lab.llvm.org/buildbot/#/builders/43/builds/7031. This patch fixed the test failure.
Reviewed By: DavidSpickett, nickdesaulniers
Differential Revision: https://reviews.llvm.org/D103184
|
 | clang/test/Driver/aarch64-target-as-march.s |
 | clang/lib/Driver/ToolChains/Arch/AArch64.h |
 | clang/lib/Driver/ToolChains/Arch/AArch64.cpp |
 | clang/lib/Driver/ToolChains/Clang.cpp |
Commit
3cf415c6c367ced43175ebd1dc4bd9582c7f5376
by Duncan P. N. Exon SmithIR: Fix use-list-order round-tripping for call and invoke
Fix the use-list-order for call and invoke instructions by setting the operands in order of their index. This matches the use-list-order prediction. Note that the verifier precludes sharing operands in callbr (so there was no bug to fix), but that code was updated for consistency.
Bug was found during review of https://reviews.llvm.org/D104740.
Differential Revision: https://reviews.llvm.org/D104805
|
 | llvm/test/Assembler/call-arg-is-callee.ll |
 | llvm/lib/IR/Instructions.cpp |
Commit
a15f9ff996eafdc125402d5a40c8af5cd59a0f6a
by pyadav2299[docs][GISel]Added GISel documentation link
Added the GISel docs link here - https://llvm.org/docs/CodeGenerator.html#instruction-selection-section
Differential Revision: https://reviews.llvm.org/D104204
|
 | llvm/docs/CodeGenerator.rst |
Commit
d274d64ef45f99387428d80a4f4b81dee91305e8
by Stanislav.Mekhanoshin[AMDGPU] Check for pointer operand while refining LDS align
Also skips the propagation if alignment is 1.
Differential Revision: https://reviews.llvm.org/D104796
|
 | llvm/test/CodeGen/AMDGPU/lower-kernel-lds-super-align.ll |
 | llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp |
Commit
9e73f7c8d2d75433348ff41ea3dcc8d0a7501184
by andrew.litteken[IRSim] Adding basic implementation of llvm-sim.
This is a similarity visualization tool that accepts a Module and passes it to the IRSimilarityIdentifier. The resulting SimilarityGroups are output in a JSON file.
Tests are found in test/tools/llvm-sim and check for the file not found, a bad module, and that the JSON is created correctly.
Reviewers: paquette, jroelofs, MaskRay
Recommit of: 15645d044bcfe2a0f63156048b302f997a717688 to fix linking errors and GN build system.
Differential Revision: https://reviews.llvm.org/D86974
|
 | llvm/utils/gn/secondary/llvm/tools/llvm-sim/BUILD.gn |
 | llvm/test/lit.cfg.py |
 | llvm/tools/llvm-sim/llvm-sim.cpp |
 | llvm/utils/gn/secondary/llvm/test/BUILD.gn |
 | llvm/test/CMakeLists.txt |
 | llvm/test/tools/llvm-sim/single-sim-file.test |
 | llvm/tools/llvm-sim/CMakeLists.txt |
 | llvm/test/tools/llvm-sim/Inputs/sim1.ll |
 | llvm/test/tools/llvm-sim/fail-cases.test |
 | llvm/test/tools/llvm-sim/single-sim.test |
Commit
fdaf304e0d984c9f919c6b6b2b108d0d31cbea87
by efriedma[NFC][ScalarEvolution] Fix SCEVNAryExpr::getType().
SCEVNAryExpr::getType() could return the wrong type for a SCEVAddExpr. Remove it, and add getType() methods to the relevant subclasses.
NFC because nothing uses it directly, as far as I know; this is just future-proofing.
|
 | llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h |
 | llvm/lib/Analysis/ScalarEvolution.cpp |
Commit
b12192f7cd8c12898c161c573aad41ac65721c80
by efriedma[ScalarEvolution] Clarify implementation of getPointerBase().
getPointerBase should only be looking through Add and AddRec expressions; other expressions either aren't pointers, or can't be looked through.
Technically, this is a functional change. For a multiply or min/max expression, if they have exactly one pointer operand, and that operand is the first operand, the behavior here changes. Similarly, if an AddRec has a pointer-type step, the behavior changes. But that shouldn't be happening in practice, and we plan to make such expressions illegal.
|
 | llvm/lib/Analysis/ScalarEvolution.cpp |
Commit
84046ebd9543d60832d9a580bcbe2e3e5acc3217
by llvm-project[Polly] Fix test after D104732.
The SCEV analysis has been improved to identify a write access as a MustWrite.
|
 | polly/test/ScopInfo/fortran_array_param_nonmalloc_nonvectored.ll |
Commit
2716c6faa46f346b66fe7af5219d611b369d42e9
by martin[flang] Tweak the conditions for the GCC 7/libstdc++ workaround
This adjusts the workaround from D104731.
The issue lies in libstdc++'s classes, not GCC itself, and manifests itself in the same way if building e.g. with clang while using libstdc++ headers from GCC 7 (e.g. if building with Clang on Ubuntu 18.04, while using the system default C++ library).
Therefore, change the condition to look for the version of libstdc++ instead of the compiler.
Differential Revision: https://reviews.llvm.org/D104779
|
 | flang/include/flang/Evaluate/type.h |
Commit
ef75358080a28501eccc552a3fa8214ceb3f34dc
by thakis[lld/mac] Delete incorrect FIXME
"""Bitcode symbols only exist before LTO runs, and only serve the purpose of resolving visibility so LTO can better optimize. Running LTO creates ObjFiles from BitcodeFiles, and those ObjFiles contain regular Defined symbols (with isec set and all) that will replace the bitcode symbols. So things should (hopefully) work as-is :)"""
-- https://reviews.llvm.org/rGdbbc8d8333f29cf4ad6f4793da1adf71bbfdac69#inline-6081
|
 | lld/MachO/UnwindInfoSection.cpp |
Commit
d5700bb694490b7e2a3c5dbd29d2a82b0843c8e9
by sivachandra[libc] Calculate ulp error after rounding MPFR result to the result type.
Reviewed By: lntue
Differential Revision: https://reviews.llvm.org/D104615
|
 | libc/utils/MPFRWrapper/MPFRUtils.cpp |
Commit
05e48eccdd69fd974010f3a32c56e909d46230d8
by code[NFC][compiler-rt] Remove iOS xfail for unpoison-alternate-stack
This test was originally xfailed because of a bug on iOS. This has since been fixed, so reenabling the test.
|
 | compiler-rt/test/asan/TestCases/Posix/unpoison-alternate-stack.cpp |
Commit
5bebc0b177d0f02af3d8d2b02d182c04763ee468
by apl[lldb] Decouple ObjCLanguage from Symtab
We can extend/modify `GetMethodNameVariants` to suit our purposes here. What symtab is looking for is alternate names we may want to use to search for a specific symbol, and asking for variants of a name makes the most sense here.
Differential Revision: https://reviews.llvm.org/D104067
|
 | lldb/source/Breakpoint/BreakpointResolverName.cpp |
 | lldb/include/lldb/Target/Language.h |
 | lldb/source/Plugins/Language/ObjC/ObjCLanguage.h |
 | lldb/source/Symbol/Symtab.cpp |
 | lldb/source/Symbol/CMakeLists.txt |
 | lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp |
Commit
e6a353061fe9d7b2d4a7d0941709faec4d4d63d3
by lebedev.ri[NFC][AArch64] Autogenerate assembly checklines in arm64-instruction-mix-remarks.ll
|
 | llvm/test/CodeGen/AArch64/arm64-instruction-mix-remarks.ll |
Commit
70b1a8c095b2498ea05ba12d248513db19dce92e
by nikita.ppv[PatternMatch] Make m_VScale compatible with opaque pointers
Use GEP source type instead of pointer element type.
|
 | llvm/test/CodeGen/AArch64/sve-vscale.ll |
 | llvm/include/llvm/IR/PatternMatch.h |
Commit
7c8a507272587f181ec29401453949ebcd8fec65
by jacobhegnaReplace python3 with %python in ML inlining tests.
Differential Revision: https://reviews.llvm.org/D104818
|
 | llvm/test/Transforms/Inline/ML/bounds-checks-rewards.ll |
 | llvm/test/Transforms/Inline/ML/development-training-log.ll |
 | llvm/test/Transforms/Inline/ML/ml-test-development-mode.ll |
Commit
f36703ada3dc18388ef5cdcbb8f39f74c27ad8e9
by lxfind[SjLj] Insert UnregisterFn before musttail call
When inserting UnregisterFn, if there is a musttail call, we must insert before the call so that we don't break the musttail call contract.
Differential Revision: https://reviews.llvm.org/D104807
|
 | llvm/test/CodeGen/X86/sjlj-eh-musttail.ll |
 | llvm/lib/CodeGen/SjLjEHPrepare.cpp |
Commit
afd3607c8f369a4f1989387cb1eed35976968c89
by xingxue[libc++abi][AIX] Enable calculating addresses with DW_EH_PE_datarel
Summary: This patch enables calculating relative addresses with the DW_EH_PE_datarel encoding using a 'base' for AIX. After setting registers for jumping to the user code in gxx_personality_v0(), 'base' is cached in exception_header member catchTemp for use in __cxa_call_unexpected if ttypeIndex is less than 0 (exception spec).
Reviewed by: MaskRay, sfertile, compnerd, libc++abi
Differential Revision: https://reviews.llvm.org/D101298
|
 | libcxxabi/src/cxa_personality.cpp |
Commit
70040de32d73683938abef72515b736c5b6e68dc
by patrickeholland[MCA][TimelineView] Fixed a bug that was causing instructions outside of the timeline-max-cycles to still be printed.
Differential Revision: https://reviews.llvm.org/D104815
|
 | llvm/tools/llvm-mca/Views/TimelineView.cpp |
Commit
f38f81127c83567095ca3acc74ed8291a41e7075
by Saleem Abdulrasoolmailmap: add mappings for myself
Add aliases for various alternative email addresses.
|
 | .mailmap |
Commit
f8c84da23bc93e66f7a161e09a470b85b557740e
by lxfindRevert "[SjLj] Insert UnregisterFn before musttail call"
This reverts commit f36703ada3dc18388ef5cdcbb8f39f74c27ad8e9. Test failure: https://lab.llvm.org/buildbot#builders/104/builds/3450
|
 | llvm/test/CodeGen/X86/sjlj-eh-musttail.ll |
 | llvm/lib/CodeGen/SjLjEHPrepare.cpp |
Commit
f09ec01f1fbbf8920db65a77791d511bf4d03d3c
by lxfind[SjLj] Insert UnregisterFn before musttail call
When inserting UnregisterFn, if there is a musttail call, we must insert before the call so that we don't break the musttail call contract.
Reviewed By: wenlei
Differential Revision: https://reviews.llvm.org/D104807
|
 | llvm/test/CodeGen/X86/sjlj-eh-musttail.ll |
 | llvm/lib/CodeGen/SjLjEHPrepare.cpp |
Commit
91319534ba00910fc8027dc4be3eeea4c321621d
by craig.topper[CGP][RISCV] Teach CodeGenPrepare::optimizeSwitchInst to honor isSExtCheaperThanZExt.
This optimization pre-promotes the input and constants for a switch instruction to a legal type so that all the generated compares share the same extend. Since RISCV prefers sext for i32 to i64 extends, we should honor that to use sext.w instead of a pair of shifts.
Reviewed By: jrtc27
Differential Revision: https://reviews.llvm.org/D104612
|
 | llvm/test/CodeGen/RISCV/jumptable.ll |
 | llvm/lib/CodeGen/CodeGenPrepare.cpp |
Commit
826947080b7e884c4758eff6e6646f7df4cc5380
by isanbard[llvm-diff] Explicitly check ConstantStructs for differences
A ConstantStruct is renamed when the LLVM context sees a new one. This makes global variable initializers appear different when they aren't. Instead, check the ConstantStruct for equivalence.
Differential Revision: https://reviews.llvm.org/D104734
|
 | llvm/tools/llvm-diff/DifferenceEngine.cpp |
 | llvm/test/tools/llvm-diff/initializers.ll |
Commit
24d48d45cc302a6abeab139d87ba87f7a2335323
by ndesaulniers[LangRef] add note to warn-frame-size about ODR
As sugguested by @dblaikie in D104342.
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D104736
|
 | llvm/docs/LangRef.rst |
Commit
a7b62699c8dcdcf14bac9560eb970da4296ce993
by modimo[NFC] [DwarfEHPrepare] Add additional stats for EH
Stats added:
1. NumCleanupLandingPadsUnreachable: how many cleanup landing pads were optimized as unreachable 1. NumCleanupLandingPadsRemaining: how many cleanup landing pads remain 1. NumNoUnwind: Number of functions with nounwind attribute 1. NumUnwind: Number of functions with unwind attribute
DwarfEHPrepare is always run a single time as part of `TargetPassConfig::addISelPasses()` which makes it an ideal place near the end of the pipeline to record this information.
Example output from clang built with exceptions cumulative during thinLTO backend (NumCleanupLandingPadsUnreachable was not incremented):
"dwarfehprepare.NumCleanupLandingPadsRemaining": 123660, "dwarfehprepare.NumNoUnwind": 323836, "dwarfehprepare.NumUnwind": 472893,
Reviewed By: wenlei
Differential Revision: https://reviews.llvm.org/D104161
|
 | llvm/lib/CodeGen/DwarfEHPrepare.cpp |
Commit
42b99e094c4f57b52807c56641c0a545b4a9a600
by modimo[Clang] Check for returns_nonnull when deciding to add allocation null checks
Non-throwing allocators currently will always get null-check code. However, if the non-throwing allocator is explicitly annotated with returns_nonnull the null check should be elided.
Testing: ninja check-all added test case correctly elides
Reviewed By: bruno
Differential Revision: https://reviews.llvm.org/D102820
|
 | clang/test/CodeGenCXX/new.cpp |
 | clang/lib/AST/ExprCXX.cpp |
Commit
ab244db1fa0b72f3c0ac928158569fdcc6db0236
by whitneyt[AIX] Emitting diagnostics error for profile options
Only LLVM-based instrumentation profile is supported on AIX. And it currently must be used with full LTO.
Reviewed By: hubert.reinterpretcast
Differential Revision: https://reviews.llvm.org/D104803
|
 | clang/test/Driver/unsupported-option.c |
 | clang/lib/Driver/ToolChains/Clang.cpp |
Commit
ae266e743c9182ebd9702ccea2afb16f470013db
by carl.ritson[LVI] Remove recursion from getValueForCondition (NFCI)
Convert getValueForCondition to a worklist model instead of using recursion.
In pathological cases getValueForCondition recurses heavily. Stack frames are quite expensive on x86-64, and some operating systems (e.g. Windows) have relatively low stack size limits. Using a worklist avoids potential failures from stack overflow.
Differential Revision: https://reviews.llvm.org/D104191
|
 | llvm/lib/Analysis/LazyValueInfo.cpp |
Commit
3f429e82d3ea1710ee0a841675acba9bb7b658d2
by joker.ephImplement an scf.for range folding optimization pass.
In cases where arithmetic (addi/muli) ops are performed on an scf.for loops induction variable with a single use, we can fold those ops directly into the scf.for loop.
For example, in the following code:
``` scf.for %i = %c0 to %arg1 step %c1 { %0 = addi %arg2, %i : index %1 = muli %0, %c4 : index %2 = memref.load %arg0[%1] : memref<?xi32> %3 = muli %2, %2 : i32 memref.store %3, %arg0[%1] : memref<?xi32> } ```
we can lift `%0` up into the scf.for loop range, as it is the only user of %i:
``` %lb = addi %arg2, %c0 : index %ub = addi %arg2, %i : index scf.for %i = %lb to %ub step %c1 { %1 = muli %0, %c4 : index %2 = memref.load %arg0[%1] : memref<?xi32> %3 = muli %2, %2 : i32 memref.store %3, %arg0[%1] : memref<?xi32> } ```
Reviewed By: mehdi_amini, ftynse, Anthony
Differential Revision: https://reviews.llvm.org/D104289
|
 | mlir/lib/Dialect/SCF/Transforms/LoopRangeFolding.cpp |
 | mlir/include/mlir/Dialect/SCF/Passes.td |
 | mlir/lib/Dialect/SCF/Transforms/CMakeLists.txt |
 | mlir/test/Dialect/SCF/loop-range.mlir |
 | mlir/include/mlir/Dialect/SCF/Passes.h |
Commit
660cae84c3144a42272daa16415fc9a2532773c4
by jonathanchesterfieldRevert "[AMDGPU] [IndirectCalls] Don't propagate attributes to address taken functions and their callees"
This reverts commit 6a3beb1f68d6791a4cd0190f68b48510f754a00a. Test case that triggers an infinite loop before the revert is at the review for D103138.
|
 | llvm/lib/Target/AMDGPU/AMDGPUPropagateAttributes.cpp |
 | llvm/test/CodeGen/AMDGPU/propagate-attributes-launch-bounds.ll |
 | llvm/test/CodeGen/AMDGPU/propagate-attributes-indirect.ll |
 | llvm/test/CodeGen/AMDGPU/propagate-attributes-function-pointer-argument.ll |
 | llvm/test/CodeGen/AMDGPU/propagate-attributes-direct-indirect-common-callee.ll |
 | llvm/test/CodeGen/AMDGPU/propagate-attributes-common-callees.ll |
 | llvm/test/CodeGen/AMDGPU/opt-pipeline.ll |
Commit
78f7e6d8d7956cb96d0fa0fd606192ca0218eee1
by eugenis[hwasan] Respect llvm.asan.globals.
This enable no_sanitize C++ attribute to exclude globals from hwasan testing, and automatically excludes other sanitizers' globals (such as ubsan location descriptors).
Differential Revision: https://reviews.llvm.org/D104825
|
 | llvm/test/Instrumentation/HWAddressSanitizer/globals.ll |
 | llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp |
Commit
e655e74a318e0b4140391ae18725300c7f0629f6
by peterAST: Create __va_list in the std namespace even in C.
This ensures that the mangled type names match between C and C++, which is significant when using -fsanitize=cfi-icall. Ideally we wouldn't have created this namespace at all, but it's now part of the ABI (e.g. in mangled names), so we can't change it.
Differential Revision: https://reviews.llvm.org/D104830
|
 | clang/lib/AST/ASTContext.cpp |
 | clang/test/CodeGen/arm64-be-hfa-vararg.c |
 | clang/test/Headers/stdarg.cpp |
 | clang/test/CodeGen/aarch64-varargs.c |
 | clang/test/CodeGen/cfi-icall-va-list.c |
Commit
9393894331e9eba97bdafe92454af74550baf6d3
by zequanwuRevert "ThinLTO: Fix inline assembly references to static functions with CFI"
This casues compiler crash: Assertion `materialized_use_empty() && "Uses remain when a value is destroyed!"'
This reverts commit e3d24b45b8f808ec66213e134c4ceda5202fbe31.
|
 | llvm/test/Transforms/ThinLTOBitcodeWriter/cfi-icall-static-inline-asm.ll |
 | llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp |
Commit
272af9c700b462a0cc00e3ff7809ac2c199cabfe
by petergn build: Build ubsan_minimal on Android.
|
 | llvm/utils/gn/secondary/compiler-rt/lib/BUILD.gn |
Commit
e15673df279774fc11de0818577ec96857aa0f74
by aeubanks[docs][NewPM] Add some instructions on how to invoke opt
Also add link to blog post.
Reviewed By: nickdesaulniers
Differential Revision: https://reviews.llvm.org/D104812
|
 | llvm/docs/NewPassManager.rst |
Commit
767e200b43562d2a4af01c1f3de25fd3c9c2097d
by lkail[PowerPC] Add test to show passes in O3 pipeline. NFC.
|
 | llvm/test/CodeGen/PowerPC/O3-pipeline.ll |
Commit
82e03e494f9884e03b1ab4dfd3b55e6aa2161ade
by Yaxun.Liu[HIP] Defer operator overloading errors
Although clang is able to defer overloading resolution diagnostics for common functions. It does not defer overloading resolution caused diagnostics for overloaded operators.
This patch extends the existing deferred diagnostic mechanism and defers a diagnostic caused by overloaded operator.
Reviewed by: Artem Belevich
Differential Revision: https://reviews.llvm.org/D104505
|
 | clang/lib/Sema/SemaOverload.cpp |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/include/clang/Sema/Sema.h |
 | clang/include/clang/Sema/Overload.h |
 | clang/test/SemaCUDA/deferred-oeverload.cu |
 | clang/lib/Sema/Sema.cpp |
Commit
6b0f98d442e0cf2b6e3a20ba518abb5549aa4999
by carl.ritson[ValueTypes] Define MVTs for v3i64/v3f64 to complement v6i32/v6f32
Having type symmetry with these is somewhat necessary when implementing support for 192-bit values.
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D104621
|
 | llvm/include/llvm/Support/MachineValueType.h |
 | llvm/utils/TableGen/CodeGenTarget.cpp |
 | llvm/lib/CodeGen/ValueTypes.cpp |
 | llvm/include/llvm/CodeGen/ValueTypes.td |
Commit
98f48723f2ca286d6f12bb0c4dc7830a55e85637
by carl.ritson[AMDGPU] Add 224-bit vector types and link 192-bit types to MVTs
Add SReg_224, VReg_224, AReg_224, etc. Link 224-bit types with v7i32/v7f32. Link existing 192-bit types to newly added v3i64/v3f64/v6i32/v6f32.
Reviewed By: rampitec
Differential Revision: https://reviews.llvm.org/D104622
|
 | llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp |
 | llvm/lib/Target/AMDGPU/SIISelLowering.cpp |
 | llvm/test/CodeGen/AMDGPU/srem64.ll |
 | llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp |
 | llvm/test/CodeGen/AMDGPU/vector_shuffle.packed.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.ll |
 | llvm/test/CodeGen/AMDGPU/load-constant-i64.ll |
 | llvm/lib/Target/AMDGPU/MCTargetDesc/SIMCCodeEmitter.cpp |
 | llvm/lib/Target/AMDGPU/SIInstructions.td |
 | llvm/test/CodeGen/AMDGPU/hsa-metadata-kernel-code-props.ll |
 | llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp |
 | llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp |
 | llvm/lib/Target/AMDGPU/SIInstrInfo.cpp |
 | llvm/test/CodeGen/AMDGPU/insert_vector_elt.v2i16.ll |
 | llvm/test/CodeGen/AMDGPU/ipra-regmask.ll |
 | llvm/test/CodeGen/AMDGPU/load-global-i64.ll |
 | llvm/test/CodeGen/AMDGPU/hsa-metadata-kernel-code-props-v3.ll |
 | llvm/test/CodeGen/AMDGPU/load-local-redundant-copies.ll |
 | llvm/test/CodeGen/AMDGPU/sdiv64.ll |
 | llvm/test/CodeGen/AMDGPU/cvt_f32_ubyte.ll |
 | llvm/lib/Target/AMDGPU/SIRegisterInfo.td |
 | llvm/test/CodeGen/AMDGPU/code-object-v3.ll |
 | llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp |
 | llvm/lib/Target/AMDGPU/AMDGPURegisterBanks.td |
 | llvm/test/CodeGen/AMDGPU/function-returns.ll |
 | llvm/test/CodeGen/AMDGPU/load-global-f64.ll |
 | llvm/test/CodeGen/AMDGPU/insert_vector_elt.ll |
Commit
8a8558ae27955174c6a1948874b1f0f33e9e8b14
by gkm[lld-macho] add tests for ICF, plus cleanups
Add tests for pending TODOs, plus some global cleanups: * No fold: func has personality/LSDA * Fold: reference to absolute symbol with different name but identical value * No fold: reloc references to absolute symbols with different values * No fold: N_ALT_ENTRY symbols
Differential Revision: https://reviews.llvm.org/D104721
|
 | lld/test/MachO/icf.s |
 | lld/MachO/ICF.cpp |