Commit
b664bef2ad9a7d32192b9351f39a222332da8c6d
by aqjune[InstCombine] Add a test file that contains safe select transforms (NFC)
|
 | llvm/test/Transforms/InstCombine/select-safe-transforms.ll |
Commit
e0a979ccadd81c71d78be816e893dd1bcd6508ee
by aqjune[InstCombine] Add more tests to select-safe-transforms.ll (NFC)
|
 | llvm/test/Transforms/InstCombine/select-safe-transforms.ll |
Commit
f0a0ec2d085b0bc53e20643b740b20b49cfd9bd5
by nikita.ppv[InstCombine] Add more tests for select operand replacement (NFC)
|
 | llvm/test/Transforms/InstCombine/select-binop-cmp.ll |
Commit
a7101450a42e4f1ed5af1a38a6def08f1b5b58fe
by steveire[ASTMatchers] Add mapAnyOf matcher
Make it possible to compose a matcher for different base nodes.
This accepts one or more node matcher functors and zero or more matchers, composing the latter into the former.
This allows composing of matchers where the same inner matcher name is used for the same concept, but with a different node functor. Currently, there is a limitation that the nodes must be in the same "clade", so while
mapAnyOf(ifStmt, forStmt).with(hasBody(stmt()))
can be used, functionDecl can not be added to the tuple.
It is possible to use this in clang-query, but it will require changes to the QueryParser, so is deferred to a future review.
Differential Revision: https://reviews.llvm.org/D94127
|
 | clang/include/clang/ASTMatchers/ASTMatchers.h |
 | clang/docs/LibASTMatchersReference.html |
 | clang/docs/tools/dump_ast_matchers.py |
 | clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp |
 | clang/include/clang/ASTMatchers/ASTMatchersInternal.h |
Commit
dbe056c2e37f00b9f33ab63bba73dbb004e13562
by steveire[ASTMatchers] Make cxxOperatorCallExpr matchers API-compatible with n-ary operators
This makes them composable with mapAnyOf().
Differential Revision: https://reviews.llvm.org/D94128
|
 | clang/include/clang/ASTMatchers/ASTMatchersInternal.h |
 | clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp |
 | clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp |
 | clang/docs/LibASTMatchersReference.html |
 | clang/include/clang/ASTMatchers/ASTMatchers.h |
Commit
4f155567317d3187bc18be866b3f3b5352f1bfa5
by bjorn.a.pettersson[LegalizeDAG] Handle NeedInvert when expanding BR_CC
This is a follow-up fix to commit 03c8d6a0c4bd0016bdfd1e5. Seems like we now end up with NeedInvert being set in the result from LegalizeSetCCCondCode more often than in the past, so we need to handle NeedInvert when expanding BR_CC.
Not sure how to deal with the "Tmp4.getNode()" case properly, but current assumption is that that code path isn't impacted by the changes in 03c8d6a0c4bd0016bdfd1e5 so we can simply move the old assert into the if-branch and only handle NeedInvert in the else-branch.
I think that the test case added here, for PowerPC, might have failed also before commit 03c8d6a0c4bd0016bdfd1e5. But we started to hit the assert more often downstream when having merged that commit.
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D94762
|
 | llvm/test/CodeGen/PowerPC/legalize-invert-br_cc.ll |
 | llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp |
Commit
e810e95e4bb908d1c8844e2c6f7da999732cabc9
by steveire[ASTMatchers] Add binaryOperation matcher
This is a simple utility which allows matching on binaryOperator and cxxOperatorCallExpr. It can also be extended to support cxxRewrittenBinaryOperator.
Add generic support for MapAnyOfMatchers to auto-marshalling functions.
Differential Revision: https://reviews.llvm.org/D94129
|
 | clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp |
 | clang/lib/ASTMatchers/Dynamic/Registry.cpp |
 | clang/include/clang/ASTMatchers/ASTMatchers.h |
 | clang/docs/LibASTMatchersReference.html |
 | clang/docs/tools/dump_ast_matchers.py |
 | clang/lib/ASTMatchers/ASTMatchersInternal.cpp |
 | clang/lib/ASTMatchers/Dynamic/Marshallers.h |
Commit
b765eaf9a617bd3da30f47ece731b33593929885
by steveire[ASTMatchers] Add support for CXXRewrittenBinaryOperator
Differential Revision: https://reviews.llvm.org/D94130
|
 | clang/docs/LibASTMatchersReference.html |
 | clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp |
 | clang/lib/ASTMatchers/ASTMatchersInternal.cpp |
 | clang/lib/ASTMatchers/Dynamic/Registry.cpp |
 | clang/include/clang/ASTMatchers/ASTMatchers.h |
 | clang/unittests/AST/ASTTraverserTest.cpp |
 | clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp |
 | clang/include/clang/AST/ASTNodeTraverser.h |
 | clang/lib/ASTMatchers/ASTMatchFinder.cpp |
 | clang/include/clang/AST/ExprCXX.h |
 | clang/include/clang/ASTMatchers/ASTMatchersInternal.h |
Commit
25c1578a46ff93f920b7ad4e3057465902ced8f5
by alexandre.ganeaFix llvm::Optional build breaks in MSVC using std::is_trivially_copyable
Current code breaks this version of MSVC due to a mismatch between `std::is_trivially_copyable` and `llvm::is_trivially_copyable` for `std::pair` instantiations. Hence I was attempting to use `std::is_trivially_copyable` to set `llvm::is_trivially_copyable<T>::value`.
I spent some time root causing an `llvm::Optional` build error on MSVC 16.8.3 related to the change described above:
``` 62>C:\src\ocg_llvm\llvm-project\llvm\include\llvm/ADT/BreadthFirstIterator.h(96,12): error C2280: 'llvm::Optional<std::pair<std::pair<unsigned int,llvm::Graph<4>::NodeSubset> *,llvm::Optional<llvm::Graph<4>::ChildIterator>>> &llvm::Optional<std::pair<std::pair<unsigned int,llvm::Graph<4>::NodeSubset> *,llvm::Optional<llvm::Graph<4>::ChildIterator>>>::operator =(const llvm::Optional<std::pair<std::pair<unsigned int,llvm::Graph<4>::NodeSubset> *,llvm::Optional<llvm::Graph<4>::ChildIterator>>> &)': attempting to reference a deleted function (compiling source file C:\src\ocg_llvm\llvm-project\llvm\unittests\ADT\BreadthFirstIteratorTest.cpp) ... ``` The "trivial" specialization of `optional_detail::OptionalStorage` assumes that the value type is trivially copy constructible and trivially copy assignable. The specialization is invoked based on a check of `is_trivially_copyable` alone, which does not imply both `is_trivially_copy_assignable` and `is_trivially_copy_constructible` are true.
[[ https://en.cppreference.com/w/cpp/named_req/TriviallyCopyable | According to the spec ]], a deleted assignment operator does not make `is_trivially_copyable` false. So I think all these properties need to be checked explicitly in order to specialize `OptionalStorage` to the "trivial" version: ``` /// Storage for any type. template <typename T, bool = std::is_trivially_copy_constructible<T>::value && std::is_trivially_copy_assignable<T>::value> class OptionalStorage { ``` Above fixed my build break in MSVC, but I think we need to explicitly check `is_trivially_copy_constructible` too since it might be possible the copy constructor is deleted. Also would be ideal to move over to `std::is_trivially_copyable` instead of the `llvm` namespace verson.
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D93510
|
 | llvm/unittests/ADT/OptionalTest.cpp |
 | llvm/include/llvm/ADT/Optional.h |
Commit
9fc814ed59669d8f1d06cde5714c17fac652f2a1
by Dávid Bolvanský[Tests] Added tests for new instcombine or simplification; NFC
|
 | llvm/test/Transforms/InstCombine/or.ll |
Commit
a4e2a5145a29af678139f33e94ab3df0fc973e59
by Dávid Bolvanský[InstSimplify] Add (~A & B) | ~(A | B) --> ~A
|
 | llvm/test/Transforms/InstSimplify/or.ll |
 | llvm/lib/Analysis/InstructionSimplify.cpp |
Commit
098dbf190a5586d02f48b84eb41b93b701cdeb97
by kai.wang[RISCV] Correct alignment settings for vector registers.
According to "9. Vector Memory Alignment Constraints" in V specification, the alignment of vector memory access is aligned to the size of the element. In our current implementation, we support ELEN up to 64. We could assume the alignment of vector registers is 64 under the assumption.
Differential Revision: https://reviews.llvm.org/D94751
|
 | llvm/lib/Target/RISCV/RISCVRegisterInfo.td |
Commit
bdd4dda58b0de08bd3474fb8d4589a9ba9349e88
by Dávid Bolvanský[InstSimplify] Update comments, remove redundant tests
|
 | llvm/test/Transforms/InstCombine/or.ll |
 | llvm/lib/Analysis/InstructionSimplify.cpp |
Commit
bca16e2fbb451f125c13f811f9f5a37bb38e54e2
by flo[LTO] Remove options to disable inlining, vectorization & GVNLoadPRE.
This patch removes some ancient options as a clean-up before moving code-gen to use LTOBackend in D94487.
I think it would preferable to remove those ancient options, because
1. There are no corresponding options in LTOBackend based tools, 2. There are no unit tests for them, 3. They are not passed through by Clang, 4. At least for GNVLoadPRE, users could just use GVN's `enable-load-pre`.
Alternatively we could add support for those options to lto::Config & co, but I think it would be better to remove them, unless they are actually used in practice.
Reviewed By: steven_wu, tejohnson
Differential Revision: https://reviews.llvm.org/D94783
|
 | llvm/tools/lto/lto.cpp |
 | llvm/include/llvm/LTO/legacy/LTOCodeGenerator.h |
 | llvm/tools/llvm-lto/llvm-lto.cpp |
 | llvm/lib/LTO/LTOCodeGenerator.cpp |
Commit
ba0fc7e1f8d57a7a7dce1a2d604b12e5210dc10f
by kazu[StringExtras] Fix comment typos (NFC)
|
 | llvm/include/llvm/ADT/StringExtras.h |
Commit
19aacdb715aea1de56a47b807a555335610a11c2
by kazu[llvm] Construct SmallVector with iterator ranges (NFC)
|
 | llvm/lib/Transforms/IPO/ArgumentPromotion.cpp |
 | llvm/lib/Transforms/Utils/CallPromotionUtils.cpp |
 | llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp |
 | llvm/include/llvm/Support/GenericDomTree.h |
 | llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp |
 | llvm/lib/Transforms/Utils/LCSSA.cpp |
 | llvm/lib/Target/AMDGPU/AMDGPUAlwaysInlinePass.cpp |
 | llvm/lib/IR/LLVMContextImpl.cpp |
 | llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp |
 | llvm/lib/Analysis/ScalarEvolution.cpp |
 | llvm/lib/Transforms/Utils/Debugify.cpp |
 | llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp |
 | llvm/lib/Transforms/Vectorize/VPlan.cpp |
Commit
2082b10d100e8dbaffc2ba8f497db5d2ab61beb2
by kazu[llvm] Use *::empty (NFC)
|
 | llvm/lib/CodeGen/BranchFolding.cpp |
 | llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp |
 | llvm/lib/Analysis/CGSCCPassManager.cpp |
 | llvm/lib/Transforms/Scalar/SROA.cpp |
 | llvm/lib/CodeGen/PHIElimination.cpp |
 | llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp |
 | llvm/tools/llvm-exegesis/lib/Target.cpp |
 | llvm/lib/CodeGen/RegisterScavenging.cpp |
 | llvm/lib/Target/ARM/ARMConstantIslandPass.cpp |
 | llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp |
 | llvm/lib/Target/X86/X86CmovConversion.cpp |
 | llvm/lib/Object/SymbolSize.cpp |
 | llvm/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/tools/llvm-readobj/ELFDumper.cpp |
Commit
416854d0f7cda90def07e9b4aee14505f222b0b3
by Dávid Bolvanský[InstSimplify] Precommit new testcases; NFC
|
 | llvm/test/Transforms/InstSimplify/or.ll |
Commit
c1ab698dce8dd4e751e63142ebb333d5b90bb8dc
by david.green[ARM] Remove LLC tests from transform/hardware loop tests.
We now have a lot of llc tests for hardware loops in CodeGen, which test a larger variety of loops and are easier to maintain. This removes the llc from mixed llc/opt tests.
|
 | llvm/test/Transforms/HardwareLoops/ARM/structure.ll |
Commit
372eb2bbb6fb903ce76266e659dfefbaee67722b
by david.green[ARM] Add low overhead loops terminators to AnalyzeBranch
This treats low overhead loop branches the same as jump tables and indirect branches in analyzeBranch - they cannot be analyzed but the direct branches on the end of the block may be removed. This helps remove the unnecessary branches earlier, which can help produce better codegen (and change block layout in a number of cases).
Differential Revision: https://reviews.llvm.org/D94392
|
 | llvm/lib/Target/ARM/ARMBaseInstrInfo.h |
 | llvm/test/CodeGen/Thumb2/mve-vldshuffle.ll |
 | llvm/test/CodeGen/Thumb2/mve-satmul-loops.ll |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/fast-fp-loops.ll |
 | llvm/test/CodeGen/Thumb2/mve-float16regloops.ll |
 | llvm/test/CodeGen/Thumb2/mve-gather-tailpred.ll |
 | llvm/test/CodeGen/Thumb2/mve-gather-increment.ll |
 | llvm/test/CodeGen/Thumb2/mve-gather-scatter-optimisation.ll |
 | llvm/test/CodeGen/Thumb2/mve-vecreduce-loops.ll |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/vcmp-vpst-combination.ll |
 | llvm/test/CodeGen/Thumb2/mve-scatter-increment.ll |
 | llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp |
 | llvm/test/CodeGen/Thumb2/mve-float32regloops.ll |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/mve-float-loops.ll |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/sibling-loops.ll |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/varying-outer-2d-reduction.ll |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/while-loops.ll |
Commit
63bedc80da36cf5eb71b06b453c186e057607bf4
by Dávid Bolvanský[InstSimplify] Handle commutativity for 'and' and 'outer or' for (~A & B) | ~(A | B) --> ~A
Reviewed By: lebedev.ri
Differential Revision: https://reviews.llvm.org/D94870
|
 | llvm/test/Transforms/InstSimplify/or.ll |
 | llvm/lib/Analysis/InstructionSimplify.cpp |
Commit
48dbac5b6b0bc7a03e9af42cb99176abba8d0467
by spatel[SLP] remove unnecessary use of 'OperationData'
This is another NFC-intended patch to allow matching intrinsics (example: maxnum) as candidates for reductions.
It's possible that the loop/if logic can be reduced now, but it's still difficult to understand how this all works.
|
 | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp |
Commit
fcfcc3cc6b16e4fd7d7d2d07937634cca360b46e
by spatel[SLP] fix typos; NFC
|
 | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp |
Commit
49b96cd9ef2f81d193641796b8a85781292faf7a
by spatel[SLP] remove opcode field from reduction data class
This is NFC-intended and another step towards supporting intrinsics as reduction candidates.
The remaining bits of the OperationData class do not make much sense as-is, so I will try to improve that, but I'm trying to take minimal steps because it's still not clear how this was intended to work.
|
 | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp |
Commit
ed939f853da1f2266f00ea087f778fda88848f73
by tianshilei1992[OpenMP] Added the support for hidden helper task in RTL
The basic design is to create an outer-most parallel team. It is not a regular team because it is only created when the first hidden helper task is encountered, and is only responsible for the execution of hidden helper tasks. We first use `pthread_create` to create a new thread, let's call it the initial and also the main thread of the hidden helper team. This initial thread then initializes a new root, just like what RTL does in initialization. After that, it directly calls `__kmpc_fork_call`. It is like the initial thread encounters a parallel region. The wrapped function for this team is, for main thread, which is the initial thread that we create via `pthread_create` on Linux, waits on a condition variable. The condition variable can only be signaled when RTL is being destroyed. For other work threads, they just do nothing. The reason that main thread needs to wait there is, in current implementation, once the main thread finishes the wrapped function of this team, it starts to free the team which is not what we want.
Two environment variables, `LIBOMP_NUM_HIDDEN_HELPER_THREADS` and `LIBOMP_USE_HIDDEN_HELPER_TASK`, are also set to configure the number of threads and enable/disable this feature. By default, the number of hidden helper threads is 8.
Here are some open issues to be discussed: 1. The main thread goes to sleeping when the initialization is finished. As Andrey mentioned, we might need it to be awaken from time to time to do some stuffs. What kind of update/check should be put here?
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D77609
|
 | openmp/runtime/src/kmp_wait_release.h |
 | openmp/runtime/test/tasking/hidden_helper_task/gtid.cpp |
 | openmp/runtime/src/kmp_tasking.cpp |
 | openmp/runtime/src/kmp_taskdeps.h |
 | openmp/runtime/src/kmp_global.cpp |
 | openmp/runtime/src/kmp_settings.cpp |
 | openmp/runtime/test/worksharing/for/kmp_sch_simd_guided.c |
 | openmp/runtime/test/tasking/hidden_helper_task/taskgroup.cpp |
 | openmp/runtime/test/tasking/hidden_helper_task/common.h |
 | openmp/runtime/src/kmp_runtime.cpp |
 | openmp/runtime/src/kmp.h |
 | openmp/runtime/src/z_Linux_util.cpp |
 | openmp/runtime/test/tasking/hidden_helper_task/depend.cpp |
Commit
d8fc27301d18f0935ba99ead7ac61aa6a53f16e4
by ajcbik[mlir][sparse] improved sparse runtime support library
Added the ability to read (an extended version of) the FROSTT file format, so that we can now read in sparse tensors of arbitrary rank. Generalized the API to deal with more than two dimensions.
Also added the ability to sort the indices of sparse tensors lexicographically. This is an important step towards supporting auto gen of initialization code, since sparse storage formats are easier to initialize if the indices are sorted. Since most external formats don't enforce such properties, it is convenient to have this ability in our runtime support library.
Lastly, the re-entrant problem of the original implementation is fixed by passing an opaque object around (rather than having a single static variable, ugh!).
Reviewed By: nicolasvasilache
Differential Revision: https://reviews.llvm.org/D94852
|
 | mlir/integration_test/data/test.tns |
 | mlir/integration_test/Sparse/CPU/matrix-market-example.mlir |
 | mlir/lib/ExecutionEngine/SparseUtils.cpp |
 | mlir/integration_test/CMakeLists.txt |
 | mlir/include/mlir/ExecutionEngine/CRunnerUtils.h |
 | mlir/integration_test/Sparse/CPU/frostt-example.mlir |
Commit
bfd75bdf3fd62d4f5e7028d4122f9ffa517f2a09
by Dávid Bolvanský[NFC] Removed extra text in comments
|
 | llvm/lib/Analysis/InstructionSimplify.cpp |
Commit
2a5b576e3ea41c30537435d989a3dce7a409f8e2
by david.green[ARM] Test for aligned blocks. NFC
|
 | llvm/test/CodeGen/Thumb2/aligned-nonfallthrough.ll |
Commit
145472421535c71a9ea60af7e5d012ab69dc85ff
by david.green[ARM] Align blocks that are not fallthough targets
If the previous block in a function does not fallthough, adding nop's to align it will never be executed. This means we can freely (except for codesize) align more branches. This happens in constantislandspass (as it cannot happen later) and only happens at aggressive optimization levels as it does increase codesize.
Differential Revision: https://reviews.llvm.org/D94394
|
 | llvm/test/CodeGen/Thumb2/aligned-nonfallthrough.ll |
 | llvm/lib/Target/ARM/ARMConstantIslandPass.cpp |
 | llvm/test/CodeGen/ARM/ParallelDSP/multi-use-loads.ll |
Commit
32fc32317a31fc00e7e4086d6c93dd1eab75960c
by lebedev.ri[SimplifyCFG] markAliveBlocks(): catchswitch: preserve PostDomTree
When removing catchpad's from catchswitch, if that removes a successor, we need to record that in DomTreeUpdater.
This fixes PostDomTree preservation failure in an existing test. This appears to be the single issue that i see in my current test coverage.
|
 | llvm/lib/Transforms/Utils/Local.cpp |
Commit
5238e7b302ffc40707677960da9d64e872745dac
by nikita.ppv[InstCombine] Replace one-use select operand based on condition
InstCombine already performs a fold where X == Y ? f(X) : Z is transformed to X == Y ? f(Y) : Z if f(Y) simplifies. However, if f(X) only has one use, then we can always directly replace the use inside the instruction. To actually be profitable, limit it to the case where Y is a non-expr constant.
This could be further extended to replace uses further up a one-use instruction chain, but for now this only looks one level up.
Among other things, this also subsumes D94860.
Differential Revision: https://reviews.llvm.org/D94862
|
 | llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp |
 | llvm/test/Transforms/InstCombine/select-binop-cmp.ll |
 | llvm/test/Transforms/InstCombine/select-safe-transforms.ll |
Commit
a048ce13e32daa255d26533c00da8abd0b67e819
by i[X86] Default to -x86-pad-for-align=false to drop assembler difference with or w/o -g
Fix PR48742: the D75203 assembler optimization locates MCRelaxableFragment's within two MCSymbol's and relaxes some MCRelaxableFragment's to reduce the size of a MCAlignFragment. A -g build has more MCSymbol's and therefore may have different assembler output (e.g. a MCRelaxableFragment (jmp) may have 5 bytes with -O1 while 2 bytes with -O1 -g).
`.p2align 4, 0x90` is common due to loops. For a larger program, with a lot of temporary labels, the assembly output difference is somewhat destined. The cost seems to overweigh the benefits so we default to -x86-pad-for-align=false until the heuristic is improved.
Reviewed By: skan
Differential Revision: https://reviews.llvm.org/D94542
|
 | llvm/test/MC/X86/align-via-padding.s |
 | llvm/test/MC/X86/align-via-relaxation.s |
 | llvm/test/MC/X86/prefix-padding-32.s |
 | llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp |
 | llvm/test/MC/X86/prefix-padding-64.s |
 | llvm/test/MC/X86/align-via-padding-corner.s |
Commit
633c5afccfbb0a985976aa3e6493f1a08061cb10
by craig.topper[RISCV] Remove unneeded StringRef to std::string conversions in RISCVCompressInstEmitter. NFC
Stop concatenating std::string before streaming into a raw_ostream. Just stream the pieces.
Remove some new lines from asserts. Remove std::string concatenation from an assert. assert strings aren't really evaluated like this at runtime. An assertion failure will just print exactly what's between the parentheses in the source.
|
 | llvm/utils/TableGen/RISCVCompressInstEmitter.cpp |
Commit
97f7e4e8c9309e0806f9b8f8afcf8ce2ef63656c
by craig.topper[RISC] Replace dyn_casts that are only checked by an assert with a cast. NFC
|
 | llvm/utils/TableGen/RISCVCompressInstEmitter.cpp |
Commit
2b6a92625fdf11928bff1a31cdc06d7dbd193f85
by craig.topper[RISCV] Simplify mergeCondAndCode in RISCVCompressInstEmitter.cpp. NFC
Instead forming a std::string and returning it to pass into another raw_ostream, just pass the raw_ostream as a parameter.
Take StringRef as arguments instead raw_string_ostream references making the caller responsible for converting to strings. Use StringRef operations instead of std::string::substr.a
|
 | llvm/utils/TableGen/RISCVCompressInstEmitter.cpp |
Commit
1327c730bb9a0bff963af3745869cf244ae37241
by craig.topper[RISCV] Few more minor cleanups to RISCVCompressInstEmitter. NFC
-Use StringRef instead of std::string. -Const correct a parameter. -Don't call StringRef::data() before printing. Just pass the StringRef.
|
 | llvm/utils/TableGen/RISCVCompressInstEmitter.cpp |
Commit
061f681c0dfa4d279dc656802bf81f3b9bfa3d34
by craig.topper[RISCV] Remove an extra map lookup from RISCVCompressInstEmitter. NFC
When we looked up the map to see if the entry already existed, this created the new entry for us. So save a reference to it so we can use it to update the entry instead of looking it up again.
Also remove unnecessary StringRef constructors around string literals on calls to this function.
|
 | llvm/utils/TableGen/RISCVCompressInstEmitter.cpp |
Commit
3cbd476c54886e8ebac64b4145d4517732a71023
by marukawa[VE] Support VE in libunwind
Modify libunwind to support SjLj exception handling routines for VE. In order to do that, we need to implement not only SjLj exception handling routines but also a Registers_ve class. This implementation of Registers_ve is incomplete. We will work on it later when we need backtrace in libunwind.
Reviewed By: #libunwind, compnerd
Differential Revision: https://reviews.llvm.org/D94591
|
 | libunwind/src/Registers.hpp |
 | libunwind/src/libunwind.cpp |
 | libunwind/include/__libunwind_config.h |
 | libunwind/include/libunwind.h |
 | libunwind/src/Unwind-sjlj.c |
Commit
3809f4ebabde98bfdc1fdcdad2963a874151820b
by i[ELF] Support R_PPC_ADDR24 (ba foo; bla foo)
|
 | lld/test/ELF/ppc32-reloc-addr.s |
 | lld/ELF/Arch/PPC.cpp |
Commit
b1c2f1282a237e9bc60f1b0020bc7535ca019739
by nikita.ppv[BasicAA] Move assumption tracking into AAQI
D91936 placed the tracking for the assumptions into BasicAA. However, when recursing over phis, we may use fresh AAQI instances. In this case AssumptionBasedResults from an inner AAQI can reesult in a removal of an element from the outer AAQI.
To avoid this, move the tracking into AAQI. This generally makes more sense, as the NoAlias assumptions themselves are also stored in AAQI.
The test case only produces an assertion failure with D90094 reapplied. I think the issue exists independently of that change as well, but I wasn't able to come up with a reproducer.
|
 | llvm/lib/Analysis/BasicAliasAnalysis.cpp |
 | llvm/include/llvm/Analysis/BasicAliasAnalysis.h |
 | llvm/test/Transforms/MemCpyOpt/aa-recursion-assertion-failure.ll |
 | llvm/include/llvm/Analysis/AliasAnalysis.h |
Commit
0b84afa5fcb41429004db72a0588656a8d76bf48
by nikita.ppvReapply [BasicAA] Handle recursive queries more efficiently
There are no changes relative to the original commit. However, an issue this exposed in BasicAA assumption tracking has been fixed in the previous commit.
-----
An alias query currently works out roughly like this:
* Look up location pair in cache. * Perform BasicAA logic (including cache lookup and insertion...) * Perform a recursive query using BestAAResults. * Look up location pair in cache (and thus do not recurse into BasicAA) * Query all the other AA providers. * Query all the other AA providers.
This is a lot of unnecessary work, all ultimately caused by the BestAAResults query at the end of aliasCheck(). The reason we perform it, is that aliasCheck() is getting called recursively, and we of course want those recursive queries to also make use of other AA providers, not just BasicAA. We can solve this by making the recursive queries directly use BestAAResults (which will check both BasicAA and other providers), rather than recursing into aliasCheck().
There are some tradeoffs:
* We can no longer pass through the precomputed underlying object to aliasCheck(). This is not a major concern, because nowadays getUnderlyingObject() is quite cheap. * Results from other AA providers are no longer cached inside BasicAA. The way this worked was already a bit iffy, in that a result could be cached, but if it was MayAlias, we'd still end up re-querying other providers anyway. If we want to cache non-BasicAA results, we should do that in a more principled manner.
In any case, despite those tradeoffs, this works out to be a decent compile-time improvment. I think it also simplifies the mental model of how BasicAA works. It took me quite a while to fully understand how these things interact.
Differential Revision: https://reviews.llvm.org/D90094
|
 | llvm/lib/Analysis/GlobalsModRef.cpp |
 | llvm/lib/Analysis/BasicAliasAnalysis.cpp |
 | llvm/include/llvm/Analysis/BasicAliasAnalysis.h |
Commit
9af03864df746aa9a9cf3573da952ce6c5d902cd
by mydeveloperday[clang-format] Revert e9e6e3b34a8e
Reverting {D92753} due to issues with #pragma indentation in #ifdef/endif structure
|
 | clang/lib/Format/UnwrappedLineParser.cpp |
 | clang/docs/ClangFormatStyleOptions.rst |
 | clang/include/clang/Format/Format.h |
 | clang/lib/Format/Format.cpp |
 | clang/unittests/Format/FormatTest.cpp |
 | clang/lib/Format/UnwrappedLineFormatter.cpp |
 | clang/lib/Format/ContinuationIndenter.cpp |
 | clang/lib/Format/UnwrappedLineParser.h |
Commit
e7bc6c594b75602c23cb901f53b3a30d48e2ee78
by Raphael IsemannReland [lldb][docs] Use sphinx instead of epydoc to generate LLDB's Python reference
The build server should now have the missing dependencies.
Original summary:
Currently LLDB uses epydoc to generate the Python API reference for the website. epydoc however is unmaintained since more than a decade and no longer works with Python 3. Also whatever setup we had once for generating the documentation on the website server no longer seems to work, so the current website documentation has been stale since more than a year.
This patch replaces epydoc with sphinx and its automodapi plugin that can generate Python API references. LLVM already uses sphinx for the rest of the documentation, so this way we are more consistent with the rest of LLVM. The only new dependency is the automodapi plugin for sphinx.
This patch effectively does the following things: * Remove the epydoc code. * Make a new dummy Python API page in our website that just calls the Sphinx command for generated the API documentation. * Add a mock _lldb module that is only used when generating the Python API. This way we don't have to build all of LLDB to generate the API reference.
Some notes: * The long list of skips is necessary due to boilerplate functions that SWIG is generating. Sadly automodapi is not really scriptable from what I can see, so we have to blacklist this stuff manually. * The .gitignore change because automodapi wants a subfolder of our documentation directory to place generated documentation files there. The path is also what is used on the website, so we can't really workaround this (without copying the whole `docs` dir somewhere else when we build). * We have to use environment variables to pass our build path to our sphinx configuration. Sphinx doesn't support passing variables onto that script.
Reviewed By: JDevlieghere
Differential Revision: https://reviews.llvm.org/D94489
|
 | .gitignore |
 | lldb/docs/index.rst |
 | lldb/docs/python_api.rst |
 | llvm/cmake/modules/AddSphinxTarget.cmake |
 | lldb/docs/CMakeLists.txt |
 | lldb/docs/_lldb/__init__.py |
 | lldb/docs/conf.py |
Commit
00dc97f16708aad67834552285c0af01b37303d6
by mydeveloperday[clang-format] PR48594 BraceWrapping: SplitEmptyRecord ignored for templates
https://bugs.llvm.org/show_bug.cgi?id=48594
Empty or small templates were not being treated the same way as small classes especially when SplitEmptyRecord was set to true
This revision aims to help this by identifying a case when we should try not to merge the lines together
Reviewed By: curdeius, JohelEGP
Differential Revision: https://reviews.llvm.org/D93839
|
 | clang/unittests/Format/FormatTest.cpp |
 | clang/unittests/Format/FormatTestCSharp.cpp |
 | clang/lib/Format/UnwrappedLineFormatter.cpp |
Commit
0f9908a7c9c547f2675e00f88cc11ec02ca28e8d
by usx[clangd] Use empty() instead of size()>0
|
 | clang-tools-extra/clangd/Quality.cpp |
Commit
9abbc050974ff117b79e8e049c52c56db3f49aec
by usx[clangd] Use !empty() instead of size()>0
|
 | clang-tools-extra/clangd/Quality.cpp |
Commit
4bfbfb9bcb790931b97da972ff02865810f43ce8
by nikita.ppv[InstSimplify] Add tests for x*C1/C2<=x (NFC)
Tests for PR48744.
|
 | llvm/test/Transforms/InstSimplify/icmp.ll |
Commit
a13c0f62c38131ef2656b06de02d82110abaf272
by nikita.ppv[InstSimplify] Fold x*C1/C2 <= x (PR48744)
We can fold x*C1/C2 <= x to true if C1 <= C2. This is valid even if the multiplication is not nuw: https://alive2.llvm.org/ce/z/vULors
The multiplication or division can be replaced by shifts. We don't handle the case where both are shifts, as that should get folded away by InstCombine.
|
 | llvm/test/Transforms/InstSimplify/icmp.ll |
 | llvm/lib/Analysis/InstructionSimplify.cpp |
Commit
acdc74568927d47f94816e73b6e105c9460cc3e4
by Raphael Isemann[lldb][docs] Cleanup the Python doc strings for SB API classes
The first line of the doc string ends up on the SB API class summary at the root page of the Python API web page of LLDB. Currently many of the descriptions are missing or are several lines which makes the table really hard to read.
This just adds the missing docstrings where possible and fixes the formatting where necessary.
|
 | lldb/bindings/interface/SBData.i |
 | lldb/bindings/interface/SBQueue.i |
 | lldb/bindings/interface/SBTrace.i |
 | lldb/bindings/interface/SBHostOS.i |
 | lldb/bindings/interface/SBLanguageRuntime.i |
 | lldb/bindings/interface/SBModuleSpec.i |
 | lldb/bindings/interface/SBPlatform.i |
 | lldb/bindings/interface/SBExecutionContext.i |
 | lldb/bindings/python/python-extensions.swig |
 | lldb/bindings/interface/SBLaunchInfo.i |
 | lldb/bindings/interface/SBTraceOptions.i |
 | lldb/bindings/interface/SBQueueItem.i |
 | lldb/bindings/interface/SBThreadPlan.i |
 | lldb/bindings/interface/SBMemoryRegionInfoList.i |
 | lldb/bindings/interface/SBBreakpoint.i |
 | lldb/bindings/interface/SBTypeEnumMember.i |
 | lldb/bindings/interface/SBFileSpecList.i |
 | lldb/bindings/interface/SBStringList.i |
 | lldb/bindings/interface/SBInstruction.i |
 | lldb/bindings/interface/SBAttachInfo.i |
 | lldb/bindings/interface/SBReproducer.i |
 | lldb/bindings/interface/SBCommunication.i |
 | lldb/bindings/interface/SBFrame.i |
 | lldb/bindings/interface/SBLineEntry.i |
 | lldb/bindings/interface/SBVariablesOptions.i |
 | lldb/bindings/interface/SBType.i |
Commit
469ceaf53892d26f7b68f86f1feb38fe7057815e
by Dávid Bolvanský[Tests] Add test for PR45691
|
 | llvm/test/Transforms/InstCombine/ashr-or-mul-abs.ll |
Commit
ed396212da41feed9bffb8cc1ca6518ab031a3c7
by Dávid Bolvanský[InstCombine] Transform abs pattern using multiplication to abs intrinsic (PR45691)
``` unsigned r(int v) { return (1 | -(v < 0)) * v; }
`r` is equivalent to `abs(v)`.
```
``` define <4 x i8> @src(<4 x i8> %0) { %1: %2 = ashr <4 x i8> %0, { 31, undef, 31, 31 } %3 = or <4 x i8> %2, { 1, 1, 1, undef } %4 = mul nsw <4 x i8> %3, %0 ret <4 x i8> %4 } => define <4 x i8> @tgt(<4 x i8> %0) { %1: %2 = icmp slt <4 x i8> %0, { 0, 0, 0, 0 } %3 = sub nsw <4 x i8> { 0, 0, 0, 0 }, %0 %4 = select <4 x i1> %2, <4 x i8> %3, <4 x i8> %0 ret <4 x i8> %4 } Transformation seems to be correct! ```
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D94874
|
 | llvm/test/Transforms/InstCombine/ashr-or-mul-abs.ll |
 | llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp |
Commit
7e9e6ac526ebd90fe8ec0b8d2bb6edd3516ab908
by Raphael Isemann[lldb][docs] Fix some RST formatting errors related to code examples.
Mostly just making sure the indentation is right (SBDebugger had 0 spaces as it was still plain text, the others had too much indentation or other minor issues).
|
 | lldb/bindings/interface/SBCommandInterpreterRunOptions.i |
 | lldb/bindings/interface/SBProcess.i |
 | lldb/bindings/interface/SBType.i |
 | lldb/bindings/interface/SBBroadcaster.i |
 | lldb/bindings/interface/SBDebugger.i |
 | lldb/bindings/interface/SBStructuredData.i |
Commit
352fcfc69788093b50971a9f5540a61fa0887ce1
by kazu[llvm] Use llvm::sort (NFC)
|
 | llvm/lib/TextAPI/MachO/TextStub.cpp |
 | llvm/lib/Bitcode/Writer/BitcodeWriter.cpp |
 | llvm/lib/Object/COFFObjectFile.cpp |
 | llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp |
 | llvm/tools/llvm-jitlink/llvm-jitlink.cpp |
 | llvm/lib/DebugInfo/CodeView/DebugFrameDataSubsection.cpp |
 | llvm/lib/Target/Hexagon/HexagonBlockRanges.cpp |
 | llvm/lib/Support/DebugCounter.cpp |
 | llvm/lib/DebugInfo/GSYM/GsymCreator.cpp |
 | llvm/lib/FileCheck/FileCheck.cpp |
 | llvm/tools/llvm-cov/CoverageExporterJson.cpp |
 | llvm/lib/ExecutionEngine/Orc/SpeculateAnalyses.cpp |
 | llvm/tools/llvm-cov/CoverageExporterLcov.cpp |
 | llvm/lib/DebugInfo/PDB/Native/SymbolCache.cpp |
 | llvm/lib/DWARFLinker/DWARFLinker.cpp |
Commit
a59126115e9586dd7fda4bb365ee43682814fc53
by kazu[IRBuilder] "Zero"-initialize SmallVector (NFC)
|
 | llvm/lib/IR/IRBuilder.cpp |
Commit
50be8e447152b8512521e568e4918dec486c25a5
by kazu[TableGen] Drop redundant const from return types (NFC)
Identified with readability-const-return-type.
|
 | llvm/utils/TableGen/DAGISelMatcher.h |
 | llvm/utils/TableGen/CodeGenRegisters.cpp |
 | llvm/utils/TableGen/CodeGenTarget.h |
 | llvm/utils/TableGen/OptParserEmitter.cpp |
 | llvm/utils/TableGen/CodeGenTarget.cpp |
 | llvm/utils/TableGen/CodeGenRegisters.h |
 | llvm/utils/TableGen/GlobalISelEmitter.cpp |
Commit
9a7fb0848771e3d38baf10e4d1078b50dd884265
by steveireNFC: Minor cleanup of function calls
|
 | clang/lib/ASTMatchers/ASTMatchFinder.cpp |
Commit
1cc477f030bdeb6de98c6bde89fa7850630def24
by nikita.ppv[SimplifyCFG] Add test for PR48778 (NFC)
The sdiv is incorrectly speculated.
|
 | llvm/test/Transforms/SimplifyCFG/pr48778-sdiv-speculation.ll |
Commit
4229b87ed36cf20b95b363393452aa4815e344e2
by nikita.ppv[ValueTracking] Fix isSafeToSpeculativelyExecute for sdiv (PR48778)
The != -1 check does not work correctly for all bitwidths. Use isAllOnesValue() instead.
|
 | llvm/lib/Analysis/ValueTracking.cpp |
 | llvm/test/Transforms/SimplifyCFG/pr48778-sdiv-speculation.ll |
Commit
a89242d874df72cddeafbebc75ac377371e72796
by pavel[lldb] Skip TestPlatformProcessConnect on windows and darwin
The test fails (for different reasons) on these platforms. Skip for now.
|
 | lldb/test/API/tools/lldb-server/platform-process-connect/TestPlatformProcessConnect.py |
Commit
95d146182fdf2315e74943b93fb3bb0cbafc5d89
by iMakefile.rules: Delete GCC 4.6 workaround
5.1 is the minimum supported version.
|
 | lldb/packages/Python/lldbsuite/test/make/Makefile.rules |
Commit
f855751c1284c82c1c46b98f6d1b3ca2021d6cb9
by chandlercFix openmp CMake build on non-Linux AArch64 systems.
This just checks for `/proc/cpuinfo` existing before reading it.
Tested on an ARM macOS machine.
|
 | openmp/runtime/cmake/LibompGetArchitecture.cmake |
Commit
3bdf4507b66348ad78df4655a8e4f36c3fc10f3c
by czhengsz[NFC] [TargetRegisterInfo] add one use check to lookThruCopyLike.
add one use check to lookThruCopyLike.
The root node is safe to be deleted if we are sure that every definition in the copy chain only has one use.
Reviewed By: jsji
Differential Revision: https://reviews.llvm.org/D92069
|
 | llvm/lib/CodeGen/TargetRegisterInfo.cpp |
 | llvm/include/llvm/CodeGen/TargetRegisterInfo.h |
Commit
b74ae43c44b1c954508149409d3cfe6477be4079
by iMakefile.rules: Make HOST_OS/OS simply expanded variable to avoid excess uname -s invocations
This decreases the number of runs from 18 to 1.
|
 | lldb/packages/Python/lldbsuite/test/make/Makefile.rules |
Commit
a817f46d50c34ea6b798d28bd5fa6a3ee7435497
by Lang Hames[JITLink][ELF] Skip DWARF sections in ELF objects.
This matches current JITLink/MachO behavior and avoids processing currently unsupported relocations.
|
 | llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp |
 | llvm/test/ExecutionEngine/JITLink/X86/ELF_skip_debug_sections.s |
Commit
2639c162b71f4b9e5c0ffefaa861fe915b73cb87
by aqjune[InstCombine] more tests for D94861 (NFC)
|
 | llvm/test/Transforms/InstCombine/select-safe-transforms.ll |
Commit
2d9890775f523a7a7ed2d7d064273bf7e28ebf20
by qiucofan[PowerPC] [NFC] Add AIX triple to some regression tests
As part of the effort to improve AIX support, regression test coverage misses quite a lot for AIX subtarget. This patch adds AIX triple to those don't need extra change, and we can cover more cases in following commits.
Reviewed By: steven.zhang
Differential Revision: https://reviews.llvm.org/D94159
|
 | llvm/test/CodeGen/PowerPC/pr39478.ll |
 | llvm/test/CodeGen/PowerPC/cmpb-ppc32.ll |
 | llvm/test/CodeGen/PowerPC/inc-of-add.ll |
 | llvm/test/CodeGen/PowerPC/vec_constants.ll |
 | llvm/test/CodeGen/PowerPC/shift-cmp.ll |
 | llvm/test/CodeGen/PowerPC/constant-combines.ll |
 | llvm/test/CodeGen/PowerPC/fdiv.ll |
 | llvm/test/CodeGen/PowerPC/rotl-2.ll |
 | llvm/test/CodeGen/PowerPC/vmladduhm.ll |
 | llvm/test/CodeGen/PowerPC/bswap64.ll |
 | llvm/test/CodeGen/PowerPC/ori_imm32.ll |
 | llvm/test/CodeGen/PowerPC/pr33093.ll |
 | llvm/test/CodeGen/PowerPC/bool-math.ll |
 | llvm/test/CodeGen/PowerPC/mulli.ll |
 | llvm/test/CodeGen/PowerPC/hoist-logic.ll |
 | llvm/test/CodeGen/PowerPC/builtins-ppc-p9-darn.ll |
 | llvm/test/CodeGen/PowerPC/and-mask.ll |
 | llvm/test/CodeGen/PowerPC/maddld.ll |
 | llvm/test/CodeGen/PowerPC/ftrunc-vec.ll |
 | llvm/test/CodeGen/PowerPC/vec_shuffle_p8vector.ll |
 | llvm/test/CodeGen/PowerPC/popcnt-zext.ll |
 | llvm/test/CodeGen/PowerPC/vec_revb.ll |
 | llvm/test/CodeGen/PowerPC/constants-i64.ll |
 | llvm/test/CodeGen/PowerPC/vec_clz.ll |
 | llvm/test/CodeGen/PowerPC/setcc-to-sub.ll |
 | llvm/test/CodeGen/PowerPC/cmpb.ll |
 | llvm/test/CodeGen/PowerPC/unal-vec-ldst.ll |
 | llvm/test/CodeGen/PowerPC/ori_imm64.ll |
 | llvm/test/CodeGen/PowerPC/mi-peephole-splat.ll |
 | llvm/test/CodeGen/PowerPC/fma-assoc.ll |
Commit
f776d8b12f0ec19cfff60c967565788ce4f926e6
by qiucofan[Legalizer] Promote result type in expanding FP_TO_XINT
This patch promotes result integer type of FP_TO_XINT in expanding. So crash in conversion from ppc_fp128 to i1 will be fixed.
Reviewed By: steven.zhang
Differential Revision: https://reviews.llvm.org/D92473
|
 | llvm/test/CodeGen/PowerPC/ppcf128-constrained-fp-intrinsics.ll |
 | llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp |
Commit
7011086dc1cd5575f971db0138a62387939e6a73
by listmail[test] Autogen a loop vectorizer test to make future changes visible
|
 | llvm/test/Transforms/LoopVectorize/interleaved-accesses.ll |
Commit
8356610f8d48ca7ecbb930dd9b987e4269784710
by listmail[test] pre commit a couple more tests for vectorizing multiple exit loops
|
 | llvm/test/Transforms/LoopVectorize/loop-form.ll |
Commit
e5619065b8b8c441c0cbccbb81f5fa7857cf670a
by Lang Hames[JITLink][ELF] New ELF skip-debug-sections test requires asserts.
This should fix the failures on Release mode testers.
|
 | llvm/test/ExecutionEngine/JITLink/X86/ELF_skip_debug_sections.s |
Commit
26a396c4ef481cb159bba631982841736a125a9c
by czhengsz[PowerPC] support register pressure reduction in machine combiner.
Reassociating some patterns to generate more fma instructions to reduce register pressure.
Reviewed By: jsji
Differential Revision: https://reviews.llvm.org/D92071
|
 | llvm/lib/Target/PowerPC/PPCInstrInfo.h |
 | llvm/include/llvm/CodeGen/MachineCombinerPattern.h |
 | llvm/lib/Target/PowerPC/PPCInstrInfo.cpp |
 | llvm/test/CodeGen/PowerPC/register-pressure-reduction.ll |
 | llvm/lib/CodeGen/MachineCombiner.cpp |
Commit
bcc1dee60019f3a488a04dc7f701f7a692040fed
by bjoern[clang-format] Add StatementAttributeLikeMacros option
This allows to ignore for example Qts emit when AlignConsecutiveDeclarations is set, otherwise it is parsed as a type and it results in some misformating:
unsigned char MyChar = 'x'; emit signal(MyChar);
Differential Revision: https://reviews.llvm.org/D93776
|
 | clang/lib/Format/FormatTokenLexer.cpp |
 | clang/unittests/Format/FormatTest.cpp |
 | clang/lib/Format/Format.cpp |
 | clang/docs/ClangFormatStyleOptions.rst |
 | clang/lib/Format/WhitespaceManager.cpp |
 | clang/docs/ReleaseNotes.rst |
 | clang/include/clang/Format/Format.h |
 | clang/lib/Format/FormatToken.h |
 | clang/lib/Format/TokenAnnotator.cpp |
Commit
cfec6cd50c36f3db2fcd4084a8ef4df834a4eb24
by craig.topper[IR] Allow scalable vectors in structs to support intrinsics returning multiple values.
RISC-V would like to use a struct of scalable vectors to return multiple values from intrinsics. This woud also be needed for target independent intrinsics like llvm.sadd.overflow.
This patch removes the existing restriction for this. I've modified StructType::isSized to consider a struct containing scalable vectors as unsized so the verifier won't allow loads/stores/allocas of these structs.
Reviewed By: sdesmalen
Differential Revision: https://reviews.llvm.org/D94142
|
 | llvm/docs/LangRef.rst |
 | llvm/lib/IR/DataLayout.cpp |
 | llvm/test/Other/scalable-vector-struct.ll |
 | llvm/test/Verifier/scalable-global-vars.ll |
 | llvm/test/Other/scalable-vector-struct-intrinsic.ll |
 | llvm/test/Verifier/scalable-vector-struct-alloca.ll |
 | llvm/lib/IR/Verifier.cpp |
 | llvm/include/llvm/IR/DerivedTypes.h |
 | llvm/lib/CodeGen/Analysis.cpp |
 | llvm/test/CodeGen/RISCV/scalable-vector-struct.ll |
 | llvm/test/Verifier/scalable-vector-struct-load.ll |
 | llvm/lib/IR/Type.cpp |
 | llvm/test/Verifier/scalable-vector-struct-store.ll |
Commit
383b6501ffedc85c2ecfaa7852ec1a9e9c374e3f
by craig.topper[RISCV] Use tail agnostic policy for instructions with tied defs if the use operand is IMPLICIT_DEF.
The vcompress intrinsic is defined such that it requires a tail undisturbed policy. This patch makes it so we can use the tail agnostic policy if the user has passed vundefined to the dest operand.
We need to do something similar for masked policy, but we need annotation of which instructions use the mask policy first.
Not sure if this is sufficient for scheduling or if we'll need to select different pseudos that don't have a tied def.
Reviewed By: evandro
Differential Revision: https://reviews.llvm.org/D94566
|
 | llvm/lib/Target/RISCV/RISCVISelLowering.cpp |
 | llvm/test/CodeGen/RISCV/rvv/vcompress-rv64.ll |
 | llvm/test/CodeGen/RISCV/rvv/vcompress-rv32.ll |
Commit
f446fc5acf88fda676b5df1c04838f7244201d20
by Raphael Isemann[lldb][docs] Resolve the remaining sphinx formatter warnings in the SB API docs
With this patch there should no longer be any warnings when generating the SB API sphinx docs.
|
 | lldb/bindings/interface/SBModule.i |
 | lldb/bindings/interface/SBAddress.i |
 | lldb/bindings/interface/SBProcess.i |
 | lldb/bindings/interface/SBDebugger.i |
 | lldb/bindings/interface/SBBroadcaster.i |
 | lldb/bindings/interface/SBFrame.i |
 | lldb/bindings/interface/SBTarget.i |
 | lldb/bindings/interface/SBValue.i |
Commit
b9ce772b8fb5d02afd026c9b029f5d53d1ea9591
by grimar[Object, llvm-readelf] - Move the API for retrieving symbol versions to ELF.h
`ELFDumper.cpp` implements the functionality that allows to get symbol versions. It is used for dumping versioned symbols.
This helps to implement https://bugs.llvm.org/show_bug.cgi?id=48670 ("make llvm-nm -D print version names"): we can move out and reuse the code from `ELFDumper.cpp`. This is what this patch do: it moves the related functionality to `ELFFile<ELFT>`.
Differential revision: https://reviews.llvm.org/D94771
|
 | llvm/tools/llvm-readobj/ELFDumper.cpp |
 | llvm/test/tools/llvm-readobj/ELF/verdef-invalid.test |
 | llvm/test/tools/llvm-readobj/ELF/verneed-invalid.test |
 | llvm/include/llvm/Object/ELF.h |
Commit
b43075e34a598460fe1590d950862a26449e8d10
by bjoern[clang-format] Fix documentation of bcc1dee600
That was an oversight.
Differential Revision: https://reviews.llvm.org/D93776
|
 | clang/include/clang/Format/Format.h |
 | clang/docs/ClangFormatStyleOptions.rst |
Commit
6e75ee6b65c1c9924c0c9c10b1cbd57f10fe127b
by Raphael Isemann[lldb][docs] Use inline literals for code/paths instead of rendering it with the default role
Right now we're using the 'content' role as default which will just render these things as cursive (which isn't really useful for code examples). It also prevents us from assigning a more useful default role in the future.
|
 | lldb/docs/man/lldb.rst |
 | lldb/bindings/interface/SBFrame.i |
 | lldb/docs/design/reproducers.rst |
 | lldb/docs/design/sbapi.rst |
 | lldb/bindings/interface/SBValue.i |
 | lldb/docs/resources/build.rst |
 | lldb/docs/resources/contributing.rst |
 | lldb/bindings/interface/SBFile.i |
Commit
770d1e0a8828010a7c95de4596e24d54ed2527c3
by llvm-dev[X86][SSE] isHorizontalBinOp - reuse any existing horizontal ops.
If we already have similar horizontal ops using the same args, then match that, even if we are on a target with slow horizontal ops.
|
 | llvm/test/CodeGen/X86/haddsub-shuf.ll |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/test/CodeGen/X86/haddsub-undef.ll |
Commit
ac603c8d3850ed0c715c421d79bb5cb014bb21de
by fraser[RISCV] Add scalable vector truncate patterns
Original patch by @rogfer01.
This patch supports vector truncates, which on RVV must be done in a series of instructions truncating by one power-of-two at a time. This is done through custom-lowering and a custom node to avoid LLVM re-combining the split TRUNCATE nodes.
Authored-by: Roger Ferrer Ibanez <rofirrim@gmail.com> Co-Authored-by: Fraser Cormack <fraser@codeplay.com>
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D94796
|
 | llvm/test/CodeGen/RISCV/rvv/vtruncs-sdnode-rv32.ll |
 | llvm/lib/Target/RISCV/RISCVISelLowering.h |
 | llvm/test/CodeGen/RISCV/rvv/vtruncs-sdnode-rv64.ll |
 | llvm/lib/Target/RISCV/RISCVISelLowering.cpp |
 | llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td |
Commit
207f32948b2408bebd5a523695f6f7c08049db74
by llvm-dev[DAG] SimplifyDemandedBits - use KnownBits comparisons to remove ISD::UMIN/UMAX ops
Use the KnownBits icmp comparisons to determine when a ISD::UMIN/UMAX op is unnecessary should either op be known to be ULT/ULE or UGT/UGE than the other.
Differential Revision: https://reviews.llvm.org/D94532
|
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp |
 | llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp |
 | llvm/test/CodeGen/X86/combine-umin.ll |
 | llvm/test/CodeGen/X86/sdiv_fix_sat.ll |
 | llvm/test/CodeGen/AMDGPU/r600-legalize-umax-bug.ll |
 | llvm/test/CodeGen/X86/udiv_fix_sat.ll |
Commit
aca240b4f69e908b31e30b7ccece3c5b1d58426e
by zinenko[mlir] Fix cross-compilation (Linalg ODS gen)
Use cross-compilation approach for `mlir-linalg-ods-gen` application similar to TblGen tools.
Reviewed By: nicolasvasilache
Differential Revision: https://reviews.llvm.org/D94598
|
 | mlir/tools/CMakeLists.txt |
 | mlir/include/mlir/Dialect/Linalg/IR/CMakeLists.txt |
 | mlir/tools/mlir-linalg-ods-gen/CMakeLists.txt |
 | mlir/CMakeLists.txt |
Commit
3bd24574c7d0187e69780540fe0681914d71794f
by tpoppRevert "[PowerPC] support register pressure reduction in machine combiner."
This reverts commit 26a396c4ef481cb159bba631982841736a125a9c.
See https://reviews.llvm.org/D92071 for a description of the issue.
|
 | llvm/lib/Target/PowerPC/PPCInstrInfo.cpp |
 | llvm/include/llvm/CodeGen/MachineCombinerPattern.h |
 | llvm/test/CodeGen/PowerPC/register-pressure-reduction.ll |
 | llvm/lib/CodeGen/MachineCombiner.cpp |
 | llvm/lib/Target/PowerPC/PPCInstrInfo.h |
Commit
83aa93e99542dbbfc5223130482ad6d7744d9a78
by flo[VectorUtils] Do not try to add indices matching tombstone/empty values.
Keys matching the tombstone/empty special values cannot be inserted in a DenseMap. Under some circumstances, LV tries to add members to an interleave group that match the special values. Skip adding such members. This is unlikely to have any impact in practice, because interleave groups with such indices are very likely to not be vectorized, due to gaps.
This issue has been surfaced by fuzzing, see https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11638
|
 | llvm/include/llvm/Analysis/VectorUtils.h |
 | llvm/test/Transforms/LoopVectorize/X86/interleaved-accesses-large-gap.ll |
Commit
9bf843bdc88f89193939445828105d97ac83f963
by tianshilei1992Revert "[OpenMP] Added the support for hidden helper task in RTL"
This reverts commit ed939f853da1f2266f00ea087f778fda88848f73.
|
 | openmp/runtime/src/kmp_global.cpp |
 | openmp/runtime/test/tasking/hidden_helper_task/depend.cpp |
 | openmp/runtime/test/tasking/hidden_helper_task/common.h |
 | openmp/runtime/src/kmp_wait_release.h |
 | openmp/runtime/test/tasking/hidden_helper_task/gtid.cpp |
 | openmp/runtime/src/kmp.h |
 | openmp/runtime/src/kmp_settings.cpp |
 | openmp/runtime/src/kmp_tasking.cpp |
 | openmp/runtime/src/z_Linux_util.cpp |
 | openmp/runtime/src/kmp_runtime.cpp |
 | openmp/runtime/test/worksharing/for/kmp_sch_simd_guided.c |
 | openmp/runtime/src/kmp_taskdeps.h |
 | openmp/runtime/test/tasking/hidden_helper_task/taskgroup.cpp |
Commit
911961c9c1320ba985ac06c1866b33a5a247a94e
by dmitry.preobrazhensky[AMDGPU][MC][GFX10] Improved dpp8 errors handling
Reviewers: rampitec
Differential Revision: https://reviews.llvm.org/D94756
|
 | llvm/test/MC/AMDGPU/gfx10_err_pos.s |
 | llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp |
Commit
689aaba7acf5778bfe96bfd7bc4f1f3ceed20dc8
by Abhina.Sreeskantharajan[SystemZ][z/OS] Fix No such file or directory expression error matching in lit tests
On z/OS, the following error message is not matched correctly in lit tests. This patch updates the CHECK expression to match successfully. ``` EDC5129I No such file or directory. ```
Reviewed By: muiez
Differential Revision: https://reviews.llvm.org/D94239
|
 | llvm/test/tools/llvm-objcopy/MachO/add-section-error.test |
 | lld/test/ELF/basic.s |
 | llvm/test/tools/llvm-objcopy/ELF/error-format.test |
 | llvm/test/tools/llvm-readobj/ELF/thin-archive-paths.test |
 | lld/test/COFF/manifestinput-error.test |
 | lld/test/ELF/symbol-ordering-file.s |
 | llvm/test/tools/llvm-lto2/X86/stats-file-option.ll |
 | llvm/test/tools/llvm-profdata/weight-instr.test |
 | llvm/test/tools/llvm-size/no-input.test |
 | clang/test/CodeGen/basic-block-sections.c |
 | llvm/test/tools/llvm-objcopy/COFF/add-section.test |
 | llvm/test/tools/dsymutil/X86/papertrail-warnings.test |
 | llvm/test/tools/llvm-ar/missing-thin-archive-member.test |
 | llvm/test/tools/llvm-mc/basic.test |
 | lld/test/COFF/pdb-type-server-invalid-signature.yaml |
 | lld/test/ELF/archive-thin-missing-member.s |
 | clang/test/CodeGen/ubsan-blacklist-vfs.c |
 | llvm/test/tools/obj2yaml/invalid_input_file.test |
 | llvm/test/tools/llvm-cxxdump/trivial.test |
 | llvm/test/tools/llvm-objcopy/redefine-symbols.test |
 | llvm/test/tools/llvm-ml/basic.test |
 | llvm/test/tools/yaml2obj/output-file.yaml |
 | lld/test/COFF/driver.test |
 | llvm/test/tools/llvm-readobj/basic.test |
 | clang/test/Frontend/stats-file.c |
 | lld/test/COFF/nodefaultlib.test |
 | llvm/test/tools/llvm-profdata/weight-sample.test |
 | llvm/test/tools/llvm-ar/replace.test |
 | llvm/test/tools/llvm-mca/invalid_input_file_name.test |
 | llvm/test/tools/llvm-ar/response.test |
 | llvm/test/tools/llvm-readobj/thin-archive.test |
 | llvm/test/DebugInfo/symbolize-missing-file.test |
 | llvm/test/tools/llvm-objcopy/ELF/add-section.test |
 | llvm/test/tools/llvm-xray/X86/no-such-file.txt |
Commit
f7443905af1e06eaacda1e437fff8d54dc89c487
by dantrushin[Statepoint] Handle `undef` operands in statepoint.
Currently when spilling statepoint register operands in FixupStatepoints we do not pay attention that it might be `undef`. We just generate a spill, which may lead to verifier error because we have a use without def.
To handle it, let FixupStateponts ignore `undef` register operands completely and change them to some constant value when generating stack map. Use same value as used by ISel for this purpose (0xFEFEFEFE).
Reviewed By: reames
Differential Revision: https://reviews.llvm.org/D94703
|
 | llvm/test/CodeGen/X86/statepoint-fixup-undef.mir |
 | llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp |
 | llvm/lib/CodeGen/StackMaps.cpp |
Commit
9399681a57cef143dc4d087706947a03af819ef5
by kai[Doc] Fix example in codegen doc.
The attributes in the example are placed wrong: They belong after the type, not after the parameter name.
Reviewed by: abhina.sreeskantharajan
Differential Revision: https://reviews.llvm.org/D94683
|
 | llvm/docs/CodeGenerator.rst |
Commit
36710c38c1b741ff9cc70060893d53fc24c07833
by caroline.concatto[NFC]Migrate VectorCombine.cpp to use InstructionCost
This patch changes these functions: vectorizeLoadInsert isExtractExtractCheap foldExtractedCmps scalarizeBinopOrCmp getShuffleExtract foldBitcastShuf to use the class InstructionCost when calling TTI.get<something>Cost().
This patch is part of a series of patches to use InstructionCost instead of unsigned/int for the cost model functions. See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html See this patch for the introduction of the type: https://reviews.llvm.org/D91174
ps.:This patch adds the test || !NewCost.isValid(), because we want to return false when: !NewCost.isValid && !OldCost.isValid()->the cost to transform it expensive and !NewCost.isValid() && OldCost.isValid() Therefore for simplication we only add test for !NewCost.isValid()
Differential Revision: https://reviews.llvm.org/D94069
|
 | llvm/lib/Transforms/Vectorize/VectorCombine.cpp |
Commit
e6d758de82b6f93f81e71617aeb5a37e57d6ada9
by flo[InferAttrs] Mark some library functions as willreturn.
This patch marks some library functions as willreturn. On the first pass, I excluded most functions that interact with streams/the filesystem.
Along with willreturn, it also adds nounwind to a set of math functions. There probably are a few additional attributes we can add for those, but that should be done separately.
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D94684
|
 | llvm/test/Transforms/LICM/strlen.ll |
 | llvm/test/Transforms/InferFunctionAttrs/annotate.ll |
 | llvm/lib/Transforms/Utils/BuildLibCalls.cpp |
Commit
ead71a23edde5f8a1acfdd75bd01f1fa6e0c4014
by sd.fertile[PowerPC][AIX]Do not emit xxspltd mnemonic on AIX.
A bug in the system assembler can assemble the xxspltd extended menemonic into the wrong instruction (extracting the wrong element). Emit the full xxpermdi with all operands to work around the problem.
Differential Revision: https://reviews.llvm.org/D94419
|
 | llvm/test/CodeGen/PowerPC/xxpermdi_mnemonics.s |
 | llvm/test/MC/PowerPC/modern-aix-as.s |
 | llvm/lib/Target/PowerPC/PPCInstrVSX.td |
Commit
2040c1110b661caae7999abc0158a7f57a6400fb
by djolertrk[CSInfo][MIPS] Update CSInfo in delay slot filler
In MipsDelaySlotFiller, when replacing old call-branch with the compact branch instruction, an assertion is caused by erasing the old call with unhandled CSInfo. The problem was reported in PR48695. This patch fixes it, by moving call site info from the old call instruction to its replace. Patch by Nikola Tesic Differential revision: https://reviews.llvm.org/D94685
|
 | llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp |
 | llvm/test/DebugInfo/MIR/Mips/call-site-info-update-delay-slot-filler.mir |
Commit
d1c4e859ce42c35c61a0db2f1eb8a4209be4503d
by spatel[SLP] reduce opcode API dependency in reduction cost calc; NFC
The icmp opcode is now hard-coded in the cost model call. This will make it easier to eventually remove all opcode queries for min/max patterns as we transition to intrinsics.
|
 | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp |
Commit
3dbbadb8ef53d1e91785c17ccd70848de7e842e9
by spatel[SLP] rename reduction query for min/max ops; NFC
This will avoid confusion once we start matching min/max intrinsics. All of these hacks to accomodate cmp+sel idioms should disappear once we canonicalize to min/max intrinsics.
|
 | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp |
Commit
55c557a5d25fd0f4db55fc4a406a1ea74594cfad
by dmitry.preobrazhensky[AMDGPU][MC] Refactored parsing of dpp ctrl
Summary of changes: - simplified code to improve maintainability; - replaced lex() with higher level parser functions; - improved errors handling.
Reviewers: rampitec
Differential Revision: https://reviews.llvm.org/D94777
|
 | llvm/test/MC/AMDGPU/regression/bug28538.s |
 | llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp |
 | llvm/test/MC/AMDGPU/gfx10_err_pos.s |
Commit
34a2c138c8960b47a35054312ebd746b320cac03
by flo[LoopRotate] Precommit test for prepare-for-lto handling.
Precommit test for D94232.
|
 | llvm/test/Transforms/LoopRotate/call-prepare-for-lto.ll |
Commit
30b8f55378cc57f7589694ca9bc4212ce7c2f4ec
by dmitry.preobrazhenskyFix for sanitizer issue in 55c557a
|
 | llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp |
Commit
ce06475da94f1040d17d46d471dd48478576a76f
by llvm-dev[X86][AVX] IsElementEquivalent - add matchShuffleWithUNPCK + VBROADCAST/VBROADCAST_LOAD handling
Specify LHS/RHS operands in matchShuffleWithUNPCK's calls to isTargetShuffleEquivalent, and handle VBROADCAST/VBROADCAST_LOAD matching in IsElementEquivalent
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/test/CodeGen/X86/avx512-shuffles/partial_permute.ll |
 | llvm/test/CodeGen/X86/avg.ll |
Commit
63393828078c382e8e69d9b8146372b70bbce20f
by wingo[WebAssembly] Add support for table linking to wasm-ld
This patch adds support to wasm-ld for linking multiple table references together, in a manner similar to wasm globals. The indirect function table is synthesized as needed.
To manage the transitional period in which the compiler doesn't yet produce TABLE_NUMBER relocations and doesn't residualize table symbols, the linker will detect object files which have table imports or definitions, but no table symbols. In that case it will synthesize symbols for the defined and imported tables.
As a change, relocatable objects are now written with table symbols, which can cause symbol renumbering in some of the tests. If no object file requires an indirect function table, none will be written to the file. Note that for legacy ObjFile inputs, this test is conservative: as we don't have relocs for each use of the indirecy function table, we just assume that any incoming indirect function table should be propagated to the output.
Differential Revision: https://reviews.llvm.org/D91870
|
 | lld/test/wasm/locals-duplicate.test |
 | lld/wasm/InputFiles.h |
 | lld/test/wasm/shared.ll |
 | lld/wasm/SymbolTable.h |
 | lld/wasm/MarkLive.cpp |
 | lld/wasm/Symbols.cpp |
 | lld/wasm/Symbols.h |
 | lld/wasm/InputFiles.cpp |
 | lld/wasm/SyntheticSections.h |
 | lld/wasm/Writer.cpp |
 | lld/test/wasm/init-fini.ll |
 | lld/wasm/SymbolTable.cpp |
 | lld/wasm/SyntheticSections.cpp |
 | lld/test/wasm/alias.s |
 | lld/test/wasm/section-symbol-relocs.yaml |
 | lld/wasm/Driver.cpp |
 | lld/test/wasm/signature-mismatch.ll |
 | lld/test/wasm/stack-pointer.ll |
 | lld/test/wasm/weak-alias.ll |
 | lld/test/wasm/export-table-explicit.test |
 | lld/test/wasm/local-symbols.ll |
 | lld/test/wasm/pie.ll |
Commit
d806618636f8a82bfc3f620e1fad83af4d2a2575
by wingo[WebAssembly] MC layer writes table symbols to object files
Now that the linker handles table symbols, we can allow the frontend to produce them.
Depends on D91870.
Differential Revision: https://reviews.llvm.org/D92215
|
 | llvm/test/MC/WebAssembly/type-index.s |
 | llvm/test/MC/WebAssembly/function-alias.ll |
 | llvm/test/MC/WebAssembly/debug-info.ll |
 | llvm/test/MC/WebAssembly/weak-alias.s |
 | llvm/lib/MC/WasmObjectWriter.cpp |
 | llvm/test/MC/WebAssembly/global-ctor-dtor.ll |
 | llvm/test/MC/WebAssembly/reloc-pic.s |
 | llvm/test/MC/WebAssembly/debug-info64.ll |
Commit
f5fcbe4e3c68584ef4858590a079f17593feabbd
by nicholas.guy[AArch64] Further restricts when a dup(*ext) can be rearranged
In most cases, the dup(*ext) pattern can be rearranged to perform the extension on the vector side, allowing for further vector-specific optimisations to be made. However the initial checks for this conversion were insufficient, allowing invalid encodings to be attempted (causing compilation to fail).
Differential Revision: https://reviews.llvm.org/D94778
|
 | llvm/test/CodeGen/AArch64/aarch64-dup-ext-crash.ll |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
Commit
16bf02c3a19d4e1f4a19cb243de612e17f54f5a9
by nicholas.guyReland "[AArch64] Attempt to sink mul operands""
This relands dda60035e9f0769c8907cdf6561489e0435c2275, which was reverted by dbaa6a1858a42f72b683f700d3bd7a9632f7a518
|
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
 | llvm/test/CodeGen/AArch64/aarch64-matrix-umull-smull.ll |
Commit
9f32f1d6fbfa4f4d654876e29c1c2b84e18b1a2e
by arjunpitchanathan[MLIR] Support checking if two FlatAffineConstraints are equal
This patch adds support for checking if two PresburgerSets are equal. In particular, one can check if two FlatAffineConstraints are equal by constructing PrebsurgerSets from them and comparing these.
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D94915
|
 | mlir/unittests/Analysis/PresburgerSetTest.cpp |
 | mlir/lib/Analysis/PresburgerSet.cpp |
 | mlir/include/mlir/Analysis/PresburgerSet.h |
Commit
69295815ed92cc125f7ae0a0c41c99fd507dad9d
by david.green[ARM] Update test target triple. NFC
|
 | llvm/test/CodeGen/ARM/ParallelDSP/smlad1.ll |
 | llvm/test/CodeGen/ARM/ParallelDSP/smlad2.ll |
 | llvm/test/CodeGen/ARM/ParallelDSP/aliasing.ll |
 | llvm/test/CodeGen/ARM/ParallelDSP/smlad12.ll |
 | llvm/test/CodeGen/ARM/ParallelDSP/smlad4.ll |
 | llvm/test/CodeGen/ARM/ParallelDSP/smlaldx-1.ll |
 | llvm/test/CodeGen/ARM/ParallelDSP/smlad5.ll |
 | llvm/test/CodeGen/ARM/ParallelDSP/smlald2.ll |
 | llvm/test/CodeGen/ARM/ParallelDSP/smlad3.ll |
 | llvm/test/CodeGen/ARM/ParallelDSP/smlald0.ll |
 | llvm/test/CodeGen/ARM/ParallelDSP/smlald1.ll |
 | llvm/test/CodeGen/ARM/ParallelDSP/smladx-1.ll |
 | llvm/test/CodeGen/ARM/ParallelDSP/smlad9.ll |
 | llvm/test/CodeGen/ARM/ParallelDSP/smlad8.ll |
 | llvm/test/CodeGen/ARM/ParallelDSP/multi-use-loads.ll |
 | llvm/test/CodeGen/ARM/ParallelDSP/smlad0.ll |
 | llvm/test/CodeGen/ARM/ParallelDSP/smlad10.ll |
 | llvm/test/CodeGen/ARM/ParallelDSP/smlaldx-2.ll |
 | llvm/test/CodeGen/ARM/ParallelDSP/smlad11.ll |
Commit
275716d6db79a6da3d5cee12139dd0c0abf8fd07
by usx[clangd] Derive new signals in CC from ASTSignals.
This patch only introduces new signals but does not use their value in scoring a CC candidate. Usage of these signals in CC ranking in both heiristics and ML model will be introduced in later patches.
Differential Revision: https://reviews.llvm.org/D94473
|
 | clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp |
 | clang-tools-extra/clangd/CodeComplete.cpp |
 | clang-tools-extra/clangd/Quality.cpp |
 | clang-tools-extra/clangd/Quality.h |
 | clang-tools-extra/clangd/ClangdServer.cpp |
 | clang-tools-extra/clangd/CodeComplete.h |
Commit
1d04dc52dd24d791970e56053cdd67fe149b0554
by lxfind[Coroutine] Do not CoroElide if there are musttail calls
This is to address https://bugs.llvm.org/show_bug.cgi?id=48626. When there are musttail calls that use parameters aliasing the newly created coroutine frame, the existing implementation will fatal. We simply cannot perform CoroElide in such cases. In theory a precise analysis can be done to check whether the parameters of the musttail call actually alias the frame, but it's very hard to do it before the transformation happens. Also in most cases the existence of musttail call is generated due to symmetric transfers, and in those cases alias analysis won't be able to tell that they don't alias anyway.
Differential Revision: https://reviews.llvm.org/D94834
|
 | llvm/lib/Transforms/Coroutines/CoroElide.cpp |
 | llvm/test/Transforms/Coroutines/coro-elide-musttail.ll |
Commit
e7dc083a410f187e143138b4956993370626268b
by david.green[ARM] Don't handle low overhead branches in AnalyzeBranch
It turns our that the BranchFolder and IfCvt does not like unanalyzable branches that fall-through. This means that removing the unconditional branches from the end of tail predicated instruction can run into asserts and verifier issues.
This effectively reverts 372eb2bbb6fb903ce76266e659dfefbaee67722b, but adds handling to t2DoLoopEndDec which are not branches, so can be safely skipped.
|
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/fast-fp-loops.ll |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/varying-outer-2d-reduction.ll |
 | llvm/test/CodeGen/Thumb2/mve-satmul-loops.ll |
 | llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp |
 | llvm/test/CodeGen/Thumb2/mve-vecreduce-loops.ll |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/mve-float-loops.ll |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/sibling-loops.ll |
 | llvm/test/CodeGen/Thumb2/mve-float32regloops.ll |
 | llvm/test/CodeGen/Thumb2/mve-float16regloops.ll |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/while-loops.ll |
 | llvm/test/CodeGen/Thumb2/aligned-nonfallthrough.ll |
 | llvm/test/CodeGen/Thumb2/mve-scatter-increment.ll |
 | llvm/test/CodeGen/Thumb2/mve-gather-tailpred.ll |
 | llvm/test/CodeGen/Thumb2/mve-blockplacement.ll |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/vcmp-vpst-combination.ll |
 | llvm/test/CodeGen/Thumb2/mve-gather-scatter-optimisation.ll |
 | llvm/test/CodeGen/Thumb2/mve-vldshuffle.ll |
 | llvm/test/CodeGen/Thumb2/mve-gather-increment.ll |
Commit
fa9851ebfee48014a1c48a7e7d625d9ecff3ebad
by arjunpitchanathan[MLIR] NFC: simplify PresburgerSet::isEqual
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D94918
|
 | mlir/lib/Analysis/PresburgerSet.cpp |
Commit
a5a6164f6de5bea2ad1e78445684cc81fe632e56
by flo[AArch64] Add test to check the attributes for some intrinsics.
|
 | llvm/test/Assembler/aarch64-intrinsics-attributes.ll |
Commit
ca7e27054c25c2bc6cf88879d73745699251412c
by spatel[SLP] add more FMF tests for fmax/fmin reductions; NFC
|
 | llvm/test/Transforms/SLPVectorizer/X86/fminnum.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/fmaxnum.ll |
Commit
b42ff9fb038206c7967e22ceef2c7ea8275dc198
by sam[RISCV][NFC] Increase test coverage of Zbt extension
Add Zbt (ternary) extension code generation to the select lowering tests since it can have a significant impact on how select is lowered.
While we are here make the neg-abs commands more consistent with the other tests.
Reviewed By: lenary
Differential Revision: https://reviews.llvm.org/D94798
|
 | llvm/test/CodeGen/RISCV/neg-abs.ll |
 | llvm/test/CodeGen/RISCV/bare-select.ll |
 | llvm/test/CodeGen/RISCV/select-const.ll |
 | llvm/test/CodeGen/RISCV/select-optimize-multiple.ll |
 | llvm/test/CodeGen/RISCV/select-and.ll |
 | llvm/test/CodeGen/RISCV/select-optimize-multiple.mir |
 | llvm/test/CodeGen/RISCV/select-bare.ll |
 | llvm/test/CodeGen/RISCV/select-cc.ll |
 | llvm/test/CodeGen/RISCV/select-or.ll |
Commit
50ae6a3ac9bdf640ecc69fe6540b08a8b4355398
by flo[AArch64] Make target intrinsics DefaultAttrIntrinsics.
DefaultAttrIntrinsics was introduced to add very common attributes to a large set of intrinsics.
Currently the added attributes include:
nofree nosync nounwind willreturn
I think those should hold for most AArch64 target intrinsics, but there are too many to check manually. This patch makes most AArch64 target intrinsics DefaultAttrsIntrinsics.
Some notable exceptions I think are exclusive loads and stores as well as the memory barrier intrinsics, for which nosync does not apply I think.
Reviewed By: SjoerdMeijer
Differential Revision: https://reviews.llvm.org/D94687
|
 | llvm/test/Assembler/aarch64-intrinsics-attributes.ll |
 | llvm/include/llvm/IR/IntrinsicsAArch64.td |
Commit
2f92386e721acd7badac06b67229537c4f0adfad
by adhemerval.zanella[LLD][ELF][AArch64] Set _GLOBAL_OFFSET_TABLE_ at the start of .got
The commit 18aa0be36ed9 changed the default GotBaseSymInGotPlt to true for AArch64. This is different than binutils, where _GLOBAL_OFFSET_TABLE_ points at the start or .got.
It seems to not intefere with current relocations used by LLVM. However as indicated by PR#40357 [1] gcc generates R_AARCH64_LD64_GOTPAGE_LO15 for -pie (in fact it also generated the relocation for -fpic).
This change is requires to correctly handle R_AARCH64_LD64_GOTPAGE_LO15 by lld from objects generated by gcc.
[1] https://bugs.llvm.org/show_bug.cgi?id=40357
|
 | lld/test/ELF/global-offset-table-position-aarch64.s |
 | lld/ELF/Arch/AArch64.cpp |
Commit
291ac7e622d542f8b25f74bc28051762edc90938
by flo[AArch64] Revert back to Intrinsic<> for TME instructions.
This patch reverts back to Intrinsic for the instructions for the transactional memory extension, so nosync is not included.
|
 | llvm/include/llvm/IR/IntrinsicsAArch64.td |
 | clang/test/CodeGen/aarch64-tme.cpp |
Commit
a58aceffad61ebffb1a860763299b3307041efa6
by Raphael Isemann[lldb][docs] Use 'any' as the default role in LLDB's sphinx project
sphinx processes text in backticks depending on what 'role' it has (e.g., `:code:\`blub\`` -> role is `code`). If no role is provided, the default role is taken which is right now using the default value of `content`. `content` only really makes the text cursive which isn't really useful for anything right now.
Sphinx recommends using the `any` role by default [1] as that turns text in backticks without an explicit roles into some kind of smart reference. If we did this in LLDB, then we could just reference SB API classes by doing `\`SBValue\`` instead of typing out the rather verbose `:py:class:`/`:py:func:`/... role before each reference. This would be especially nice when writing the SB API docs itself as we constantly have to reference other classes.
[1] https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-any
Reviewed By: JDevlieghere
Differential Revision: https://reviews.llvm.org/D94899
|
 | lldb/docs/conf.py |
 | lldb/docs/use/python.rst |
 | lldb/docs/use/variable.rst |
Commit
28ea50f524b56e11b608ca1f768d2981579ebe75
by kazu[llvm] Populate std::vector at construction time (NFC)
|
 | llvm/lib/ObjectYAML/MachOEmitter.cpp |
 | llvm/lib/ObjectYAML/DWARFEmitter.cpp |
 | llvm/lib/ProfileData/SampleProf.cpp |
Commit
dc300beba7a849aac44c39ccc450a575db99bc14
by kazu[STLExtras] Add a default value to drop_begin
This patch adds the default value of 1 to drop_begin.
In the llvm codebase, 70% of calls to drop_begin have 1 as the second argument. The interface similar to with std::next should improve readability.
This patch converts a couple of calls to drop_begin as examples.
Differential Revision: https://reviews.llvm.org/D94858
|
 | llvm/include/llvm/ADT/STLExtras.h |
 | llvm/lib/Transforms/Utils/LoopUtils.cpp |
 | llvm/unittests/ADT/STLExtrasTest.cpp |
Commit
23b0ab2acb424e3e74722c0183e5c5ac84e6ea4c
by kazu[llvm] Use the default value of drop_begin (NFC)
|
 | llvm/lib/Transforms/Scalar/LoopInterchange.cpp |
 | llvm/lib/Analysis/ModuleSummaryAnalysis.cpp |
 | llvm/lib/Analysis/ScalarEvolution.cpp |
 | llvm/lib/Target/X86/X86MCInstLower.cpp |
 | llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp |
 | llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp |
 | llvm/lib/CodeGen/CodeGenPrepare.cpp |
 | llvm/lib/Analysis/LoopInfo.cpp |
 | llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp |
 | llvm/lib/Transforms/IPO/OpenMPOpt.cpp |
 | llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp |
 | llvm/lib/CodeGen/SafeStackLayout.cpp |
 | llvm/tools/llvm-xray/xray-stacks.cpp |
 | llvm/lib/Analysis/VFABIDemangling.cpp |
 | llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp |
Commit
196cc96f9a643d1cb828f48ef15ec30d0de24df7
by adamcz[clang] Allow LifetimeExtendedTemporary to have no access specifier
The check only runs in debug mode during serialization, but assert()-fail on: struct S { const int& x = 7; }; in C++ mode.
Differential Revision: https://reviews.llvm.org/D94804
|
 | clang/lib/AST/DeclBase.cpp |
 | clang/test/PCH/cxx-reference.h |
Commit
2c51bef76cbf0149101b9e7c7c658b4a58657929
by craig.topper[RISCV] Add a test of vector sadd.overflow to demonstrate intrinsics with multiple scalable vector results.
This builds on D94142 where scalable vectors are allowed in structs.
I did have to fix one scalable vector issue in the vector type creation for these intrinsics where we used getVectorNumElements instead of ElementCount.
Differential Revision: https://reviews.llvm.org/D94149
|
 | llvm/test/CodeGen/RISCV/rvv/saddo-sdnode.ll |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp |
Commit
5d431c3d32c7736d74c6a9dfe4a9a43f183d880f
by craig.topperRevert "[RISCV] Add a test of vector sadd.overflow to demonstrate intrinsics with multiple scalable vector results."
This reverts commit 2c51bef76cbf0149101b9e7c7c658b4a58657929.
I seem to have messed up the check lines in the test.
|
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp |
 | llvm/test/CodeGen/RISCV/rvv/saddo-sdnode.ll |
Commit
79e798aca38baa260b9f3318991232dd1b5fc3f6
by craig.topperRecommit "[RISCV] Add a test of vector sadd.overflow to demonstrate intrinsics with multiple scalable vector results."
This recommits 2c51bef76cbf0149101b9e7c7c658b4a58657929.
I've fixed the broken check line from when I renamed the test function.
Original commit message: This builds on D94142 where scalable vectors are allowed in structs.
I did have to fix one scalable vector issue in the vector type creation for these intrinsics where we used getVectorNumElements instead of ElementCount.
|
 | llvm/test/CodeGen/RISCV/rvv/saddo-sdnode.ll |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp |
Commit
01a13f127a8b17c7827cc19302fc612532249795
by Louis Dionne[libc++] Rename check-cxx-deps to cxx-test-depends for consistency
Several subprojects have targets that do the same thing, and they all follow the same naming convention: llvm-test-depends, clang-test-depends, lld-test-depends, etc.
This makes libc++ consistent with other LLVM projects. Thanks to Duncan Exon Smith for noticing and suggesting the change.
Differential Revision: https://reviews.llvm.org/D94499
|
 | libcxx/docs/TestingLibcxx.rst |
 | libcxx/test/CMakeLists.txt |
Commit
417f613743239a716d812443ba131207d78c6c9d
by stellaraccident[NFC] Update some mlir python documentation.
* Development setup recommendations. * Test updates to match what we actually do. * Update cmake variable `PYTHON_EXECUTABLE` -> `Python3_EXECUTABLE` to match the upgrade to python3 repo wide.
|
 | mlir/docs/Bindings/Python.md |
Commit
2776be43f0c28031348d2b18a050a8d6d01120f2
by Louis Dionne[libc++] improve feature test macro script
I've been playing a bit with the `generate_feature_test_macro_components.py` script and replaced some hardcoded values with extra code generation (generate ALL the things). The output is the same and it makes updating the script less work for the coming 25 C++ standards (until 2 digit number overflow).
Feel free to 'veto' if you think it's overkill.
Differential Revision: https://reviews.llvm.org/D94530
|
 | libcxx/utils/generate_feature_test_macro_components.py |
Commit
d9b6e4d583c5585b756680e6da3fbd0bb8f0a722
by stellaraccidentNFC: Document current MLIR Python ODS conventions.
* We had let the documentation get stale and catching it up prior to proposing changes.
|
 | mlir/docs/Bindings/Python.md |
Commit
aa3a59e0c69e16ff25ee991636247f9f99bfc34d
by Andrey.Churbanov[OpenMP][NFC] Fix test
The test fails if memkind library is accessible.
|
 | openmp/runtime/test/api/omp_alloc_null_fb.c |
Commit
22b68440e1647e16b5ee24b924986207173c02d1
by nikita.ppv[PredicateInfo] Add more and/or tests (NFC)
|
 | llvm/test/Transforms/Util/PredicateInfo/testandor.ll |
Commit
1c31459153647a21da9b5cdbb01f78bccfb341a5
by craig.topper[RISCV] Remove empty Sched instantiations from the end of InstAlias defs. NFCI
InstAliases don't need scheduling information so I'm not sure what these lines were even doing. Especially since the records don't have names.
|
 | llvm/lib/Target/RISCV/RISCVInstrInfoB.td |
Commit
5b77ac32b1150d066b35b45d6d982f4b4a1f62ff
by spatel[SLP] match maxnum/minnum intrinsics as FP reduction ops
After much refactoring over the last 2 weeks to the reduction matching code, I think this change is finally ready.
We effectively broke fmax/fmin vector reduction optimization when we started canonicalizing to intrinsics in instcombine, so this should restore that functionality for SLP.
There are still FMF problems here as noted in the code comments, but we should be avoiding miscompiles on those for fmax/fmin by restricting to full 'fast' ops (negative tests are included).
Fixing FMF propagation is a planned follow-up.
Differential Revision: https://reviews.llvm.org/D94913
|
 | llvm/test/Transforms/SLPVectorizer/X86/fmaxnum.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/fminnum.ll |
 | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp |
 | llvm/test/Transforms/PhaseOrdering/X86/vector-reductions-expanded.ll |
Commit
2cb4a96a99e8acbf57a31d4d06ed5e21799d878e
by Louis Dionne[libc++] NFCI: Refactor allocator_traits
The implementation had a lot of boilerplate and was more complicated than necessary. This NFC refactoring introduces a few macros to reduce code duplication, and uses a consistent style and formatting for the whole file.
Differential Revision: https://reviews.llvm.org/D94544
|
 | libcxx/include/__memory/allocator_traits.h |
 | libcxx/include/memory |
Commit
d27bb5c375ca8e96e15168587a3bcd91b244fcad
by spatel[x86] add cast to avoid compile-time warning; NFC
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
fe301f474977da0b82548652ef4bbd058542d076
by kazu[LoopInfo] Fix a typo in compareLoops
The code here is checking to see if two sets are identical. OtherBlocksSet should point to OtherL->getBlocksSet() instead.
Differential Revision: https://reviews.llvm.org/D94926
|
 | llvm/include/llvm/Analysis/LoopInfoImpl.h |
Commit
395c737d9fcefb0fb99ac6c524b1d47e697d31d6
by aqjune[SimplifyCFG] Update SimplifyBranchOnICmpChain to recognize select form of and/or
This patch teaches SimplifyCFG::SimplifyBranchOnICmpChain to understand select form of (x == C1 || x == C2 || ...) / (x != C1 && x != C2 && ...) and optimize them into switch if possible. D93065 has more context about the transition, including links to the list of optimizations being updated.
Differential Revision: https://reviews.llvm.org/D93943
|
 | llvm/test/Transforms/SimplifyCFG/switch_create.ll |
 | llvm/lib/Transforms/Utils/SimplifyCFG.cpp |
Commit
9d81073acb49d2bdf32dc3477310dd20ffa0436f
by kkwli0[OpenMP][Docs] Fix typos in FAQ (NFC)
|
 | openmp/docs/SupportAndFAQ.rst |
Commit
14573d44ae097969a6168fbf14cc7f796442a296
by arthur.j.odwyerRegenerate the feature test macro unit-tests. NFCI.
Somehow commit 1f1250151f222ba391d05dcc173f4b6c65d05ca2 added the right code but with the wrong whitespace.
|
 | libcxx/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp |
 | libcxx/test/std/language.support/support.limits/support.limits.general/type_traits.version.pass.cpp |
Commit
0441df94ad874c0c59a3785bd54a3d2f9a616fac
by aqjune[InstCombine,InstSimplify] Optimize select followed by and/or/xor
This patch adds `A & (A && B)` -> `A && B` (similarly for or + logical or)
Also, this patch adds `~(select C, (icmp pred X, Y), const)` -> `select C, (icmp pred' X, Y), ~const`.
Alive2 proof: merge_and: https://alive2.llvm.org/ce/z/teMR97 merge_or: https://alive2.llvm.org/ce/z/b4yZUp xor_and: https://alive2.llvm.org/ce/z/_-TXHi xor_or: https://alive2.llvm.org/ce/z/2uYx_a
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D94861
|
 | llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp |
 | llvm/lib/Analysis/InstructionSimplify.cpp |
 | llvm/test/Transforms/InstCombine/select-safe-transforms.ll |
Commit
2d89ebd5d17b8d8800606880fe02cd867e4a0b90
by aqjuneAddress unused variable warning
|
 | llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp |
Commit
a9b3303a8847e100ae23fa711f9b5b8963ebdaf9
by czhengszRevert "[NFC] [TargetRegisterInfo] add one use check to lookThruCopyLike."
This reverts commit 3bdf4507b66348ad78df4655a8e4f36c3fc10f3c.
Post commit comments need to be addressed first.
|
 | llvm/lib/CodeGen/TargetRegisterInfo.cpp |
 | llvm/include/llvm/CodeGen/TargetRegisterInfo.h |
Commit
c535a7fdadb4679327ebb1b3b82c73c9ff6a164a
by yuanke.luo[X86] Fix tile spill merge issue.
This is a additional bug fix for c5be0e0cc0. The distance for the spill instructions is wrong in previous patch.
Differential Revision: https://reviews.llvm.org/D94772
|
 | llvm/test/CodeGen/X86/AMX/amx-spill-merge.ll |
 | llvm/lib/CodeGen/InlineSpiller.cpp |
Commit
bc713f6a004723d1325bc16e1efc32d0ac82f939
by richardPR48763: Better handling for classes that inherit a default constructor.
The C++ standard wording doesn't appear to properly handle the case where a class inherits a default constructor from a base class. Various properties of classes are defined in terms of the corresponding property of the default constructor, and in this case, the class does not have a default constructor despite being default-constructible, which the wording doesn't handle properly.
This change implements a tentative fix for these problems, which has also been proposed to the C++ committee: if a class would inherit a default constructor, and does not explicitly declare one, then one is implicitly declared.
|
 | clang/test/CXX/special/class.ctor/p6-0x.cpp |
 | clang/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p15.cpp |
 | clang/include/clang/AST/DeclCXX.h |
 | clang/test/CXX/special/class.inhctor/p1.cpp |
 | clang/test/CXX/special/class.inhctor/p2.cpp |
 | clang/lib/AST/DeclCXX.cpp |
 | clang/include/clang/AST/CXXRecordDeclDefinitionBits.def |
Commit
61f69153e8dd7956d03ce46e30257c5bb3e41873
by nemanja.i.ibm[PowerPC] Sign extend comparison operand for signed atomic comparisons
As of 8dacca943af8a53a23b1caf3142d10fb4a77b645, we sign extend the atomic loaded operand for signed subword comparisons. However, the assumption that the other operand is correctly sign extended doesn't always hold. This patch sign extends the other operand if it needs to be sign extended.
This is a second fix for https://bugs.llvm.org/show_bug.cgi?id=30451
Differential revision: https://reviews.llvm.org/D94058
|
 | llvm/test/CodeGen/PowerPC/atomics-regression.ll |
 | llvm/lib/Target/PowerPC/PPCISelLowering.cpp |
 | llvm/test/CodeGen/PowerPC/sign-ext-atomics.ll |
Commit
e147eccafa157668c9cd0eb26f0042ad82425874
by yuanke.luo[X86][AMX] Clear AMX lit test case.
Add nounwind attribute to avoid generating cfi instructions. Also make global buffer 64 bytes align in lit test case.
Differential Revision: https://reviews.llvm.org/D94910
|
 | llvm/test/CodeGen/X86/AMX/amx-intrinsic-chain.ll |
 | llvm/test/CodeGen/X86/AMX/amx-spill-merge.ll |
 | llvm/test/CodeGen/X86/AMX/amx-config.ll |
 | llvm/test/CodeGen/X86/AMX/amx-type.ll |
 | llvm/test/CodeGen/X86/AMX/amx-across-func.ll |
 | llvm/test/CodeGen/X86/AMX/amx-spill.ll |
Commit
e3065ce238475ec202c707f4c58d90df171626ca
by richardDR2064: decltype(E) is only a dependent type if E is type-dependent, not if E is merely instantiation-dependent.
Previously reverted in 34e72a146111dd986889a0f0ec8767b2ca6b2913; re-committed with a fix to an issue that caused name mangling to assert.
|
 | clang/test/SemaTemplate/temp_arg_template_cxx1z.cpp |
 | clang/include/clang/AST/DependenceFlags.h |
 | clang/test/CodeGenCXX/mangle-subst.cpp |
 | clang/www/cxx_dr_status.html |
 | clang/test/Sema/invalid-bitwidth-expr.mm |
 | clang/lib/AST/ASTContext.cpp |
 | clang/lib/AST/ItaniumMangle.cpp |
 | clang/test/CXX/drs/dr20xx.cpp |
 | clang/test/SemaTemplate/dependent-expr.cpp |
 | clang/lib/AST/Type.cpp |
 | clang/test/SemaCXX/invalid-template-base-specifier.cpp |
Commit
fbb83f18b5485218ad3c36c1d079c89f061372b8
by richardPR24076, PR33655, C++ CWG 1558: Consider the instantiation-dependence of the nested-name-specifier when determining whether a qualified type is instantiation-dependent.
Previously reverted in 25a02c3d1a688d3cd18faef96c75fa553efbbac7 due to causing us to reject some code. It turns out that the rejected code was ill-formed (no diagnostic required).
|
 | clang/www/cxx_dr_status.html |
 | clang/lib/AST/ItaniumMangle.cpp |
 | clang/test/CXX/drs/dr15xx.cpp |
 | clang/test/CodeGenCXX/mangle-template.cpp |
 | clang/test/SemaTemplate/partial-spec-instantiate.cpp |
 | clang/include/clang/AST/Type.h |
 | clang/test/SemaTemplate/instantiation-dependence.cpp |
Commit
5a391d38ac6c561ba908334d427f26124ed9132e
by richardFollowing up on PR48517, fix handling of template arguments that refer to dependent declarations.
Treat an id-expression that names a local variable in a templated function as being instantiation-dependent.
This addresses a language defect whereby a reference to a dependent declaration can be formed without any construct being value-dependent. Fixing that through value-dependence turns out to be problematic, so instead this patch takes the approach (proposed on the core reflector) of allowing the use of pointers or references to (but not values of) dependent declarations inside value-dependent expressions, and instead treating template arguments as dependent if they evaluate to a constant involving such dependent declarations.
This ends up affecting a bunch of OpenMP tests, due to OpenMP imprecisely handling instantiation-dependent constructs, bailing out early instead of processing dependent constructs to the extent possible when handling the template.
Previously committed as 8c1f2d15b826591cdf6bd6b468b8a7d23377b29e, and reverted because a dependency commit was reverted.
|
 | clang/include/clang/AST/TemplateBase.h |
 | clang/lib/AST/ExprCXX.cpp |
 | clang/test/OpenMP/target_teams_distribute_dist_schedule_messages.cpp |
 | clang/test/OpenMP/target_teams_distribute_simd_dist_schedule_messages.cpp |
 | clang/include/clang/AST/Expr.h |
 | clang/test/OpenMP/target_simd_collapse_messages.cpp |
 | clang/test/OpenMP/distribute_dist_schedule_messages.cpp |
 | clang/test/OpenMP/target_teams_distribute_parallel_for_dist_schedule_messages.cpp |
 | clang/test/OpenMP/target_update_to_messages.cpp |
 | clang/test/OpenMP/teams_distribute_parallel_for_dist_schedule_messages.cpp |
 | clang/lib/AST/ComputeDependence.cpp |
 | clang/lib/Sema/SemaTemplateInstantiate.cpp |
 | clang/test/OpenMP/distribute_simd_dist_schedule_messages.cpp |
 | clang/test/OpenMP/distribute_parallel_for_simd_dist_schedule_messages.cpp |
 | clang/lib/AST/TemplateBase.cpp |
 | clang/test/OpenMP/target_teams_distribute_parallel_for_simd_dist_schedule_messages.cpp |
 | clang/test/OpenMP/task_messages.cpp |
 | clang/test/OpenMP/teams_distribute_simd_dist_schedule_messages.cpp |
 | clang/lib/AST/ExprConstant.cpp |
 | clang/test/SemaCXX/warn-unused-lambda-capture.cpp |
 | clang/test/OpenMP/distribute_parallel_for_dist_schedule_messages.cpp |
 | clang/test/SemaTemplate/temp_arg_nontype_cxx20.cpp |
 | clang/include/clang/Sema/Sema.h |
 | clang/test/OpenMP/target_parallel_for_simd_collapse_messages.cpp |
 | clang/test/OpenMP/target_parallel_for_simd_ordered_messages.cpp |
 | clang/test/SemaTemplate/temp_arg_nontype_cxx1z.cpp |
 | clang/lib/AST/Expr.cpp |
 | clang/lib/Sema/SemaTemplate.cpp |
 | clang/test/OpenMP/target_update_from_messages.cpp |
 | clang/test/OpenMP/teams_distribute_dist_schedule_messages.cpp |
 | clang/lib/Sema/SemaOverload.cpp |
 | clang/test/SemaTemplate/temp_arg_nontype_cxx17.cpp |
 | clang/test/OpenMP/teams_distribute_parallel_for_simd_dist_schedule_messages.cpp |
Commit
4b574008aef5a7235c1f894ab065fe300d26e786
by richard[c++20] P1907R1: Support for generalized non-type template arguments of scalar type.
Previously committed as 9e08e51a20d0d2b1c5724bb17e969d036fced4cd, and reverted because a dependency commit was reverted. This incorporates the following follow-on commits that were also reverted:
7e84aa1b81e72d44bcc58ffe1731bfc7abb73ce0 by Simon Pilgrim ed13d8c66781b50ff007cb089c5905f9bb9e8af2 by me 95c7b6cadbc9a3d4376ef44edbeb3c8bb5b8d7fc by Sam McCall 430d5d8429473c2b10b109991d7577a3cea41140 by Dave Zarzycki
|
 | clang/test/CodeGenCXX/mangle-template.cpp |
 | clang/lib/AST/ODRHash.cpp |
 | clang/lib/CodeGen/CGDebugInfo.cpp |
 | clang/lib/AST/MicrosoftMangle.cpp |
 | clang/lib/Sema/SemaOverload.cpp |
 | clang/include/clang/AST/RecursiveASTVisitor.h |
 | lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp |
 | clang/tools/libclang/CIndex.cpp |
 | clang/lib/Sema/SemaTemplate.cpp |
 | clang/lib/AST/ItaniumMangle.cpp |
 | clang-tools-extra/clangd/DumpAST.cpp |
 | clang/test/CodeGenCXX/template-arguments.cpp |
 | clang-tools-extra/clangd/index/remote/Client.cpp |
 | clang/tools/libclang/CXCursor.cpp |
 | clang/lib/Sema/SemaTemplateInstantiate.cpp |
 | clang/lib/AST/TemplateBase.cpp |
 | clang/lib/Serialization/ASTReader.cpp |
 | clang/include/clang/AST/ASTContext.h |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/include/clang/AST/TemplateArgumentVisitor.h |
 | clang/lib/AST/TypeLoc.cpp |
 | clang/lib/Sema/SemaTemplateDeduction.cpp |
 | clang/test/CodeGenCXX/mangle-ms-templates.cpp |
 | clang/lib/AST/Decl.cpp |
 | clang/lib/Serialization/ASTWriter.cpp |
 | clang/test/SemaTemplate/temp_arg_nontype_cxx17.cpp |
 | clang/lib/Sema/SemaTemplateVariadic.cpp |
 | lldb/include/lldb/lldb-enumerations.h |
 | clang/lib/Index/USRGeneration.cpp |
 | clang/include/clang/AST/TemplateBase.h |
 | clang-tools-extra/clangd/FindTarget.cpp |
 | clang/include/clang/Sema/Sema.h |
 | clang/lib/AST/ASTStructuralEquivalence.cpp |
 | clang/lib/CodeGen/CGExprConstant.cpp |
 | clang/lib/Sema/TreeTransform.h |
 | clang/lib/Sema/SemaLookup.cpp |
 | clang/include/clang/AST/PropertiesBase.td |
 | clang/lib/AST/StmtProfile.cpp |
 | clang/lib/AST/ASTImporter.cpp |
 | clang/lib/AST/ASTContext.cpp |
 | clang/test/SemaTemplate/temp_arg_nontype_cxx20.cpp |
Commit
24672ddea3c97fd1eca3e905b23c0116d7759ab8
by Lang Hames[ORC] Move OrcError.h to include/llvm/ExecutionEngine/Orc/Shared.
OrcShared is the correct home for this header since Orc was split in 1d0676b54c4. (It should have been moved in that commit, but was overlooked).
|
 | llvm/include/llvm/ExecutionEngine/Orc/Shared/OrcError.h |
 | llvm/include/llvm/ExecutionEngine/Orc/OrcError.h |
 | llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h |
 | llvm/lib/ExecutionEngine/Orc/Core.cpp |
 | llvm/include/llvm/ExecutionEngine/Orc/Shared/RPCUtils.h |
 | llvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp |
 | llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h |
 | llvm/include/llvm/ExecutionEngine/Orc/Shared/Serialization.h |
 | llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h |
 | llvm/lib/ExecutionEngine/Orc/Shared/OrcError.cpp |
 | llvm/lib/ExecutionEngine/Orc/LLJIT.cpp |
 | llvm/unittests/ExecutionEngine/Orc/ResourceTrackerTest.cpp |
Commit
bfbbb62b22f8ba7cabd3b4dece4e72f62b2d972b
by sivachandra[libc][NFC] Use ASSERT_EQ instead of EXPECT_EQ in fenv/exception_status_test
|
 | libc/test/src/fenv/exception_status_test.cpp |
Commit
7dadcd02d6ce0278723c87736f6278610da0ddb2
by joker.ephFix a few GCC compiler warnings (NFC)
|
 | mlir/lib/CAPI/Dialect/Shape.cpp |
 | mlir/tools/mlir-tblgen/OpPythonBindingGen.cpp |
 | mlir/lib/CAPI/Dialect/SCF.cpp |
 | mlir/lib/CAPI/Dialect/Tensor.cpp |
 | mlir/lib/Rewrite/ByteCode.cpp |
 | mlir/lib/CAPI/Dialect/Linalg.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/Sparsification.cpp |
 | mlir/tools/mlir-tblgen/OpFormatGen.cpp |
 | mlir/lib/CAPI/Dialect/Standard.cpp |
 | mlir/lib/ExecutionEngine/SparseUtils.cpp |
Commit
ffb254978cf4e7a9cdbb4cbb51bfc589072353c1
by sivachandra[libc][NFC][Obvious] Add a missing dep.
|
 | libc/include/CMakeLists.txt |
Commit
9a0900dc4c6b3390fc886b7b556196da82ba1204
by nullptr.cpp[NFC][AIX][XCOFF] Fix compile warning on strncpy
GCC warning: ``` In file included from /usr/include/string.h:495, from /usr/include/c++/9/cstring:42, from /llvm-project/llvm/include/llvm/ADT/Hashing.h:53, from /llvm-project/llvm/include/llvm/ADT/ArrayRef.h:12, from /llvm-project/llvm/include/llvm/MC/MCAsmBackend.h:12, from /llvm-project/llvm/lib/MC/XCOFFObjectWriter.cpp:14: In function ‘char* strncpy(char*, const char*, size_t)’, inlined from ‘{anonymous}::Section::Section(const char*, llvm::XCOFF::SectionTypeFlags, bool, {anonymous}::CsectGroups)’ at /llvm-project/llvm/lib/MC/XCOFFObjectWriter.cpp:146:12: /usr/include/x86_64-linux-gnu/bits/string_fortified.h:106:34: warning: ‘char* __builtin_strncpy(char*, const char*, long unsigned int)’ specified bound 8 equals destination size [-Wstringop-truncation] 106 | return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest)); | ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ```
Reviewed By: hubert.reinterpretcast
Differential Revision: https://reviews.llvm.org/D94872
|
 | llvm/lib/MC/XCOFFObjectWriter.cpp |
Commit
9cf511aa08ae2a5b94e9cefe3fc60cc33358519b
by shihpo.hung[RISCV] Add intrinsics for vector AMO operations
Add vamoswap, vamoadd, vamoxor, vamoand, vamoor, vamomin, vamomax, vamominu, vamomaxu intrinsics.
Reviewed By: craig.topper, khchen
Differential Revision: https://reviews.llvm.org/D94589
|
 | llvm/test/CodeGen/RISCV/rvv/vamoxor-rv64.ll |
 | llvm/test/CodeGen/RISCV/rvv/vamomin-rv64.ll |
 | llvm/test/CodeGen/RISCV/rvv/vamoadd-rv32.ll |
 | llvm/test/CodeGen/RISCV/rvv/vamominu-rv64.ll |
 | llvm/test/CodeGen/RISCV/rvv/vamoand-rv64.ll |
 | llvm/test/CodeGen/RISCV/rvv/vamoxor-rv32.ll |
 | llvm/include/llvm/IR/IntrinsicsRISCV.td |
 | llvm/test/CodeGen/RISCV/rvv/vamomaxu-rv32.ll |
 | llvm/test/CodeGen/RISCV/rvv/vamominu-rv32.ll |
 | llvm/test/CodeGen/RISCV/rvv/vamoadd-rv64.ll |
 | llvm/test/CodeGen/RISCV/rvv/vamoand-rv32.ll |
 | llvm/test/CodeGen/RISCV/rvv/vamoor-rv32.ll |
 | llvm/test/CodeGen/RISCV/rvv/vamoswap-rv64.ll |
 | llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td |
 | llvm/test/CodeGen/RISCV/rvv/vamomax-rv32.ll |
 | llvm/test/CodeGen/RISCV/rvv/vamoor-rv64.ll |
 | llvm/test/CodeGen/RISCV/rvv/vamomin-rv32.ll |
 | llvm/test/CodeGen/RISCV/rvv/vamomaxu-rv64.ll |
 | llvm/test/CodeGen/RISCV/rvv/vamomax-rv64.ll |
 | llvm/test/CodeGen/RISCV/rvv/vamoswap-rv32.ll |
Commit
a11f8b1ad66d68ca0a3a277ce776007abff9c7eb
by marek.kurdej[libc++] [P0935] [C++20] Eradicating unnecessarily explicit default constructors from the standard library.
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0935r0.html
Reviewed By: ldionne, #libc
Differential Revision: https://reviews.llvm.org/D91292
|
 | libcxx/include/random |
 | libcxx/test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.cauchy/ctor_double_double.pass.cpp |
 | libcxx/test/std/containers/container.adaptors/stack/stack.cons/ctor_rcontainer.pass.cpp |
 | libcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons/ctor_default.pass.cpp |
 | libcxx/test/std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.poisson/ctor_double.pass.cpp |
 | libcxx/test/std/numerics/rand/rand.eng/rand.eng.mers/ctor_result_type.pass.cpp |
 | libcxx/test/std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.gamma/ctor_double_double.pass.cpp |
 | libcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons/ctor_comp_rcontainer.pass.cpp |
 | libcxx/test/std/numerics/rand/rand.dis/rand.dist.uni/rand.dist.uni.real/ctor_int_int.pass.cpp |
 | libcxx/include/sstream |
 | libcxx/test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.normal/ctor_double_double.pass.cpp |
 | libcxx/test/std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.exp/ctor_double.pass.cpp |
 | libcxx/test/std/containers/container.adaptors/queue/queue.cons/ctor_rcontainer.pass.cpp |
 | libcxx/test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.t/ctor_double.pass.cpp |
 | libcxx/test/std/containers/container.adaptors/queue/queue.cons/ctor_default.pass.cpp |
 | libcxx/test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.chisq/ctor_double.pass.cpp |
 | libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/default.pass.cpp |
 | libcxx/test/std/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.bernoulli/ctor_double.pass.cpp |
 | libcxx/test/std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.weibull/ctor_double_double.pass.cpp |
 | libcxx/include/locale |
 | libcxx/test/std/input.output/string.streams/stringbuf/stringbuf.cons/default.pass.cpp |
 | libcxx/test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.f/ctor_double_double.pass.cpp |
 | libcxx/test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.lognormal/ctor_double_double.pass.cpp |
 | libcxx/test/std/numerics/rand/rand.device/ctor.pass.cpp |
 | libcxx/test/std/numerics/rand/rand.eng/rand.eng.lcong/ctor_result_type.pass.cpp |
 | libcxx/include/queue |
 | libcxx/test/std/input.output/string.streams/stringstream.cons/default.pass.cpp |
 | libcxx/include/regex |
 | libcxx/include/strstream |
 | libcxx/test/std/containers/container.adaptors/stack/stack.cons/ctor_container.pass.cpp |
 | libcxx/test/std/containers/container.adaptors/queue/queue.cons/ctor_container.pass.cpp |
 | libcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons/ctor_comp_container.pass.cpp |
 | libcxx/docs/Cxx2aStatusPaperStatus.csv |
 | libcxx/test/std/input.output/string.streams/ostringstream/ostringstream.cons/default.pass.cpp |
 | libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/ctor.pass.cpp |
 | libcxx/include/algorithm |
 | libcxx/test/std/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.negbin/ctor_int_double.pass.cpp |
 | libcxx/test/std/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.bin/ctor_int_double.pass.cpp |
 | libcxx/test/std/input.output/string.streams/istringstream/istringstream.cons/default.pass.cpp |
 | libcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons/ctor_comp.pass.cpp |
 | libcxx/test/std/numerics/rand/rand.dis/rand.dist.uni/rand.dist.uni.real/ctor_real_real.pass.cpp |
 | libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_codecvt.pass.cpp |
 | libcxx/test/std/re/re.results/re.results.const/default.pass.cpp |
 | libcxx/test/std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.extreme/ctor_double_double.pass.cpp |
 | libcxx/test/std/numerics/rand/rand.dis/rand.dist.uni/rand.dist.uni.int/ctor_int_int.pass.cpp |
 | libcxx/test/std/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.geo/ctor_double.pass.cpp |
 | libcxx/test/std/containers/container.adaptors/stack/stack.cons/ctor_default.pass.cpp |
 | libcxx/test/std/numerics/rand/rand.eng/rand.eng.sub/ctor_result_type.pass.cpp |
 | libcxx/test/support/make_implicit.h |
Commit
d4bb3ef53276213d3ba8987da5f76f423b86160d
by gchatelet[libc][NFC] Remove dead code
|
 | libc/benchmarks/LibcMemoryBenchmarkMain.cpp |
 | libc/benchmarks/JSON.cpp |
Commit
e517dff50a4f933d0729026901b14c7c1112a359
by gchatelet[libc][NFC] remove dependency on non standard ssize_t
`ssize_t` is from POSIX and is not standard unfortunately. Rewritting the code so it doesn't depend on it.
Differential Revision: https://reviews.llvm.org/D94760
|
 | libc/src/string/memmove.cpp |
Commit
b86e7ae66cb988dda33445c29fa64f93e7ca9c3c
by tbaeder[clang][driver][NFC][obvious] Remove obsolete unistd.h include
getuid() is not being called in this file anymore.
|
 | clang/lib/Driver/ToolChains/Clang.cpp |
Commit
418df4a6ab35d343cc0f2608c90a73dd9b8d0ab1
by wingo[WebAssembly] call_indirect issues table number relocs
This patch changes to make call_indirect explicitly refer to the corresponding function table, residualizing TABLE_NUMBER relocs against it.
With this change, wasm-ld now sees all references to tables, and can link multiple tables.
Differential Revision: https://reviews.llvm.org/D90948
|
 | llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp |
 | llvm/lib/MC/WasmObjectWriter.cpp |
 | llvm/test/MC/WebAssembly/reloc-code.ll |
 | llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp |
 | llvm/lib/Target/WebAssembly/WebAssemblyInstrCall.td |
 | lld/test/wasm/compress-relocs.ll |
 | llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp |
 | llvm/test/MC/WebAssembly/basic-assembly.s |
 | llvm/test/MC/WebAssembly/tail-call-encodings.s |
 | llvm/test/MC/WebAssembly/weak-alias.s |
 | llvm/test/CodeGen/WebAssembly/function-pointer64.ll |
 | lld/test/wasm/shared.ll |
 | llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp |
 | llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h |
 | llvm/test/MC/WebAssembly/type-index.s |
 | llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp |
 | llvm/test/MC/WebAssembly/call-indirect-relocs.s |
 | lld/test/wasm/call-indirect.ll |
 | llvm/test/CodeGen/WebAssembly/multivalue.ll |
Commit
831a143e50cac873ec095fc7139a485173ba8c35
by wingo[WebAssembly] Change prefix on data segment flags to WASM_DATA_SEGMENT
Element sections will also need flags, so we shouldn't squat the WASM_SEGMENT namespace.
Depends on D90948.
Differential Revision: https://reviews.llvm.org/D92315
|
 | lld/wasm/Writer.cpp |
 | lld/wasm/OutputSections.cpp |
 | llvm/include/llvm/BinaryFormat/Wasm.h |
 | llvm/lib/MC/WasmObjectWriter.cpp |
 | llvm/lib/Object/WasmObjectFile.cpp |
 | llvm/lib/ObjectYAML/WasmYAML.cpp |
 | llvm/lib/ObjectYAML/WasmEmitter.cpp |
Commit
39a2a233f88443e865758ba73c156787c77ead2c
by jan_svoboda[clang][cli] Parse Lang and CodeGen options separately
This patch moves the parsing of `{Lang,CodeGen}Options` from `parseSimpleArgs` to the original `Parse{Lang,CodeGen}Args` functions.
This ensures all marshalled `LangOptions` are being parsed **after** the call `setLangDefaults`, which in turn enables us to marshall `LangOptions` that somehow depend on the defaults. (In a future patch.)
Now, `CodeGenOptions` need to be parsed **after** `LangOptions`, because `-cl-mad-enable` (a `CodeGenOpt`) depends on the value of `-cl-fast-relaxed-math` and `-cl-unsafe-math-optimizations` (`LangOpts`).
Unfortunately, this removes the nice property that marshalled options get parsed in the exact order they appear in the `.td` file. Now we cannot be sure that a TableGen record referenced in `ImpliedByAnyOf` has already been parsed. This might cause an ordering issues (i.e. reading value of uninitialized variable). I plan to mitigate this by moving each `XxxOpt` group from `parseSimpleArgs` back to their original parsing function. With this setup, if an option from group `A` references option from group `B` in TableGen, the compiler will require us to make the `CompilerInvocation` member for `B` visible in the parsing function for `A`. That's where we notice that `B` didn't get parsed yet.
Reviewed By: Bigcheese
Differential Revision: https://reviews.llvm.org/D94682
|
 | clang/test/Frontend/diagnostics-order.c |
 | clang/include/clang/Frontend/CompilerInvocation.h |
 | clang/lib/Frontend/CompilerInvocation.cpp |
 | clang/include/clang/Driver/Options.td |
Commit
7e1d2224b42b411acf2d3cb20e3cf5a564ef79bb
by yuanke.luo[X86][AMX] Fix the typo.
The dpbsud should be dpbssd.
Differential Revision: https://reviews.llvm.org/D94943
|
 | clang/lib/Headers/amxintrin.h |
 | clang/test/CodeGen/X86/amx_api.c |
Commit
c3ce2627949eee3b5d3012db78f670919a49b35d
by david.sherwood[NFC] Make remaining cost functions in LoopVectorize.cpp use InstructionCost
A previous patch has already changed getInstructionCost to return an InstructionCost type. This patch changes the other various getXXXCost functions to return an InstructionCost too. This is a non-functional change - I've added a few asserts that the costs are valid in places where we're selecting between vector call and intrinsic costs. However, since we don't yet return invalid costs from any of the TTI implementations these asserts should not fire.
See this patch for the introduction of the type: https://reviews.llvm.org/D91174 See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html
Differential Revision: https://reviews.llvm.org/D94065
|
 | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp |
Commit
170199f56262cc3c80591d332da3128bc25ada96
by tpopp[llvm][nvptx] add atomicity to counter in ISelLowering
Previously uniqueCallSite could have race conditions between different threads. Now it is accessed with an atomic RMW and will be unique between different threads.
Differential Revision: https://reviews.llvm.org/D94784
|
 | llvm/lib/Target/NVPTX/NVPTXISelLowering.h |
 | llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp |
Commit
95b63c7b139449b2d4084e986ca3f5bfde46b50c
by Lang Hames[ORC] Move LookupRequest from OrcShared to Orc.
It depends on Orc types (SymbolLookupSet), so can't be part of OrcShared.
|
 | llvm/lib/ExecutionEngine/Orc/TPCDynamicLibrarySearchGenerator.cpp |
 | llvm/include/llvm/ExecutionEngine/Orc/TargetProcessControl.h |
 | llvm/lib/ExecutionEngine/Orc/TargetProcessControl.cpp |
 | llvm/include/llvm/ExecutionEngine/Orc/OrcRPCTargetProcessControl.h |
 | llvm/include/llvm/ExecutionEngine/Orc/Shared/TargetProcessControlTypes.h |
Commit
fb5b12e42ef2255aaf6ab43cb426955257302531
by sguelton[lit] Harmonize lit and llvm versionning
In addition to consistency, we'll hit a wall when 11.1.0 gets released, because we cannot represent it with lit versioning scheme.
Differential Revision: https://reviews.llvm.org/D94157
|
 | llvm/utils/lit/lit/__init__.py |