Commit
08c766a7318ab37bf1d77e0c683cd3b00e700877
by tstellarBump the trunk major version to 14
and clear the release notes.
|
 | llvm/utils/release/build_llvm_package.bat |
 | libcxx/docs/ReleaseNotes.rst |
 | pstl/docs/ReleaseNotes.rst |
 | libcxx/docs/conf.py |
 | libunwind/docs/conf.py |
 | pstl/include/pstl/internal/pstl_config.h |
 | polly/docs/ReleaseNotes.rst |
 | pstl/test/pstl/version.pass.cpp |
 | llvm/CMakeLists.txt |
 | llvm/utils/lit/lit/__init__.py |
 | clang/docs/ReleaseNotes.rst |
 | libcxx/CMakeLists.txt |
 | lld/docs/ReleaseNotes.rst |
 | libunwind/CMakeLists.txt |
 | clang-tools-extra/docs/ReleaseNotes.rst |
 | clang/docs/analyzer/conf.py |
 | lld/docs/conf.py |
 | polly/docs/conf.py |
 | libcxx/include/__config |
 | llvm/docs/ReleaseNotes.rst |
 | clang-tools-extra/docs/conf.py |
 | llvm/utils/gn/secondary/llvm/version.gni |
Commit
b349d4c5e1852091aad97d3750e286493cac7178
by joker.ephEmit strong definition for TypeID storage in Op/Type/Attributes definition
By making an explicit template specialization for the TypeID provided by these classes, the compiler will not emit an inline weak definition and rely on the linker to unique it. Instead a single definition will be emitted in the C++ file alongside the implementation for these classes. That will turn into a linker error what is now a hard-to-debug runtime behavior where instances of the same class may be using a different TypeID inside of different DSOs.
Differential Revision: https://reviews.llvm.org/D105903
|
 | mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp |
 | mlir/include/mlir/Support/TypeID.h |
 | mlir/tools/mlir-tblgen/DialectGen.cpp |
 | mlir/tools/mlir-tblgen/AttrOrTypeDefGen.cpp |
Commit
1a8c57179a129300c2b0c20032286ded8c7af77c
by VenkataRamanaiah.Nalamothu[AMDGPU] We would need FP if there is call and caller save VGPR spills
Since https://reviews.llvm.org/D98319, determineCalleeSavesSGPR() needs to consider caller save VGPR spills as well while anticipating if we require FP.
Fixes: SWDEV-295978
Reviewed By: arsenm
Differential Revision: https://reviews.llvm.org/D106758
|
 | llvm/lib/Target/AMDGPU/SIFrameLowering.cpp |
 | llvm/test/CodeGen/AMDGPU/gfx-callable-preserved-registers.ll |
 | llvm/test/CodeGen/AMDGPU/need-fp-from-csr-vgpr-spill.ll |
 | llvm/test/CodeGen/AMDGPU/need-fp-from-vgpr-spills.ll |
Commit
1cc29f027fe433770a478bb0a67956c5646f61b2
by joker.ephRevert "Emit strong definition for TypeID storage in Op/Type/Attributes definition"
This reverts commit b349d4c5e1852091aad97d3750e286493cac7178. This broke a bot that exposes some missing CMake dependencies that need to be fixed first.
|
 | mlir/tools/mlir-tblgen/AttrOrTypeDefGen.cpp |
 | mlir/include/mlir/Support/TypeID.h |
 | mlir/tools/mlir-tblgen/DialectGen.cpp |
 | mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp |
Commit
440e936c47f5271a741b13e96f8ff36388ea96b5
by dvyukovRevert "sanitizers: increase .clang-format columns to 100"
This reverts commit 5d1df6d220f1d6f726d9643848679d781750db64.
There is a strong objection to this change: https://reviews.llvm.org/D106436#2905618
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D106847
|
 | compiler-rt/lib/safestack/.clang-format |
 | compiler-rt/lib/sanitizer_common/.clang-format |
 | compiler-rt/lib/dfsan/.clang-format |
 | compiler-rt/lib/interception/.clang-format |
 | compiler-rt/lib/msan/.clang-format |
 | compiler-rt/lib/tsan/.clang-format |
 | compiler-rt/lib/asan/.clang-format |
 | compiler-rt/lib/hwasan/.clang-format |
 | compiler-rt/lib/lsan/.clang-format |
Commit
cf0ddf7ee5522c731b89dc5174b3d370f782119b
by llvm-dev[SLP][X86] Fix naming consistency of dot product tests. NFC.
|
 | llvm/test/Transforms/SLPVectorizer/X86/dot-product.ll |
Commit
0a1ca2ad4ce239abc8d844f33048af58648edb80
by Lang Hames[ORC] Fix missing include.
Aims to fix bot failures for some module builds, e.g. https://green.lab.llvm.org/green/blue/organizations/jenkins/lldb-cmake/detail/lldb-cmake/33934/pipeline/
|
 | llvm/include/llvm/ExecutionEngine/Orc/OrcRPCExecutorProcessControl.h |
Commit
ab5b8ee1a7a18fe097419e21224ac4f15591bcd7
by omair.javaid[LLDB] Skip HW breakpoints test_step_until on Arm/Linux
test_step_until xpasses on some machines while fails on others. I am marking it as skipped for now.
|
 | lldb/test/API/functionalities/breakpoint/hardware_breakpoints/require_hw_breakpoints/TestRequireHWBreakpoints.py |
Commit
6cd0e35f43ac7aab8ff05acb4c5dfaa9071958d5
by omair.javaidRevert "[LLDB] Skip HW breakpoints test_step_until on Arm/Linux"
This reverts commit ab5b8ee1a7a18fe097419e21224ac4f15591bcd7.
This caused some failure on buildbots so reverting it for now.
|
 | lldb/test/API/functionalities/breakpoint/hardware_breakpoints/require_hw_breakpoints/TestRequireHWBreakpoints.py |
Commit
71616722d4092f88861e9eb337e2902bbab2cbd4
by marek.kurdej+llvm.org[clang-format] Correctly attach enum braces with ShortEnums disabled
Previously, with AllowShortEnumsOnASingleLine disabled, enums that would have otherwise fit on a single line would always put the opening brace on its own line. This patch ensures that these enums will only put the brace on its own line if the existing attachment rules indicate that it should.
Reviewed By: HazardyKnusperkeks, curdeius
Differential Revision: https://reviews.llvm.org/D99840
|
 | clang/include/clang/Format/Format.h |
 | clang/docs/ReleaseNotes.rst |
 | clang/unittests/Format/FormatTestCSharp.cpp |
 | clang/unittests/Format/FormatTest.cpp |
 | clang/lib/Format/UnwrappedLineParser.cpp |
Commit
04b94c7caee48919d937350c312604d6c39365a4
by chris.jacksonRevert "[DebugInfo][LoopStrengthReduction] SCEV-based salvaging for LSR"
Crashes were reported on the upstreamm revision: https://reviews.llvm.org/D105207
This reverts commit 796b84d26f4d461fb50e7b4e84e15a10eaca88fc.
|
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-0.ll |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-2.ll |
 | llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h |
 | llvm/test/Transforms/LoopStrengthReduce/dbg-preserve-0.ll |
 | llvm/test/Transforms/LoopStrengthReduce/dbg-preserve-2.ll |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-3.ll |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-1.ll |
 | llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-4.ll |
 | llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp |
Commit
6a7a2ee8161da84d9a58a88b497b0b47c8df99f3
by david.spickett[lldb] Add "memory tag write" command
This adds a new command for writing memory tags. It is based on the existing "memory write" command.
Syntax: memory tag write <address-expression> <value> [<value> [...]] (where "value" is a tag value)
(lldb) memory tag write mte_buf 1 2 (lldb) memory tag read mte_buf mte_buf+32 Logical tag: 0x0 Allocation tags: [0xfffff7ff9000, 0xfffff7ff9010): 0x1 [0xfffff7ff9010, 0xfffff7ff9020): 0x2
The range you are writing to will be calculated by aligning the address down to a granule boundary then adding as many granules as there are tags.
(a repeating mode with an end address will be in a follow up patch)
This is why "memory tag write" uses MakeTaggedRange but has some extra steps to get this specific behaviour.
The command does all the usual argument validation: * Address must evaluate * You must supply at least one tag value (though lldb-server would just treat that as a nop anyway) * Those tag values must be valid for your tagging scheme (e.g. for MTE the value must be > 0 and < 0xf) * The calculated range must be memory tagged
That last error will show you the final range, not just the start address you gave the command.
(lldb) memory tag write mte_buf_2+page_size-16 6 (lldb) memory tag write mte_buf_2+page_size-16 6 7 error: Address range 0xfffff7ffaff0:0xfffff7ffb010 is not in a memory tagged region
(note that we do not check if the region is writeable since lldb can write to it anyway)
The read and write tag tests have been merged into a single set of "tag access" tests as their test programs would have been almost identical. (also I have renamed some of the buffers to better show what each one is used for)
Reviewed By: omjavaid
Differential Revision: https://reviews.llvm.org/D105182
|
 | lldb/test/API/linux/aarch64/mte_tag_read/Makefile |
 | lldb/test/API/linux/aarch64/mte_tag_access/TestAArch64LinuxMTEMemoryTagAccess.py |
 | lldb/test/API/linux/aarch64/mte_tag_access/main.c |
 | lldb/source/Commands/CommandObjectMemoryTag.cpp |
 | lldb/test/API/functionalities/memory/tag/TestMemoryTag.py |
 | lldb/test/API/linux/aarch64/mte_tag_read/TestAArch64LinuxMTEMemoryTagRead.py |
 | lldb/test/API/linux/aarch64/mte_tag_read/main.c |
 | lldb/test/API/linux/aarch64/mte_tag_access/Makefile |
Commit
5db8e232126fc4c0f5d5b0339bdc5a49830268d1
by Raphael Isemann[lldb] Temporarily bump the max length of the pexpect error message to diagnose an lldb-aarch64 test failure
This is only temporarily to gather some logs before this gets reverted. See D106873 for a discussion about how/if we can make this change permanent.
|
 | lldb/third_party/Python/module/pexpect-4.6/pexpect/pty_spawn.py |
Commit
037b7715dd0e60369271217f90004e4b2d7c88e0
by david.green[ARM] Extra MVE reduction vectorizer tests. NFC
|
 | llvm/test/Transforms/LoopVectorize/ARM/mve-reductions.ll |
Commit
8ed66cb88b7b00d7e9a96f2030e7ec343cfe2c6a
by nicolas.vasilache[mlir][memref] Fix collapsed shape ops memref.cast folding with changed type
`memref.collapse_shape` has verification logic to make sure result dim must be static if all the collapsing src dims are static. Cast folding might add more static information for the src operand of `memref.collapse_shape` which might change a valid collapsing operation to be invalid. Add `CollapseShapeOpMemRefCastFolder` pattern to fix this.
Minor changes to `convertReassociationIndicesToExprs` to use `context` instead of `builder` to avoid extra steps to construct temporary builders.
Reviewed By: nicolasvasilache, mravishankar
Differential Revision: https://reviews.llvm.org/D106670
|
 | mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp |
 | mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp |
 | mlir/include/mlir/Dialect/Utils/ReshapeOpsUtils.h |
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgOps.td |
 | mlir/lib/Dialect/Utils/ReshapeOpsUtils.cpp |
 | mlir/test/Dialect/MemRef/canonicalize.mlir |
Commit
30308d1eb966afa35ee2fd5c5b47b17eb0382896
by omair.javaid[LLDB] Skip HW breakpoints test_step_until on Arm/Linux
test_step_until xpasses on some machines while fails on others. Marking it as skipped for now.
|
 | lldb/test/API/functionalities/breakpoint/hardware_breakpoints/require_hw_breakpoints/TestRequireHWBreakpoints.py |
Commit
0dc9c88aa38ed330ddffe92bae79d4066832c38e
by omair.javaid[LLDB] Skip TestGuiBasicDebug.py on Arm/AArch64 Linux
TestGuiBasicDebug.py randomly fails due to timeouts sending out false negatives on LLDB Arm and AArch64 Linux buildbots. I havnt found a reliable wayy to set pexpect timeout for this test to pass regularly.
Skipping it on Arm and AArch64 Linux to silence buildbot failures.
|
 | lldb/test/API/commands/gui/basicdebug/TestGuiBasicDebug.py |
Commit
4fd42e2e803d8a532845f448fca4002ede3070f5
by david.spickett[libcxx] Bump __libcpp_version to 14 after branch
This was missed in 08c766a7318ab37bf1d77e0c683cd3b00e700877 and caused test failures in the buildkite bots: libcpp_version.pass.cpp:22:1: error: static_assert failed due to requirement '14000 == libcpp_version' "_LIBCPP_VERSION doesn't match __libcpp_version
|
 | libcxx/include/__libcpp_version |
Commit
ca0d244e99f4325711638359eb69f8129b41a63a
by gysit[mlir][linalg] Introduce a separate EraseIdentityCopyOp Pattern.
Split out an EraseIdentityCopyOp from the existing RemoveIdentityLinalgOps pattern. Introduce an additional check to ensure the pattern checks the permutation maps match. This is a preparation step to specialize RemoveIdentityLinalgOps to GenericOp only.
Reviewed By: nicolasvasilache
Differential Revision: https://reviews.llvm.org/D105622
|
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td |
 | mlir/test/Dialect/Linalg/canonicalize.mlir |
 | mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp |
Commit
b0ef3d8f666fa6008abb09340b73d9340d442569
by aaronAllow #pragma float_control(push|pop) within a language linkage specification
Currently, we prohibit this pragma from appearing within a language linkage specification, but this is useful functionality that is supported by MSVC (which is where we inherited this feature from). This patch allows you to use the pragma within an extern "C" {} (etc) block.
|
 | clang/docs/LanguageExtensions.rst |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/lib/Sema/SemaAttr.cpp |
 | clang/test/Parser/fp-floatcontrol-syntax.cpp |
Commit
09635dc7bfa42bed2809e3ee4edc96d0decdb9db
by gysit[mlir][linalg] Specialize LinalgOp canonicalization patterns (NFC).
Specialize the DeduplicateInputs and RemoveIdentityLinalgOps patterns for GenericOp instead of implementing them for the LinalgOp interface.
This revsion is based on https://reviews.llvm.org/D105622 that moves the logic to erase identity CopyOps in a separate pattern.
Reviewed By: nicolasvasilache
Differential Revision: https://reviews.llvm.org/D105291
|
 | mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp |
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td |
Commit
41cedb1c9a380628ac162bf76148cbd143f41450
by david.green[LV][ARM] Tighten up MLA reduction costing
This makes a couple of changes to the costing of MLA reduction patterns, to more accurately cost various patterns that can come up from vectorization.
- The Arm implementation of getExtendedAddReductionCost is altered to only provide costs for legal or smaller types. Larger than legal types need to be split, which currently does not work very well, especially for predicated reductions where the predicate may be legal but needs to be split. Currently we limit it to legal or smaller input types. - The getReductionPatternCost has learnt that reduce(ext(mul(ext, ext)) is a pattern that can come up, and can be treated the same as reduce(mul(ext, ext)) providing the extension types match. - And it has been adjusted to not count the ext in reduce(mul(ext, ext)) as part of a reduce(mul) pattern.
Together these changes help to more accurately cost the mla reductions in cases such as where the extend types don't match or the extend opcodes are different, picking better vector factors that don't result in expanded reductions.
Differential Revision: https://reviews.llvm.org/D106166
|
 | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp |
 | llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp |
 | llvm/test/Transforms/LoopVectorize/ARM/mve-reductions.ll |
Commit
c07dd2b885c3096694ac607794b62f7d60032c22
by flo[LV] Move recurrence backedge fixup code to VPlan::execute (NFC).
As suggested in D105008, move the code that fixes up the backedge value for first order recurrences to VPlan::execute.
Now all that remains in fixFirstOrderRecurrences is the code responsible for creating the exit values in the middle block.
Reviewed By: Ayal
Differential Revision: https://reviews.llvm.org/D106244
|
 | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp |
 | llvm/lib/Transforms/Vectorize/VPlan.cpp |
Commit
9559bd19908bf6421f2abed1578219dacdc49169
by wyehia[LTO][Legacy] Add new API to check presence of ctor/dtor functions.
On AIX, the linker needs to check whether a given lto_module_t contains any constructor/destructor functions, in order to implement the behavior of the -bcdtors:all flag. See https://www.ibm.com/docs/en/aix/7.2?topic=l-ld-command for the flag's documentation. In llvm IR, constructor (destructor) functions are added to a special global array @llvm.global_ctors (@llvm.global_dtors). However, because these two symbols are artificial, they are not visited during the symbol traversal (using the lto_module_get_[num_symbols|symbol_name|symbol_attribute] API).
This patch adds a new function to the libLTO interface that checks the presence of one or both of these two symbols.
Reviewed By: steven_wu
Differential Revision: https://reviews.llvm.org/D106887
|
 | llvm/tools/lto/lto.cpp |
 | llvm/include/llvm-c/lto.h |
 | llvm/include/llvm/LTO/legacy/LTOModule.h |
 | llvm/lib/LTO/LTOModule.cpp |
 | llvm/test/tools/llvm-lto/ltomodule.ll |
 | llvm/tools/lto/lto.exports |
 | llvm/tools/llvm-lto/llvm-lto.cpp |
Commit
21832121e112d97f1e197b35959867f3a99226ee
by whisperity[clang-tidy] Fix crash on "reference-to-array" parameters in 'bugprone-easily-swappable-parameters'
An otherwise unexercised code path related to trying to model "array-to-pointer decay" resulted in a null pointer dereference crash when parameters of type "reference to array" were encountered.
Fixes crash report http://bugs.llvm.org/show_bug.cgi?id=50995.
Reviewed By: aaron.ballman
Differential Revision: http://reviews.llvm.org/D106946
|
 | clang-tools-extra/test/clang-tidy/checkers/bugprone-easily-swappable-parameters-len2.cpp |
 | clang-tools-extra/test/clang-tidy/checkers/bugprone-easily-swappable-parameters-implicits.cpp |
 | clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp |
Commit
e408d1dfab42b27d0aa51b221e50fa6390fb5ed1
by a.bataev[SLP]Improve graph reordering.
Reworked reordering algorithm. Originally, the compiler just tried to detect the most common order in the reordarable nodes (loads, stores, extractelements,extractvalues) and then fully rebuilding the graph in the best order. This was not effecient, since it required an extra memory and time for building/rebuilding tree, double the use of the scheduling budget, which could lead to missing vectorization due to exausted scheduling resources.
Patch provide 2-way approach for graph reodering problem. At first, all reordering is done in-place, it doe not required tree deleting/rebuilding, it just rotates the scalars/orders/reuses masks in the graph node.
The first step (top-to bottom) rotates the whole graph, similarly to the previous implementation. Compiler counts the number of the most used orders of the graph nodes with the same vectorization factor and then rotates the subgraph with the given vectorization factor to the most used order, if it is not empty. Then repeats the same procedure for the subgraphs with the smaller vectorization factor. We can do this because we still need to reshuffle smaller subgraph when buildiong operands for the graph nodes with lasrger vectorization factor, we can rotate just subgraph, not the whole graph.
The second step (bottom-to-top) scans through the leaves and tries to detect the users of the leaves which can be reordered. If the leaves can be reorder in the best fashion, they are reordered and their user too. It allows to remove double shuffles to the same ordering of the operands in many cases and just reorder the user operations instead. Plus, it moves the final shuffles closer to the top of the graph and in many cases allows to remove extra shuffle because the same procedure is repeated again and we can again merge some reordering masks and reorder user nodes instead of the operands.
Also, patch improves cost model for gathering of loads, which improves x264 benchmark in some cases.
Gives about +2% on AVX512 + LTO (more expected for AVX/AVX2) for {625,525}x264, +3% for 508.namd, improves most of other benchmarks. The compile and link time are almost the same, though in some cases it should be better (we're not doing an extra instruction scheduling anymore) + we may vectorize more code for the large basic blocks again because of saving scheduling budget.
Differential Revision: https://reviews.llvm.org/D105020
|
 | llvm/test/Transforms/SLPVectorizer/X86/jumbled-load.ll |
 | llvm/test/Transforms/SLPVectorizer/AArch64/transpose-inseltpoison.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/crash_cmpop.ll |
 | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp |
 | llvm/test/Transforms/SLPVectorizer/X86/extract.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/vectorize-reorder-reuse.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/jumbled_store_crash.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/addsub.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/jumbled-load-multiuse.ll |
 | llvm/test/Transforms/SLPVectorizer/AArch64/transpose.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/reorder_repeated_ops.ll |
Commit
124d58638275d1b98b2c3162ae292810b23cbee9
by llvm-dev[X86][AVX] Move VPERM2F128 defs above VINSERTF128 defs. NFC.
This will be necessary for a future patch to lower VINSERTF128 custom folds to VPERM2F128
|
 | llvm/lib/Target/X86/X86InstrSSE.td |
Commit
6eded00e0c6b4e06225df74292c078030556b8ce
by david.spickett[lldb] Add "memory tag write" --end-addr option
The default mode of "memory tag write" is to calculate the range from the start address and the number of tags given. (just like "memory write" does)
(lldb) memory tag write mte_buf 1 2 (lldb) memory tag read mte_buf mte_buf+48 Logical tag: 0x0 Allocation tags: [0xfffff7ff9000, 0xfffff7ff9010): 0x1 [0xfffff7ff9010, 0xfffff7ff9020): 0x2 [0xfffff7ff9020, 0xfffff7ff9030): 0x0
This new option allows you to set an end address and have the tags repeat until that point.
(lldb) memory tag write mte_buf 1 2 --end-addr mte_buf+64 (lldb) memory tag read mte_buf mte_buf+80 Logical tag: 0x0 Allocation tags: [0xfffff7ff9000, 0xfffff7ff9010): 0x1 [0xfffff7ff9010, 0xfffff7ff9020): 0x2 [0xfffff7ff9020, 0xfffff7ff9030): 0x1 [0xfffff7ff9030, 0xfffff7ff9040): 0x2 [0xfffff7ff9040, 0xfffff7ff9050): 0x0
This is implemented using the QMemTags packet previously added. We skip validating the number of tags in lldb and send them on to lldb-server, which repeats them as needed.
Apart from the number of tags, all the other client side checks remain. Tag values, memory range must be tagged, etc.
Reviewed By: omjavaid
Differential Revision: https://reviews.llvm.org/D105183
|
 | lldb/test/API/linux/aarch64/mte_tag_access/TestAArch64LinuxMTEMemoryTagAccess.py |
 | lldb/source/Commands/CommandObjectMemoryTag.cpp |
 | lldb/source/Commands/Options.td |
Commit
56debbf52ed31e0ea83265e0f87e15c3ac15de05
by dvyukovsanitizers: switch BlockingMutex(LINKER_INITIALIZED) to Mutex
Mutex does not support LINKER_INITIALIZED support. As preparation to switching BlockingMutex to Mutex, proactively replace all BlockingMutex(LINKER_INITIALIZED) to Mutex. All of these are objects with static storage duration and Mutex ctor is constexpr, so it should be equivalent.
Reviewed By: melver
Differential Revision: https://reviews.llvm.org/D106944
|
 | compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_coverage_fuchsia.cpp |
 | compiler-rt/lib/asan/asan_thread.cpp |
 | compiler-rt/lib/cfi/cfi.cpp |
 | compiler-rt/lib/memprof/memprof_stats.cpp |
 | compiler-rt/lib/asan/asan_globals.cpp |
 | compiler-rt/lib/asan/asan_stats.cpp |
 | compiler-rt/lib/sanitizer_common/tests/sanitizer_thread_registry_test.cpp |
 | compiler-rt/lib/asan/asan_report.cpp |
 | compiler-rt/lib/lsan/lsan_common.cpp |
 | compiler-rt/lib/memprof/memprof_thread.cpp |
Commit
48cbcb909d9b539680da6b3b8997e3620d085f4e
by dvyukovsanitizer_common: prohibit Mutex(LINKER_INITIALIZED)
Mutex does not support LINKER_INITIALIZED ctor. But we used to support it with BlockingMutex. To prevent potential bugs delete LINKER_INITIALIZED Mutex ctor. Also mark existing ctor as explicit.
Depends on D106944.
Reviewed By: melver
Differential Revision: https://reviews.llvm.org/D106945
|
 | compiler-rt/lib/sanitizer_common/sanitizer_mutex.h |
Commit
960cb490dd16961c61b541efbcc95eb085464ad8
by dvyukovsanitizer_common: replace RWMutex/BlockingMutex with Mutex
Mutex supports reader access, OS blocking, spinning, portable and smaller than BlockingMutex. Overall it's supposed to be better than RWMutex/BlockingMutex. Replace RWMutex/BlockingMutex with Mutex.
Reviewed By: melver
Differential Revision: https://reviews.llvm.org/D106936
|
 | compiler-rt/lib/sanitizer_common/sanitizer_solaris.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp |
 | compiler-rt/lib/sanitizer_common/tests/sanitizer_mutex_test.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_mutex.h |
 | compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_win.cpp |
Commit
4c41caa2871095cf1e936b0eea10079c60f864dc
by spatel[x86] improve CMOV codegen by pushing add into operands, part 3
In this episode, we are trying to avoid an x86 micro-arch quirk where complex (3 operand) LEA potentially costs significantly more than simple LEA. So we simultaneously push and pull the math around the CMOV to balance the operations.
I looked at the debug spew during instruction selection and decided against trying a later DAGToDAG transform -- it seems very difficult to match if the trailing memops are already selected and managing the creation of extra instructions at that level is always tricky.
Differential Revision: https://reviews.llvm.org/D106918
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/test/CodeGen/X86/add-cmov.ll |
Commit
3ad6437fcced9122d8b0ef24b2cb6af5925e626e
by a.bataev[SLP]Fix build on MacOS, NFC.
|
 | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp |
Commit
ca0fe3447fb85762838468537d93d4ef82c5a1af
by JunMa[InstSimplify] Simplify llvm.vscale when vscale_range attribute exists
Reduce llvm.vscale to constant based on vscale_range attribute.
Differential Revision: https://reviews.llvm.org/D106850
|
 | llvm/lib/Analysis/InstructionSimplify.cpp |
 | llvm/test/Transforms/InstSimplify/fold-vscale.ll |
Commit
aa6340cf87d7e1bbb894cf6357f859e5afb8a335
by kazu[AsmParser] Remove unused declaration parseOptionalCommaInAlloca (NFC)
|
 | llvm/include/llvm/AsmParser/LLParser.h |
Commit
23326b9f1723a398681def87c80e608fa94485f2
by antiagainst[mlir][spirv] Fix a few issues in ModuleCombiner
- Fixed symbol insertion into `symNameToModuleMap`. Insertion needs to happen whether symbols are renamed or not. - Added check for the VCE triple and avoid dropping it. - Disabled function deduplication. It requires more careful rules. Right now it can remove different functions. - Added tests for symbol rename listener. - And some other code/comment cleanups.
Reviewed By: ergawy
Differential Revision: https://reviews.llvm.org/D106886
|
 | mlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp |
 | mlir/include/mlir/Dialect/SPIRV/IR/SPIRVStructureOps.td |
 | mlir/include/mlir/Dialect/SPIRV/Linking/ModuleCombiner.h |
 | mlir/include/mlir/Dialect/SPIRV/IR/SPIRVOps.h |
 | mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRV.cpp |
 | mlir/test/Dialect/SPIRV/Linking/ModuleCombiner/conflict-resolution.mlir |
 | mlir/test/lib/Dialect/SPIRV/TestModuleCombiner.cpp |
 | mlir/test/Dialect/SPIRV/Linking/ModuleCombiner/deduplication.mlir |
 | mlir/test/Dialect/SPIRV/Linking/ModuleCombiner/symbol-rename-listener.mlir |
 | mlir/lib/Dialect/SPIRV/Linking/ModuleCombiner/ModuleCombiner.cpp |
 | mlir/test/Dialect/SPIRV/Linking/ModuleCombiner/basic.mlir |
Commit
66ddac22e2a7f268e91c26d694112970dfa607ae
by melanie.blower[CLANG][PATCH][FPEnv] Add support for option -ffp-eval-method and extend #pragma float_control similarly
The Intel compiler ICC supports the option "-fp-model=(source|double|extended)" which causes the compiler to use a wider type for intermediate floating point calculations. Also supported is a way to embed this effect in the source program with #pragma float_control(source|double|extended). This patch extends pragma float_control syntax, and also adds support for a new floating point option "-ffp-eval-method=(source|double|extended)". source: intermediate results use source precision double: intermediate results use double precision extended: intermediate results use extended precision
Reviewed By: Aaron Ballman
Differential Revision: https://reviews.llvm.org/D93769
|
 | clang/test/Preprocessor/init-ppc.c |
 | clang/test/Preprocessor/init-s390x.c |
 | clang/lib/Frontend/CompilerInvocation.cpp |
 | clang/test/Preprocessor/init-x86.c |
 | clang/lib/Lex/PPMacroExpansion.cpp |
 | clang/include/clang/Basic/PragmaKinds.h |
 | clang/lib/Basic/Targets/OSTargets.h |
 | clang/test/Preprocessor/init-ppc64.c |
 | clang/test/Preprocessor/init-aarch64.c |
 | clang/lib/Basic/Targets/X86.h |
 | clang/lib/Driver/ToolChains/Clang.cpp |
 | clang/test/Preprocessor/init-arm.c |
 | clang/test/Preprocessor/init-v7k-compat.c |
 | clang/include/clang/Basic/FPOptions.def |
 | clang/include/clang/Sema/Sema.h |
 | clang/include/clang/Basic/TargetInfo.h |
 | clang/include/clang/Lex/Preprocessor.h |
 | clang/test/Preprocessor/init.c |
 | clang/docs/LanguageExtensions.rst |
 | clang/include/clang/Basic/LangOptions.h |
 | clang/lib/Frontend/InitPreprocessor.cpp |
 | clang/test/Preprocessor/init-mips.c |
 | clang/docs/UsersManual.rst |
 | clang/test/CodeGen/fp-floatcontrol-pragma.cpp |
 | clang/include/clang/Basic/LangOptions.def |
 | clang/include/clang/Lex/PreprocessorOptions.h |
 | clang/include/clang/Driver/Options.td |
 | clang/lib/Parse/ParsePragma.cpp |
 | clang/lib/Sema/SemaExpr.cpp |
 | clang/lib/Sema/Sema.cpp |
 | clang/lib/Sema/SemaAttr.cpp |
Commit
8612417e5a54cfef941ab45de55e48b4a0c4e8b4
by jeremy.morse[DebugInfo][InstrRef] Don't break up ret-sequences on debug-info instrs
When we have a terminator sequence (i.e. a tailcall or return), MIIsInTerminatorSequence is used to work out where the preceding ABI-setup instructions end, i.e. the parts that were glued to the terminator instruction. This allows LLVM to split blocks safely without having to worry about ABI stuff.
The function only ignores DBG_VALUE instructions, meaning that the two debug instructions I recently added can end terminator sequences early, causing various MachineVerifier errors. This patch promotes the test for debug instructions from "isDebugValue" to "isDebugInstr", thus avoiding any debug-info interfering with this function.
Differential Revision: https://reviews.llvm.org/D106660
|
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp |
 | llvm/test/DebugInfo/ARM/instr-ref-tcreturn.ll |
Commit
0e79a94836d7127a87c36fdca43ffaf6a17d8964
by jrtc27[Utils] Support class template specializations in update_cc_test_checks
ClassTemplateSpecializationDecl not within a ClassTemplateDecl represents an explicit instatiation of a template and so should be handled as if it were a normal CXXRecordDecl. Unfortunately, having an equivalent for FunctionTemplateDecl remains a TODO in ASTDumper's VisitFunctionTemplateDecl, with all the explicit instantiations just being emitted inside the FunctionTemplateDecl along with all the other specializations, meaning we can't easily support explicit function instantiations in update_cc_test_checks.
Reviewed By: arichardson
Differential Revision: https://reviews.llvm.org/D106243
|
 | clang/test/utils/update_cc_test_checks/Inputs/explicit-template-instantiation.cpp.expected |
 | clang/test/utils/update_cc_test_checks/explicit-template-instantiation.test |
 | clang/test/utils/update_cc_test_checks/Inputs/explicit-template-instantiation.cpp |
 | llvm/utils/update_cc_test_checks.py |
Commit
40080e7e7f42857c8edac4a53e476a68563f1a98
by jrtc27[Clang interpreter] Avoid storing pointers at unaligned locations
The Clang interpreter's bytecode uses a packed stream of bytes representation, but also wants to have some opcodes take pointers as arguments, which are currently embedded in the bytecode directly.
However, CHERI, and thus Arm's upcoming experimental Morello prototype, provide spatial memory safety for C/C++ by implementing language-level (and sub-language-level) pointers as capabilities, which track bounds, permissions and validity in hardware. This uses tagged memory with a single tag bit at every capability-aligned address, and so storing pointers to unaligned addresses results in the tag being stripped, leading to a tag fault when the pointer is ultimately dereferenced at a later point.
In order to support a stricter C/C++ implementation like CHERI, we no longer store pointers directly in the bytecode, instead storing them in a table and embedding the index in the bytecode.
Reviewed By: nand
Differential Revision: https://reviews.llvm.org/D97606
|
 | clang/lib/AST/Interp/Disasm.cpp |
 | clang/lib/AST/Interp/Program.cpp |
 | clang/lib/AST/Interp/Interp.h |
 | clang/lib/AST/Interp/ByteCodeEmitter.cpp |
 | clang/lib/AST/Interp/Program.h |
 | clang/lib/AST/Interp/Source.h |
 | clang/utils/TableGen/ClangOpcodesEmitter.cpp |
Commit
d3c70d9f7765f8e731c0b892aea74b21d330d230
by gchatelet[libc] Simplify implementation of benchmarks
This also allows to run the distribution benchmarks in other frameworks like the Google Benchmark facility.
|
 | libc/benchmarks/LibcMemoryBenchmark.cpp |
 | libc/benchmarks/LibcMemoryBenchmarkMain.cpp |
 | libc/benchmarks/LibcMemoryBenchmark.h |
 | libc/benchmarks/CMakeLists.txt |
 | libc/benchmarks/MemorySizeDistributions.cpp |
 | libc/benchmarks/MemorySizeDistributions.h |
Commit
5b83261c1518a39636abe094123f1704bbfd972f
by spatel[DivRemPairs] make sure we have a valid CFG for hoisting division
This transform was added with e38b7e894808ec2 and as shown in: https://llvm.org/PR51241 ...it could crash without an extra check of the blocks.
There might be a more compact way to write this constraint, but we can't just count the successors/predecessors without affecting a test that includes a switch instruction.
|
 | llvm/lib/Transforms/Scalar/DivRemPairs.cpp |
 | llvm/test/Transforms/DivRemPairs/X86/div-expanded-rem-pair.ll |
Commit
d675b594f4f1e1f6a195fb9a4fd02cf3de92292d
by chris.jackson[DebugInfo][LoopStrengthReduction] SCEV-based salvaging for LSR
Reapply commit 796b84d26f4d461fb50e7b4e84e15a10eaca88fc that was reverted due to reports of crashes. A minor change now guards against getVariableLocationOperand() returning a nullptr.
Differential Revision: https://reviews.llvm.org/D106659
|
 | llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-2.ll |
 | llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp |
 | llvm/test/Transforms/LoopStrengthReduce/dbg-preserve-2.ll |
 | llvm/test/Transforms/LoopStrengthReduce/dbg-preserve-0.ll |
 | llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-0.ll |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-4.ll |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-1.ll |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-3.ll |
Commit
89edd1e95f5cc274c0e33cf45ffc85c37b3214f0
by dvyukovtsan: fix warnings in tests
Compilers don't like attributes in this position:
warning: GCC does not allow 'noinline' attribute in this position on a function definition error: attributes are not allowed on a function-definition
Reviewed By: melver
Differential Revision: https://reviews.llvm.org/D106951
|
 | compiler-rt/test/tsan/race_top_suppression.cpp |
 | compiler-rt/test/tsan/ignorelist2.cpp |
 | compiler-rt/test/tsan/longjmp4.cpp |
 | compiler-rt/test/tsan/race_on_heap.cpp |
 | compiler-rt/test/tsan/longjmp3.cpp |
Commit
9ef9d01a5046f4f58b51b59d658e4c05f41344a1
by dvyukovtsan: extend signal_malloc test
Test that we report the warning for free() and ensure the test finishes as we usually do with "DONE".
Depends on D106951.
Reviewed By: melver
Differential Revision: https://reviews.llvm.org/D106952
|
 | compiler-rt/test/tsan/signal_malloc.cpp |
Commit
acbb4fcd5e664ddfb515785f1839afc8f2570035
by dvyukovtsan: increase max number of threads supported by test-only barrier
Currently the barrier supports only 256 threads, this does not allow to write reliable tests that use more threads. Bump max number of threads to 1024 to support writing good stress tests. Also replace sched_yield() with usleep(100) on the wait path. If we write tests that create hundreds of threads (and dozens of tests can run in parallel), yield would consume massive amounts of CPU time for spinning.
Depends on D106952.
Reviewed By: melver
Differential Revision: https://reviews.llvm.org/D106953
|
 | compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp |
Commit
bfb597b24c311f8a03ad9530adef3b3c1e5ff853
by dvyukovtsan: improve lots_of_threads test
The current 10 threads is not particularly "lots" and not stressful. Create 10x300 threads and ensure they all are running at the same time.
Depends on D106953.
Reviewed By: melver
Differential Revision: https://reviews.llvm.org/D106954
|
 | compiler-rt/test/tsan/lots_of_threads.c |
Commit
399289604348e2194120890e0632e2cbc35077f5
by chris.jacksonRevert "[DebugInfo][LoopStrengthReduction] SCEV-based salvaging for LSR" Reverted due to buildbot failures. This reverts commit d675b594f4f1e1f6a195fb9a4fd02cf3de92292d.
|
 | llvm/test/Transforms/LoopStrengthReduce/dbg-preserve-0.ll |
 | llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-1.ll |
 | llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-4.ll |
 | llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp |
 | llvm/test/Transforms/LoopStrengthReduce/dbg-preserve-2.ll |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-2.ll |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-3.ll |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-0.ll |
Commit
4e65688571221565cf1a5c1e4bb58ee2ab7c9c83
by koraq[libc++][nfc] Improve error diagnostics.
The error message for disabled filesystem and locale support is now done in the same fashion as ranges and format in D106763.
Reviewed By: #libc, ldionne
Differential Revision: https://reviews.llvm.org/D106935
|
 | libcxx/include/locale.h |
 | libcxx/include/filesystem |
Commit
54588bcc052e5b08f90e672c33d0c1ad4eda2424
by craig.topper[RISCV] Restrict performANY_EXTENDCombine to prevent an infinite loop.
The sign_extend we insert here can get turned into a zero_extend if the sign bit is known zero. This can enable a setcc combine that shrinks compares with zero_extend. This reduces the use count of the zero_extend allowing other combines to turn it back into an any_extend.
This restricts the combine to only cases where the result is used by a CopyToReg. This works for my original motivating case. I hope the CopyToReg use will prevent any converted extends from turning back into an any_extend.
Reviewed By: luismarques
Differential Revision: https://reviews.llvm.org/D106754
|
 | llvm/lib/Target/RISCV/RISCVISelLowering.cpp |
 | llvm/test/CodeGen/RISCV/pr51206.ll |
Commit
3106f85945468970b81d86c296d37b485415a398
by craig.topper[RISCV] Fix grammar in a comment. NFC
|
 | llvm/lib/Target/RISCV/RISCVISelLowering.cpp |
Commit
83c752bfa6071f34c8c4564a379d99b1b94f604a
by Raphael IsemannRevert "[lldb] Temporarily bump the max length of the pexpect error message to diagnose an lldb-aarch64 test failure"
This reverts commit 5db8e232126fc4c0f5d5b0339bdc5a49830268d1. The test has been disabled since then on the bot and we got the logs we wanted.
|
 | lldb/third_party/Python/module/pexpect-4.6/pexpect/pty_spawn.py |
Commit
6e8660a7d65a30e3abcb4c588047c1328ab7d28e
by jrtc27[NFC][PowerPC] Fix spe.ll to work with update_llc_test_checks.py again
Using split-file does not work with update_llc_test_checks.py. It's also mostly redundant, as the single and double tests can just use a single llc and FileCheck invocation for each FPU type using -check-prefixes rather than -check-prefix, and update_llc_test_checks.py will merge what it can. Only test_dasmconst needs to be SPE-only and so is pulled out into its own mall file (rather than using sed to preprocess the file and keep it commented out for EFPU2, which would work, but is ugly).
As well as cutting down on the number of RUN lines, this also results in test_fma's CHECK lines being merged for both FPUs.
Reviewed By: kiausch
Differential Revision: https://reviews.llvm.org/D106969
|
 | llvm/test/CodeGen/PowerPC/spe-hwdouble.ll |
 | llvm/test/CodeGen/PowerPC/spe.ll |
Commit
c1f719d1a749eaf4a4964292e3eed6ab2766f2c5
by zinenko[mlir] harden result type verification in llvm.call
The verifier of the llvm.call operation was not checking for mismatches between the number of operation results and the number of results in the signature of the callee. Furthermore, it was possible to construct an llvm.call operation producing an SSA value of !llvm.void type, which should not exist. Add the verification and treat !llvm.void result type as absence of call results. Update the GPU conversions to LLVM that were mistakenly assuming that it was fine for llvm.call to produce values of !llvm.void type and ensure these calls do not produce results.
Reviewed By: mehdi_amini
Differential Revision: https://reviews.llvm.org/D106937
|
 | mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp |
 | mlir/lib/Conversion/GPUToVulkan/ConvertLaunchFuncToVulkanCalls.cpp |
 | mlir/test/Conversion/GPUToVulkan/invoke-vulkan.mlir |
 | mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp |
 | mlir/test/Dialect/LLVMIR/invalid.mlir |
Commit
49f745f59cbe1eda4653d917cc7d8d0b586fc6a4
by zinenko[mlir] run the verifier before translating a module
In translation from MLIR to another IR, run the MLIR verifier on the parsed module to ensure only valid modules are given to the translation. Previously, we would send any module that could be parsed to the translation, including semantically invalid modules, leading to surprising errors or lack thereof down the pipeline.
Depends On D106937
Reviewed By: mehdi_amini
Differential Revision: https://reviews.llvm.org/D106938
|
 | mlir/lib/Translation/Translation.cpp |
Commit
6da3d8b19c32c76bb503b1a71fc167a0487ef200
by i[llvm] Replace LLVM_ATTRIBUTE_NORETURN with C++11 [[noreturn]]
[[noreturn]] can be used since Oct 2016 when the minimum compiler requirement was bumped to GCC 4.8/MSVC 2015.
Note: the definition of LLVM_ATTRIBUTE_NORETURN is kept for now.
|
 | llvm/lib/Support/CrashRecoveryContext.cpp |
 | llvm/lib/Support/Windows/Process.inc |
 | llvm/lib/Support/Unix/Unix.h |
 | llvm/tools/llvm-objdump/llvm-objdump.cpp |
 | llvm/lib/Support/SmallVector.cpp |
 | llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp |
 | llvm/tools/llvm-cvtres/llvm-cvtres.cpp |
 | llvm/tools/llvm-lipo/llvm-lipo.cpp |
 | llvm/tools/llvm-ifs/ErrorCollector.cpp |
 | llvm/tools/llvm-ifs/ErrorCollector.h |
 | llvm/include/llvm/Support/Windows/WindowsSupport.h |
 | llvm/tools/llvm-strings/llvm-strings.cpp |
 | llvm/lib/LTO/LTOBackend.cpp |
 | llvm/include/llvm/TableGen/Error.h |
 | llvm/tools/llvm-ar/llvm-ar.cpp |
 | llvm/include/llvm/Support/Error.h |
 | llvm/tools/llvm-mt/llvm-mt.cpp |
 | llvm/tools/llvm-objdump/llvm-objdump.h |
 | llvm/include/llvm/Support/Process.h |
 | llvm/tools/llvm-profgen/ErrorHandling.h |
 | llvm/include/llvm/MC/MCContext.h |
 | llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.cpp |
 | llvm/tools/lli/lli.cpp |
 | llvm/tools/llc/llc.cpp |
 | llvm/tools/llvm-readobj/llvm-readobj.cpp |
 | llvm/include/llvm/Support/ErrorHandling.h |
 | llvm/include/llvm/Support/CrashRecoveryContext.h |
 | llvm/lib/Support/Process.cpp |
 | llvm/tools/split-file/split-file.cpp |
 | llvm/lib/Support/Unix/Process.inc |
 | llvm/tools/llvm-rc/llvm-rc.cpp |
 | llvm/tools/llvm-readobj/llvm-readobj.h |
 | llvm/lib/Transforms/Coroutines/Coroutines.cpp |
Commit
2b013a6c8a7de6d204ce610f69fd981b181cee2c
by ajcbik[mlir][sparse] use proper type alias for filename ptr
Reviewed By: gussmith23
Differential Revision: https://reviews.llvm.org/D106904
|
 | mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_spmm.mlir |
 | mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_matvec.mlir |
 | mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sum.mlir |
 | mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_flatten.mlir |
 | mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sampled_matmul.mlir |
 | mlir/test/Integration/Dialect/SparseTensor/CPU/dense_output.mlir |
 | mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_out_simple.mlir |
 | mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_mttkrp.mlir |
Commit
71f0359a9defbf3e35828189629f166508390d5d
by aaronSimplify allowing pragma float_control in a linkage specification
This amends b0ef3d8f666fa6008abb09340b73d9340d442569 based on a suggestion from James Y Knight.
|
 | clang/lib/Sema/SemaAttr.cpp |
Commit
dc5570d149ca6a0931413bf1ad469eb8f9517f82
by jeroen.dobbelaereRevert "Revert of D49126 [PredicateInfo] Use custom mangling to support ssa_copy with unnamed types."
This reverts commit 77080a1eb6061df2dcfae8ac84b85ad4d1e02031.
This change introduced issues detected with EXPENSIVE_CHECKS. Reverting to restore the needed function cleanup. A next patch will then just improve on the name mangling.
|
 | llvm/test/Transforms/Util/PredicateInfo/edge.ll |
 | llvm/lib/Transforms/Utils/PredicateInfo.cpp |
 | llvm/test/Other/debugcounter-predicateinfo.ll |
 | llvm/test/Transforms/Util/PredicateInfo/diamond.ll |
 | llvm/test/Transforms/Util/PredicateInfo/unnamed-types.ll |
 | llvm/include/llvm/Transforms/Utils/PredicateInfo.h |
 | llvm/test/Transforms/Util/PredicateInfo/condprop.ll |
 | llvm/test/Transforms/Util/PredicateInfo/testandor.ll |
Commit
03b8c69d06f810f13d0b74d06dabea37c43e5b78
by jeroen.dobbelaere[PredicateInfo] Use Intrinsic::getDeclaration now that it handles unnamed types.
This is a second attempt to fix the EXPENSIVE_CHECKS issue that was mentioned In D91661#2875179 by @jroelofs.
(The first attempt was in D105983)
D91661 more or less completely reverted D49126 and by doing so also removed the cleanup logic of the created declarations and calls. This patch is a replacement for D91661 (which must itself be reverted first). It replaces the custom declaration creation with the generic version and shows the test impact. It also tracks the number of NamedValues to detect if a new prototype was added instead of looking at the available users of a prototype.
Reviewed By: jroelofs
Differential Revision: https://reviews.llvm.org/D106147
|
 | llvm/test/Transforms/Util/PredicateInfo/edge.ll |
 | llvm/lib/IR/Module.cpp |
 | llvm/test/Transforms/Util/PredicateInfo/testandor.ll |
 | llvm/lib/Transforms/Utils/PredicateInfo.cpp |
 | llvm/test/Transforms/Util/PredicateInfo/condprop.ll |
 | llvm/test/Other/debugcounter-predicateinfo.ll |
 | llvm/test/Transforms/Util/PredicateInfo/diamond.ll |
 | llvm/test/Transforms/Util/PredicateInfo/unnamed-types.ll |
 | llvm/include/llvm/IR/Module.h |
Commit
bc43078fe835e19782a90ad2f464ebdc150911de
by sjoerd.meijer[LoopFlatten] Fix bug where SCEVCouldNotCompute object is used
The SCEV method getBackedgeTakenCount() returns a SCEVCouldNotCompute object if the backedge-taken count is unpredictable. This fix ensures there is no longer an attempt to use such an object to find the trip count.
Patch by: Rosie Sumpter.
Differential Revision: https://reviews.llvm.org/D106970
|
 | llvm/lib/Transforms/Scalar/LoopFlatten.cpp |
 | llvm/test/Transforms/LoopFlatten/loop-flatten-negative.ll |
Commit
aad17c55a8116cd3831d4392d909139702019d65
by walter erquinigo[trace] Introduce Hierarchical Trace Representation (HTR) and add command for Intel PT trace visualization
This diff introduces Hierarchical Trace Representation (HTR) and creates the `thread trace export ctf -f <filename> -t <thread_id>` command to export an Intel PT trace's HTR to Chrome Trace Format (CTF) for visualization.
See `lldb/docs/htr.rst` for context/documentation on HTR.
**Overview of Changes** - Add HTR documentation (see `lldb/docs/htr.rst`) - Add HTR structures (layer, block, block metadata) - Implement "Basic Super Block" HTR pass - Add 'thread trace export ctf' command to export the HTR of an Intel PT trace to Chrome Trace Format (CTF)
As this diff is the first iteration of HTR and trace visualization, future diffs will build on this work by generalizing the internal design of HTR and implementing new HTR passes that provide better trace summarization/visualization.
See attached video for an example of Intel PT trace visualization: {F17851042}
Original Author: jj10306
Submitted by: wallace
Reviewed By: wallace, clayborg
Differential Revision: https://reviews.llvm.org/D105741
|
 | lldb/test/API/commands/trace/TestTraceExport.py |
 | lldb/source/Plugins/TraceExporter/common/CMakeLists.txt |
 | lldb/source/Plugins/TraceExporter/ctf/TraceExporterCTFOptions.td |
 | lldb/docs/htr.rst |
 | lldb/source/Plugins/TraceExporter/CMakeLists.txt |
 | lldb/source/Plugins/TraceExporter/common/TraceHTR.h |
 | lldb/source/Plugins/TraceExporter/ctf/CommandObjectThreadTraceExportCTF.cpp |
 | lldb/source/Plugins/TraceExporter/ctf/CMakeLists.txt |
 | lldb/source/Plugins/TraceExporter/ctf/CommandObjectThreadTraceExportCTF.h |
 | lldb/source/Plugins/TraceExporter/common/TraceHTR.cpp |
 | lldb/test/API/commands/trace/intelpt-trace/export_ctf_test_program.cpp |
 | lldb/test/API/commands/trace/intelpt-trace/export_ctf_test_program.out |
Commit
5acdfb7eda96dd3931803897476eeeb97eb943cb
by dvyukovtsan: remove unused pc arguments
Remove pc argument of ThreadIgnoreEnd, ThreadIgnoreSyncEnd and AcquireGlobal functions. It's unused and in some places we don't even have a pc and pass 0 anyway. Don't confuse readers and don't pretend that pc is needed and that passing 0 is somehow deficient.
Use simpler convention for ThreadIgnoreBegin and ThreadIgnoreSyncBegin: accept only pc instread of pc+save_stack. 0 pc means "don't save stack".
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D106973
|
 | compiler-rt/lib/tsan/rtl/tsan_rtl.h |
 | compiler-rt/lib/tsan/rtl/tsan_interface_java.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_interface_inl.h |
 | compiler-rt/lib/tsan/go/tsan_go.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_interceptors.h |
 | compiler-rt/lib/tsan/rtl/tsan_rtl.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp |
Commit
b5bc386ca109599c56084619934f17a996997532
by dvyukovtsan: remove mblock types
We used to count number of allocations/bytes based on the type and maybe record them in heap block headers. But that's all in the past, now it's not used for anything. Remove the mblock type.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D106971
|
 | compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_stack_trace.cpp |
 | compiler-rt/lib/tsan/go/tsan_go.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_mman.h |
 | compiler-rt/lib/tsan/tests/unit/tsan_mman_test.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_mman.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_rtl.h |
 | compiler-rt/lib/tsan/rtl/tsan_rtl.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_report.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp |
Commit
c4cb9b64dd350f0d675e12d38ea54f4e0c3ceb37
by dvyukovtsan: add more micro benchmarks
1. Add a set of micro benchmarks for memory accesses, mem* functions and unaligned accesses. 2. Add support for multiple benchmarks in a single binary (or it would require 12 new benchmark binaries). 3. Remove the "clock growth" machinery, it affects the current tsan runtime by increasing size of all vector clocks, but this won't be relevant for the new tsan runtime.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D106961
|
 | compiler-rt/test/tsan/bench.h |
 | compiler-rt/test/tsan/bench_memory_access.cpp |
Commit
dbed061bf13b74cbbe6de3062f7f50481dd45ac4
by patrickeholland[MCA] Moving the target specific CustomBehaviour impl. from /tools/llvm-mca/ to /lib/Target/.
Differential Revision: https://reviews.llvm.org/D106775
|
 | llvm/include/llvm/Config/llvm-config.h.cmake |
 | llvm/include/llvm/MCA/CustomBehaviour.h |
 | llvm/tools/llvm-mca/CodeRegionGenerator.h |
 | llvm/tools/llvm-mca/lib/AMDGPU/AMDGPUCustomBehaviour.cpp |
 | llvm/tools/llvm-mca/CMakeLists.txt |
 | llvm/cmake/modules/LLVM-Config.cmake |
 | llvm/tools/llvm-mca/llvm-mca.cpp |
 | llvm/lib/Target/AMDGPU/MCA/CMakeLists.txt |
 | llvm/include/llvm/Config/TargetMCAs.def.in |
 | llvm/tools/llvm-mca/lib/CMakeLists.txt |
 | llvm/docs/CommandGuide/llvm-mca.rst |
 | llvm/lib/Target/AMDGPU/MCA/AMDGPUCustomBehaviour.h |
 | llvm/lib/Target/AMDGPU/MCA/AMDGPUCustomBehaviour.cpp |
 | llvm/CMakeLists.txt |
 | llvm/tools/llvm-mca/lib/AMDGPU/CMakeLists.txt |
 | llvm/include/llvm/Support/TargetRegistry.h |
 | llvm/include/llvm/Support/TargetSelect.h |
 | llvm/tools/llvm-mca/lib/AMDGPU/AMDGPUCustomBehaviour.h |
 | llvm/lib/Target/AMDGPU/CMakeLists.txt |
Commit
5237b140874a47670678b1f5b4566ffcea15b9b7
by dvyukovtsan: print alloc stack for Java objects
We maintain information about Java allocations, but for some reason never printed it in reports. Print it.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D106956
|
 | compiler-rt/lib/tsan/rtl/tsan_rtl.h |
 | compiler-rt/lib/tsan/rtl/tsan_interface_java.cpp |
 | compiler-rt/test/tsan/java_symbolization.cpp |
 | compiler-rt/test/tsan/java.h |
 | compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp |
Commit
6563bb53b5fd837a2a0368c58de1cf02ec921d27
by dvyukovtsan: don't use caller/current PC in Java interfaces
Caller PC is plain harmful as native caller PC has nothing to do with Java code. Current PC is not particularly useful and may be somewhat confusing for Java users as it makes top frame to point to some magical __tsan function. But obtaining and using these PCs adds runtime cost for every java event. Remove these PCs. Rely only on official Java frames. It makes execution faster, code simpler and reports better.
Depends on D106956.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D106957
|
 | compiler-rt/lib/tsan/rtl/tsan_interface_java.cpp |
 | compiler-rt/test/tsan/java_symbolization.cpp |
Commit
9dad34423b649f8d8ff2f4e6cee0c600f28f2d57
by dvyukovtsan: strip __libc_start_main frame
We strip all frames below main but in some cases it may be not enough. Namely, when main is instrumented but does not call any other instrumented code. In this case __tsan_func_entry in main obtains PC pointing to __libc_start_main (as we pass caller PC to __tsan_func_entry), but nothing obtains PC pointing to main itself (as main does not call any instrumented code). In such case we will not have main in the stack, and stripping everything below main won't work. So strip __libc_start_main explicitly as well. But keep stripping of main because __libc_start_main is glibc/linux-specific, so looking for main is more reliable (and usually main is present in stacks).
Depends on D106957.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D106958
|
 | compiler-rt/test/tsan/java_symbolization.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp |
Commit
170a8c12843db3dc10b544c0fc5b3f19566ee940
by dvyukovsanitizer_common: avoid compiler-interted memset in deadlock detector
Compilers tends to insert memset/memcpy for some struct/array operations, and these don't play well inside of sanitizer runtimes. Avoiding these calls was the intention behind internal_memset. Remove the leftover ={} that can result in memset call.
Reviewed By: vitalybuka, pgousseau
Differential Revision: https://reviews.llvm.org/D106978
|
 | compiler-rt/lib/sanitizer_common/sanitizer_mutex.cpp |
Commit
da7a5c09c86c3f639c63ce8843d6f21c915ae1c6
by dvyukovtsan: don't print __tsan_atomic* functions in report stacks
Currently __tsan_atomic* functions do FuncEntry/Exit using caller PC and then use current PC (pointing to __tsan_atomic* itself) during memory access handling. As the result the top function in reports involving atomics is __tsan_atomic* and the next frame points to user code.
Remove FuncEntry/Exit in atomic functions and use caller PC during memory access handling. This removes __tsan_atomic* from the top of report stacks, so that they point right to user code.
The motivation for this is performance. Some atomic operations are very hot (mostly loads), so removing FuncEntry/Exit is beneficial. This also reduces thread trace consumption (1 event instead of 3).
__tsan_atomic* at the top of the stack is not necessary and does not add any new information. We already say "atomic write of size 4", "__tsan_atomic32_store" does not add anything new.
It also makes reports consistent between atomic and non-atomic accesses. For normal accesses we say "previous write" and point to user code; for atomics we say "previous atomic write" and now also point to user code.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D106966
|
 | compiler-rt/lib/tsan/rtl/tsan_interface_atomic.cpp |
 | compiler-rt/test/tsan/atomic_free3.cpp |
 | compiler-rt/test/tsan/atomic_stack.cpp |
Commit
6cba96332b3ae2cbf3f9b62dfb407f3275f6cf79
by joker.ephAdd some missing CMake dependencies between MLIR dialects (NFC)
|
 | mlir/lib/Dialect/GPU/CMakeLists.txt |
 | mlir/lib/Dialect/SparseTensor/IR/CMakeLists.txt |
 | mlir/lib/Dialect/OpenACC/CMakeLists.txt |
Commit
660a56956c32b0bcd850fc12fa8ad0225a6bb880
by joker.ephEmit strong definition for TypeID storage in Op/Type/Attributes definition
By making an explicit template specialization for the TypeID provided by these classes, the compiler will not emit an inline weak definition and rely on the linker to unique it. Instead a single definition will be emitted in the C++ file alongside the implementation for these classes. That will turn into a linker error what is now a hard-to-debug runtime behavior where instances of the same class may be using a different TypeID inside of different DSOs.
Differential Revision: https://reviews.llvm.org/D105903
|
 | mlir/tools/mlir-tblgen/DialectGen.cpp |
 | mlir/include/mlir/Support/TypeID.h |
 | mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp |
 | mlir/tools/mlir-tblgen/AttrOrTypeDefGen.cpp |
Commit
4adcff0b7004dc3c81fb8b1104044a188db8aa89
by efriedma[ARM] Fix llvm-objdump disassembly of armv7m object files.
Apparently, the features were getting mixed up, so we'd try to disassemble in ARM mode. Fix sub-architecture detection to compute the correct triple if we're detecting it automatically, so the user doesn't need to pass --triple=thumb etc.
It's possible we should be somehow tying the "+thumb-mode" target feature more directly to Tag_CPU_arch_profile? But this seems to work reasonably well, anyway.
While I'm here, fix up the other llvm-objdump tests that were explicitly specifying an ARM triple; that shouldn't be necessary.
Differential Revision: https://reviews.llvm.org/D106912
|
 | llvm/test/tools/llvm-objdump/ELF/ARM/v7a-subfeature.s |
 | llvm/test/tools/llvm-objdump/ELF/ARM/v6-subfeatures.s |
 | llvm/test/tools/llvm-objdump/ELF/ARM/v6k-subarch.s |
 | llvm/lib/Object/ELFObjectFile.cpp |
 | llvm/test/tools/llvm-objdump/ELF/ARM/v5te-subarch.s |
 | llvm/test/tools/llvm-objdump/ELF/ARM/v5t-subarch.s |
 | llvm/test/tools/llvm-objdump/ELF/ARM/v8a-subarch.s |
 | llvm/test/tools/llvm-objdump/ELF/ARM/v6t2-subarch.s |
 | llvm/test/tools/llvm-objdump/ELF/ARM/v7a-neg-subfeature.s |
 | llvm/test/tools/llvm-objdump/ELF/ARM/v5tej-subarch.s |
 | llvm/test/tools/llvm-objdump/ELF/ARM/v8r-subarch.s |
 | llvm/test/tools/llvm-objdump/ELF/ARM/v7m-neg-subfeatures.s |
 | llvm/test/tools/llvm-objdump/ELF/ARM/v6-subarch.s |
 | llvm/test/tools/llvm-objdump/ELF/ARM/v6m-subarch.s |
 | llvm/test/tools/llvm-objdump/ELF/ARM/v6-neg-subfeatures.s |
 | llvm/test/tools/llvm-objdump/ELF/ARM/v7m-subarch.s |
 | llvm/test/tools/llvm-objdump/ELF/ARM/v7m-subfeatures.s |
Commit
828767f325b5dd0356c5fd90e40a1c047010853e
by iCOFF/ELF: Place llvm.global_ctors elements in llvm.used if comdat is used
On ELF, an SHT_INIT_ARRAY outside a section group is a GC root. The current codegen abuses SHT_INIT_ARRAY in a section group to mean a GC root.
On PE/COFF, the dynamic initialization for `__declspec(selectany)` in a comdat can be garbage collected by `-opt:ref`.
Call `addUsedGlobal` for the two cases to fix the abuse/bug.
Reviewed By: rnk
Differential Revision: https://reviews.llvm.org/D106925
|
 | clang/test/CodeGenCXX/microsoft-abi-template-static-init.cpp |
 | clang/test/CodeGenCXX/static-member-variable-explicit-specialization.cpp |
 | clang/lib/CodeGen/CGDeclCXX.cpp |
Commit
f623dc9a8c37c3f2ed0a2138563a8b9e37adc1ce
by kyulee[DebugInfo][docs] Fix DISubprogram fields
D45024 renamed the field in `DISubprogram` from `variables:` to `retainedNodes:`. Some of the docs were updated in D89082 but this updates the rest.
Reviewed By: scott.linder
Differential Revision: https://reviews.llvm.org/D106926
|
 | llvm/docs/LangRef.rst |
 | llvm/docs/SourceLevelDebugging.rst |
Commit
0f4b41e038537ab2ab6fa2aa048e55c28a03ab68
by zoecarver[libcxx][ranges] Add ranges::take_view.
Differential Revision: https://reviews.llvm.org/D106507
|
 | libcxx/include/module.modulemap |
 | libcxx/test/std/ranges/range.adaptors/range.take/ctor.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.take/size.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.take/borrowing.compile.pass.cpp |
 | libcxx/include/CMakeLists.txt |
 | libcxx/test/std/ranges/range.adaptors/range.take/sentinel/ctor.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.take/sentinel/eq.pass.cpp |
 | libcxx/include/__ranges/take_view.h |
 | libcxx/test/support/test_range.h |
 | libcxx/include/ranges |
 | libcxx/test/std/ranges/range.adaptors/range.take/sentinel/base.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/ctad.compile.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.take/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.take/base.pass.cpp |
 | libcxx/test/libcxx/diagnostics/detail.headers/ranges/take_view.module.verify.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.take/end.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.take/types.h |
 | libcxx/test/std/ranges/range.adaptors/range.take/ctad.compile.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.take/begin.pass.cpp |
 | libcxx/docs/Status/RangesPaper.csv |
Commit
6ea22d46261443c6d086d660508067db50de68ad
by ezhulenevOptionally eliminate blocking runtime.await calls by converting functions to coroutines.
Interop parallelism requires needs awaiting on results. Blocking awaits are bad for performance. TFRT supports lightweight resumption on threads, and coroutines are an abstraction than can be used to lower the kernels onto TFRT threads.
Reviewed By: ezhulenev
Differential Revision: https://reviews.llvm.org/D106508
|
 | mlir/test/Dialect/Async/async-to-async-runtime-eliminate-blocking.mlir |
 | mlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp |
 | mlir/include/mlir/Dialect/Async/Passes.td |
Commit
f17e7df04ade78932e568ddd5b56d5e6c89bbac2
by i[ELF][test] Delete unneeded --triple=thumb* from llvm-objdump RUN lines
|
 | lld/test/ELF/arm-thumb-branch.s |
 | lld/test/ELF/arm-thunk-linkerscript-dotexpr.s |
 | lld/test/ELF/arm-thunk-nosuitable.s |
 | lld/test/ELF/arm-thumb-blx.s |
 | lld/test/ELF/arm-thumb-interwork-shared.s |
 | lld/test/ELF/arm-thunk-largesection.s |
 | lld/test/ELF/arm-thunk-linkerscript-large.s |
 | lld/test/ELF/arm-thunk-edgecase.s |
 | lld/test/ELF/arm-thumb-narrow-branch-check.s |
 | lld/test/ELF/arm-thunk-multipass.s |
 | lld/test/ELF/arm-force-pi-thunk.s |
 | lld/test/ELF/arm-thumb-undefined-weak-narrow.test |
 | lld/test/ELF/arm-thumb-pc8-weak.s |
 | lld/test/ELF/arm-thumb-thunk-empty-pass.s |
 | lld/test/ELF/arm-thunk-linkerscript-sort.s |
 | lld/test/ELF/arm-thumb2-adr.s |
 | lld/test/ELF/arm-thumb-adr.s |
 | lld/test/ELF/arm-thunk-linkerscript-orphan.s |
 | lld/test/ELF/arm-thumb-ldrlit.s |
 | lld/test/ELF/arm-thunk-re-add.s |
 | lld/test/ELF/arm-thumb-branch-rangethunk.s |
 | lld/test/ELF/arm-thumb-mix-range-thunk-os.s |
 | lld/test/ELF/arm-thumb-undefined-weak.s |
 | lld/test/ELF/arm-thumb-condbranch-thunk.s |
 | lld/test/ELF/arm-thunk-linkerscript.s |
 | lld/test/ELF/arm-thunk-multipass-plt.s |
 | lld/test/ELF/arm-thumb-plt-range-thunk-os.s |
 | lld/test/ELF/arm-extreme-range-pi-thunk.s |
 | lld/test/ELF/arm-thumb-interwork-thunk.s |
 | lld/test/ELF/arm-thumb2-ldrlit.s |
 | lld/test/ELF/arm-thumb-range-thunk-os.s |
Commit
660b753e2892d3359e6432cdf3296ec7778105a7
by i[ELF][test] Convert --start-address= and --stop-address= values to hexadecimal
so that readers can connect them with the hexadecimal addresses in the output.
|
 | lld/test/ELF/arm-thunk-linkerscript-sort.s |
 | lld/test/ELF/arm-thunk-linkerscript-large.s |
 | lld/test/ELF/arm-thunk-linkerscript-dotexpr.s |
 | lld/test/ELF/arm-thunk-multipass.s |
 | lld/test/ELF/aarch64-cortex-a53-843419-large.s |
 | lld/test/ELF/arm-thunk-multipass-plt.s |
 | lld/test/ELF/arm-thunk-re-add.s |
 | lld/test/ELF/arm-thumb-mix-range-thunk-os.s |
 | lld/test/ELF/arm-thumb-range-thunk-os.s |
Commit
668aa531d646dfb0eff746f4b6e627cfb6a7a271
by gcmn[Bazel] Update for dbed061bf1
This adds Bazel configuration for the TargetMCA targets, which currently only includes AMDGPU.
Reviewed By: rnk
Differential Revision: https://reviews.llvm.org/D106996
|
 | utils/bazel/llvm_configs/llvm-config.h.cmake |
 | utils/bazel/llvm-project-overlay/llvm/BUILD.bazel |
 | utils/bazel/llvm-project-overlay/llvm/config.bzl |
 | utils/bazel/llvm-project-overlay/llvm/include/llvm/Config/llvm-config.h |
Commit
3ff451ca6aca9a87030281fa3b20670d9b1d8f32
by gcmn[Bazel] Added missing targets to LLVM bazel rules.
Added the following targets to the LLVM Bazel overlay:
AVR Mips MPS430 SystemZ XCore
Reviewed By: GMNGeoffrey
Differential Revision: https://reviews.llvm.org/D106921
|
 | utils/bazel/configure.bzl |
 | utils/bazel/llvm-project-overlay/llvm/BUILD.bazel |
Commit
4b88a94ebe08054ad88435cc89aaa3b84e41b938
by omair.javaidRevert "[trace] Introduce Hierarchical Trace Representation (HTR) and add command for Intel PT trace visualization"
This reverts commit aad17c55a8116cd3831d4392d909139702019d65.
Breaks LLDB build on 32 bit Arm/Linux bot: https://lab.llvm.org/buildbot/#/builders/17/builds/9497
Differential Revision: https://reviews.llvm.org/D105741
|
 | lldb/source/Plugins/TraceExporter/common/TraceHTR.cpp |
 | lldb/source/Plugins/TraceExporter/ctf/CommandObjectThreadTraceExportCTF.h |
 | lldb/test/API/commands/trace/TestTraceExport.py |
 | lldb/test/API/commands/trace/intelpt-trace/export_ctf_test_program.cpp |
 | lldb/docs/htr.rst |
 | lldb/source/Plugins/TraceExporter/CMakeLists.txt |
 | lldb/source/Plugins/TraceExporter/common/TraceHTR.h |
 | lldb/source/Plugins/TraceExporter/common/CMakeLists.txt |
 | lldb/source/Plugins/TraceExporter/ctf/CommandObjectThreadTraceExportCTF.cpp |
 | lldb/source/Plugins/TraceExporter/ctf/TraceExporterCTFOptions.td |
 | lldb/source/Plugins/TraceExporter/ctf/CMakeLists.txt |
 | lldb/test/API/commands/trace/intelpt-trace/export_ctf_test_program.out |
Commit
6929bd6d0048134bed6c34ee485900c9d9f2b97b
by Louis Dionne[libc++] Add UNSUPPORTED for clang-14 since the underlying bug hasn't been fixed yet
This started breaking in the CI because we bumped the Clang version to 14, which requires adjusting the markup in the test suite. I think it's actually nice the we need to do that and that it doesn't happen automatically, since it serves as a reminder that this is broken in Clang.
|
 | libcxx/test/std/utilities/tuple/tuple.tuple/tuple.assign/convert_copy.pass.cpp |
Commit
e12e02df09a967f644cf28136a7361bce7a5bb91
by George Burgess IV[clang] Evaluate strlen of strcpy argument for -Wfortify-source.
Also introduce Expr::tryEvaluateStrLen.
Differential Revision: https://reviews.llvm.org/D104887
|
 | clang/lib/Sema/SemaChecking.cpp |
 | clang/test/Analysis/security-syntax-checks.m |
 | clang/include/clang/AST/Expr.h |
 | clang/lib/AST/ExprConstant.cpp |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/test/Sema/warn-fortify-source.c |
Commit
d52ba48821301c33650b97cd9f262615fcc0fdc1
by walter erquinigo[trace] Introduce Hierarchical Trace Representation (HTR) and add command for Intel PT trace visualization
This diff introduces Hierarchical Trace Representation (HTR) and creates the `thread trace export ctf -f <filename> -t <thread_id>` command to export an Intel PT trace's HTR to Chrome Trace Format (CTF) for visualization.
See `lldb/docs/htr.rst` for context/documentation on HTR.
**Overview of Changes** - Add HTR documentation (see `lldb/docs/htr.rst`) - Add HTR structures (layer, block, block metadata) - Implement "Basic Super Block" HTR pass - Add 'thread trace export ctf' command to export the HTR of an Intel PT trace to Chrome Trace Format (CTF)
As this diff is the first iteration of HTR and trace visualization, future diffs will build on this work by generalizing the internal design of HTR and implementing new HTR passes that provide better trace summarization/visualization.
See attached video for an example of Intel PT trace visualization: {F17851042}
Original Author: jj10306
Submitted by: wallace
Reviewed By: wallace, clayborg
Differential Revision: https://reviews.llvm.org/D105741
|
 | lldb/test/API/commands/trace/intelpt-trace/export_ctf_test_program.cpp |
 | lldb/test/API/commands/trace/intelpt-trace/export_ctf_test_program.out |
 | lldb/source/Plugins/TraceExporter/ctf/CMakeLists.txt |
 | lldb/test/API/commands/trace/TestTraceExport.py |
 | lldb/docs/htr.rst |
 | lldb/source/Plugins/TraceExporter/CMakeLists.txt |
 | lldb/source/Plugins/TraceExporter/common/TraceHTR.cpp |
 | lldb/source/Plugins/TraceExporter/ctf/TraceExporterCTFOptions.td |
 | lldb/source/Plugins/TraceExporter/common/CMakeLists.txt |
 | lldb/source/Plugins/TraceExporter/common/TraceHTR.h |
 | lldb/source/Plugins/TraceExporter/ctf/CommandObjectThreadTraceExportCTF.cpp |
 | lldb/source/Plugins/TraceExporter/ctf/CommandObjectThreadTraceExportCTF.h |
Commit
f8479d9de59d0f2f3997319b0ec189eb086aa85a
by riddleriver[mlir] Set the namespace of the BuiltinDialect to 'builtin'
Historically the builtin dialect has had an empty namespace. This has unfortunately created a very awkward situation, where many utilities either have to special case the empty namespace, or just don't work at all right now. This revision adds a namespace to the builtin dialect, and starts to cleanup some of the utilities to no longer handle empty namespaces. For now, the assembly form of builtin operations does not require the `builtin.` prefix. (This should likely be re-evaluated though)
Differential Revision: https://reviews.llvm.org/D105149
|
 | mlir/test/mlir-lsp-server/document-symbols.test |
 | mlir/test/Dialect/Vector/canonicalize.mlir |
 | mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir |
 | mlir/test/Dialect/Quant/canonicalize.mlir |
 | mlir/include/mlir/Dialect/PDL/IR/PDLOps.td |
 | mlir/lib/IR/Dialect.cpp |
 | mlir/test/Pass/ir-printing.mlir |
 | mlir/test/Dialect/LLVMIR/terminator.mlir |
 | mlir/test/IR/visitors.mlir |
 | mlir/test/Transforms/canonicalize-block-merge.mlir |
 | mlir/test/Transforms/sccp-callgraph.mlir |
 | mlir/test/Pass/dynamic-pipeline-fail-on-parent.mlir |
 | mlir/test/python/ir/operation.py |
 | mlir/tools/mlir-tblgen/OpPythonBindingGen.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp |
 | mlir/test/Transforms/parallel-loop-collapsing.mlir |
 | mlir/test/Transforms/test-legalizer-analysis.mlir |
 | mlir/test/mlir-lsp-server/hover.test |
 | mlir/docs/PassManagement.md |
 | mlir/test/Dialect/ArmSVE/memcpy.mlir |
 | mlir/include/mlir/Pass/PassManager.h |
 | flang/test/Fir/cg-ops.fir |
 | mlir/test/IR/print-ir-defuse.mlir |
 | mlir/test/Pass/pipeline-options-parsing.mlir |
 | mlir/test/Dialect/SCF/parallel-loop-tiling.mlir |
 | mlir/include/mlir/IR/Dialect.h |
 | mlir/lib/Parser/Parser.cpp |
 | mlir/test/Pass/dynamic-pipeline.mlir |
 | mlir/test/Pass/invalid-pass.mlir |
 | mlir/test/IR/invalid-ops.mlir |
 | mlir/test/Transforms/sccp.mlir |
 | mlir/include/mlir/IR/BuiltinDialect.td |
 | mlir/test/Conversion/MemRefToLLVM/memref-to-llvm.mlir |
 | mlir/test/python/integration/dialects/linalg/opsrun.py |
 | mlir/test/Transforms/test-canonicalize-filter.mlir |
 | mlir/test/IR/wrapping_op.mlir |
 | mlir/lib/Pass/PassRegistry.cpp |
 | mlir/test/Transforms/test-canonicalize.mlir |
 | mlir/test/Transforms/single-parallel-loop-collapsing.mlir |
 | mlir/test/Pass/crash-recovery.mlir |
 | mlir/test/Pass/run-reproducer.mlir |
 | flang/lib/Optimizer/Dialect/FIRType.cpp |
 | mlir/lib/IR/Operation.cpp |
 | mlir/test/mlir-opt/commandline.mlir |
 | mlir/lib/Bindings/Python/IRCore.cpp |
 | mlir/test/Analysis/test-alias-analysis.mlir |
 | mlir/test/IR/print-op-on-diagnostic.mlir |
 | mlir/include/mlir/Transforms/LoopUtils.h |
 | mlir/test/Dialect/SCF/loop-range.mlir |
 | mlir/docs/Tutorials/UnderstandingTheIRStructure.md |
 | mlir/test/Pass/pipeline-stats.mlir |
 | mlir/test/python/ir/dialects.py |
 | mlir/test/Transforms/canonicalize-dce.mlir |
 | mlir/test/Dialect/Affine/canonicalize.mlir |
 | mlir/test/Conversion/MemRefToLLVM/convert-dynamic-memref-ops.mlir |
 | mlir/docs/Diagnostics.md |
 | mlir/test/Dialect/SPIRV/Transforms/canonicalize.mlir |
 | mlir/test/Dialect/SCF/canonicalize.mlir |
 | mlir/test/Transforms/canonicalize.mlir |
 | mlir/test/Transforms/cse.mlir |
 | mlir/test/Transforms/sccp-structured.mlir |
 | mlir/lib/IR/BuiltinTypes.cpp |
 | mlir/test/Dialect/Builtin/invalid.mlir |
 | mlir/test/CAPI/ir.c |
 | mlir/docs/SymbolsAndSymbolTables.md |
 | mlir/lib/Transforms/Utils/LoopUtils.cpp |
 | mlir/test/IR/print-ir-nesting.mlir |
 | mlir/test/Conversion/ComplexToLLVM/convert-to-llvm.mlir |
 | mlir/test/Pass/pipeline-parsing.mlir |
 | mlir/unittests/IR/InterfaceAttachmentTest.cpp |
 | mlir/test/python/pass_manager.py |
 | mlir/lib/IR/BuiltinDialect.cpp |
 | mlir/test/CAPI/pass.c |
 | mlir/test/Pass/dynamic-pipeline-nested.mlir |
 | mlir/test/Conversion/AsyncToLLVM/convert-runtime-to-llvm.mlir |
 | mlir/test/Analysis/test-alias-analysis-modref.mlir |
 | mlir/test/mlir-lsp-server/diagnostics.test |
 | mlir/test/Transforms/canonicalize-td.mlir |
 | mlir/test/Pass/pass-timing.mlir |
 | mlir/test/Transforms/test-symbol-dce.mlir |
 | mlir/test/Dialect/Linalg/fusion-sequence.mlir |
 | mlir/test/Conversion/MemRefToLLVM/convert-static-memref-ops.mlir |
 | mlir/test/Dialect/SCF/parallel-loop-fusion.mlir |
 | mlir/test/Dialect/Standard/canonicalize-cf.mlir |
Commit
6e9e4b5a6a003b90f312af07214e8c4c2263559a
by joker.ephRevert "Emit strong definition for TypeID storage in Op/Type/Attributes definition"
This reverts commit 660a56956c32b0bcd850fc12fa8ad0225a6bb880.
This broke the GCC5 build
|
 | mlir/include/mlir/Support/TypeID.h |
 | mlir/tools/mlir-tblgen/AttrOrTypeDefGen.cpp |
 | mlir/tools/mlir-tblgen/DialectGen.cpp |
 | mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp |
Commit
0c7cd4a873138f2116403a733274c8cb7dbf925f
by mizvekov[clang] NFC: refactor multiple implementations of getDecltypeForParenthesizedExpr
This cleanup patch refactors a bunch of functional duplicates of getDecltypeForParenthesizedExpr into a common implementation.
Signed-off-by: Matheus Izvekov <mizvekov@gmail.com>
Reviewed By: aaronpuchert
Differential Revision: https://reviews.llvm.org/D100713
|
 | clang/lib/AST/ExprObjC.cpp |
 | clang/lib/Sema/SemaType.cpp |
 | clang/include/clang/Sema/Sema.h |
 | clang/lib/StaticAnalyzer/Core/CallEvent.cpp |
 | clang/lib/Sema/SemaConcept.cpp |
 | clang/lib/Sema/SemaExprCXX.cpp |
 | clang/lib/Sema/SemaExpr.cpp |
 | clang/lib/AST/ASTContext.cpp |
 | clang/include/clang/AST/ASTContext.h |
Commit
87aa31827b293127619e2ef96e80baf709eae338
by mizvekov[clang] fix concepts crash on substitution failure during normalization
When substitution failed on the first constrained template argument (but only the first), we would assert / crash. Checking for failure was only being performed from the second constraint on.
This changes it so the checking is performed in that case, and the code is also now simplified a little bit to hopefully avoid this confusion.
Signed-off-by: Matheus Izvekov <mizvekov@gmail.com>
Reviewed By: rsmith
Differential Revision: https://reviews.llvm.org/D106907
|
 | clang/lib/Sema/SemaConcept.cpp |
 | clang/test/CXX/temp/temp.constr/temp.constr.normal/p1.cpp |
Commit
c6d03b583b48c00171e79d3bcf61168c97f874b9
by michaelrj[libc] add strncmp to strings
Add strncmp as a function to strings.h. Also adds unit tests, and adds strncmp as an entrypoint for all current platforms.
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D106901
|
 | libc/config/linux/aarch64/entrypoints.txt |
 | libc/config/windows/entrypoints.txt |
 | libc/src/string/CMakeLists.txt |
 | libc/src/string/strncmp.h |
 | libc/test/src/string/CMakeLists.txt |
 | libc/src/string/strncmp.cpp |
 | libc/config/linux/x86_64/entrypoints.txt |
 | libc/test/src/string/strncmp_test.cpp |
Commit
ef2627e1fa7c5009aae8b0bbfdec7ff4419ee5d3
by aeubanks[profile] Add underscore to /alternatename for Win/x86
/alternatename should use the mangled name. On x86 we need an extra underscore.
Copied from sanitizer_win_defs.h
Fixes https://crbug.com/1233589.
Reviewed By: phosek
Differential Revision: https://reviews.llvm.org/D107000
|
 | compiler-rt/lib/profile/InstrProfilingFile.c |
Commit
43a44f1c54b76356673949f665a3a353a393c011
by aeubanks[gn build] Add support for Win/x86 compiler-rt
This allows us to build the x86 profile runtime.
Reviewed By: rnk
Differential Revision: https://reviews.llvm.org/D106972
|
 | llvm/utils/gn/build/toolchain/BUILD.gn |
 | llvm/utils/gn/secondary/compiler-rt/BUILD.gn |
 | llvm/utils/gn/secondary/llvm/triples.gni |
Commit
0ba8595287ea2203ef2250e2b0b41f284a055518
by chris.jackson[DebugInfo][LoopStrengthReduction] SCEV-based salvaging for LSR
Reapply commit d675b594f4f1e1f6a195fb9a4fd02cf3de92292d that was reverted due to buildbot failures. A simple fix has been applied to remove an assertion.
Differential Revision: https://reviews.llvm.org/D105207
|
 | llvm/test/Transforms/LoopStrengthReduce/dbg-preserve-0.ll |
 | llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp |
 | llvm/test/Transforms/LoopStrengthReduce/dbg-preserve-2.ll |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-1.ll |
 | llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h |
 | llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-0.ll |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-2.ll |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-3.ll |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-4.ll |
Commit
3d157fb627e0fdb1600c3051dcbd0c4c221083a6
by lebedev.ri[NFC][Codegen][X86] Autogenerate check lines in avx.ll test
|
 | llvm/test/CodeGen/X86/avx.ll |
Commit
c0a41c3d3b53b0d64286947cf11751ff6889be30
by Jessica Paquette[AArch64][GlobalISel] Improve legalization for odd-sized G_ICMP/G_CONSTANT
We were handing types like s88 like
1) clamp to the range 2) widen to the next power of 2
This isn't desirable because it causes an odd breakdown for types like s88. If we widen to the next power of 2 (s128) first, then we get a clean breakdown when we clamp back to s64.
Differential Revision: https://reviews.llvm.org/D106998
|
 | llvm/test/CodeGen/AArch64/GlobalISel/legalize-cmp.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/legalize-constant.mir |
 | llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp |
Commit
91842bf6aa93bf7b71c9b55687620df08d9e4170
by gcmn[Bazel] Fix digest for bazel-skylib 1.0.3
I apparently left in the old digest when updating the version, so for my local build Bazel just happily used the cached version, but anyone attempting a fresth build would get a mismatch.
Differential Revision: https://reviews.llvm.org/D107010
|
 | utils/bazel/WORKSPACE |
Commit
3143ee4ddf5dd5b202f8d31abf703fe247f6008b
by aeubanks[gn build] Manually port dbed061b
|
 | llvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/MCA/BUILD.gn |
 | llvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn |
 | llvm/utils/gn/secondary/llvm/tools/llvm-mca/lib/AMDGPU/BUILD.gn |
 | llvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/BUILD.gn |
 | llvm/utils/gn/secondary/llvm/tools/llvm-mca/BUILD.gn |
Commit
dc9ee3925179c2de79cd2d1ffafc41e70249352c
by jezng[lld-macho] Downgrade "cannot export hidden symbol" to warning
This matches ld64's behavior, and makes it easier to fit LLD into existing build systems.
Reviewed By: #lld-macho, smeenai
Differential Revision: https://reviews.llvm.org/D107011
|
 | lld/test/MachO/export-options.s |
 | lld/MachO/Driver.cpp |
Commit
adbaa39dfce7a8361d89b6a3b382fd8f50b94727
by huberjn[Attributor] Change function internalization to not replace uses in internalized callers
The current implementation of function internalization creats a copy of each function and replaces every use. This has the downside that the external versions of the functions will call into the internalized versions of the functions. This prevents them from being fully independent of eachother. This patch replaces the current internalization scheme with a method that creates all the copies of the functions intended to be internalized first and then replaces the uses as long as their caller is not already internalized.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D106931
|
 | llvm/include/llvm/Transforms/IPO/Attributor.h |
 | llvm/test/Transforms/OpenMP/custom_state_machines.ll |
 | llvm/lib/Transforms/IPO/Attributor.cpp |
 | llvm/lib/Transforms/IPO/OpenMPOpt.cpp |
Commit
8ddf0b178c24482833223ce09da543618a4ca768
by llvmgnsyncbot[gn build] Port 0f4b41e03853
|
 | llvm/utils/gn/secondary/libcxx/include/BUILD.gn |
Commit
97851a08e2684388dec24fbe46818704052f9dbe
by huberjn[Attributor] Don't test internalization in the CGSCC pass.
Summary: Enabling internalization in the Attributor's CGSCC pass does something different that we don't expect. Ignore this for now to pass the tests.
|
 | llvm/test/Transforms/Attributor/internalize.ll |
Commit
6a0fe68844150f16e16fe64d050509e4ba740d98
by Vitaly Buka[tsan] Fix Darwin build after D106973
|
 | compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cpp |
Commit
d42a06b2006ec5838ab6b065353597ac7c7add72
by Vitaly BukaRevert "[tsan] Fix Darwin build after D106973"
It was invalid fix.
This reverts commit 6a0fe68844150f16e16fe64d050509e4ba740d98.
|
 | compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cpp |
Commit
ca7c66ccb85b9468ba86ad12d91c940e4cb72dc3
by Vitaly Buka[tsan] Fix Darwin build after D106973
|
 | compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cpp |
Commit
dad10a9afbc383076bfa273f151de9e7bdb94eda
by stellaraccidentNFC: Adapt operation.py to builtin operation print format changes.
|
 | mlir/test/python/ir/operation.py |
Commit
4bb0ad2382a1224c876dfd3671cf994a1a50e10d
by joker.ephEmit strong definition for TypeID storage in Op/Type/Attributes definition
By making an explicit template specialization for the TypeID provided by these classes, the compiler will not emit an inline weak definition and rely on the linker to unique it. Instead a single definition will be emitted in the C++ file alongside the implementation for these classes. That will turn into a linker error what is now a hard-to-debug runtime behavior where instances of the same class may be using a different TypeID inside of different DSOs.
Recommit 660a56956c32b0bcd850fc12fa8ad0225a6bb880 after fixing gcc5 build.
Differential Revision: https://reviews.llvm.org/D105903
|
 | mlir/tools/mlir-tblgen/AttrOrTypeDefGen.cpp |
 | mlir/include/mlir/Support/TypeID.h |
 | mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp |
 | mlir/tools/mlir-tblgen/DialectGen.cpp |
Commit
0cdf4915019a8ebc6570229cf140ad879dfaef56
by stellaraccidentBreak apart the MLIR ExecutionEngine from core python module.
* For python projects that don't need JIT/ExecutionEngine, cuts the number of files to compile roughly in half (with similar reduction in end binary size).
Differential Revision: https://reviews.llvm.org/D106992
|
 | mlir/lib/Bindings/Python/ExecutionEngine.h |
 | mlir/lib/Bindings/Python/MainModule.cpp |
 | mlir/python/mlir/execution_engine.py |
 | mlir/lib/Bindings/Python/ExecutionEngineModule.cpp |
 | mlir/python/CMakeLists.txt |
 | mlir/lib/Bindings/Python/ExecutionEngine.cpp |
 | mlir/test/python/execution_engine.py |
Commit
5a333dc5da9fac3407b78d52ad3bc18049f8a73b
by Jessica Paquette[AArch64][GlobalISel] Improve legalization for odd-type G_LOAD
Swap the order of widening so that we widen to the next power-of-2 first when legalizing G_LOAD.
Also, provide a minimum type for the power of 2 to disallow s2 + s1. Clamping ought to disallow s2 and s1, but I think it's better to be explicit about the expected minimum size.
We probably need a similar change for G_STORE, but it seems to be a bit more finnicky. So, let's just handle G_LOAD for now.
Differential Revision: https://reviews.llvm.org/D107013
|
 | llvm/test/CodeGen/AArch64/GlobalISel/legalize-load-store.mir |
 | llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp |
Commit
d6704e5ed91478464e551ee9d5520584978553ee
by danielrodriguez[llvm-objcopy][MachO] Ignore all LC_SUB_* commands.
The LC_SUB_FRAMEWORK, LC_SUB_UMBRELLA, LC_SUB_CLIENT, and LC_SUB_LIBRARY are used to indicate related libraries, binaries or framework names. Their only payload is the string with the name of the object. Adding those commands to the list of ignored/skipped load commands will avoid an error that stop the process of copying/stripping and will copy their contents verbatim.
Additionally, in order to have a test for this case, `yaml2obj` now allows those four commands to contain a `Content`.
Differential Revision: https://reviews.llvm.org/D106412
|
 | llvm/test/tools/llvm-objcopy/MachO/sub-load-commands.test |
 | llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp |
 | llvm/lib/ObjectYAML/MachOEmitter.cpp |
 | llvm/lib/ObjectYAML/MachOYAML.cpp |
Commit
a9c515983dc26992ce67668ad64f066353853ed1
by mvanotti[libFuzzer] Fix CFI Directives for fuchsia
This commit fixes the CFI directives in the crash trampoline so libunwind can get a backtrace during a crash.
In order to get a backtrace from a libfuzzer crash in fuchsia, we resume execution in the crashed thread, forcing it to call the StaticCrashHandler. We do this by setting a "crash trampoline" that has all the necessary cfi directives for an unwinder to get full backtrace for that thread.
Due to a bug in libunwind, it was not possible to restore the RSP pointer, as it was always set to the call frame address (CFA). The previous version worked around this issue by setting the CFA to the value of the stack pointer at the point of the crash.
The bug in libunwind is now fixed[0], so I am correcting the CFI annotations so that the CFA correctly points to the beginning of the trampoline's call frame.
[0]: https://reviews.llvm.org/D106626
Reviewed By: mcgrathr
Differential Revision: https://reviews.llvm.org/D106725
|
 | compiler-rt/lib/fuzzer/FuzzerUtilFuchsia.cpp |
Commit
c6ad3f2157ce374dbd2fd3e50699fc0303553714
by mvanotti[asan][fuchsia] Implement PlatformUnpoisonStacks
This CL modifies the PlatformUnpoisonStacks so that fuchsia can implement its own logic for unpoisoning the stacks.
For the general case, the behavior is the same as with regular asan: it will unpoison everything from the current stack pointer until the base of the stack (stack top).
In some situations, the current stack might not be the same as the default stack. In those cases, the code will now unpoison the entire default stack, and will also unpoison the current page of the stack.
Reviewed By: mcgrathr
Differential Revision: https://reviews.llvm.org/D106835
|
 | compiler-rt/lib/asan/asan_fuchsia.cpp |
Commit
1a8087adaf1e34b695d420f62ff26d3d8489264d
by aktoon[ThinLTO] Disallow importing for functions with indir branch to block address
We don't allowing inlining for functions with blockaddress with uses other than strictly callbr. This is because if the blockaddress escapes the function via a global variable, inlining may lead to an invalid cross-function reference.
We check against such cases during inlining, however the check can fail for ThinLTO post-link because CFG simplification can incorrectly removes blocks based on wrong block reachability.
When we import a function with blockaddress taken in a global variable but without importing that variable, we won't go through value mapping to reflect the real address-taken-ness of the cloned blocks. For the imported clone, this leads to blocks reachable from indirect branch through global variable being incorrectly treated as unreachable and removed by SimplifyCFG.
Since inlining for such cases shouldn't be allowed in the first place, I'm marking them as ineligible for importing during pre-link to save the problem of missing address-taken-ness of imported clone as well as bad DCE and inlining.
Differential Revision: https://reviews.llvm.org/D106930
|
 | llvm/test/ThinLTO/X86/globals-import-blockaddr.ll |
 | llvm/lib/Analysis/ModuleSummaryAnalysis.cpp |
 | llvm/test/ThinLTO/X86/Inputs/globals-import-blockaddr.ll |
Commit
3894a8a4768fd6fa9bf18303a0db1687c7c687b3
by arthur.j.odwyer[libc++] Implement the resolutions of LWG3506 and LWG3522.
Implement the changes in all language modes.
LWG3506 "Missing allocator-extended constructors for priority_queue" makes the following changes: - New allocator-extended constructors for priority_queue. - New deduction guides targeting those constructors.
LWG3522: "Missing requirement on InputIterator template parameter for priority_queue constructors". The iterator parameter should be constrained to actually be an iterator type. `priority_queue{1,2}` should be SFINAE-friendly ill-formed.
Also, do a drive-by fix in the allocator-extended move constructor: there's no need to do a `make_heap` after moving from `__q.c` into our own `c`, because that container was already heapified when it was part of `__q`. [priqueue.cons.alloc] actually specifies the behavior and does *not* mention calling `make_heap`. I think this was just a copy-paste thinko. It dates back to the initial import of libc++.
Differential Revision: https://reviews.llvm.org/D106824 Differential Revision: https://reviews.llvm.org/D106827
|
 | libcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons.alloc/ctor_iter_iter_alloc.pass.cpp |
 | libcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons.alloc/ctor_iter_iter_comp_alloc.pass.cpp |
 | libcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons/deduct.pass.cpp |
 | libcxx/docs/Status/RangesIssues.csv |
 | libcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons.alloc/ctor_iter_iter_comp_rcont_alloc.pass.cpp |
 | libcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons/ctor_iter_constraint.compile.pass.cpp |
 | libcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons.alloc/ctor_iter_iter_comp_cont_alloc.pass.cpp |
 | libcxx/docs/Status/Cxx2bIssues.csv |
 | libcxx/include/queue |
Commit
2a2d83d916aaed3dff1001366f1f7849082098e1
by powerman1st[RISCV][test] Add new tests for mul optimization in the zba extension with SH*ADD
These test will show the following optimization by future patches.
(mul x, (power_of_2 + 2)) => (SH1ADD x, (SLLI x, bits)) (mul x, (power_of_2 + 4)) => (SH2ADD x, (SLLI x, bits)) (mul x, (power_of_2 + 8)) => (SH3ADD x, (SLLI x, bits))
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D106647
|
 | llvm/test/CodeGen/RISCV/rv32zba.ll |
 | llvm/test/CodeGen/RISCV/rv64zba.ll |
Commit
264b8e2a20b3124b80bdf6f17dc29d5869336375
by powerman1st[RISCV] Optimize mul in the zba extension with SH*ADD
This patch makes the following optimization, if the immediate multiplier is not a simm12.
(mul x, (power_of_2 + 2)) => (SH1ADD x, (SLLI x, bits)) (mul x, (power_of_2 + 4)) => (SH2ADD x, (SLLI x, bits)) (mul x, (power_of_2 + 8)) => (SH3ADD x, (SLLI x, bits))
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D106648
|
 | llvm/test/CodeGen/RISCV/rv64zba.ll |
 | llvm/lib/Target/RISCV/RISCVISelLowering.cpp |
 | llvm/test/CodeGen/RISCV/rv32zba.ll |
Commit
50b62731452cb83979bbf3c06e828d26a4698dca
by carrot[MBP] findBestLoopTopHelper should exit if OldTop is not a chain header
Function findBestLoopTopHelper tries to find a new loop top block which can also fall through to OldTop, but it's impossible if OldTop is not a chain header, so it should exit immediately.
Differential Revision: https://reviews.llvm.org/D106329
|
 | llvm/test/CodeGen/ARM/mbp.ll |
 | llvm/lib/CodeGen/MachineBlockPlacement.cpp |
Commit
363a8a05988de8f5771fd1330b0fa9a4d2ae4944
by jasonliu.development[libc++] money_get::do_get() set failbit and eofbit if iterator begin equals end
Summary: Currently, if we pass in the same iterator for begin and end, the long double version of do_get would throw a runtime error.
However, according to standard (https://eel.is/c++draft/locale.money.get#virtuals-1), we should set the failbit and eofbit when no more characters are available.
Differential Revision: https://reviews.llvm.org/D100510
|
 | libcxx/test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_string_en_US.pass.cpp |
 | libcxx/test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_en_US.pass.cpp |
 | libcxx/include/locale |
Commit
20c6ddc5bcc91aba6a5cccabae094d08301567fc
by arthur.j.odwyer[libc++] Remove unused variables in generate_private_header_tests.py. NFCI.
|
 | libcxx/utils/generate_private_header_tests.py |
Commit
61c35fb0c2c9e25942a913ea88f541dc5abb15e4
by arthur.j.odwyer[libc++][modularisation] Split <compare> into internal headers.
Differential Revision: https://reviews.llvm.org/D106107
|
 | libcxx/include/__compare/ordering.h |
 | libcxx/include/compare |
 | libcxx/test/libcxx/diagnostics/detail.headers/compare/common_comparison_category.module.verify.cpp |
 | libcxx/include/module.modulemap |
 | libcxx/include/CMakeLists.txt |
 | libcxx/include/__compare/common_comparison_category.h |
 | libcxx/test/libcxx/diagnostics/detail.headers/compare/ordering.module.verify.cpp |
Commit
ecd5dc6dccfff44267fa57737311f1ed0a108870
by llvmgnsyncbot[gn build] Port 61c35fb0c2c9
|
 | llvm/utils/gn/secondary/libcxx/include/BUILD.gn |
Commit
7e2174c2535edc03864b2016ff00e4bb57947a8f
by stellaraccidentNFC: Add missing import to integration test.
|
 | mlir/test/python/integration/dialects/linalg/opsrun.py |
Commit
768f56264150ad20f0d1416314a0affafb55bd0f
by stellaraccidentUpdate file names and extensions for MLIR Python execution engine changes.
|
 | utils/bazel/llvm-project-overlay/mlir/BUILD.bazel |
Commit
c6b0b16c0f55c34f4eaa05184815bbbe97f4b750
by llvm-project[Preprocessor] -E -P: Ensure newline after 8 skipped lines.
The implementation of -fminimize-whitespace (D104601) revised the logic when to emit newlines. There was no case to handle when more than 8 lines were skippped in -P (DisableLineMarkers) mode and instead fell through the case intended for -fminimize-whitespace, i.e. emit nothing. This patch will emit one newline in this case.
The newline logic is slightly reorganized. The `-P -fminimize-whitespace` case is handled explicitly and emitting at least one newline is the new fallback case. The choice between emitting a line marker or up to 7 empty lines is now a choice only with enabled line markers. The up to 8 newlines likely are fewer characters than a line directive, but in -P mode this had the paradoxic effect that it would print up to 7 empty lines, but none at all if more than 8 lines had to be skipped. Now with DisableLineMarkers, we don't consider printing empty lines (just start a new line) which matches gcc's behavior.
The line-directive-output-mincol.c test is replaced with a more comprehensive test skip-empty-lines.c also testing the more than 8 skipped lines behaviour with all flag combinations.
Reviewed By: aaron.ballman
Differential Revision: https://reviews.llvm.org/D106924
|
 | clang/test/Preprocessor/skip-empty-lines.c |
 | clang/test/Preprocessor/line-directive-output-mincol.c |
 | clang/lib/Frontend/PrintPreprocessedOutput.cpp |
 | clang/test/Preprocessor/minimize-whitespace.c |
Commit
a4edb2b1ba0bda9042e87ca3f3e1b9f70598df9a
by tstellarlibcang: Add missing function to libclang.map
This function is marked with CINDEX_LINKAGE, but was never added to the export list / linker script.
Reviewed By: jrtc27
Differential Revision: https://reviews.llvm.org/D106974
|
 | clang/tools/libclang/libclang.map |
Commit
640ed21cceb28ddb3a9779fdfa11a4c4d97e29df
by sivachandra[libc][NFC] Add noreturn and constexpr qualifiers where appropriate
These functions make it clear to the compiler and user what the intended behavior is so llvm can make them go as fast as possible.
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D106807
|
 | libc/src/ctype/ctype_utils.h |
 | libc/src/__support/integer_operations.h |
 | libc/utils/HdrGen/Command.h |
Commit
5060224d9eed8b8359ed5090bb7c577b8575e9e7
by nathan[test] Fix tools/gold/X86/comdat-nodeduplicate.ll on non-X86 hosts
When running this test on an aarch64 machine, it fails:
``` /usr/bin/ld.gold: error: .../test/tools/gold/X86/Output/comdat-nodeduplicate.ll.tmp/ab.lto.o: incompatible target ```
Specify the elf_x86_64 emulation as all of the other gold plugin tests do.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D107020
|
 | llvm/test/tools/gold/X86/comdat-nodeduplicate.ll |
Commit
b70de61f48062c7810b474bc944394ecbd56a262
by joker.ephAdd `all_of_zip` to STLExtras
This takes two ranges and invokes a predicate on the element-wise pair in the ranges. It returns true if all the pairs are matching the predicate and the ranges have the same size. It is useful with containers that aren't random iterator where we can't check the sizes in O(1).
Differential Revision: https://reviews.llvm.org/D106605
|
 | llvm/include/llvm/ADT/STLExtras.h |
 | llvm/unittests/ADT/STLExtrasTest.cpp |
Commit
0be5d1a96c8973a4aa56b3fdd8fc22c8a95a7171
by joker.ephImplement recursive support into OperationEquivalence::isEquivalentTo()
This allows to use OperationEquivalence to track structural comparison for equality between two operations.
Differential Revision: https://reviews.llvm.org/D106422
|
 | mlir/lib/Transforms/Utils/RegionUtils.cpp |
 | mlir/test/lib/IR/TestOperationEquals.cpp |
 | mlir/lib/IR/OperationSupport.cpp |
 | mlir/lib/Transforms/CSE.cpp |
 | mlir/test/lib/IR/CMakeLists.txt |
 | mlir/tools/mlir-opt/mlir-opt.cpp |
 | mlir/include/mlir/IR/OperationSupport.h |
 | mlir/test/IR/operation-equality.mlir |
Commit
58712987e56fb598ac49da7fbe6e6a78c787637b
by freddy.ye[NFC][X86] add missing tests in clang/test/CodeGen/attr-target-mv.c
Reviewed By: pengfei
Differential Revision: https://reviews.llvm.org/D106849
|
 | clang/test/CodeGen/attr-target-mv.c |
Commit
d4840175c95f6edcba21baae411589468d5bc68f
by arthur.j.odwyer[libc++] Remove excess whitespace in synopsis comment. NFCI.
|
 | libcxx/include/compare |
Commit
262cb5f5b492b77336e6dea3f720eec9632cced4
by dvyukovtsan: fix java_symbolization test
We reliably remove bottom libc-guts frames only on linux/glibc. Some bots failed on this test showing other bottom frames:
.annobin_libc_start.c libc-start.c (libc.so.6+0x249f4) generic_start_main.isra.0 libc-start.c (libc.so.6+0x45b0c)
We can't reliably remove all of possible bottom frames. So remove the assertion for that.
Differential Revision: https://reviews.llvm.org/D107037
|
 | compiler-rt/test/tsan/java_symbolization.cpp |
Commit
a1a37ddc3f0e4d4002b0661e4870b1e949fd5d81
by dvyukovtsan: remove /**/ at the of multi-line macros
Prefer code readability over writeability.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D106982
|
 | compiler-rt/lib/tsan/rtl/tsan_interceptors.h |
 | compiler-rt/lib/tsan/rtl/tsan_interface_java.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_interface_atomic.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp |
Commit
cd0143c0f2a37332a1f7e29caa122db74b92a344
by dvyukovtsan: switch from SSE3 to SSE4.2
Switch x86_64 requirement for optimized code from SSE3 to SSE4.2. The new tsan runtime will need few instructions that are only supported by SSE4:
_mm_max_epu32 _mm_extract_epi8 _mm_insert_epi32
SSE3 was introcued in 2004 and SSE4 in 2006: https://en.wikipedia.org/wiki/SSE3 https://en.wikipedia.org/wiki/SSE4
We are still providing non-optimized C++ version of the code, so either way it's possible to build tsan runtime for any CPU.
But for Go this will bump strict requirement for -race because Go contains prebuilt versions and these will be built with -msse4.2. But requiring a CPU produced at least in 2006 looks reasonable for a debugging tool (more reasonable than disabling optimizations for everybody).
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D106948
|
 | compiler-rt/lib/tsan/go/build.bat |
 | compiler-rt/lib/tsan/CMakeLists.txt |
 | compiler-rt/lib/tsan/go/buildgo.sh |
Commit
e2fe26e77b02633207bdd36a14e2dcf210cc2fe7
by JunMa[NFC][InstSimplify] Use more intuitive variable names.
|
 | llvm/test/Transforms/InstSimplify/fold-vscale.ll |
 | llvm/lib/Analysis/InstructionSimplify.cpp |
Commit
92b758cf3d706b117d59490cd85d23b764cc749f
by koraq[libcxx][doc] Update the build documentation.
These are the hunks of D106770 [libc++][doc] Update the release notes that are relevant for main.
|
 | libcxx/docs/BuildingLibcxx.rst |