Commit
7628e474a5916ed8a43c015248443f4c03077509
by smeenai[xray] Add xray-ignore-loops option XRay allows tuning by minimum function size, but also always instruments functions with loops in them. If the minimum function size is set to a large value the loop instrumention ends up causing most functions to be instrumented anyway. This adds a new flag, xray-ignore-loops, to disable the loop detection logic. Differential Revision: https://reviews.llvm.org/D72659
|
 | llvm/test/CodeGen/X86/xray-loop-detection.ll |
 | llvm/test/CodeGen/X86/xray-ignore-loop-detection.ll |
 | llvm/lib/CodeGen/XRayInstrumentation.cpp |
Commit
1d62be244108547558c6d42ddcf2e4a7f3c6dd03
by smeenai[clang][xray] Add -fxray-ignore-loops option XRay allows tuning by minimum function size, but also always instruments functions with loops in them. If the minimum function size is set to a large value the loop instrumention ends up causing most functions to be instrumented anyway. This adds a new flag, -fxray-ignore-loops, to disable the loop detection logic. Differential Revision: https://reviews.llvm.org/D72873
|
 | clang/include/clang/Driver/Options.td |
 | clang/lib/CodeGen/CodeGenFunction.cpp |
 | clang/include/clang/Basic/CodeGenOptions.def |
 | clang/test/CodeGen/xray-ignore-loops.cpp |
 | clang/lib/Frontend/CompilerInvocation.cpp |
Commit
97ba483026cdcb31bbf6f85ea09d5638a55c651e
by smeenai[xray] Allow instrumenting only function entry and/or only function exit Extend -fxray-instrumentation-bundle to split function-entry and function-exit into two separate options, so that it is possible to instrument only function entry or only function exit. For use cases that only care about one or the other this will save significant overhead and code size. Differential Revision: https://reviews.llvm.org/D72890
|
 | clang/lib/CodeGen/CodeGenFunction.cpp |
 | llvm/test/CodeGen/AArch64/xray-partial-instrumentation-skip-entry.ll |
 | clang/lib/Driver/XRayArgs.cpp |
 | llvm/test/CodeGen/X86/xray-partial-instrumentation-skip-entry.ll |
 | llvm/test/CodeGen/AArch64/xray-partial-instrumentation-skip-exit.ll |
 | llvm/test/CodeGen/X86/xray-partial-instrumentation-skip-exit.ll |
 | clang/lib/Basic/XRayInstr.cpp |
 | clang/include/clang/Driver/Options.td |
 | clang/include/clang/Basic/XRayInstr.h |
 | clang/test/CodeGen/xray-instrumentation-bundles.cpp |
 | llvm/lib/CodeGen/XRayInstrumentation.cpp |
Commit
63c4261720a76e7bd5b11e5eec735afe14d8a183
by Adrian PrantlPass length of string in Go binding of CreateCompileUnit
|
 | llvm/bindings/go/llvm/dibuilder.go |
Commit
0361a961c2417756eaf28d3debe484e84d484f04
by ajcbik[mlir] [VectorOps] Rename Utils.h into VectorUtils.h Summary: First step towards the consolidation of a lot of vector related utilities that are now all over the place (or even duplicated). Reviewers: nicolasvasilache, andydavis1 Reviewed By: nicolasvasilache, andydavis1 Subscribers: merge_guards_bot, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, liufengdb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72955
|
 | mlir/include/mlir/Dialect/VectorOps/Utils.h |
 | mlir/lib/Dialect/VectorOps/VectorTransforms.cpp |
 | mlir/lib/Analysis/VectorAnalysis.cpp |
 | mlir/test/lib/Transforms/TestVectorizationUtils.cpp |
 | mlir/include/mlir/Dialect/VectorOps/VectorUtils.h |
 | mlir/lib/Transforms/Vectorize.cpp |
Commit
3ae38d95e6c0b754a26c99bf930a46cac3adbf8b
by spatel[InstSimplify] add test for select of FP constants; NFC
|
 | llvm/test/Transforms/InstSimplify/select.ll |
Commit
a8b9c93601112ceb846904a81e46fd52c98bff1c
by spatel[InstSimplify] add test for select of vector constants; NFC
|
 | llvm/test/Transforms/InstSimplify/select.ll |
Commit
cd40bd0a32e29fb62c89b120adbc89a847443da3
by peterhwasan: Move .note.hwasan.globals note to hwasan.module_ctor comdat. As of D70146 lld GCs comdats as a group and no longer considers notes in comdats to be GC roots, so we need to move the note to a comdat with a GC root section (.init_array) in order to prevent lld from discarding the note. Differential Revision: https://reviews.llvm.org/D72936
|
 | llvm/test/Instrumentation/HWAddressSanitizer/globals.ll |
 | llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp |
Commit
a8a9c8e0a11abc9ed4ed78fed528334371fedf87
by eric[libc++] Optimize / partially inline basic_string copy constructor Splits copy constructor up inlining short initialization, outlining long initialization into __init_long() which is the externally instantiated slow path initialization. Subsequently changing the copy ctor to be inlined (not externally instantiated) provides significant speed ups for short string initialization. Generated code given: void StringCopyCtor(void* mem, const std::string& s) { std::string*p = new(mem) std::string{s}; } asm: cmp byte ptr [rsi + 23], 0 js .LBB0_2 mov rax, qword ptr [rsi + 16] mov qword ptr [rdi + 16], rax movups xmm0, xmmword ptr [rsi] movups xmmword ptr [rdi], xmm0 ret .LBB0_2: jmp std::basic_string::__init_long # TAILCALL Benchmark: BM_StringCopy_Empty 5.19ns ± 6% 1.50ns ± 8% -71.02% (p=0.000 n=10+10) BM_StringCopy_Small 5.14ns ± 8% 1.53ns ± 7% -70.17% (p=0.000 n=10+10) BM_StringCopy_Large 18.9ns ± 0% 19.3ns ± 0% +1.92% (p=0.000 n=10+10) BM_StringCopy_Huge 309ns ± 1% 316ns ± 5% ~ (p=0.633 n=8+10) Patch from Martijn Vels (mvels@google.com) Reviewed as D72160.
|
 | libcxx/include/string |
Commit
64c4dcb5eef20fca9e125148a74e529643696e2b
by ntv[mlir][Linalg] Extend linalg vectorization to MatmulOp Summary: This is a simple extension to allow vectorization to work not only on GenericLinalgOp but more generally across named ops too. For now, this still only vectorizes matmul-like ops but is a step towards more generic vectorization of Linalg ops. Reviewers: ftynse Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72942
|
 | mlir/test/Dialect/Linalg/transform-patterns.mlir |
 | mlir/include/mlir/Dialect/Linalg/Transforms/LinalgTransformPatterns.td |
 | mlir/include/mlir/Dialect/Linalg/Transforms/LinalgTransforms.h |
 | mlir/test/lib/DeclarativeTransforms/TestLinalgTransformPatterns.td |
 | mlir/lib/Dialect/Linalg/Transforms/LinalgTransforms.cpp |
Commit
a93aa5347641159aa0d2d48dda9e1a51b2273462
by Jonas Devlieghere[lldb/Docs] Fix formatting for the variable formatting page
|
 | lldb/docs/use/variable.rst |
Commit
049c437c40c46a81257f63c03522556217271b87
by jaskiewiczs[libcxx] Introduce LinuxRemoteTI for remote testing Summary: This patch adds a new target info object called LinuxRemoteTI. Unlike LinuxLocalTI, which asks the host system about various things like available locales, distribution name etc. which don't make sense if we're testing on a remote board, LinuxRemoteTI uses SSHExecutor to get information from the target system. Reviewers: jroelofs, ldionne, bcraig, EricWF, danalbert, mclow.lists Reviewed By: jroelofs Subscribers: christof, dexonsmith, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D72847
|
 | libcxx/utils/libcxx/test/executor.py |
 | libcxx/utils/libcxx/test/config.py |
 | libcxx/utils/libcxx/test/target_info.py |
Commit
383ff4eac1db8313ec522ba3ac0903aaeda7ff63
by jaskiewiczs[CMake] Use LinuxRemoteTI instead of LinuxLocalTI in CrossWinToARMLinux cmake cache Summary: Depends on D72847 Reviewers: vvereschaka, aorlov, andreil99 Reviewed By: vvereschaka Subscribers: mgorny, kristof.beyls, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D72850
|
 | clang/cmake/caches/CrossWinToARMLinux.cmake |
Commit
d3db13af7e5c01632fbf28149a2d4f9c4841aeba
by phosek[profile] Support counter relocation at runtime This is an alternative to the continous mode that was implemented in D68351. This mode relies on padding and the ability to mmap a file over the existing mapping which is generally only available on POSIX systems and isn't suitable for other platforms. This change instead introduces the ability to relocate counters at runtime using a level of indirection. On every counter access, we add a bias to the counter address. This bias is stored in a symbol that's provided by the profile runtime and is initially set to zero, meaning no relocation. The runtime can mmap the profile into memory at abitrary location, and set bias to the offset between the original and the new counter location, at which point every subsequent counter access will be to the new location, which allows updating profile directly akin to the continous mode. The advantage of this implementation is that doesn't require any special OS support. The disadvantage is the extra overhead due to additional instructions required for each counter access (overhead both in terms of binary size and performance) plus duplication of counters (i.e. one copy in the binary itself and another copy that's mmapped). Differential Revision: https://reviews.llvm.org/D69740
|
 | compiler-rt/test/profile/ContinuousSyncMode/lit.local.cfg.py |
 | compiler-rt/test/profile/ContinuousSyncMode/online-merging.c |
 | compiler-rt/test/profile/ContinuousSyncMode/basic.c |
 | compiler-rt/test/profile/ContinuousSyncMode/runtime-counter-relocation.c |
 | compiler-rt/lib/profile/InstrProfilingBuffer.c |
 | compiler-rt/test/profile/ContinuousSyncMode/set-filename.c |
 | llvm/include/llvm/Transforms/Instrumentation/InstrProfiling.h |
 | compiler-rt/test/profile/ContinuousSyncMode/multiple-DSOs.c |
 | llvm/test/Instrumentation/InstrProfiling/runtime-counter-relocation.ll |
 | compiler-rt/lib/profile/InstrProfilingPlatformFuchsia.c |
 | llvm/include/llvm/ProfileData/InstrProf.h |
 | clang/lib/Driver/ToolChains/Darwin.cpp |
 | clang/docs/SourceBasedCodeCoverage.rst |
 | compiler-rt/lib/profile/InstrProfiling.h |
 | compiler-rt/lib/profile/InstrProfilingBiasVar.c |
 | compiler-rt/lib/profile/InstrProfilingFile.c |
 | llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp |
 | compiler-rt/lib/profile/CMakeLists.txt |
 | compiler-rt/test/profile/ContinuousSyncMode/pid-substitution.c |
 | compiler-rt/test/profile/ContinuousSyncMode/set-file-object.c |
 | compiler-rt/lib/profile/InstrProfilingInternal.h |
Commit
9b9c68a2d6adea397e6bc22b29d6d81bb997a256
by peterhwasan: Remove dead code. NFCI. Differential Revision: https://reviews.llvm.org/D72896
|
 | compiler-rt/lib/hwasan/hwasan.cpp |
 | compiler-rt/lib/hwasan/hwasan.h |
 | compiler-rt/lib/hwasan/hwasan_thread.h |
Commit
128e1ebd931027c58065f0c0dc83c0b6a1c53a83
by phosek[CMake] Prefer multi-target variables over generic target variables in runtimes build Runtimes variables in a multi-target environment are defined like: RUNTIMES_target_VARIABLE_NAME RUNTIMES_target+multi_VARIABLE_NAME In my case, I have a downstream runtimes cache that does the following: set(RUNTIMES_${target}+except_LIBCXXABI_ENABLE_EXCEPTIONS ON CACHE BOOL "") set(RUNTIMES_${target}_LIBCXX_ENABLE_EXCEPTIONS OFF CACHE BOOL "") I found that I was always getting the 'target' variable value (OFF) in my 'target+except' build, which was unexpected. This behavior was caused by the loop in llvm/runtimes/CMakeLists.txt that runs through all variable names, adding '-DVARIABLE_NAME=' options to the subsequent external project's cmake command. The issue is that the loop does a single pass, such that if the 'target' value appears in the cache after the 'target+except' value, the 'target' value will take precedence. I suggest in my change here that the more specific 'target+except' value should take precedence always, without relying on CMake cache ordering. Differential Revision: https://reviews.llvm.org/D71570 Patch By: JamesNagurne
|
 | llvm/runtimes/CMakeLists.txt |
Commit
9f6c6ee6b9b6409c6cb2d200553815cec7f74cc3
by asbirlea[MemDepAnalysis/VNCoercion] Move static method to its only use. [NFCI] Static method MemoryDependenceResults::getLoadLoadClobberFullWidthSize does not have or use any info specific to MemoryDependenceResults. Move it to its only user: VNCoercion.
|
 | llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h |
 | llvm/lib/Transforms/Utils/VNCoercion.cpp |
 | llvm/lib/Analysis/MemoryDependenceAnalysis.cpp |
Commit
d081962dead08ef0982081e78d679dd609947ca5
by eugenisMerge memtag instructions with adjacent stack slots. Summary: Detect a run of memory tagging instructions for adjacent stack frame slots, and replace them with a shorter instruction sequence * replace STG + STG with ST2G * replace STGloop + STGloop with STGloop This code needs to run when stack slot offsets are already known, but before FrameIndex operands in STG instructions are eliminated; that's the reason for the new hook in PrologueEpilogue. This change modifies STGloop and STZGloop pseudos to take the size as an immediate integer operand, and adds _untied variants of those pseudos that are allowed to take the base address as a FI operand. This is needed to simplify recognizing an STGloop instruction as operating on a stack slot post-regalloc. This improves memtag code size by ~0.25%, and it looks like an additional ~0.1% is possible by rearranging the stack frame such that consecutive STG instructions reference adjacent slots (patch pending). Reviewers: pcc, ostannard Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D70286
|
 | llvm/lib/CodeGen/PrologEpilogInserter.cpp |
 | llvm/test/CodeGen/AArch64/settag-merge.mir |
 | llvm/test/CodeGen/AArch64/settag.ll |
 | llvm/lib/Target/AArch64/AArch64FrameLowering.h |
 | llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp |
 | llvm/test/CodeGen/AArch64/stack-tagging-unchecked-ld-st.ll |
 | llvm/lib/Target/AArch64/AArch64InstrInfo.td |
 | llvm/test/CodeGen/AArch64/settag-merge.ll |
 | llvm/lib/Target/AArch64/AArch64FrameLowering.cpp |
 | llvm/lib/Target/AArch64/AArch64InstrInfo.cpp |
 | llvm/include/llvm/CodeGen/TargetFrameLowering.h |
 | llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp |
 | llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp |
Commit
6afa0e88e32558c115e72797baf57b86cfa37e07
by thakis[gn build] fix build after 22af2cbefc
|
 | llvm/utils/gn/secondary/llvm/tools/llvm-ml/BUILD.gn |
Commit
49dc3a94671d0b3a995381d5b00dc89366ac0481
by llvmgnsyncbot[gn build] Port d3db13af7e5
|
 | llvm/utils/gn/secondary/compiler-rt/lib/profile/BUILD.gn |