Commit
e24bb698bb445ee785ad25f53aa76b1242aec217
by bjorn.a.pettersson[NewPM] Handle passes with params in -print-before/-print-after
To support options like -print-before=<pass> and -print-after=<pass> the PassBuilder will register PassInstrumentation callbacks as well as a mapping between internal pass class names and the pass names used in those options (and other cmd line interfaces). But for some reason all the passes that takes options where missing in those maps, so for example "-print-after=loop-vectorize" didn't work.
This patch will add the missing entries by also taking care of function and loop passes with params when setting up the class to pass name maps.
One might notice that even with this patch it might be tricky to know what pass name to use in options such as -print-after. This because there only is a single mapping from class name to pass name, while the PassRegistry currently is a bit messy as it sometimes reuses the same class for different pass names (without using the "pass with params" scheme, or the pass-name<variant> syntax).
It gets extra messy in some situations. For example the MemorySanitizerPass can run like this (with debug and print-after) opt -passes='kmsan' -print-after=msan-module -debug-only=msan The 'kmsan' alias for 'msan<kernel>' is just confusing as one might think that 'kmsan' is a separate pass (but the DEBUG_TYPE is still just 'msan'). And since the module pass version of the pass adds a mapping from 'MemorySanitizerPass' to 'msan-module' one need to use 'msan-module' in the print-before and print-after options.
Reviewed By: ychen
Differential Revision: https://reviews.llvm.org/D105006
|
 | llvm/lib/IR/PassInstrumentation.cpp |
 | llvm/lib/Passes/PassRegistry.def |
 | llvm/lib/Passes/PassBuilder.cpp |
 | llvm/test/Other/print-before-after.ll |
Commit
472462c4723978db5a09c0058ddec025e6a6a94b
by bjorn.a.pettersson[NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg'
There was an alias between 'simplifycfg' and 'simplify-cfg' in the PassRegistry. That was the original reason for this patch, which effectively removes the alias.
This patch also replaces all occurrances of 'simplify-cfg' by 'simplifycfg'. Reason for choosing that form for the name is that it matches the DEBUG_TYPE for the pass, and the legacy PM name and also how it is spelled out in other passes such as 'loop-simplifycfg', and in other options such as 'simplifycfg-merge-cond-stores'.
I for some reason the name should be changed to 'simplify-cfg' in the future, then I think such a renaming should be more widely done and not only impacting the PassRegistry.
Reviewed By: aeubanks
Differential Revision: https://reviews.llvm.org/D105627
|
 | llvm/test/Transforms/SimplifyCFG/X86/disable-lookup-table.ll |
 | llvm/tools/bugpoint/CrashDebugger.cpp |
 | llvm/test/Transforms/Coroutines/coro-frame-reuse-alloca-01.ll |
 | llvm/test/Transforms/Coroutines/coro-split-alloc.ll |
 | llvm/test/Transforms/Coroutines/coro-split-musttail1.ll |
 | llvm/test/Transforms/Coroutines/coro-frame-reuse-alloca-04.ll |
 | llvm/lib/FuzzMutate/FuzzerCLI.cpp |
 | llvm/test/Other/print-module-scope.ll |
 | llvm/test/Transforms/Coroutines/coro-split-musttail2.ll |
 | llvm/test/Transforms/Coroutines/coro-eh-aware-edge-split-00.ll |
 | llvm/test/Transforms/Coroutines/ArgAddr.ll |
 | llvm/test/Transforms/Coroutines/coro-alloca-04.ll |
 | llvm/test/Transforms/Coroutines/no-suspend.ll |
 | llvm/test/Transforms/PruneEH/looptest.ll |
 | llvm/lib/Transforms/IPO/PassManagerBuilder.cpp |
 | llvm/test/Transforms/PruneEH/seh-nounwind.ll |
 | llvm/test/Transforms/SimplifyCFG/ARM/switch-to-lookup-table.ll |
 | llvm/test/Transforms/PruneEH/ipo-nounwind.ll |
 | llvm/test/Transforms/Coroutines/coro-split-eh-01.ll |
 | llvm/test/Transforms/Inline/monster_scc.ll |
 | llvm/test/Transforms/SimplifyCFG/convergent.ll |
 | llvm/test/Other/cgscc-disconnected-invalidation.ll |
 | llvm/test/Transforms/SimplifyCFG/X86/switch-table-bug.ll |
 | llvm/test/Transforms/Coroutines/coro-alloc-with-param-O2.ll |
 | llvm/test/Transforms/Coroutines/coro-frame.ll |
 | llvm/test/Other/cgscc-iterate-function-mutation.ll |
 | llvm/test/Transforms/Coroutines/coro-eh-aware-edge-split-02.ll |
 | llvm/test/Transforms/InstCombine/assume-align.ll |
 | llvm/test/Transforms/SimplifyCFG/preserve-llvm-loop-metadata.ll |
 | llvm/test/Transforms/SimplifyCFG/ForwardSwitchConditionToPHI.ll |
 | llvm/test/Transforms/SimplifyCFG/basictest.ll |
 | llvm/test/Transforms/Coroutines/coro-split-02.ll |
 | llvm/test/Transforms/Coroutines/coro-split-sink-lifetime-02.ll |
 | llvm/test/Transforms/SimplifyCFG/rangereduce.ll |
 | llvm/test/Transforms/SimplifyCFG/X86/switch_to_lookup_table.ll |
 | llvm/test/Transforms/Coroutines/coro-alloc-with-param-O0.ll |
 | llvm/test/Transforms/Coroutines/coro-retcon-once-value2.ll |
 | llvm/test/Transforms/Coroutines/coro-split-00.ll |
 | llvm/test/Transforms/LoopUnroll/peel-loop.ll |
 | llvm/test/Transforms/Coroutines/coro-split-dbg.ll |
 | llvm/test/Transforms/Coroutines/coro-frame-arrayalloca.ll |
 | llvm/test/Transforms/SimplifyCFG/1elt-ptr-vec-alignment-crash.ll |
 | llvm/test/Transforms/Coroutines/coro-catchswitch.ll |
 | llvm/test/Transforms/SimplifyCFG/wc-widen-block.ll |
 | llvm/test/Transforms/Coroutines/coro-materialize.ll |
 | llvm/test/Transforms/Coroutines/coro-frame-unreachable.ll |
 | llvm/test/Transforms/Coroutines/coro-split-hidden.ll |
 | llvm/test/Transforms/SimplifyCFG/branch-fold-threshold.ll |
 | llvm/test/Transforms/Coroutines/coro-retcon-unreachable.ll |
 | llvm/test/Analysis/MemorySSA/update-remove-dead-blocks.ll |
 | llvm/test/Other/pass-pipelines.ll |
 | llvm/lib/Passes/PassBuilder.cpp |
 | llvm/test/Transforms/SimplifyCFG/unprofitable-pr.ll |
 | llvm/test/Transforms/Coroutines/coro-frame-reuse-alloca-05.ll |
 | llvm/test/Transforms/LoopUnroll/peel-loop-inner.ll |
 | llvm/test/Transforms/Coroutines/coro-padding.ll |
 | llvm/lib/Analysis/InlineCost.cpp |
 | llvm/test/Transforms/PruneEH/recursivetest.ll |
 | llvm/test/Transforms/Coroutines/coro-alloca-06.ll |
 | llvm/test/Transforms/PruneEH/musttail.ll |
 | llvm/test/Transforms/SimplifyCFG/X86/CoveredLookupTable.ll |
 | llvm/test/Transforms/Coroutines/coro-split-sink-lifetime-01.ll |
 | llvm/test/Transforms/Coroutines/coro-param-copy.ll |
 | llvm/test/Transforms/Coroutines/coro-alloca-01.ll |
 | llvm/test/Transforms/Coroutines/coro-retcon-frame.ll |
 | llvm/test/Transforms/Coroutines/coro-retcon-resume-values2.ll |
 | llvm/test/Transforms/SimplifyCFG/no-md-sink.ll |
 | llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp |
 | llvm/test/Transforms/Coroutines/coro-alloca-07.ll |
 | llvm/test/Transforms/PruneEH/pr26263.ll |
 | llvm/test/Transforms/SimplifyCFG/X86/switch-covered-bug.ll |
 | llvm/test/Transforms/SimplifyCFG/switch_undef.ll |
 | llvm/test/Transforms/Coroutines/coro-split-sink-lifetime-04.ll |
 | llvm/test/Transforms/Coroutines/coro-split-musttail3.ll |
 | llvm/test/Transforms/Coroutines/coro-spill-promise.ll |
 | llvm/test/Transforms/SimplifyCFG/multiple-phis.ll |
 | llvm/test/Transforms/Coroutines/coro-zero-alloca.ll |
 | llvm/test/Transforms/Coroutines/coro-frame-reuse-alloca-03.ll |
 | llvm/test/Transforms/PGOProfile/chr.ll |
 | llvm/lib/Passes/PassRegistry.def |
 | llvm/test/Transforms/Coroutines/coro-spill-defs-before-corobegin.ll |
 | llvm/test/Transforms/SimplifyCFG/X86/sink-common-code.ll |
 | llvm/test/Transforms/Coroutines/coro-frame-reuse-alloca-00.ll |
 | llvm/test/Transforms/Coroutines/coro-spill-after-phi.ll |
 | llvm/test/Transforms/Coroutines/coro-alloca-08.ll |
 | llvm/test/Transforms/PruneEH/operand-bundles.ll |
 | llvm/test/Transforms/Coroutines/coro-heap-elide.ll |
 | llvm/test/Transforms/Coroutines/coro-alloca-03.ll |
 | llvm/test/Transforms/Coroutines/coro-split-musttail.ll |
 | llvm/test/Transforms/Coroutines/coro-byval-param.ll |
 | llvm/test/Transforms/PruneEH/pr23971.ll |
 | llvm/test/Transforms/SimplifyCFG/switch-dead-default.ll |
 | llvm/test/Transforms/Coroutines/coro-debug.ll |
 | llvm/test/Transforms/Coroutines/coro-frame-reuse-alloca-02.ll |
 | llvm/test/Transforms/PruneEH/2008-06-02-Weak.ll |
 | llvm/test/Transforms/Coroutines/coro-eh-aware-edge-split-01.ll |
 | llvm/test/Transforms/Coroutines/coro-alloca-02.ll |
 | llvm/test/Transforms/Coroutines/coro-split-sink-lifetime-03.ll |
 | llvm/test/Transforms/Coroutines/coro-alloca-05.ll |
 | llvm/test/Transforms/Coroutines/coro-catchswitch-cleanuppad.ll |
 | llvm/test/Transforms/Coroutines/coro-split-eh-00.ll |
 | llvm/test/Transforms/PruneEH/simpletest.ll |
 | llvm/test/Transforms/Coroutines/coro-spill-corobegin.ll |
Commit
1db2551cc1a356a67c0967f424d6158e2ea127e3
by bjorn.a.pettersson[NewPM] Rename 'unswitch' to 'simple-loop-unswitch' in PassRegistry
It is confusing to have two ways of specifying the same pass ('simple-loop-unswitch' and 'unswitch'). This patch replaces 'unswitch' by 'simple-loop-unswitch' to get a unique identifier.
Using 'simple-loop-unswitch' instead of 'unswitch' also has the advantage of matching how the pass is named in DEBUG_TYPE etc. So this makes it a bit more consistent how we refer to the pass in options such as -passes, -print-after and -debug-only.
Reviewed By: aeubanks
Differential Revision: https://reviews.llvm.org/D105628
|
 | llvm/test/Transforms/SimpleLoopUnswitch/msan.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/exponential-nontrivial-unswitch.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/trivial-unswitch-profmd.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/nontrivial-unswitch.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/basictest.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/exponential-nontrivial-unswitch-nested.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/partial-unswitch-mssa-threshold.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/nontrivial-unswitch-redundant-switch.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/implicit-null-checks.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/exponential-nontrivial-unswitch2.ll |
 | llvm/test/Analysis/MemorySSA/update-remove-dead-blocks.ll |
 | llvm/test/Other/print-passes.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/not-safe-to-clone.ll |
 | llvm/test/Other/print-before-after.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/nontrivial-unswitch-cost.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/update-scev.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/delete-dead-blocks.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/trivial-unswitch.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/dead-blocks-uses-in-unreachablel-blocks.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/exponential-switch-unswitch.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/guards.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/exponential-nontrivial-unswitch-nested2.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/trivial-unswitch-iteration.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/basictest-profmd.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/endless-unswitch.ll |
 | llvm/lib/Passes/PassRegistry.def |
 | llvm/test/Transforms/SimpleLoopUnswitch/partial-unswitch-update-memoryssa.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/partial-unswitch.ll |
Commit
375694a07bcba3be66864c42a5932be1a22831e2
by dawid_jurekTransform memset + malloc --> calloc (PR25892)
After this change DSE can eliminate malloc + memset and emit calloc. It's https://reviews.llvm.org/D101440 follow-up.
Differential Revision: https://reviews.llvm.org/D103009
|
 | llvm/test/Transforms/DeadStoreElimination/noop-stores.ll |
 | llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp |
Commit
0c39f82f0b3e9268f7699e62f59f960a1bff89fa
by Tim Northover[Support] reorder Threading includes to avoid conflict with FreeBSD headers
FreeBSD's condvar.h (included by user.h in Threading.inc) uses a "struct thread" that conflicts with llvm::thread if both are visible when it's included.
So this moves our #include after the FreeBSD code.
|
 | llvm/lib/Support/Unix/Threading.inc |
 | llvm/lib/Support/Threading.cpp |
 | llvm/lib/Support/Windows/Threading.inc |
Commit
6d87ca08aed19fd4e975788ffd3d25592447ff8e
by Alexander.Richardson[ELF] Refactor DynamicReloc to fix incorrect relocation addends
This patch changes the DynamicReloc class to store an enum instead of the overloaded useSymVA member to make it easier to understand and fix incorrect addends being written in some corner cases. The change is motivated by a follow-up review that checks the value of implicit Elf_Rel addends written to the output file.
This patch fixes an incorrect output when using `-z rela` for i386 files with R_386_GOT32 relocations (not that this really matters since it's an unsupported configuration). Storing the relocation expression kind also addresses an incorrect addend FIXME in ppc64-abs64-dyn.s introduced in D63383.
DynamicReloc now also has a special case for the MIPS TLS relocations (DynamicReloc::AgainstSymbolWithTargetVA) since the R_MIPS_TLS_TPREL{32/64} the symbol VA to the GOT for preemptible symbols. I'm not sure if the symbol value actually should be written for R_MIPS_TLS_TPREL32, but this patch does not attempt to change that behaviour.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D100490
|
 | lld/test/ELF/got32-i386-pie-rw.s |
 | lld/ELF/SyntheticSections.cpp |
 | lld/ELF/Thunks.cpp |
 | lld/ELF/Relocations.cpp |
 | lld/test/ELF/i386-zrel-zrela.s |
 | lld/ELF/SyntheticSections.h |
 | lld/ELF/Writer.cpp |
 | lld/test/ELF/ppc64-abs64-dyn.s |
 | lld/test/ELF/ppc64-long-branch-pi.s |
Commit
35c5e564e628666af7903f6525b0de1a5917f071
by Alexander.Richardson[ELF] Check the Elf_Rel addends for dynamic relocations
There used to be many cases where addends for Elf_Rel were not emitted in the final object file (mostly when building for MIPS64 since the input .o files use RELA but the output uses REL). These cases have been fixed since, but this patch adds a check to ensure that the written values are correct. It is based on a previous patch that I added to the CHERI fork of LLD since we were using MIPS64 as a baseline. The work has now almost entirely shifted to RISC-V and Arm Morello (which use Elf_Rela), but I thought it would be useful to upstream our local changes anyway.
This patch adds a (hidden) command line flag --check-dynamic-relocations that can be used to enable these checks. It is also on by default in assertions builds for targets that handle all dynamic relocations kinds that LLD can emit in Target::getImplicitAddend(). Currently this is enabled for ARM, MIPS, and I386.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D101450
|
 | lld/ELF/Config.h |
 | lld/ELF/Arch/X86.cpp |
 | lld/ELF/Target.cpp |
 | lld/ELF/OutputSections.cpp |
 | lld/ELF/Driver.cpp |
 | lld/ELF/Arch/Mips.cpp |
 | lld/test/ELF/invalid/broken-relaxation-x64.test |
 | lld/ELF/Writer.cpp |
 | lld/ELF/OutputSections.h |
 | lld/ELF/Options.td |
 | lld/ELF/Arch/ARM.cpp |
 | lld/ELF/SyntheticSections.h |
 | lld/test/ELF/reloc-sec-before-relocated.test |
Commit
f4b0c9abfb8fb142ad644756b9959bd34811bc4b
by Alexander.Richardson[ELF] Implement X86_64::getImplicitAddend()
This allows checking dynamic relocation addends for -z rel and --apply-dynamic-relocs output.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D101451
|
 | lld/ELF/Driver.cpp |
 | lld/ELF/Arch/X86_64.cpp |
 | lld/test/ELF/reloc-sec-before-relocated.test |
 | lld/test/ELF/invalid/broken-relaxation-x64.test |
Commit
79332fb722024558e16c2ab22feae5816b7bb886
by Alexander.Richardson[ELF] Write R_X86_64_IRELATIVE addends with -z rel
I found this missing case with the new --check-dynamic-relocation flag while running the lld tests with --apply-dynamic-relocs enabled by default.
This also fixes a broken CHECK in lld/test/ELF/x86-64-gotpc-relax.s: The test wasn't using CHECK-NEXT, so it was passing despite the output actually containing relocations. I am not sure when this changed, but I think this behaviour is correct.
Found with D101450 + enabling --apply-dynamic-relocs by default.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D101452
|
 | lld/ELF/Arch/X86_64.cpp |
 | lld/test/ELF/x86-64-gotpc-relax.s |
Commit
e5649328428f107962bf82a43299ba126514aae9
by Alexander.Richardson[ELF] Write R_RISCV_IRELATIVE addends with -z rel
I found this missing case with the new --check-dynamic-relocation flag while running the lld tests with --apply-dynamic-relocs enabled by default.
This is the same as D101452 just for RISC-V
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D101454
|
 | lld/test/ELF/riscv-ifunc-nonpreemptible.s |
 | lld/ELF/Arch/RISCV.cpp |
Commit
97fe63753938680cbbb968737f85ff0caedf221c
by Alexander.Richardson[ELF] Implement RISCV::getImplicitAddend()
This allows checking dynamic relocation addends for -z rel and --apply-dynamic-relocs output.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D101455
|
 | lld/ELF/Arch/RISCV.cpp |
 | lld/ELF/Driver.cpp |
Commit
cc7cb9523e6aafd8079ba2bf2185d051221e5451
by Alexander.Richardson[ELF][AArch64] Write addends for TLSDESC relocations with -z rel
Since D100490 this case is diagnosed for -z rel. This commit implements R_AARCH64_TLSDESC cases for AArch64::getImplicitAddend() and AArch64::relocate(). However, there are probably further relocation types that need to be handled for full support of -z rel.
Fixes https://bugs.llvm.org/show_bug.cgi?id=47009
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D100544
|
 | lld/ELF/SyntheticSections.cpp |
 | lld/test/ELF/aarch64-tlsdesc-zrel.s |
 | lld/ELF/SyntheticSections.h |
 | lld/ELF/Relocations.cpp |
 | lld/ELF/Arch/AArch64.cpp |
Commit
74da7ae0601728d7996e37c1f1828096e3d19103
by whisperity[NFC][llvm][docs] YamlIO: StringRef validate -> std::string validate
A change in the API happened as per http://reviews.llvm.org/D89463 (latest related commit b9e2b59680ad1bbfd2b9110b3ebf3d2b22cad51b) but the RST documentation was not updated to match this at that time.
|
 | llvm/docs/YamlIO.rst |
Commit
f4877c78c0fc98be47b926439bbfe33d5e1d1b6d
by lebedev.ri[clang] Improve `-Wnull-dereference` diag to be more in-line with reality
* Drop any mention of `volatile`. Please refer to https://reviews.llvm.org/D105338 * Drop address space check - it really doesn't affect the behavior, the store will still be dropped: https://godbolt.org/z/dP8fevxG4
|
 | clang/test/Analysis/taint-generic.c |
 | clang/test/Sema/exprs.c |
 | clang/test/Analysis/inlining/path-notes.cpp |
 | clang/lib/Sema/SemaExpr.cpp |
 | clang/test/Sema/offsetof.c |
 | clang/test/Analysis/cxx-for-range.cpp |
 | clang/test/Analysis/objc-for.m |
 | clang/test/Analysis/NewDelete-checker-test.cpp |
 | clang/test/Parser/expressions.c |
 | clang/test/Analysis/conditional-path-notes.c |
 | clang/test/SemaCXX/member-pointer.cpp |
 | clang/test/Analysis/valist-uninitialized.c |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/test/Analysis/diagnostics/no-prune-paths.c |
 | clang/test/Analysis/objc-arc.m |
Commit
47653db6d2a3964c14cca5ffa73e79aeee292e8b
by hokein.wu[clang] Fix an infinite loop during typo-correction
See https://bugs.llvm.org/show_bug.cgi?id=50797#c6
Differential Revision: https://reviews.llvm.org/D105533
|
 | clang/lib/Sema/SemaExprCXX.cpp |
 | clang/test/Sema/typo-correction-ambiguity.c |
 | clang/test/Sema/typo-correction-no-hang.c |
Commit
a72a44181264fd83e05be958c2712cbd4560aba7
by lebedev.ri[compiler-rt][ASAN] Speculatively fix Windows/dll_control_c.cpp test - use trap
Please refer to https://reviews.llvm.org/D105338, such store will not trap, it will be removed.
|
 | compiler-rt/test/asan/TestCases/Windows/dll_control_c.cpp |
Commit
3485e9bfbd95a4ef16a0a3713f038b13b9e1bc59
by bjorn.a.pettersson[NewPM][FuzzMutate] Fix renaming 'unswitch' to 'simple-loop-unswitch'
This is a follow up to D105628 (commit 1db2551cc1a356a67c096). I had missed to replace 'unswitch' by 'simple-loop-unswitch' in one place.
|
 | llvm/lib/FuzzMutate/FuzzerCLI.cpp |
Commit
dddb225acf1f194c85e29e47ac07205cc38186d1
by patacca[Polly][Isl] Update isl to isl-0.24-52-gd7be01f7
This is needed because the functions `isl_union_{set,map}_get_{set,map}_list` have been exposed to the C++ interface
|
 | polly/lib/External/isl/GIT_HEAD_ID |
 | polly/lib/External/isl/isl_set_list.c |
 | polly/lib/External/isl/include/isl/map_type.h |
 | polly/lib/External/isl/interface/isl.py |
 | polly/lib/External/isl/include/isl/typed_cpp.h |
 | polly/lib/External/isl/include/isl/union_set.h |
 | polly/lib/External/isl/doc/SubmittingPatches |
 | polly/lib/External/isl/include/isl/cpp-checked-conversion.h |
 | polly/lib/External/isl/include/isl/cpp.h |
 | polly/lib/External/isl/isl_list_read_templ.c |
 | polly/lib/External/isl/doc/user.pod |
 | polly/lib/External/isl/include/isl/cpp-checked.h |
Commit
2df37d5ddd38091aafbb7d338660e58836f4ac80
by lebedev.ri[NFC][Codegen] Harden a few tests to not rely that volatile store to null isn't erased
|
 | llvm/test/CodeGen/AArch64/branch-relax-alignment.ll |
 | llvm/test/CodeGen/AArch64/branch-relax-bcc.ll |
 | llvm/test/CodeGen/AMDGPU/early-inline.ll |
Commit
aa9f58cc2c48ca6cfc853a2467cd775dc7622746
by lebedev.riSpeculatively adjust gtest's UnitTest::AddTestPartResult() to not rely on volatile store to null trapping
This fallback path is used at least on PPC. If this doesn't work on some compilers that take this path, then this will have to be changed to either abort, or partitioned to do different things based on the compiler.
Please refer to https://reviews.llvm.org/D105338.
|
 | llvm/utils/unittest/googletest/src/gtest.cc |
Commit
38c9a4068df5c44433da3fc15789cef8ce71367d
by david.green[TTI] Remove IsPairwiseForm from getArithmeticReductionCost
This patch removes the IsPairwiseForm flag from the Reduction Cost TTI hooks, along with some accompanying code for pattern matching reductions from trees starting at extract elements. IsPairWise is now assumed to be false, which was the predominant way that the value was used from both the Loop and SLP vectorizers. Since the adjustments such as D93860, the SLP vectorizer has not relied upon this distinction between paiwise and non-pairwise reductions.
This also removes some code that was detecting reductions trees starting from extract elements inside the costmodel. This case was double-counting costs though, adding the individual costs on the individual instruction _and_ the total cost of the reduction. Removing it changes the costs in llvm/test/Analysis/CostModel/X86/reduction.ll to not double count. The cost of reduction intrinsics is still tested through the various tests in llvm/test/Analysis/CostModel/X86/reduce-xyz.ll.
Differential Revision: https://reviews.llvm.org/D105484
|
 | llvm/include/llvm/Analysis/TargetTransformInfoImpl.h |
 | llvm/lib/Target/ARM/ARMTargetTransformInfo.h |
 | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp |
 | llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp |
 | llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h |
 | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp |
 | llvm/lib/Analysis/TargetTransformInfo.cpp |
 | llvm/include/llvm/Analysis/TargetTransformInfo.h |
 | llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h |
 | llvm/include/llvm/CodeGen/BasicTTIImpl.h |
 | llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp |
 | llvm/lib/Target/X86/X86TargetTransformInfo.cpp |
 | llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp |
 | llvm/lib/Target/X86/X86TargetTransformInfo.h |
 | llvm/test/Analysis/CostModel/X86/reduction.ll |
Commit
9c5e65691e129a816ea4bba10be103ca67172ca5
by mkazantsev[LoopDeletion] Handle switch in proving that loop exits on first iteration
Added check for switch-terminated blocks in loops. Now if a block is terminated with a switch, we try to find out which of the cases is taken on 1st iteration and mark corresponding edge from the block to the case successor as live.
Patch by Dmitry Makogon!
Differential Revision: https://reviews.llvm.org/D105688 Reviewed By: nikic, mkazantsev
|
 | llvm/test/Transforms/LoopDeletion/eval_first_iteration.ll |
 | llvm/lib/Transforms/Scalar/LoopDeletion.cpp |
Commit
9dbeac16ba9b7a5121c0ce5ba8b7eb5c46ce2b15
by llvm-dev[X86] ReplaceNodeResults - fp_to_sint/uint - manually widen v2i32 results to let us add AssertSext/AssertZext
Its proving tricky to move this to the generic legalizer code, so manually insert the v2i32 subvector into v4i32, insert the AssertSext/AssertZext node, then extract the subvector again.
This avoids masks in the truncation/pack code, which means we avoid a PSHUFB in the fp_to_sint/uint code for sub-128 bit types (specific targets can still combine the packs to a pshufb if they have fast variable per-lane shuffles).
This was noticed when I was trying to improve fp_to_sint/uint costs with D103695 (and some targets had very high fp_to_sint costs due to the PSHUFB), so we can then update the fp_to_uint codegen from D89697.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/test/CodeGen/X86/vec_cast3.ll |
 | llvm/test/CodeGen/X86/vec_fp_to_int.ll |
 | llvm/test/CodeGen/X86/vec-strict-fptoint-128.ll |
Commit
1440d4564f79b2f7bee8fc25fc9596f10c6aa3a6
by llvm-devFix MSVC "not all control paths return a value" warning. NFCI.
|
 | lld/ELF/SyntheticSections.cpp |
Commit
329f8197ef59f9bd23328b52d623ba768b51dbb2
by lebedev.ri[NFC][Clang][CodegenOpenCL] Fix test not to rely on volatile store not being removed
|
 | clang/test/CodeGenOpenCL/convergent.cl |
Commit
52aeacfbf5ce5f949efe0eae029e56db171ea1f7
by lebedev.riRevert "Temporarily do not drop volatile stores before unreachable"
This reverts commit 4e413e16216d0c94ada2171f3c59e0a85f4fa4b6, which landed almost 10 months ago under premise that the original behavior didn't match reality and was breaking users, even though it was correct as per the LangRef. But the LangRef change still hasn't appeared, which might suggest that the affected parties aren't really worried about this problem.
Please refer to discussion in: * https://reviews.llvm.org/D87399 (`Revert "[InstCombine] erase instructions leading up to unreachable"`) * https://reviews.llvm.org/D53184 (`[LangRef] Clarify semantics of volatile operations.`) * https://reviews.llvm.org/D87149 (`[InstCombine] erase instructions leading up to unreachable`)
clang has `-Wnull-dereference` which will diagnose the obvious cases of null dereference, it was adjusted in f4877c78c0fc98be47b926439bbfe33d5e1d1b6d, but it will only catch the cases where the pointer is a null literal, it will not catch the cases where an arbitrary store is expected to trap.
Differential Revision: https://reviews.llvm.org/D105338
|
 | llvm/lib/Transforms/Utils/Local.cpp |
 | llvm/lib/Transforms/Utils/SimplifyCFG.cpp |
 | llvm/test/CodeGen/X86/indirect-branch-tracking-eh2.ll |
 | llvm/test/Transforms/InstCombine/volatile_store.ll |
 | llvm/lib/Transforms/InstCombine/InstructionCombining.cpp |
 | llvm/test/Transforms/SimplifyCFG/trapping-load-unreachable.ll |
Commit
e479777d3c8e27f7e236edc9e18d0d7118d0fcfd
by martinRevert "[ScalarEvolution] Fix overflow in computeBECount."
This reverts commit 5b350183cdabd83573bc760ddf513f3e1d991bcb (and also "[NFC][ScalarEvolution] Cleanup howManyLessThans.", 009436e9c1fee1290d62bc0faafe0c0295542f56, to make it apply).
See https://reviews.llvm.org/D105216 for discussion on various miscompilations caused by that commit.
|
 | llvm/test/Analysis/ScalarEvolution/trip-count-unknown-stride.ll |
 | llvm/test/Analysis/ScalarEvolution/2008-11-18-Stride1.ll |
 | llvm/test/Analysis/ScalarEvolution/lt-overflow.ll |
 | llvm/include/llvm/Analysis/ScalarEvolution.h |
 | llvm/test/Analysis/ScalarEvolution/max-trip-count.ll |
 | llvm/test/Analysis/ScalarEvolution/trip-count13.ll |
 | llvm/lib/Analysis/ScalarEvolution.cpp |
 | llvm/test/Analysis/ScalarEvolution/2008-11-18-Stride2.ll |
Commit
beb0e7e338d6c196362745ddebc24ae394bff6f2
by martin[llvm-rc] Make commas in user data structs optional
This matches what rc.exe tolerates in this type.
This fixes cases like this:
1 24 BEGIN "<?xml version=""1.0""?>\n" "<assembly>\n" "</assembly>\n" END
Differential Revision: https://reviews.llvm.org/D105621
|
 | llvm/test/tools/llvm-rc/inline-manifest.test |
 | llvm/test/tools/llvm-rc/Inputs/inline-manifest.rc |
 | llvm/test/tools/llvm-rc/Inputs/tag-user.rc |
 | llvm/tools/llvm-rc/ResourceScriptParser.cpp |
Commit
3f7c9cc27422f7302cf5a683eeb3978e6cb84270
by lebedev.ri[compiler-rt] Conceal UB in sanitizer_common/TestCases/Linux/signal_line.cpp test
Store to null is deleted, so the test no longer did what it was expecting to do. Conceal that by creating null pointer in a more elaborate way, thus retaining original test coverage.
|
 | compiler-rt/test/sanitizer_common/TestCases/Linux/signal_line.cpp |
Commit
9a0152799f8e4a59e0483728c9f11c8a7805616f
by lebedev.ri[compiler-rt] fuzzer: adjust tests to not expect that store to null traps and is not erase
Instead, mostly just trap directly.
|
 | compiler-rt/test/fuzzer/NullDerefTest.cpp |
 | compiler-rt/test/fuzzer/fuzzer-singleinputs.test |
 | compiler-rt/test/fuzzer/fork.test |
 | compiler-rt/test/fuzzer/coverage.test |
 | compiler-rt/test/fuzzer/fuzzer-seed.test |
 | compiler-rt/test/fuzzer/trap.test |
 | compiler-rt/test/fuzzer/ShallowOOMDeepCrash.cpp |
 | compiler-rt/test/fuzzer/fuzzer-segv.test |
 | compiler-rt/test/fuzzer/minimize_crash.test |
 | compiler-rt/test/fuzzer/TrapTest.cpp |
 | compiler-rt/test/fuzzer/null-deref.test |
Commit
75e5f0aac97dca0507a391f3418b18f4f6e44cd7
by zinenko[mlir] factor memref-to-llvm lowering out of std-to-llvm
After the MemRef has been split out of the Standard dialect, the conversion to the LLVM dialect remained as a huge monolithic pass. This is undesirable for the same complexity management reasons as having a huge Standard dialect itself, and is even more confusing given the existence of a separate dialect. Extract the conversion of the MemRef dialect operations to LLVM into a separate library and a separate conversion pass.
Reviewed By: herhut, silvas
Differential Revision: https://reviews.llvm.org/D105625
|
 | mlir/test/Integration/Dialect/Vector/CPU/test-sparse-saxpy-jagged-matvec.mlir |
 | mlir/test/mlir-cpu-runner/bare_ptr_call_conv.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/benchmark_matmul.mlir |
 | mlir/test/lib/Conversion/StandardToLLVM/TestConvertCallOp.cpp |
 | mlir/test/Conversion/StandardToLLVM/convert-static-memref-ops.mlir |
 | mlir/test/Integration/Dialect/SparseTensor/CPU/dense_output.mlir |
 | mlir/test/Conversion/MemRefToLLVM/memref-to-llvm.mlir |
 | mlir/examples/toy/Ch7/mlir/LowerToLLVM.cpp |
 | mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp |
 | mlir/test/mlir-cpu-runner/global_memref.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-3d-input-ndhwc-filter-dhwcf-call.mlir |
 | mlir/lib/Dialect/X86Vector/Transforms/CMakeLists.txt |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-2d-input-nchw-filter-hwcf-call.mlir |
 | mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_mttkrp.mlir |
 | mlir/lib/Conversion/GPUToNVVM/WmmaOpsToNvvm.cpp |
 | mlir/test/mlir-cpu-runner/memref_reshape.mlir |
 | mlir/lib/Conversion/LLVMCommon/ConversionTarget.cpp |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-1d-call.mlir |
 | mlir/lib/Dialect/AMX/Transforms/LegalizeForLLVMExport.cpp |
 | mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp |
 | mlir/test/Conversion/StandardToLLVM/func-memref.mlir |
 | mlir/lib/Conversion/LLVMCommon/CMakeLists.txt |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-2d-call.mlir |
 | mlir/include/mlir/Conversion/LinalgToLLVM/LinalgToLLVM.h |
 | mlir/test/mlir-cpu-runner/memref_reinterpret_cast.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/benchmark_matmul_column_major_as_row_major.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-elementwise.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-2d-nhwc-call.mlir |
 | mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVMPass.cpp |
 | mlir/lib/Dialect/AMX/Transforms/CMakeLists.txt |
 | mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt |
 | mlir/examples/toy/Ch7/CMakeLists.txt |
 | mlir/test/Integration/Dialect/Vector/CPU/test-expand.mlir |
 | mlir/test/Integration/Dialect/Vector/CPU/test-transfer-read-3d.mlir |
 | mlir/test/Integration/Dialect/Vector/CPU/test-vector-distribute.mlir |
 | mlir/lib/Conversion/AsyncToLLVM/CMakeLists.txt |
 | mlir/lib/Conversion/LinalgToLLVM/CMakeLists.txt |
 | mlir/test/Integration/Dialect/Linalg/CPU/rank-reducing-subview.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-2d-nchw-call.mlir |
 | mlir/lib/Dialect/ArmSVE/Transforms/LegalizeForLLVMExport.cpp |
 | mlir/include/mlir/Conversion/MemRefToLLVM/AllocLikeConversion.h |
 | mlir/test/Integration/Dialect/Vector/CPU/test-maskedstore.mlir |
 | mlir/include/mlir/Conversion/ComplexToLLVM/ComplexToLLVM.h |
 | mlir/test/mlir-cpu-runner/copy.mlir |
 | mlir/test/Conversion/MemRefToLLVM/convert-static-memref-ops.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-3d-ndhwc-call.mlir |
 | mlir/test/Conversion/MemRefToLLVM/convert-alloca-scope.mlir |
 | mlir/test/Integration/Dialect/Async/CPU/microbench-linalg-async-parallel-for.mlir |
 | mlir/examples/toy/Ch6/CMakeLists.txt |
 | mlir/lib/Conversion/LinalgToLLVM/LinalgToLLVM.cpp |
 | mlir/tools/mlir-vulkan-runner/CMakeLists.txt |
 | mlir/test/Integration/Dialect/Vector/CPU/test-compress.mlir |
 | mlir/test/mlir-cpu-runner/sgemm_naive_codegen.mlir |
 | mlir/lib/Conversion/GPUCommon/OpToFuncCallLowering.h |
 | mlir/lib/Conversion/GPUToNVVM/CMakeLists.txt |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-comprehensive-bufferize.mlir |
 | mlir/include/mlir/Conversion/Passes.td |
 | mlir/examples/toy/Ch6/mlir/LowerToLLVM.cpp |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-1d-input-nwc-filter-wcf-call.mlir |
 | mlir/test/Conversion/MemRefToLLVM/convert-dynamic-memref-ops.mlir |
 | mlir/lib/Conversion/GPUCommon/GPUOpsLowering.h |
 | mlir/lib/Conversion/OpenMPToLLVM/OpenMPToLLVM.cpp |
 | mlir/test/lib/Conversion/StandardToLLVM/CMakeLists.txt |
 | mlir/test/Integration/Dialect/Linalg/CPU/benchmark_matmul_i8_i8_i32.mlir |
 | mlir/include/mlir/Conversion/StandardToLLVM/ConvertStandardToLLVM.h |
 | mlir/lib/Conversion/OpenMPToLLVM/CMakeLists.txt |
 | mlir/test/mlir-cpu-runner/utils.mlir |
 | mlir/test/Conversion/StandardToLLVM/standard-to-llvm.mlir |
 | mlir/lib/Conversion/CMakeLists.txt |
 | mlir/lib/Conversion/MemRefToLLVM/CMakeLists.txt |
 | mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp |
 | mlir/lib/Dialect/ArmSVE/Transforms/CMakeLists.txt |
 | mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp |
 | mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_out_simple.mlir |
 | mlir/lib/Dialect/X86Vector/Transforms/LegalizeForLLVMExport.cpp |
 | mlir/unittests/ExecutionEngine/CMakeLists.txt |
 | mlir/lib/Conversion/OpenACCToLLVM/CMakeLists.txt |
 | mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-1d-ncw-call.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-tensor-matmul.mlir |
 | mlir/lib/Conversion/ComplexToLLVM/ComplexToLLVM.cpp |
 | mlir/test/Conversion/StandardToLLVM/convert-argattrs.mlir |
 | mlir/test/Conversion/StandardToLLVM/convert-alloca-scope.mlir |
 | mlir/test/Conversion/StandardToLLVM/convert-dynamic-memref-ops.mlir |
 | mlir/test/Integration/Dialect/Standard/CPU/test_subview.mlir |
 | mlir/test/Integration/Dialect/Standard/CPU/test-ceil-floor-pos-neg.mlir |
 | mlir/lib/Conversion/VectorToROCDL/VectorToROCDL.cpp |
 | mlir/test/mlir-cpu-runner/async-value.mlir |
 | mlir/lib/Conversion/GPUToROCDL/CMakeLists.txt |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-3d-call.mlir |
 | mlir/lib/Conversion/ComplexToLLVM/CMakeLists.txt |
 | mlir/lib/Conversion/MemRefToLLVM/AllocLikeConversion.cpp |
 | mlir/test/Integration/Dialect/Vector/CPU/test-transfer-to-loops.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-tensor-e2e.mlir |
 | mlir/test/Integration/Dialect/Async/CPU/microbench-scf-async-parallel-for.mlir |
 | mlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-subtensor-insert-multiple-uses.mlir |
 | mlir/test/Integration/Dialect/Async/CPU/test-async-parallel-for-1d.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-3d-ncdhw-call.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-1d-input-ncw-filter-wcf-call.mlir |
 | mlir/test/Conversion/StandardToLLVM/calling-convention.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-2d-input-nhwc-filter-hwcf-call.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-subtensor-insert.mlir |
 | mlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-3d-input-ncdhw-filter-dhwcf-call.mlir |
 | mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_spmm.mlir |
 | mlir/include/mlir/Conversion/Passes.h |
 | mlir/test/Integration/Dialect/Vector/CPU/test-sparse-dot-matvec.mlir |
 | mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp |
 | mlir/include/mlir/Conversion/MemRefToLLVM/MemRefToLLVM.h |
 | mlir/lib/Conversion/SPIRVToLLVM/CMakeLists.txt |
 | mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_flatten.mlir |
 | mlir/test/Conversion/StandardToLLVM/convert-to-llvmir.mlir |
 | mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sum.mlir |
 | mlir/tools/mlir-vulkan-runner/mlir-vulkan-runner.cpp |
 | mlir/test/python/execution_engine.py |
 | mlir/test/Integration/Dialect/Vector/CPU/test-transfer-read-2d.mlir |
 | mlir/test/mlir-cpu-runner/unranked_memref.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-padtensor.mlir |
 | mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sampled_matmul.mlir |
 | mlir/test/Integration/Dialect/Vector/CPU/test-transfer-read-1d.mlir |
 | mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVMPass.cpp |
 | mlir/lib/Conversion/StandardToLLVM/CMakeLists.txt |
 | mlir/test/Integration/Dialect/Async/CPU/test-async-parallel-for-2d.mlir |
 | mlir/test/Integration/Dialect/Vector/CPU/test-gather.mlir |
 | mlir/test/Integration/Dialect/Vector/CPU/test-transfer-read.mlir |
 | mlir/include/mlir/Conversion/LLVMCommon/ConversionTarget.h |
 | mlir/lib/Conversion/GPUCommon/CMakeLists.txt |
 | mlir/lib/Conversion/OpenACCToLLVM/OpenACCToLLVM.cpp |
 | mlir/test/Integration/Dialect/Vector/CPU/test-maskedload.mlir |
 | mlir/test/Integration/Dialect/Linalg/CPU/matmul-vs-matvec.mlir |
 | mlir/lib/Conversion/SPIRVToLLVM/ConvertLaunchFuncToLLVMCalls.cpp |
 | mlir/test/python/integration/dialects/linalg/opsrun.py |
 | mlir/lib/Conversion/GPUCommon/IndexIntrinsicsOpLowering.h |
 | mlir/lib/Conversion/VectorToROCDL/CMakeLists.txt |
 | mlir/unittests/ExecutionEngine/Invoke.cpp |
 | mlir/include/mlir/Conversion/OpenACCToLLVM/ConvertOpenACCToLLVM.h |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-1d-nwc-call.mlir |
 | mlir/test/mlir-cpu-runner/async.mlir |
 | mlir/test/Integration/Dialect/Vector/CPU/test-scatter.mlir |
 | mlir/test/Integration/Dialect/Vector/CPU/test-transfer-write.mlir |
 | mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_matvec.mlir |
Commit
4e332cd41acb2befa85e20ec1f28413ea4adbb50
by lebedev.riRevert "Transform memset + malloc --> calloc (PR25892)"
It broke `check-msan`, see e.g. https://lab.llvm.org/buildbot/#/builders/18/builds/1934
This reverts commit 375694a07bcba3be66864c42a5932be1a22831e2.
|
 | llvm/test/Transforms/DeadStoreElimination/noop-stores.ll |
 | llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp |
Commit
ffccf96e90d6b726188c3ddbe5142f06762567ad
by Louis Dionne[libc++][ci] Test Clang ToT by default, and add jobs on Clang 11 and 12
It makes the most sense to test with Clang ToT by default since that's exactly what we're trying to QA: that libc++ works with whatever compiler we're going to release next.
|
 | libcxx/utils/ci/buildkite-pipeline.yml |
 | libcxx/utils/ci/run-buildbot |
Commit
f551fb96c7fbe38628f049bfe0e48a6943ee341f
by jeremy.morse[Debug-info][InstrRef] Avoid an unnecessary map ordering
We keep a record of substitutions between debug value numbers post-isel, however we never actually look them up until the end of compilation. As a result, there's nothing gained by the collection being a std::map. This patch downgrades it to being a vector, that's then sorted at the end of compilation in LiveDebugValues.
Differential Revision: https://reviews.llvm.org/D105029
|
 | llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp |
 | llvm/lib/CodeGen/MIRPrinter.cpp |
 | llvm/include/llvm/CodeGen/MachineFunction.h |
 | llvm/lib/CodeGen/MachineFunction.cpp |
Commit
841077a7e9806f6b288c93dca86dc141cbf5a01d
by zhijian[AIX][XCOFF] Use bit order of has_vec and longtbtable bits as defined in AIX header debug.h
Summary:
The bit order of the has_vec and longtbtable bits in the traceback table generated by the XL compiler flipped at some point after v12.1. This is different from the definition is the AIX header debug.h. The change in the XL compiler that caused the deviation from the OS header definition was unintentional. Since both orderings are extant and the XL compiler runtime also expects the ordering defined by the OS, we will correct the output from LLVM to match the defined ordering given by the OS (which is also consistent with the Assembler Language Reference). Mitigation for traceback tables encoded with the wrong ordering is required for either ordering.
Reviewers: XingXue, HubertTong Differential Revision: https://reviews.llvm.org/D105487
|
 | llvm/include/llvm/BinaryFormat/XCOFF.h |
 | llvm/test/DebugInfo/XCOFF/function-sections.ll |
 | llvm/test/CodeGen/PowerPC/aix-emit-tracebacktable-clobber-register.ll |
 | llvm/test/CodeGen/PowerPC/aix-emit-tracebacktable-vectorinfo.ll |
 | llvm/test/DebugInfo/XCOFF/explicit-section.ll |
 | llvm/test/DebugInfo/XCOFF/empty.ll |
 | llvm/test/CodeGen/PowerPC/aix-tracetable-csr.ll |
 | llvm/test/CodeGen/PowerPC/aix-exception.ll |
 | llvm/test/CodeGen/PowerPC/aix-emit-tracebacktable.ll |
 | llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp |
 | llvm/test/CodeGen/PowerPC/aix-emit-tracebacktable-vectorinfo_hasvarg.ll |
Commit
52900486a1b5d270687b7268dc8dd90061889066
by kevin.neal[FPEnv][InstSimplify] Constrained FP support for NaN
Currently InstructionSimplify.cpp knows how to simplify floating point instructions that have a NaN operand. It does not know how to handle the matching constrained FP intrinsic.
This patch teaches it how to simplify so long as the exception handling is not "fpexcept.strict".
Differential Revision: https://reviews.llvm.org/D103169
|
 | llvm/test/Transforms/InstSimplify/fp-undef-poison-strictfp.ll |
 | llvm/test/Transforms/InstSimplify/floating-point-arithmetic-strictfp.ll |
 | llvm/include/llvm/Analysis/InstructionSimplify.h |
 | llvm/include/llvm/IR/FPEnv.h |
 | llvm/test/Transforms/InstSimplify/fast-math-strictfp.ll |
 | llvm/lib/Analysis/InstructionSimplify.cpp |
 | llvm/lib/Transforms/Utils/Local.cpp |
 | llvm/test/Transforms/InstSimplify/X86/fp-nan-strictfp.ll |
 | llvm/test/Transforms/InstSimplify/fdiv-strictfp.ll |
Commit
5035e7be1a8ab923e1a82def7e313cc11c0b176f
by nikita.ppv[IR] Don't accept nullptr as GEP element type
GetElementPtrInst::Create() (and IRBuilder methods based on it) currently accept nullptr as the element type, and will fetch the element type from the pointer in that case. Remove this fallback, as it is incompatible with opaque pointers. I've removed a handful of leftover calls using this behavior as a preliminary step.
Out-of-tree code affected by this change should either pass a proper type, or can temporarily explicitly call getPointerElementType(), if the newly added assertion is encountered.
Differential Revision: https://reviews.llvm.org/D105653
|
 | llvm/include/llvm/IR/Instructions.h |
Commit
97c675d3d43fe02a0ff0a8350d79344c845758af
by thakisRevert "Revert "Temporarily do not drop volatile stores before unreachable""
This reverts commit 52aeacfbf5ce5f949efe0eae029e56db171ea1f7. There isn't full agreement on a path forward yet, but there is agreement that this shouldn't land as-is. See discussion on https://reviews.llvm.org/D105338
Also reverts unreviewed "[clang] Improve `-Wnull-dereference` diag to be more in-line with reality" This reverts commit f4877c78c0fc98be47b926439bbfe33d5e1d1b6d.
And all the related changes to tests: This reverts commit 9a0152799f8e4a59e0483728c9f11c8a7805616f. This reverts commit 3f7c9cc27422f7302cf5a683eeb3978e6cb84270. This reverts commit 329f8197ef59f9bd23328b52d623ba768b51dbb2. This reverts commit aa9f58cc2c48ca6cfc853a2467cd775dc7622746. This reverts commit 2df37d5ddd38091aafbb7d338660e58836f4ac80. This reverts commit a72a44181264fd83e05be958c2712cbd4560aba7.
|
 | clang/test/Analysis/objc-for.m |
 | clang/test/Analysis/valist-uninitialized.c |
 | clang/test/Analysis/NewDelete-checker-test.cpp |
 | compiler-rt/test/fuzzer/fuzzer-segv.test |
 | compiler-rt/test/fuzzer/coverage.test |
 | compiler-rt/test/fuzzer/null-deref.test |
 | clang/test/Analysis/cxx-for-range.cpp |
 | compiler-rt/test/sanitizer_common/TestCases/Linux/signal_line.cpp |
 | llvm/test/CodeGen/AArch64/branch-relax-alignment.ll |
 | llvm/test/Transforms/InstCombine/volatile_store.ll |
 | clang/test/Analysis/inlining/path-notes.cpp |
 | clang/test/Analysis/taint-generic.c |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | compiler-rt/test/fuzzer/fork.test |
 | compiler-rt/test/fuzzer/fuzzer-singleinputs.test |
 | llvm/test/Transforms/SimplifyCFG/trapping-load-unreachable.ll |
 | compiler-rt/test/fuzzer/TrapTest.cpp |
 | clang/test/Analysis/objc-arc.m |
 | clang/test/SemaCXX/member-pointer.cpp |
 | clang/test/Analysis/diagnostics/no-prune-paths.c |
 | clang/test/Sema/offsetof.c |
 | llvm/test/CodeGen/X86/indirect-branch-tracking-eh2.ll |
 | compiler-rt/test/fuzzer/ShallowOOMDeepCrash.cpp |
 | clang/test/Sema/exprs.c |
 | llvm/test/CodeGen/AArch64/branch-relax-bcc.ll |
 | clang/test/CodeGenOpenCL/convergent.cl |
 | compiler-rt/test/fuzzer/NullDerefTest.cpp |
 | llvm/test/CodeGen/AMDGPU/early-inline.ll |
 | llvm/lib/Transforms/Utils/Local.cpp |
 | compiler-rt/test/fuzzer/fuzzer-seed.test |
 | clang/lib/Sema/SemaExpr.cpp |
 | llvm/lib/Transforms/InstCombine/InstructionCombining.cpp |
 | compiler-rt/test/asan/TestCases/Windows/dll_control_c.cpp |
 | llvm/utils/unittest/googletest/src/gtest.cc |
 | clang/test/Parser/expressions.c |
 | llvm/lib/Transforms/Utils/SimplifyCFG.cpp |
 | clang/test/Analysis/conditional-path-notes.c |
 | compiler-rt/test/fuzzer/minimize_crash.test |
 | compiler-rt/test/fuzzer/trap.test |
Commit
42cc7f3c524a0ede6b903486c588003fe12d9293
by nikita.ppv[AttrBuilder] Make handling of type attributes more generic (NFCI)
While working on the elementtype attribute, I felt that the type attribute handling in AttrBuilder is overly repetitive. This patch converts the separate Type* members into an std::array<Type*>, so that all type attribute kinds can be handled generically.
There's more room for improvement here (especially when it comes to converting the AttrBuilder to an Attribute), but this seems like a good starting point.
Differential Revision: https://reviews.llvm.org/D105658
|
 | llvm/include/llvm/IR/Attributes.h |
 | llvm/lib/IR/Attributes.cpp |
 | llvm/include/llvm/AsmParser/LLParser.h |
 | llvm/lib/AsmParser/LLParser.cpp |
Commit
d4df3825bd32277074b3859f5dea9593139147fb
by zinenko[mlir] don't drop undef initializers in translation to LLVM IR
LLVM IR allows globals with external linkage to have initializers, including undef. The translation was incorrectly using undef as a indicator that the initializer should be ignored in translation, leading to the impossibility to create an external global with an explicit undef initializer. Fix this and use nullptr as a marker instead.
Reviewed By: wsmoses
Differential Revision: https://reviews.llvm.org/D105631
|
 | mlir/lib/Target/LLVMIR/ModuleTranslation.cpp |
 | mlir/test/Target/LLVMIR/llvmir.mlir |
Commit
c282d55a38577e076b48cd7a8113e5eb0a2039cd
by zinenko[mlir] add support for reductions in OpenMP WsLoopOp
Use a modeling similar to SCF ParallelOp to support arbitrary parallel reductions. The two main differences are: (1) reductions are named and declared beforehand similarly to functions using a special op that provides the neutral element, the reduction code and optionally the atomic reduction code; (2) reductions go through memory instead because this is closer to the OpenMP semantics.
See https://llvm.discourse.group/t/rfc-openmp-reduction-support/3367.
Reviewed By: kiranchandramohan
Differential Revision: https://reviews.llvm.org/D105358
|
 | mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td |
 | mlir/lib/Dialect/OpenMP/CMakeLists.txt |
 | mlir/test/Dialect/OpenMP/ops.mlir |
 | mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp |
 | mlir/test/Conversion/OpenMPToLLVM/convert-to-llvmir.mlir |
 | mlir/include/mlir/Dialect/OpenMP/CMakeLists.txt |
 | mlir/test/Dialect/OpenMP/invalid.mlir |
 | mlir/include/mlir/Dialect/OpenMP/OpenMPDialect.h |
 | mlir/test/Target/LLVMIR/openmp-llvm.mlir |
Commit
b11d31eb73a37f46a669e064b1aed77aff9f783a
by marcos.horro[llvm-mca] Fix JSON format for multiple regions
Instead of printing each region individually when using JSON format, this patch creates a JSON object which is updated with the values of each region, printing them at the end. New test is added for JSON output with multiple regions.
Bug: https://bugs.llvm.org/show_bug.cgi?id=51008
Reviewed By: andreadb
Differential Revision: https://reviews.llvm.org/D105618
|
 | llvm/tools/llvm-mca/Views/InstructionView.cpp |
 | llvm/test/tools/llvm-mca/JSON/X86/views.s |
 | llvm/test/tools/llvm-mca/JSON/X86/views-multiple-region.s |
 | llvm/tools/llvm-mca/PipelinePrinter.cpp |
 | llvm/tools/llvm-mca/Views/InstructionView.h |
 | llvm/tools/llvm-mca/llvm-mca.cpp |
 | llvm/tools/llvm-mca/PipelinePrinter.h |
Commit
7a372c4ce11537243a651fbbd25778a67f87935c
by Louis Dionne[libc++][ci] Keep the C++03 build job on Clang 12
Because of https://reviews.llvm.org/D104500, libc++ is broken with recent Clangs in C++03 mode.
|
 | libcxx/utils/ci/run-buildbot |
Commit
84ed3a794b4ffe7bd673f1e5a17d507aa3113d12
by nikita.ppv[IR] Don't mark mustprogress as type attribute
This is a simple enum attribute.
Test changes are because enum attributes are sorted before type attributes.
|
 | llvm/test/Transforms/Attributor/willreturn.ll |
 | llvm/test/Transforms/InferFunctionAttrs/norecurse_debug.ll |
 | llvm/test/Transforms/Inline/always-inline-attr.ll |
 | llvm/test/Transforms/FunctionAttrs/incompatible_fn_attrs.ll |
 | llvm/include/llvm/IR/Attributes.td |
 | llvm/test/Transforms/FunctionAttrs/nounwind.ll |
 | llvm/test/Transforms/FunctionAttrs/writeonly.ll |
 | llvm/test/Transforms/FunctionAttrs/nofree-attributor.ll |
 | llvm/test/Transforms/FunctionAttrs/willreturn.ll |
 | llvm/test/Transforms/InferFunctionAttrs/annotate.ll |
 | llvm/test/Transforms/FunctionAttrs/nosync.ll |
 | llvm/test/Transforms/FunctionAttrs/optnone.ll |
 | llvm/test/Analysis/TypeBasedAliasAnalysis/functionattrs.ll |
 | llvm/test/CodeGen/AMDGPU/inline-attr.ll |
 | llvm/test/Transforms/LICM/strlen.ll |
 | llvm/test/Transforms/FunctionAttrs/willreturn-callsites.ll |
 | llvm/test/Transforms/FunctionAttrs/nofree.ll |
 | llvm/test/Transforms/FunctionAttrs/atomic.ll |
Commit
28b2bb8f5486aa90123fa87827a284dd34957e64
by nikita.ppv[AttrBuilder] Try to fix build
Some buildbots fail with undefined references to ByValTypeIndex etc. Replace static consts with an enum to ensure the address is not taken.
|
 | llvm/include/llvm/IR/Attributes.h |
Commit
e4f66a10556c82e2ebf2469fafc1c26639f15be8
by aeubanks[OpaquePointers][CallPromotion] Don't look at pointee type for byval
byval's type parameter is now always required.
|
 | llvm/lib/Transforms/Utils/CallPromotionUtils.cpp |
Commit
544f2711bb0b80b1c9126a33fb60fe9bb31ea420
by spatel[SLP] make checks for cmp+select min/max more explicit
This is NFC-intended currently (so no test diffs). The motivation is to eventually allow matching for poison-safe logical-and and logical-or (these are in the form of a select-of-bools). ( https://llvm.org/PR41312 )
Those patterns will not have all of the same constraints as min/max in the form of cmp+sel. We may also end up removing the cmp+sel min/max matching entirely (if we canonicalize to intrinsics), so this will make that step easier.
|
 | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp |
Commit
23dd750279c9e32ea631cc9e92c4413c7a3df60a
by nikita.ppvRevert "[IR] Don't mark mustprogress as type attribute"
This reverts commit 84ed3a794b4ffe7bd673f1e5a17d507aa3113d12.
A number of clang tests are also affected by this change. Revert until I can update them.
|
 | llvm/test/Transforms/LICM/strlen.ll |
 | llvm/test/Transforms/FunctionAttrs/atomic.ll |
 | llvm/test/Transforms/FunctionAttrs/nofree.ll |
 | llvm/test/Transforms/FunctionAttrs/nosync.ll |
 | llvm/test/Transforms/FunctionAttrs/writeonly.ll |
 | llvm/test/Transforms/FunctionAttrs/incompatible_fn_attrs.ll |
 | llvm/test/Transforms/FunctionAttrs/willreturn-callsites.ll |
 | llvm/test/Transforms/FunctionAttrs/nofree-attributor.ll |
 | llvm/test/Transforms/FunctionAttrs/optnone.ll |
 | llvm/test/Transforms/Inline/always-inline-attr.ll |
 | llvm/test/Transforms/Attributor/willreturn.ll |
 | llvm/test/Transforms/FunctionAttrs/nounwind.ll |
 | llvm/include/llvm/IR/Attributes.td |
 | llvm/test/CodeGen/AMDGPU/inline-attr.ll |
 | llvm/test/Analysis/TypeBasedAliasAnalysis/functionattrs.ll |
 | llvm/test/Transforms/InferFunctionAttrs/annotate.ll |
 | llvm/test/Transforms/FunctionAttrs/willreturn.ll |
 | llvm/test/Transforms/InferFunctionAttrs/norecurse_debug.ll |
Commit
486992f958cedc0b0ce4ab29262deb48cc8c8a51
by spatel[SLP] improve code comments; NFC
This likely started out only supporint binops, but now we handle min/max using cmp+sel, and we may extend to handle bool logic in the form of select.
|
 | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp |
Commit
4e6013250d319a7ca4fc7fb5ba9ac7b1b28d2b4f
by aeubanks[NFC][OpaquePtr] Use GlobalValue::getValueType() more
Instead of getType()->getElementType().
|
 | llvm/lib/Transforms/IPO/GlobalOpt.cpp |
 | llvm/lib/Transforms/Utils/ValueMapper.cpp |
 | llvm/unittests/Transforms/Utils/ModuleUtilsTest.cpp |
 | llvm/lib/Transforms/Utils/MemoryOpRemark.cpp |
 | llvm/lib/IR/Module.cpp |
 | llvm/lib/Linker/LinkModules.cpp |
 | llvm/lib/Object/IRSymtab.cpp |
Commit
0ac7532cc17aebf1b93d95142c5edec7e66ebad0
by sylvestrem86k: adjust the usage of ArgInfo after change 9b057f647d70fc958d4a1a7a00e2deba65
Fails with:
```
/build/llvm-toolchain-snapshot-13~++20210709092633+88326bbce38c/llvm/lib/Target/M68k/GlSel/M68kCallLowering.cpp: In member function 'virtual bool llvm::M68kCallLowering::lowerReturn(llvm::MachineIRBuilder&, const llvm::Value*, llvm::ArrayRef<llvm::Register>, llvm::FunctionLoweringInfo&, llvm::Register) const': /build/llvm-toolchain-snapshot-13~++20210709092633+88326bbce38c/llvm/lib/Target/M68k/GlSel/M68kCallLowering.cpp:71:42: error: no matching function for call to 'llvm::CallLowering::ArgInfo::ArgInfo(<brace-enclosed initializer list>)' ArgInfo OrigArg{VRegs, Val->getType()}; ```
Differential Revision: https://reviews.llvm.org/D105689
|
 | llvm/lib/Target/M68k/GlSel/M68kCallLowering.cpp |
Commit
f9517353959b4ef5c706e4356b56aeb9e0087584
by Jonas Devlieghere[lldb] Add the ability to silently import scripted commands
Add the ability to silence command script import. The motivation for this change is being able to add command script import -s lldb.macosx.crashlog to your ~/.lldbinit without it printing the following message at the beginning of every debug session.
"malloc_info", "ptr_refs", "cstr_refs", "find_variable", and "objc_refs" commands have been installed, use the "--help" options on these commands for detailed help.
In addition to forwarding the silent option to LoadScriptingModule, this also changes ScriptInterpreterPythonImpl::ExecuteOneLineWithReturn and ScriptInterpreterPythonImpl::ExecuteMultipleLines to honor the enable IO option in ExecuteScriptOptions, which until now was ignored.
Note that IO is only enabled (or disabled) at the start of a session, and for this particular use case, that's done when taking the Python lock in LoadScriptingModule, which means that the changes to these two functions are not strictly necessary, but (IMO) desirable nonetheless.
Differential revision: https://reviews.llvm.org/D105327
|
 | lldb/include/lldb/Interpreter/ScriptInterpreter.h |
 | lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h |
 | lldb/source/Commands/CommandObjectCommands.cpp |
 | lldb/source/Commands/Options.td |
 | lldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.h |
 | lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp |
 | lldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.cpp |
 | lldb/test/Shell/ScriptInterpreter/Python/silent_command_script_import.test |
 | lldb/source/Core/Module.cpp |
 | lldb/source/Interpreter/ScriptInterpreter.cpp |
 | lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp |
Commit
48de8bb0d37573cd18e1158c9fd95afafcf4e440
by i[llvm-cxxfilt] Switch command line parsing from llvm::cl to OptTable
Similar to D104889. The tool is very simple and its long options are uncommon, so just drop the one-dash form in this patch.
Reviewed By: jhenderson
Differential Revision: https://reviews.llvm.org/D105605
|
 | llvm/utils/gn/secondary/llvm/tools/llvm-cxxfilt/BUILD.gn |
 | llvm/tools/llvm-cxxfilt/Opts.td |
 | llvm/test/tools/llvm-cxxfilt/help.test |
 | llvm/docs/CommandGuide/llvm-cxxfilt.rst |
 | llvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp |
 | utils/bazel/llvm-project-overlay/llvm/BUILD.bazel |
 | llvm/tools/llvm-cxxfilt/CMakeLists.txt |
Commit
30cce54dadfcf231654dfaf3a14c27aa07d61aea
by jeremy.morse[X86] Return src/dest register from stack spill/restore recogniser
LLVM provides target hooks to recognise stack spill and restore instructions, such as isLoadFromStackSlot, and it also provides post frame elimination versions such as isLoadFromStackSlotPostFE. These are supposed to return the store-source and load-destination registers; unfortunately on X86, the PostFE recognisers just return "1", apparently to signify "yes it's a spill/load". This patch alters the hooks to correctly return the store-source and load-destination registers:
This is really useful for debug-info as we it helps follow variable values as they move on/off the stack. There should be no codegen changes: the only other users of these PostFE target hooks are MachineInstr::getRestoreSize and MachineInstr::getSpillSize, which don't attempt to interpret the returned register location.
While we're here, delete the (InstrRef) LiveDebugValues heuristic that tries to find the spill source register by looking for a killed reg -- we should be able to rely on the target hooks for that. This involves temporarily turning off a n InstrRef LivedDebugValues test on aarch64 (patch to re-enable it is in D104521).
Differential Revision: https://reviews.llvm.org/D105428
|
 | llvm/test/CodeGen/AArch64/live-debugvalues-sve.mir |
 | llvm/test/DebugInfo/MIR/InstrRef/follow-spill-of-live-value.mir |
 | llvm/lib/Target/X86/X86InstrInfo.cpp |
 | llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp |
Commit
0849427faeab8d2e88868463496b1a8283e7dcda
by zoecarver[libcxx][nfc] Remove <variant>'s dependence on <array>.
This will allow us to use variant in common_iterator. We do this by introducing a new `__light_array` type that variant uses instead of `std::array`.
Differential Revision: https://reviews.llvm.org/D105597
|
 | libcxx/docs/ReleaseNotes.rst |
 | libcxx/include/variant |
Commit
0e09a41b415bbf2ef0b7c3ee8bced256a6dd2b87
by zoecarver[libcxx][ranges] Add `ranges::transform_view`.
Reviewed By: cjdb, ldionne, #libc
Differential Revision: https://reviews.llvm.org/D103056
|
 | libcxx/test/std/ranges/range.adaptors/range.transform/iterator/plus_minus.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/iterator/iter_move.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/iterator/compare.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/iterator/base.pass.cpp |
 | libcxx/include/__ranges/drop_view.h |
 | libcxx/test/std/ranges/range.adaptors/range.transform/iterator/ctor.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/types.h |
 | libcxx/test/std/ranges/range.adaptors/range.transform/iterator/deref.pass.cpp |
 | libcxx/include/__ranges/transform_view.h |
 | libcxx/test/support/test_iterators.h |
 | libcxx/docs/Status/RangesPaper.csv |
 | libcxx/test/std/ranges/range.adaptors/range.transform/iterator/sentinel.pass.cpp |
 | libcxx/include/type_traits |
 | libcxx/test/std/ranges/range.adaptors/range.transform/iterator/arithmetic.pass.cpp |
 | libcxx/include/CMakeLists.txt |
 | libcxx/test/std/ranges/range.adaptors/range.transform/size.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/base.pass.cpp |
 | libcxx/include/ranges |
 | libcxx/test/std/ranges/range.adaptors/range.transform/general.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/iterator/requirements.compile.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/begin.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/iterator/subscript.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/end.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/iterator/types.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/ctad.compile.pass.cpp |
Commit
214f63b2729d06f8d071f0fe86a8649ba880046c
by llvmgnsyncbot[gn build] Port 0e09a41b415b
|
 | llvm/utils/gn/secondary/libcxx/include/BUILD.gn |
Commit
47db32e542eb84ca9d4bed798bbdfd40200ac1ef
by i[llvm-size] Switch command line parsing from llvm::cl to OptTable
Part of https://lists.llvm.org/pipermail/llvm-dev/2021-July/151622.html "Binary utilities: switch command line parsing from llvm::cl to OptTable"
* `--totals=false` and `--totals=0` cannot be used. Omit the option. * `--help-list` is removed. This is a `cl::` specific option.
OptTable avoids global option collision if we decide to support multiplexing for binary utilities.
Note: because the tool is simple, and its long options are uncommon, I just drop the one-dash forms except `-arch <value>` (Darwin style).
Reviewed By: jhenderson
Differential Revision: https://reviews.llvm.org/D105598
|
 | llvm/docs/CommandGuide/llvm-size.rst |
 | llvm/tools/llvm-size/Opts.td |
 | llvm/test/tools/llvm-size/help.test |
 | llvm/test/tools/llvm-size/radix.test |
 | llvm/test/tools/llvm-size/unknown-format.test |
 | llvm/tools/llvm-size/llvm-size.cpp |
 | llvm/tools/llvm-size/CMakeLists.txt |
 | llvm/utils/gn/secondary/llvm/tools/llvm-size/BUILD.gn |
 | utils/bazel/llvm-project-overlay/llvm/BUILD.bazel |
Commit
9a7afae4927c5a379631b538116c3796f402a970
by aeubanks[OpaquePtr][InferAddrSpace] Use PointerType::getWithSamePointeeType()
|
 | llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp |
Commit
a2860b8b048e4a5f84586d43556d1944edbf2ace
by i[llvm-mca] Fix -Wunused-private-field after D105618
|
 | llvm/tools/llvm-mca/PipelinePrinter.h |
 | llvm/tools/llvm-mca/llvm-mca.cpp |
Commit
bef5ed1eeac35d5f59a16a07c7a465f35d30d136
by Krzysztof.Drewniak[AMDGPU][Docs] Update Code Object V3 example to includes args section
The documentation for the AMDGPU assembler's examples don't show the .args section, which, if ommitted, will cause arguments to silently not be passed into the kernel. This commit fixes this issue.
Reviewed By: #amdgpu, scott.linder
Differential Revision: https://reviews.llvm.org/D105222
|
 | llvm/docs/AMDGPUUsage.rst |
Commit
d564cfb53c71dbbbd46b6719f5fe53d70313de45
by leonardchan[NFC][compiler-rt][hwasan] Move __hwasan_tag_mismatch4 to hwasan.cpp
This can be moved out of hwasan_linux.cpp because it can be re-used in the fuchsia port.
Differential Revision: https://reviews.llvm.org/D105669
|
 | compiler-rt/lib/hwasan/hwasan_linux.cpp |
 | compiler-rt/lib/hwasan/hwasan.cpp |
Commit
89f778ceea0d3a5b05ca44c2188ff9779d33f23d
by leonardchan[NFC][compiler-rt][hwasan] Rename InitPrctl to InitializeOsSupport
The new name is something less linux-y and more platform generic. Once we finalize the tagged pointer ABI in zircon, we will do the appropriate check for fuchsia to see that TBI is enabled.
Differential Revision: https://reviews.llvm.org/D105667
|
 | compiler-rt/lib/hwasan/hwasan.h |
 | compiler-rt/lib/hwasan/hwasan_linux.cpp |
 | compiler-rt/lib/hwasan/hwasan.cpp |
Commit
8b68aeebd37951529059af82464c5a8dbd974bed
by leonardchan[NFC][compiler-rt][hwasan] Move TagMemoryAligned into hwasan_linux.cpp
Based on comments in D91466, we can make the current implementation linux-speciic. The fuchsia implementation will just be a call to `__sanitizer_fill_shadow`.
Differential Revision: https://reviews.llvm.org/D105663
|
 | compiler-rt/lib/hwasan/hwasan_poisoning.cpp |
 | compiler-rt/lib/hwasan/hwasan_linux.cpp |
Commit
739f49ed12a4d94cef07c7071e2ad6dbb93834f3
by andrzej.warzynski[flang][driver] Fix how output filename is generated
Currently, `flang -c file.f` generates `flang_unparsed_source_file_0.o`. This is incorrect. This patch: * simplifies the logic around output filename generation, and * makes sure that `file.o` is produced instead of e.g. `flang_unparsed_source_file_0.o` when using the `-c` flag
The output filename generation is moved to a dedicated function. I've also made a few minor improvements, e.g. marked variables as local, added comments, refined error messages.
Differential Revision: https://reviews.llvm.org/D105546
|
 | flang/tools/f18/flang.in |
Commit
a821df993def459009a0d8263af879fc35400a94
by stilisRevert "[IR] Don't accept nullptr as GEP element type"
This reverts commit 5035e7be1a8ab923e1a82def7e313cc11c0b176f.
This change broke several lldb bots.
|
 | llvm/include/llvm/IR/Instructions.h |
Commit
92dcb1d2db8c4de48df0af806dca631523cd4169
by varun_gandhi[Clang] Introduce Swift async calling convention.
This change is intended as initial setup. The plan is to add more semantic checks later. I plan to update the documentation as more semantic checks are added (instead of documenting the details up front). Most of the code closely mirrors that for the Swift calling convention. Three places are marked as [FIXME: swiftasynccc]; those will be addressed once the corresponding convention is introduced in LLVM.
Reviewed By: rjmccall
Differential Revision: https://reviews.llvm.org/D95561
|
 | llvm/lib/Demangle/MicrosoftDemangleNodes.cpp |
 | clang/include/clang/Basic/Attr.td |
 | clang/test/CodeGen/debug-info-cc.c |
 | clang/test/CodeGen/swift-call-conv.c |
 | clang/lib/CodeGen/CGCall.cpp |
 | llvm/lib/Transforms/IPO/MergeFunctions.cpp |
 | clang/include/clang/Basic/Specifiers.h |
 | clang/test/Sema/attr-swiftcall.c |
 | clang/lib/Basic/Targets/SystemZ.h |
 | clang/lib/Sema/SemaDeclAttr.cpp |
 | clang/include/clang-c/Index.h |
 | clang/lib/AST/Type.cpp |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/lib/CodeGen/CGDebugInfo.cpp |
 | clang/lib/AST/MicrosoftMangle.cpp |
 | clang/lib/Basic/Targets/WebAssembly.h |
 | clang/lib/AST/ItaniumMangle.cpp |
 | clang/lib/Basic/Targets/ARM.cpp |
 | clang/lib/AST/ExprCXX.cpp |
 | clang/test/CodeGen/swift-async-call-conv.c |
 | clang/test/Sema/attr-c2x.c |
 | clang/test/SemaCXX/attr-swiftcall.cpp |
 | clang/lib/AST/TypePrinter.cpp |
 | clang/test/CodeGen/arm-swiftcall.c |
 | clang/test/CodeGen/64bit-swiftcall.c |
 | clang/include/clang/CodeGen/SwiftCallingConv.h |
 | clang/lib/Sema/SemaType.cpp |
 | llvm/test/Demangle/ms-mangle.test |
 | clang/include/clang/Basic/AttrDocs.td |
 | llvm/lib/Demangle/MicrosoftDemangle.cpp |
 | clang/test/Sema/no_callconv.cpp |
 | clang/tools/libclang/CXType.cpp |
 | clang/include/clang/Basic/Features.def |
 | clang/lib/Basic/Targets/X86.h |
 | clang/lib/Basic/Targets/PPC.h |
 | llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h |
 | clang/lib/CodeGen/CGStmt.cpp |
 | clang/lib/Basic/Targets/AArch64.cpp |
Commit
ff8b1b1b9caef57046bda1ca36c95f0e03527c6e
by nikita.ppvReapply [IR] Don't mark mustprogress as type attribute
Reapply with fixes for clang tests.
-----
This is a simple enum attribute. Test changes are because enum attributes are sorted before type attributes, so mustprogress is now in a different position.
|
 | clang/test/CodeGenCXX/inline-hint.cpp |
 | clang/test/CodeGenCXX/noinline-template.cpp |
 | clang/test/CodeGenCXX/attr.cpp |
 | clang/test/utils/update_cc_test_checks/Inputs/check-attributes.cpp.funcattrs.expected |
 | llvm/test/Transforms/FunctionAttrs/incompatible_fn_attrs.ll |
 | llvm/test/Transforms/FunctionAttrs/nofree.ll |
 | clang/test/CodeGenCXX/optnone-and-attributes.cpp |
 | clang/test/CodeGen/noduplicate-cxx11-test.cpp |
 | clang/test/CodeGenCXX/reference-cast.cpp |
 | llvm/test/Transforms/Inline/always-inline-attr.ll |
 | clang/test/CodeGenCXX/cxx11-noreturn.cpp |
 | llvm/test/CodeGen/AMDGPU/inline-attr.ll |
 | clang/test/CodeGenCXX/derived-to-base.cpp |
 | llvm/test/Transforms/InferFunctionAttrs/annotate.ll |
 | clang/test/CodeGen/address-safety-attr-flavors.cpp |
 | clang/test/CodeGenCXX/cxx11-exception-spec.cpp |
 | llvm/test/Transforms/LICM/strlen.ll |
 | clang/test/CodeGenCXX/microsoft-abi-array-cookies.cpp |
 | llvm/test/Transforms/FunctionAttrs/nounwind.ll |
 | clang/test/CodeGenCXX/main-norecurse.cpp |
 | llvm/test/Transforms/FunctionAttrs/nofree-attributor.ll |
 | llvm/include/llvm/IR/Attributes.td |
 | llvm/test/Transforms/FunctionAttrs/nosync.ll |
 | clang/test/CodeGenCXX/threadsafe-statics.cpp |
 | llvm/test/Transforms/FunctionAttrs/optnone.ll |
 | clang/test/CodeGen/sanitize-thread-attr.cpp |
 | llvm/test/Transforms/FunctionAttrs/writeonly.ll |
 | clang/test/CodeGenObjCXX/lambda-expressions.mm |
 | clang/test/CodeGenOpenCL/convergent.cl |
 | clang/test/CodeGen/address-safety-attr.cpp |
 | clang/test/CodeGen/memtag-attr.cpp |
 | clang/test/CodeGenCXX/virtual-base-cast.cpp |
 | clang/test/CodeGenCXX/optnone-def-decl.cpp |
 | llvm/test/Transforms/Attributor/willreturn.ll |
 | llvm/test/Analysis/TypeBasedAliasAnalysis/functionattrs.ll |
 | llvm/test/Transforms/FunctionAttrs/willreturn-callsites.ll |
 | llvm/test/Transforms/FunctionAttrs/willreturn.ll |
 | clang/test/CodeGenCXX/no-exceptions.cpp |
 | clang/test/CodeGenObjC/objc-literal-tests.m |
 | llvm/test/Transforms/FunctionAttrs/atomic.ll |
 | llvm/test/Transforms/InferFunctionAttrs/norecurse_debug.ll |
Commit
768e3af6345a532d383205049679aaaccca26628
by dblaikiePR51034: Debug Info: Remove 'prototyped' from K&R function declarations
Regression caused by 6c9559b67b91966bfeff9e17808a3e84a92e64a0.
|
 | clang/lib/CodeGen/CGDebugInfo.cpp |
 | clang/test/CodeGen/overloadable-debug.c |
Commit
0813bd1696dc0c971c21ea337df96d3a07ff86d8
by patacca[Polly][Isl] Use isl::*::ctx instead of isl::*::get_ctx. NFC
This is part of an effort to reduce the differences between the custom C++ bindings used right now by polly in `lib/External/isl/include/isl/isl-noxceptions.h` and the official isl C++ interface.
Changes made: - Use `isl::*::ctx()` instead of `isl::*::get_ctx()` (for example `isl::space::ctx()` instead of `isl::space::get_ctx()`) - Add `isl::` namespace in front of isl types to avoid confusion (for example `isl::space::ctx` and `isl::ctx` - `isl-noexceptions.h` has been generated by this https://github.com/patacca/isl/commit/b64e33c62d3fe7db506f6630f9e935b663f9c5a4
Reviewed By: Meinersbur
Differential Revision: https://reviews.llvm.org/D105691
|
 | polly/lib/Analysis/ScopInfo.cpp |
 | polly/lib/Transform/FlattenAlgo.cpp |
 | polly/lib/Transform/ScheduleTreeTransform.cpp |
 | polly/lib/CodeGen/IslAst.cpp |
 | polly/lib/CodeGen/PPCGCodeGeneration.cpp |
 | polly/lib/Transform/MatmulOptimizer.cpp |
 | polly/lib/Transform/ScheduleOptimizer.cpp |
 | polly/lib/Support/ISLTools.cpp |
 | polly/lib/Transform/ZoneAlgo.cpp |
 | polly/lib/External/isl/include/isl/isl-noexceptions.h |
 | polly/lib/Transform/MaximalStaticExpansion.cpp |
 | polly/include/polly/Support/ISLOperators.h |
Commit
c476566be5d025a3f122392af481a74f887911e6
by nikita.ppv[IRForTarget] Don't pass nullptr to GetElementPtrInst::Create() (NFC)
In one case use the source element type of the original GEP. In the other the correct type isn't obvious to me, so use getPointerElementType() for now.
|
 | lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp |
Commit
b00cff56cfb15cbfa74cb512c9cee1c402cce55b
by nikita.ppvReapply [IR] Don't accept nullptr as GEP element type
Reapply after fixing another occurrence in lldb that was relying on this in the preceding commit.
-----
GetElementPtrInst::Create() (and IRBuilder methods based on it) currently accept nullptr as the element type, and will fetch the element type from the pointer in that case. Remove this fallback, as it is incompatible with opaque pointers. I've removed a handful of leftover calls using this behavior as a preliminary step.
Out-of-tree code affected by this change should either pass a proper type, or can temporarily explicitly call getPointerElementType(), if the newly added assertion is encountered.
Differential Revision: https://reviews.llvm.org/D105653
|
 | llvm/include/llvm/IR/Instructions.h |
Commit
b379ab41937fe6b6e0969b8ebf0e51731ab6fb2a
by Stanislav.Mekhanoshin[AMDGPU] Add VOP rematerialization test. NFC.
|
 | llvm/test/CodeGen/AMDGPU/remat-vop.mir |
Commit
ecd15fbf6bb5d26d5f2522975830503a790b78c6
by grahamy[ARC][NFC] Include file re-ordering
- Sort includes in alphabetical order via clang-format
|
 | llvm/lib/Target/ARC/ARCRegisterInfo.cpp |
Commit
5511bfdb671505c1e7968ab8ef6032414bba3852
by fmayer[hwasan] More realistic setjmp test.
The existing one actually failed on the int* p, not on int z (as can be seen by the fault being 8 bytes rather than 4).
This is also needed to make sure the stack safety analysis does not classify the alloca as safe.
Reviewed By: hctim
Differential Revision: https://reviews.llvm.org/D105705
|
 | compiler-rt/test/hwasan/TestCases/longjmp.c |
Commit
f8bef4734845226c079900de3c273c8ab1915b49
by Louis Dionne[libcxx][CI] Work around Arm buildkite failures
For reasons unknown, the build is now using compilers from /usr/bin instead of /usr/local/bin which is where we have our clang-12 aliases placed.
Reviewed By: #libc, ldionne
Differential Revision: https://reviews.llvm.org/D105704
|
 | libcxx/utils/ci/run-buildbot |
Commit
c2b7f09d8c276c83f3af5123a0ca55d62b0ffaab
by spatel[SLP] make invalid operand explicit for extra arg in reduction matching; NFC
This makes it clearer when we have encountered the extra arg. Also, we may need to adjust the way the operand iteration works when handling logical and/or.
|
 | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp |
Commit
86e65234404fa329cd65b5522aae8e82f4fa152b
by spatel[SLP] add tests for poison-safe logical reductions; NFC
|
 | llvm/test/Transforms/SLPVectorizer/X86/reduction-logical.ll |
Commit
55c5c0485924895800c683386a4560bdc253623e
by spatel[PhaseOrdering] add tests for vector cmp reductions; NFC
These are based on PR41312. There needs to be effort from all of SimplifyCFG, InstCombine, SLP, and possibly VectorCombine to get this into ideal form.
|
 | llvm/test/Transforms/PhaseOrdering/X86/vector-reductions-logical.ll |
Commit
2e3f4694d61dd50c8ec1278331edee84a60555f8
by nikita.ppv[IR] Add GEPOperator::indices() (NFC)
In order to mirror the GetElementPtrInst::indices() API.
Wanted to use this in the IRForTarget code, and was surprised to find that it didn't exist yet.
|
 | lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp |
 | llvm/include/llvm/IR/Operator.h |
 | llvm/lib/Analysis/ScalarEvolution.cpp |
Commit
488fcea3b552e6cbc96eb767abdfb11f4184b812
by Jonas Devlieghere[lldb] Use custom script instead of lldb.macosx.crashlog in test
I'm not entirely sure this is the problem, but the Windows bot doesn't seem to like this test. Let's do something similar to command_import.test which doesn't have that issue.
|
 | lldb/test/Shell/ScriptInterpreter/Python/silent_command_script_import.test |
Commit
4a3b0556536d5a2555f7a19f953f0eec0f79f1a9
by Stanislav.Mekhanoshin[AMDGPU] Fix flags of V_MOV_B64_PSEUDO
In particular it was not rematerializable.
Differential Revision: https://reviews.llvm.org/D105724
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.atomic.dec.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.i8.ll |
 | llvm/lib/Target/AMDGPU/SIInstructions.td |
 | llvm/test/CodeGen/AMDGPU/expand-scalar-carry-out-select-user.ll |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.atomic.dec.ll |
 | llvm/test/CodeGen/AMDGPU/shift-i128.ll |
 | llvm/test/CodeGen/AMDGPU/udiv64.ll |
 | llvm/test/CodeGen/AMDGPU/urem64.ll |
 | llvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.i16.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.atomic.inc.ll |
 | llvm/test/CodeGen/AMDGPU/remat-vop.mir |
 | llvm/test/CodeGen/AMDGPU/widen-smrd-loads.ll |
 | llvm/test/CodeGen/AMDGPU/chain-hi-to-lo.ll |
 | llvm/test/CodeGen/AMDGPU/ds-sub-offset.ll |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.atomic.inc.ll |
 | llvm/test/CodeGen/AMDGPU/srem64.ll |
 | llvm/test/CodeGen/AMDGPU/addrspacecast.ll |
 | llvm/test/CodeGen/AMDGPU/sdiv64.ll |
Commit
ab8989ab8710c693e83edbccf221746c897c835f
by a.bataev[OPENMP]Fix overlapped mapping for dereferenced pointer members.
If the base is used in a map clause and later we have a memberexpr with this base, and the member is a pointer, and this pointer is dereferenced anyhow (subscript, array section, dereference, etc.), such components should be considered as overlapped, otherwise it may lead to incorrect size computations, since we try to map a pointee as a part of the whole struct, which is not true for the pointer members.
Differential Revision: https://reviews.llvm.org/D105562
|
 | clang/lib/CodeGen/CGOpenMPRuntime.cpp |
 | clang/test/OpenMP/target_map_codegen_29.cpp |
 | openmp/libomptarget/test/mapping/target_pointers_members_map.cpp |
Commit
3e97d11df8ced9ea37d74fa020f3c984774b05e9
by Stanislav.Mekhanoshin[AMDGPU] Added v_accvgpr_read_b32 rematerialization test. NFC.
|
 | llvm/test/CodeGen/AMDGPU/remat-vop.mir |
Commit
3338819b08faa7f23f65fb4e67154583984ebf5c
by Jonas Devlieghere[lldb] Drop REQUIRES where redundant because of lit.local.cfg
|
 | lldb/test/Shell/ScriptInterpreter/Lua/convenience_variables.test |
 | lldb/test/Shell/ScriptInterpreter/Lua/print.test |
 | lldb/test/Shell/ScriptInterpreter/Python/scripted_breakpoint.test |
 | lldb/test/Shell/ScriptInterpreter/Python/silent_command_script_import.test |
 | lldb/test/Shell/ScriptInterpreter/Lua/bindings.test |
 | lldb/test/Shell/ScriptInterpreter/Lua/watchpoint_callback.test |
 | lldb/test/Shell/ScriptInterpreter/Lua/breakpoint_function_callback.test |
 | lldb/test/Shell/ScriptInterpreter/Lua/command_script_import.test |
 | lldb/test/Shell/ScriptInterpreter/Python/python.test |
 | lldb/test/Shell/ScriptInterpreter/Lua/breakpoint_oneline_callback.test |
 | lldb/test/Shell/ScriptInterpreter/Lua/lua-python.test |
 | lldb/test/Shell/ScriptInterpreter/Lua/quit.test |
 | lldb/test/Shell/ScriptInterpreter/Python/command_import.test |
 | lldb/test/Shell/ScriptInterpreter/Lua/persistent_state.test |
 | lldb/test/Shell/ScriptInterpreter/Lua/breakpoint_callback.test |
 | lldb/test/Shell/ScriptInterpreter/Lua/fail_breakpoint_oneline.test |
 | lldb/test/Shell/ScriptInterpreter/Lua/nested_sessions.test |
 | lldb/test/Shell/ScriptInterpreter/Lua/io.test |
 | lldb/test/Shell/ScriptInterpreter/Lua/independent_state.test |
 | lldb/test/Shell/ScriptInterpreter/Python/fail_breakpoint_oneline.test |
 | lldb/test/Shell/ScriptInterpreter/Lua/lua.test |
 | lldb/test/Shell/ScriptInterpreter/Lua/partial_statements.test |
 | lldb/test/Shell/ScriptInterpreter/Python/sb_address_exception.test |
 | lldb/test/Shell/ScriptInterpreter/Python/command_relative_import.test |
Commit
d124133f17357536c4034cb2b2c0bec537cd8fd5
by Adrian PrantlAdd scoped timers to ReadMemoryFromInferior and ReadMemoryFromFileCache.
|
 | lldb/source/Target/Target.cpp |
 | lldb/source/Target/Process.cpp |
Commit
9a9bc76c0eb72f0f2732c729a460abbd5239c2e3
by John.EricsonPrepare Compiler-RT for GnuInstallDirs, matching libcxx
Instead of using `COMPILER_RT_INSTALL_PATH` through the CMake for complier-rt, just use it to define variables for the subdirs which themselves are used.
This preserves compatibility, but later on we might consider getting rid of `COMPILER_RT_INSTALL_PATH` and just changing the defaults for the subdir variables directly.
---
There was a seaming bug where the (non-Apple) per-target libdir was `${target}` not `lib/${target}`. I suspect that has to do with the docs on `COMPILER_RT_INSTALL_PATH` saying was the library dir when that's no longer true, so I just went ahead and fixed it, allowing me to define fewer and more sensible variables.
That last part should be the only behavior changes; everything else should be a pure refactoring.
---
D99484 is the main thrust of the `GnuInstallDirs` work. Once this lands, it should be feasible to follow both of these up with a simple patch for compiler-rt analogous to the one for libcxx.
Reviewed By: phosek
Differential Revision: https://reviews.llvm.org/D101497
|
 | compiler-rt/cmake/Modules/CompilerRTUtils.cmake |
 | compiler-rt/cmake/Modules/AddCompilerRT.cmake |
 | compiler-rt/cmake/base-config-ix.cmake |
 | compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake |
 | compiler-rt/lib/dfsan/CMakeLists.txt |
 | compiler-rt/include/CMakeLists.txt |
Commit
0562d17864831f25e10691ee1bb60d7abd4dcf97
by dblaikiePR51018: A few more explicit conversions from SmallString to StringRef
Follow-up to 1def2579e10dd84405465f403e8c31acebff0c97 with a few more obscure cases.
|
 | llvm/lib/Support/Windows/Process.inc |
 | llvm/utils/TableGen/OptParserEmitter.cpp |
 | llvm/include/llvm/MC/MCFragment.h |
Commit
9647a6f719ee4b1c23eea7aef368c1dcd5317949
by aardappel[WebAssembly] Added initial type checker to MC Assembler
This to protect against non-sensical instruction sequences being assembled, which would either cause asserts/crashes further down, or a Wasm module being output that doesn't validate.
Unlike a validator, this type checker is able to give type-errors as part of the parsing process, which makes the assembler much friendlier to be used by humans writing manual input.
Because the MC system is single pass (instructions aren't even stored in MC format, they are directly output) the type checker has to be single pass as well, which means that from now on .globaltype and .functype decls must come before their use. An extra pass is added to Codegen to collect information for this purpose, since AsmPrinter is normally single pass / streaming as well, and would otherwise generate this information on the fly.
A `-no-type-check` flag was added to llvm-mc (and any other tools that take asm input) that surpresses type errors, as a quick escape hatch for tests that were not intended to be type correct.
This is a first version of the type checker that ignores control flow, i.e. it checks that types are correct along the linear path, but not the branch path. This will still catch most errors. Branch checking could be added in the future.
Differential Revision: https://reviews.llvm.org/D104945
|
 | llvm/test/CodeGen/WebAssembly/lower-em-ehsjlj-options.ll |
 | llvm/utils/gn/secondary/llvm/lib/Target/WebAssembly/AsmParser/BUILD.gn |
 | lld/test/wasm/signature-mismatch-relocatable.s |
 | llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp |
 | llvm/test/CodeGen/WebAssembly/indirect-import.ll |
 | llvm/test/MC/WebAssembly/import-module.s |
 | lld/test/wasm/bsymbolic.s |
 | llvm/test/MC/WebAssembly/bulk-memory-encodings.s |
 | lld/test/wasm/Inputs/ctor-setup.s |
 | llvm/lib/Target/WebAssembly/WebAssemblyMCLowerPrePass.cpp |
 | lld/test/wasm/weak-undefined-pic.s |
 | llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmTypeCheck.cpp |
 | lld/test/wasm/Inputs/hello.s |
 | lld/test/wasm/entry-signature.s |
 | llvm/test/MC/WebAssembly/assembler-binary.ll |
 | llvm/test/CodeGen/WebAssembly/global-get.ll |
 | llvm/include/llvm/CodeGen/MachineModuleInfo.h |
 | llvm/lib/Target/WebAssembly/WebAssembly.h |
 | lld/test/wasm/map-file.s |
 | llvm/test/MC/WebAssembly/alias-offset.s |
 | llvm/test/MC/WebAssembly/tail-call-encodings.s |
 | lld/test/wasm/export-all.s |
 | llvm/lib/MC/MCTargetOptions.cpp |
 | llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp |
 | llvm/test/CodeGen/WebAssembly/i128-returned.ll |
 | llvm/test/MC/WebAssembly/wasm64.s |
 | llvm/test/MC/WebAssembly/bad-fixup-expr.s |
 | lld/test/wasm/weak-and-strong-undef.s |
 | llvm/test/CodeGen/WebAssembly/load-store-pic.ll |
 | llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.h |
 | lld/test/wasm/undefined-weak-call.s |
 | lld/test/wasm/Inputs/import-attributes.s |
 | lld/test/wasm/Inputs/ctor-lib.s |
 | lld/test/wasm/comdat-sections.s |
 | llvm/test/MC/WebAssembly/type-index.s |
 | llvm/test/MC/WebAssembly/weak-alias.s |
 | lld/test/wasm/multivalue-return-func-types.s |
 | lld/test/wasm/Inputs/ctor-setup-call-def.s |
 | llvm/test/CodeGen/WebAssembly/userstack.ll |
 | llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td |
 | llvm/include/llvm/CodeGen/MachineModuleInfoImpls.h |
 | llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmTypeCheck.h |
 | llvm/test/MC/WebAssembly/data-section-combined.s |
 | llvm/test/MC/WebAssembly/simd-encodings.s |
 | llvm/lib/Target/WebAssembly/CMakeLists.txt |
 | llvm/test/MC/WebAssembly/null-output.s |
 | llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.h |
 | lld/test/wasm/shared.s |
 | lld/test/wasm/undefined-data.s |
 | llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp |
 | llvm/test/MC/WebAssembly/reloc-pic.s |
 | llvm/lib/Target/WebAssembly/WebAssemblyInstrFormats.td |
 | llvm/test/MC/WebAssembly/globals.s |
 | lld/test/wasm/Inputs/call-ret32.s |
 | llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h |
 | lld/test/wasm/early-exit-for-bad-paths.s |
 | lld/test/wasm/unresolved-symbols.s |
 | llvm/test/MC/WebAssembly/atomics-encodings.s |
 | llvm/test/MC/WebAssembly/reference-types.s |
 | lld/test/wasm/Inputs/sig_mismatch.s |
 | llvm/test/MC/WebAssembly/annotations.s |
 | lld/test/wasm/Inputs/ctor-start.s |
 | llvm/lib/CodeGen/MachineModuleInfoImpls.cpp |
 | llvm/lib/MC/MCTargetOptionsCommandFlags.cpp |
 | llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp |
 | lld/test/wasm/weak-symbols.s |
 | llvm/test/CodeGen/WebAssembly/exception.ll |
 | llvm/lib/Target/WebAssembly/Utils/WebAssemblyTypeUtilities.h |
 | lld/test/wasm/debuginfo-undefined-global.s |
 | llvm/lib/Target/WebAssembly/Utils/WebAssemblyTypeUtilities.cpp |
 | llvm/lib/Target/WebAssembly/AsmParser/CMakeLists.txt |
 | lld/test/wasm/relocatable-comdat.s |
 | lld/test/wasm/relocation-bad-tls.s |
 | llvm/test/MC/WebAssembly/tls.s |
 | llvm/lib/Target/WebAssembly/WebAssemblyInstrTable.td |
 | llvm/lib/Target/WebAssembly/TargetInfo/WebAssemblyTargetInfo.h |
 | llvm/test/CodeGen/WebAssembly/lower-global-dtors.ll |
 | lld/test/wasm/ctor_return_value.s |
 | lld/test/wasm/demangle.s |
 | lld/test/wasm/name-section-mangling.s |
 | llvm/include/llvm/MC/MCTargetOptions.h |
 | llvm/test/MC/WebAssembly/reloc-pic64.s |
 | lld/test/wasm/Inputs/undefined-globals.s |
 | lld/test/wasm/mutable-globals.s |
 | lld/test/wasm/import-attribute-mismatch.s |
 | llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp |
 | lld/test/wasm/export-optional.s |
 | lld/test/wasm/shared64.s |
 | lld/test/wasm/weak-undefined.s |
 | llvm/test/MC/WebAssembly/objdump.s |
 | llvm/utils/gn/secondary/llvm/lib/Target/WebAssembly/BUILD.gn |
 | lld/test/wasm/gc-imports.s |
 | llvm/test/MC/WebAssembly/basic-assembly.s |
Commit
47aeeffc8fb45c4926128657dd15eaa87edab647
by Jessica Paquette[GlobalISel] Use GCDTy when extracting GCD ty from leftover regs in insertParts
`LegalizerHelper::insertParts` uses `extractGCDType` on registers split into a desired type and a smaller leftover type. This is used to populate a list of registers. Each register in the list will have the same type as returned by `extractGCDType`.
If we have
- `ResultTy` = s792 - `PartTy` = s64 - `LeftoverTy` = s24
When we call `extractGCDType`, we'll end up with two different types appended to the list:
Part: gcd(792, 64, 24) => s8 Leftover: gcd(792, 24, 24) => s24
When this happens, we'll hit an assert while trying to build a G_MERGE_VALUES.
This patch changes the code for the leftover type so that we reuse the GCD from the desired type.
e.g.
Leftover: gcd(792, 8, 24) => s8
https://llvm.godbolt.org/z/137Kqxj6j
Differential Revision: https://reviews.llvm.org/D105674
|
 | llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp |
 | llvm/test/CodeGen/AArch64/GlobalISel/legalize-constant.mir |
Commit
ccb10266f56bc34123eb7741c6ebcd5ba8ed3dcc
by enye.shi[HIP] Move std headers after device malloc/free
Set the device malloc and free functions as weak, and move the std headers after device malloc/free to avoid issues with std malloc/free.
Fixes: SWDEV-293590
Reviewed By: yaxunl
Differential Revision: https://reviews.llvm.org/D105707
|
 | clang/lib/Headers/__clang_hip_runtime_wrapper.h |
 | clang/test/Headers/hip-header.hip |
Commit
156cb8d5ca6747ba1889388fadc804e7bb80e74a
by aardappel[WebAssembly] fix broken tools/llvm-symbolizer/wasm-basic.s test
|
 | llvm/test/tools/llvm-symbolizer/wasm-basic.s |
Commit
f3e6c3f327c278da27e5a3919f22719d128d8cc4
by aardappel[WebAssembly] Fixed 2 warnings in Asm Type Checker
|
 | llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmTypeCheck.cpp |
 | llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmTypeCheck.h |
Commit
10cb03622325e699d53fbca819e03dca2519f5aa
by andrea.dibiagio[llvm-mca] Refactor the logic that prints JSON files.
Moved most of the printing logic into the PipelinePrinter.
This patch also fixes the JSON output when flag -instruction-tables is specified.
|
 | llvm/tools/llvm-mca/Views/InstructionView.cpp |
 | llvm/test/tools/llvm-mca/JSON/X86/instruction-tables-multiple-regions.s |
 | llvm/tools/llvm-mca/PipelinePrinter.h |
 | llvm/tools/llvm-mca/PipelinePrinter.cpp |
 | llvm/tools/llvm-mca/Views/InstructionView.h |
 | llvm/tools/llvm-mca/Views/View.cpp |
 | llvm/tools/llvm-mca/llvm-mca.cpp |
 | llvm/tools/llvm-mca/Views/View.h |
Commit
1a4d1315650b7b2d18b1de56d2d6e3a1a0d632d3
by i[llvm-nm][test] diff -q => diff to make AIX happy
|
 | llvm/test/tools/llvm-nm/just-symbols.test |
Commit
c82b96c0a414e6ee10ce5ca9e22c73f772455017
by thakis[gn build] fix formatting after 9647a6f719ee
|
 | llvm/utils/gn/secondary/llvm/lib/Target/WebAssembly/AsmParser/BUILD.gn |
Commit
5f306feb4d3ff41b5c48e753067de3c93ca4240f
by kazu[WebAssembly] Fix warnings
|
 | llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmTypeCheck.cpp |
 | llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp |
Commit
49d66d9f9f495caeb17de823c72f1459be819d9a
by kazu[AFDO] Merge function attributes after inlining
This patch teaches the sample profile loader to merge function attributes after inlining functions.
Without this patch, the compiler could inline a function requiring the 512-bit vector width into its caller without merging function attributes, triggering a failure during instruction selection.
Differential Revision: https://reviews.llvm.org/D105729
|
 | llvm/test/Transforms/SampleProfile/Inputs/merge-function-attributes.afdo |
 | llvm/lib/Transforms/IPO/SampleProfile.cpp |
 | llvm/test/Transforms/SampleProfile/merge-function-attributes.ll |
Commit
fc01fafa3e7f05c2cc88352d3e07d4bff13b4f3a
by uday[MLIR][GPU][NFC] Fix documentation for wmma matrix load/store ops
Fix/improve documentation for wmma load/store matrix ops. Fix some broken and stale sentences.
Differential Revision: https://reviews.llvm.org/D105678
|
 | mlir/include/mlir/Dialect/GPU/GPUOps.td |
Commit
ac02baab48c2ff512e40140e2fe6845d2b6a636f
by dschuffWebAssembly: Update datalayout to match fp128 ABI change
This fix goes along with d1a96e906cc03a95cfd41a1f22bdda92651250c7 and makes the fp128 alignment match clang's long double alignment.
Differential Revision: https://reviews.llvm.org/D105749
|
 | llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp |
 | llvm/test/CodeGen/WebAssembly/varargs.ll |
 | clang/lib/Basic/Targets/WebAssembly.h |
Commit
8e9216fe877cf263c93a0f769235bef425d395b6
by valery.n.dmitriev[SLP] Do not make an attempt to match reduction on already erased instruction.
Differential Revision: https://reviews.llvm.org/D105752
|
 | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp |
 | llvm/test/Transforms/SLPVectorizer/X86/revectorized_rdx_crash.ll |
Commit
9c4baf5101e9ee55bfae1ce7657a7b89a06b4ccf
by efriedma[ScalarEvolution] Strictly enforce pointer/int type rules.
Rules:
1. SCEVUnknown is a pointer if and only if the LLVM IR value is a pointer. 2. SCEVPtrToInt is never a pointer. 3. If any other SCEV expression has no pointer operands, the result is an integer. 4. If a SCEVAddExpr has exactly one pointer operand, the result is a pointer. 5. If a SCEVAddRecExpr's first operand is a pointer, and it has no other pointer operands, the result is a pointer. 6. If every operand of a SCEVMinMaxExpr is a pointer, the result is a pointer. 7. Otherwise, the SCEV expression is invalid.
I'm not sure how useful rule 6 is in practice. If we exclude it, we can guarantee that ScalarEvolution::getPointerBase always returns a SCEVUnknown, which might be a helpful property. Anyway, I'll leave that for a followup.
This is basically mop-up at this point; all the changes with significant functional effects have landed. Some of the remaining changes could be split off, but I don't see much point.
Differential Revision: https://reviews.llvm.org/D105510
|
 | llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp |
 | llvm/unittests/Analysis/ScalarEvolutionTest.cpp |
 | llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp |
 | llvm/lib/Analysis/ScalarEvolution.cpp |
Commit
db4c25822a1d9458f961eeb6cecf8a7bbce05b13
by Vitaly Buka[scudo] Check if we use __clang_major__ >= 12
This makes sure we have support for MTE instructions. Later the check can be extended to support MTE on other compilers.
Reviewed By: pcc
Differential Revision: https://reviews.llvm.org/D105722
|
 | compiler-rt/lib/scudo/standalone/memtag.h |
Commit
882ee7fbd6fc989fba53f3d9672440771feb80f5
by efriedmaFix buildbot regression from 9c4baf5.
Apparently ScalarEvolution::isImpliedCond tries to truncate a pointer in some obscure cases. Guard the code with a check for pointers.
|
 | llvm/lib/Analysis/ScalarEvolution.cpp |
Commit
04c203e310bd3fb58e16c936c0200d680100526e
by dblaikiellvm-symbolizer: Fix "start file" to work with Split DWARF
A followup to the feature added in 69da27c7496ea373567ce5121e6fe8613846e7a5 that added the optional "start file name" to match "start line" - but this didn't work with Split DWARF because of the need for the decl file number resolution code to refer back to the skeleton unit to find its .debug_line contribution. So this patch adds the necessary infrastructure to track the skeleton unit corresponding to a split full unit for the purpose of this lookup.
|
 | llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h |
 | llvm/lib/DebugInfo/DWARF/DWARFDie.cpp |
 | llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp |
 | llvm/test/DebugInfo/X86/symbolize_function_start.s |
Commit
e5220104d0708e02f2faaacc091189fb3e47e30c
by tlively[WebAssembly] Custom combines for f64x2.promote_low_f32x4
Replace the clang builtin function and LLVM intrinsic previously used to select the f64x2.promote_low_f32x4 instruction with custom combines from standard SelectionDAG nodes. Implement the new combines to share code with the similar combines for f64x2.convert_low_i32x4_{s,u}. Resolves PR50232.
Differential Revision: https://reviews.llvm.org/D105675
|
 | llvm/include/llvm/IR/IntrinsicsWebAssembly.td |
 | clang/lib/CodeGen/CGBuiltin.cpp |
 | llvm/test/CodeGen/WebAssembly/simd-intrinsics.ll |
 | clang/test/Headers/wasm.c |
 | clang/lib/Headers/wasm_simd128.h |
 | clang/test/CodeGen/builtins-wasm.c |
 | llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td |
 | llvm/lib/Target/WebAssembly/WebAssemblyISD.def |
 | llvm/test/CodeGen/WebAssembly/simd-conversions.ll |
 | clang/include/clang/Basic/BuiltinsWebAssembly.def |
 | llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp |
Commit
3822e3d5b049a23ac8ba78dd73767a490b678bd3
by vyng[lld-macho] Fix bug in handling unwind info from ld -r Two changess: - Drop assertions that all symbols are in GOT - Set allEntriesAreOmitted correctly
Related bug: 50812
Differential Revision: https://reviews.llvm.org/D105364
|
 | lld/MachO/UnwindInfoSection.cpp |
 | lld/test/MachO/relocs-syms-not-in-got.s |
Commit
b8e5f918166c46f8b3c0674f2a2e81bfcb95f969
by Lang Hames[ORC] Flesh out ExecutorAddress, rename CommonOrcRuntimeTypes header.
Renames CommonOrcRuntimeTypes.h to ExecutorAddress.h and moves ExecutorAddress into the 'orc' namespace (rather than orc::shared).
Also makes ExecutorAddress a class, adds an ExecutorAddrDiff type and some arithmetic operations on the pair (subtracting two addresses yields an addrdiff, adding an addrdiff and an address yields an address).
|
 | llvm/include/llvm/ExecutionEngine/Orc/Shared/CommonOrcRuntimeTypes.h |
 | llvm/include/llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h |
 | llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp |
 | llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h |
Commit
58a2cb51436659cce341f3039414de88a3527332
by Amara Emerson[GlobalISel] Add a new artifact combiner for unmerge which looks through general artifact expressions.
The original motivation for this was to implement moreElementsVector of shuffles on AArch64, which resulted in complex sequences of artifacts like unmerge(unmerge(concat...)) which the combiner couldn't handle. It seemed here that the better option, instead of writing ever-more-complex combines, was to have a way to find the original "non-artifact" source registers for a given definition, walking through arbitrary expressions of unmerge/concat/insert. As long as the bits aren't extended or truncated, this is a pretty simple algorithm that avoids the need for lots of combines and instead jumps straight to the final result we want.
I've only used this new technique in 2 places within tryCombineUnmerge, using it in more general situations resulted in infinite loops in AMDGPU. So for now it's used when we would otherwise fail to combine and that seems to work.
In order to support looking through G_INSERTs, I also had to add it as an artifact in isArtifact(), which caused a whole lot of issues in tests. AMDGPU started infinite looping since full legalization of G_INSERT doensn't seem to be there. To work around this, I've temporarily added a CLI option to use the old behaviour so that the MIR tests will still run and terminate.
Other minor changes include no longer making >128b G_MERGE/UNMERGE legal. We never had isel support for that anyway and it was a remnant of the legacy legalizer rules. However being legal prevented the combiner from checking if it was dead and deleting them.
Differential Revision: https://reviews.llvm.org/D104355
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-flat.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-or.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-freeze.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-xor.mir |
 | llvm/lib/CodeGen/GlobalISel/Legalizer.cpp |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-private.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/artifact-find-value.mir |
 | llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-select.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-global.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-and.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-constant.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/legalize-inserts.mir |
 | llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-local.mir |