Craig Topper [Mon, 5 Sep 2022 04:18:54 +0000 (21:18 -0700)]
[X86] Pre-commit tests for D130862. NFC
Craig Topper [Mon, 5 Sep 2022 02:42:14 +0000 (19:42 -0700)]
[TargetLowering] Use getShiftAmountConstant. NFC
Chuanqi Xu [Mon, 5 Sep 2022 03:04:38 +0000 (11:04 +0800)]
[NFC] fix incorrect indentation in docs
gonglingqin [Mon, 5 Sep 2022 02:27:54 +0000 (10:27 +0800)]
[LoongArch] Add codegen support for fcopysign
Differential Revision: https://reviews.llvm.org/D133185
Chenbing Zheng [Mon, 5 Sep 2022 02:41:58 +0000 (10:41 +0800)]
[InstCombine] Precommit tests for smul_with_overflow. nfc
ZHU Zijia [Mon, 5 Sep 2022 01:56:04 +0000 (09:56 +0800)]
[LLVM][docs] Update CMake.rst to follow the upgrade to C++ 17 [NFC]
Update `CMake.rst` to follow the upgrade to C++ 17 in LLVM.
Reviewed By: thieta, MaskRay
Differential Revision: https://reviews.llvm.org/D133272
Fangrui Song [Mon, 5 Sep 2022 00:43:39 +0000 (17:43 -0700)]
[ELF] Change a DSO warning to errorOrWarn
Fangrui Song [Mon, 5 Sep 2022 00:27:35 +0000 (17:27 -0700)]
[ELF] Use stOther to track visibility
This simplifies SymbolTableSection<ELFT>::writeTo. Add dsoProtected to be used
in canDefineSymbolInExecutable and get the side benefit that the protected DSO
preemption diagnostic is clearer.
Fangrui Song [Sun, 4 Sep 2022 23:38:27 +0000 (16:38 -0700)]
[ELF] Simplify visibility computation. NFC
Fangrui Song [Sun, 4 Sep 2022 23:21:19 +0000 (16:21 -0700)]
[ELF] SharedFile::parse: make versym handling more precise
VER_NDX_LOCAL/VER_NDX_GLOBAL cannot be hidden, so we can compare them with
versyms[i] instead of versyms[i] & ~VERSYM_HIDDEN. In the presence of an error,
we can suppress addSymbol.
Fangrui Song [Sun, 4 Sep 2022 22:38:52 +0000 (15:38 -0700)]
[ELF] Clarify a workaround for mips GNU ld<2.31
Vitaly Buka [Sun, 4 Sep 2022 21:52:04 +0000 (14:52 -0700)]
Revert "[llvm] Use range-based for loops (NFC)"
range-based loop should not be used here, as
fixupImmediateBr push_backs into the container.
http://lab.llvm.org/buildbot/#/builders/168
http://lab.llvm.org/buildbot/#/builders/74
http://lab.llvm.org/buildbot/#/builders/5
http://lab.llvm.org/buildbot/#/builders/239
http://lab.llvm.org/buildbot/#/builders/237
http://lab.llvm.org/buildbot/#/builders/236
This reverts commit
fedc59734a44ef7b62c5f389b0cdffd02264b2a9.
Fangrui Song [Sun, 4 Sep 2022 22:15:39 +0000 (15:15 -0700)]
[ELF] Remove unneeded @@ check. NFC
Fangrui Song [Sun, 4 Sep 2022 21:44:58 +0000 (14:44 -0700)]
[ELF] Remove a redundant identify_magic call. NFC
Florian Hahn [Sun, 4 Sep 2022 21:22:36 +0000 (22:22 +0100)]
[LCSSA] Update unreachable uses with poison.
Users of LCSSA may not expect non-phi uses when checking the uses
outside a loop, which may cause crashes. This is due to the fact that we
do not update uses in unreachable blocks.
To ensure all reachable uses outside the loop are phis, update uses in
unreachable blocks to use poison in dead code.
Fixes #57508.
Florian Hahn [Sun, 4 Sep 2022 21:18:57 +0000 (22:18 +0100)]
[LV] Update test use opaque pointers, regenerate checks.
Modernize the test to make it easier to extend in a follow-up patch.
Florian Hahn [Sun, 4 Sep 2022 21:07:19 +0000 (22:07 +0100)]
[LCSSA] Update test use opaque pointers, regenerate checks.
Modernize the test to make it easier to extend in a follow-up patch.
LLVM GN Syncbot [Sun, 4 Sep 2022 21:07:13 +0000 (21:07 +0000)]
[gn build] Port
a46154cb1cd0
isuckatcs [Tue, 23 Aug 2022 07:21:16 +0000 (09:21 +0200)]
[analyzer] Warn if the size of the array in `new[]` is undefined
This patch introduces a new checker, called NewArraySize checker,
which detects if the expression that yields the element count of
the array in new[], results in an Undefined value.
Differential Revision: https://reviews.llvm.org/D131299
Daniel Bertalan [Sun, 4 Sep 2022 20:43:02 +0000 (22:43 +0200)]
[lld-macho] Change constant std::vector to std::array (NFC)
Simon Pilgrim [Sun, 4 Sep 2022 17:39:21 +0000 (18:39 +0100)]
[CostModel][X86] Add CostKinds handling for sqrt intrinsicc
This was achieved using the 'cost-tables vs llvm-mca' script from D103695
Some of the znver1/znver2 latency/throughput numbers were really weird (some copy+paste afaict) - I've used the numbers from the AMD SoG, which roughly match the 'worst case' range value from Agner
Simon Pilgrim [Sun, 4 Sep 2022 16:59:08 +0000 (17:59 +0100)]
[CostModel][X86] getTypeBasedIntrinsicInstrCost - convert to CostKindTblEntry
Begin the refactoring to use CostKindTblEntry and return real latency/codesize/sizelatency costs instead of reusing the throughput numbers
Simon Pilgrim [Sun, 4 Sep 2022 16:54:32 +0000 (17:54 +0100)]
[PhaseOrdering] Move X86 unsigned-multiply-overflow-check.ll test under X86
Simon Pilgrim [Sun, 4 Sep 2022 16:51:11 +0000 (17:51 +0100)]
Revert rG06e73626cf0fc33b025a0f98f1eee4a302279982 "[CostModel][X86] getTypeBasedIntrinsicInstrCost - convert to CostKindTblEntry"
Some arm buildbots are complaining about a phase ordering test failure in unsigned-multiply-overflow-check.ll - I guess this test needs making x86 specific first
Krzysztof Parzyszek [Sun, 4 Sep 2022 16:28:15 +0000 (11:28 -0500)]
[Libfuzzer] Include signal.h for SIGINT
Or else compiler-rt/lib/fuzzer/FuzzerUtilLinux.cpp fails to compile
on FreeBSD.
Simon Pilgrim [Sun, 4 Sep 2022 16:28:41 +0000 (17:28 +0100)]
[CostModel][X86] getTypeBasedIntrinsicInstrCost - convert to CostKindTblEntry
Begin the refactoring to use CostKindTblEntry and return real latency/codesize/sizelatency costs instead of reusing the throughput numbers
Ruobing Han [Sun, 4 Sep 2022 15:49:51 +0000 (11:49 -0400)]
[test] pre-submission for the following SimpleLoopUnswitch update
Nimish Mishra [Sun, 4 Sep 2022 20:15:54 +0000 (01:45 +0530)]
[flang][OpenMP] Handle private/firstprivate clauses on sections construct
This patch adds private/firstprivate support for sections construct. For
a source like the following:
```
!$omp sections private(x) firstprivate(y)
!$omp section
<block of code>
!$omp section
<block of code>
!$omp end sections
```
...privatization proceeds to privatize `x` and `y` accordingly
inside each of the generated `omp.section` operations.
Reviewed By: peixin
Differential Revision: https://reviews.llvm.org/D131463
Benjamin Kramer [Sun, 4 Sep 2022 13:19:48 +0000 (15:19 +0200)]
[OpenMP] Silence unused variable warning in release builds
llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp:3397:27: warning: unused variable 'SV' [-Werror]
for (const llvm::Value *SV : StoreValues)
^
Simon Pilgrim [Sun, 4 Sep 2022 13:06:26 +0000 (14:06 +0100)]
[CostModel][X86] Remove redundant AVX512 v64i8 shift costs
These are handled earlier (and more accurately) in AVX512BWShiftCostTable
Simon Pilgrim [Sun, 4 Sep 2022 10:58:53 +0000 (11:58 +0100)]
[CostModel][X86] Add CostKinds handling for mul ops
This was achieved using the 'cost-tables vs llvm-mca' script D103695
Also fix a missing pmullw v16i16 half-rate throughput as znver1 double-pumps - matches numbers from AMD SoG + Agner
Mehdi Amini [Mon, 29 Aug 2022 10:54:38 +0000 (10:54 +0000)]
Apply clang-tidy fixes for performance-for-range-copy in TilingInterfaceImpl.cpp (NFC)
Mehdi Amini [Mon, 29 Aug 2022 10:53:42 +0000 (10:53 +0000)]
Apply clang-tidy fixes for readability-identifier-naming in Tiling.cpp (NFC)
Simon Pilgrim [Sat, 3 Sep 2022 18:47:39 +0000 (19:47 +0100)]
[CostModel][X86] Add vector shift test coverage for codesize/latency/size-latency cost kinds
Christian Sigg [Sun, 4 Sep 2022 09:37:06 +0000 (11:37 +0200)]
[mlir:vscode] Fix bazel build after commit f7b8a70
Daniel Bertalan [Sun, 4 Sep 2022 07:52:32 +0000 (09:52 +0200)]
[lld-macho][test] Correct a mismatched adrp-add pair
Kazu Hirata [Sun, 4 Sep 2022 06:27:27 +0000 (23:27 -0700)]
[clang] Qualify auto in range-based for loops (NFC)
Kazu Hirata [Sun, 4 Sep 2022 06:27:25 +0000 (23:27 -0700)]
[llvm] Use range-based for loops (NFC)
Identified with modernize-loop-convert.
Kazu Hirata [Sun, 4 Sep 2022 06:27:23 +0000 (23:27 -0700)]
[ADT] Use std::tuple_element_t (NFC)
Kazu Hirata [Sun, 4 Sep 2022 06:27:22 +0000 (23:27 -0700)]
[llvm] Use std::remove_reference_t (NFC)
Kazu Hirata [Sun, 4 Sep 2022 06:27:20 +0000 (23:27 -0700)]
[mlir] Use std::enable_if_t (NFC)
Kazu Hirata [Sun, 4 Sep 2022 06:27:18 +0000 (23:27 -0700)]
[ADT] Use std::add_pointer_t (NFC)
Kazu Hirata [Sun, 4 Sep 2022 06:27:16 +0000 (23:27 -0700)]
[ADT] Use std::add_lvalue_reference_t (NFC)
Kazu Hirata [Sun, 4 Sep 2022 06:27:15 +0000 (23:27 -0700)]
[Support] Simplify reverseBits with constexpr if (NFC)
Differential Revision: https://reviews.llvm.org/D132814
Kazu Hirata [Sun, 4 Sep 2022 06:27:13 +0000 (23:27 -0700)]
[Support] Simplify isInt and isUInt with constexpr if (NFC)
Differential Revision: https://reviews.llvm.org/D132813
Fangrui Song [Sun, 4 Sep 2022 05:29:32 +0000 (05:29 +0000)]
[test] Make tests pass regardless of gnu++14/gnu++17 default
GCC from 11 onwards defaults to -std=gnu++17 for C++ source files. We want to do the same
(https://discourse.llvm.org/t/c-objc-switch-to-gnu-17-as-the-default-dialect/64360).
Split RUN lines, adjust `-verify`, or add `__cplusplus < 201703L` or `-Wno-dynamic-exception-spec`,
so that tests will pass regardless of gnu++14/gnu++17 default.
We have a desire to mark a test compatible with multiple language standards.
There are ongoing discussions how to add markers in the long term:
* https://discourse.llvm.org/t/iterating-lit-run-lines/62596
* https://discourse.llvm.org/t/lit-run-a-run-line-multiple-times-with-different-replacements/64932
As a workaround in the short term, add lit substitutions `%std_cxx98-`,
`%std_cxx11-14`, etc. They can be used for tests which work across multiple
language standards. If a range has `n` standards, run lit multiple times, with
`LIT_CLANG_STD_GROUP=0`, `LIT_CLANG_STD_GROUP=1`, etc to cover all `n` standards.
Reviewed By: #clang-language-wg, aaron.ballman
Differential Revision: https://reviews.llvm.org/D131464
Nick Kreeger [Sun, 4 Sep 2022 01:39:35 +0000 (01:39 +0000)]
[mlir][sparse] Expose SparseTensor passes as enums instead of opaque numbers for vectorization and parallelization options.
The SparseTensor passes currently use opaque numbers for the CLI, despite using an enum internally. This patch exposes the enums instead of numbered items that are matched back to the enum.
Fixes https://github.com/llvm/llvm-project/issues/53389
Differential Revision: https://reviews.llvm.org/D123876
Please also see:
https://reviews.llvm.org/D118379
https://reviews.llvm.org/D117919
Fangrui Song [Sat, 3 Sep 2022 21:29:21 +0000 (14:29 -0700)]
[SanitizerCoverage] Simplify pc-table and improve test. NFC
Vitaly Buka [Sat, 3 Sep 2022 21:07:28 +0000 (14:07 -0700)]
[test][mlir] Restore used attributes deleted by D132726
Nick Kreeger [Sat, 3 Sep 2022 20:47:40 +0000 (15:47 -0500)]
Revert "[mlir][sparse] Expose SparseTensor passes as enums instead of opaque"
This reverts commit
ef25b5d93d0b5621eb5d0482abd30a4e127e9223.
Nick Kreeger [Sat, 3 Sep 2022 20:45:49 +0000 (15:45 -0500)]
[mlir][sparse] Expose SparseTensor passes as enums instead of opaque
numbers for vectorization and parallelization options.
The SparseTensor passes currently use opaque numbers for the CLI,
despite using an enum internally. This patch exposes the enums instead
of numbered items that are matched back to the enum.
Fixes https://github.com/llvm/llvm-project/issues/53389
Differential Revision: https://reviews.llvm.org/D123876
Please also see:
https://reviews.llvm.org/D118379
https://reviews.llvm.org/D117919
Vitaly Buka [Sat, 3 Sep 2022 20:12:49 +0000 (13:12 -0700)]
Revert "[Clang][CodeGen] Avoid __builtin_assume_aligned crash when the 1st arg is array type"
Breakes windows bot.
This reverts commit
3ad2fe913ae08ca062105731ad2da2eae825c731.
Ye Luo [Sat, 3 Sep 2022 18:27:33 +0000 (13:27 -0500)]
[OpenMP] add a offload test involving std::complex
Taken from the https://github.com/llvm/llvm-project/issues/57064 reproducer.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D133258
Kazu Hirata [Sat, 3 Sep 2022 18:17:49 +0000 (11:17 -0700)]
[llvm] Qualify auto in range-based for loops (NFC)
Identified with readability-qualified-auto.
Kazu Hirata [Sat, 3 Sep 2022 18:17:47 +0000 (11:17 -0700)]
Drop empty string literals from static_assert (NFC)
Identified with modernize-unary-static-assert.
Kazu Hirata [Sat, 3 Sep 2022 18:17:45 +0000 (11:17 -0700)]
[llvm] Use std::remove_const_t (NFC)
Kazu Hirata [Sat, 3 Sep 2022 18:17:44 +0000 (11:17 -0700)]
[llvm] Use std::enable_if_t (NFC)
Kazu Hirata [Sat, 3 Sep 2022 18:17:42 +0000 (11:17 -0700)]
[ADT] Use std::add_const_t (NFC)
Kazu Hirata [Sat, 3 Sep 2022 18:17:40 +0000 (11:17 -0700)]
[llvm] Use range-based for loops (NFC)
Kazu Hirata [Sat, 3 Sep 2022 18:17:38 +0000 (11:17 -0700)]
Use llvm::upper_bound (NFC)
Kazu Hirata [Sat, 3 Sep 2022 18:17:37 +0000 (11:17 -0700)]
Use llvm::lower_bound (NFC)
Kazu Hirata [Sat, 3 Sep 2022 18:17:35 +0000 (11:17 -0700)]
Use llvm::count_if (NFC)
Kazu Hirata [Sat, 3 Sep 2022 18:17:33 +0000 (11:17 -0700)]
[CodeGen] Use std::lcm (NFC)
Kazu Hirata [Sat, 3 Sep 2022 18:17:32 +0000 (11:17 -0700)]
[BOLT] Use range-based for loops (NFC)
LLVM Coding Standards discourage for_each unless callable objects
already exist.
Fangrui Song [Sat, 3 Sep 2022 17:57:29 +0000 (10:57 -0700)]
[Driver] Remove unused -Ttext -Tdata -Tbss
They lead to -Wunused-command-line-argument and should be written as -Ttext=
instead, but the driver options end with a space. -Ttext=0 can be accepted by
the JoinedOrSeparate -T, so the JoinedOrSeparate -Ttext/etc are unneeded.
Fangrui Song [Sat, 3 Sep 2022 17:45:30 +0000 (10:45 -0700)]
[Driver] Change some cc1 only JoinedOrSeparate long options to Separate
They are error-prone as they do not end with `=`.
Note: for driver -isystem/etc, we have to support the Joined form.
Simon Pilgrim [Sat, 3 Sep 2022 17:45:04 +0000 (18:45 +0100)]
[CostModel][X86] Adjust mul v4i32/v8i32 throughput cost
Based off the numbers from AMD SoG + Agner - vXi32 are both half-rate, and znver1 double-pumps the v8i32 op
We should have caught this earlier as many Intel models have half-rate pmulld already :-(
Simon Pilgrim [Sat, 3 Sep 2022 16:18:26 +0000 (17:18 +0100)]
[CostModel][X86] Add CostKinds handling for add/sub ops
This was achieved using the 'cost-tables vs llvm-mca' script D103695
Dave Lee [Thu, 1 Sep 2022 17:30:38 +0000 (10:30 -0700)]
[lldb][bindings] Fix module_access handling of regex
Fixes broken support for: `target.module[re.compile("libFoo")]`
There were two issues:
1. The type check was expecting `re.SRE_Pattern`
2. The expression to search the module path had a typo
In the first case, `re.SRE_Pattern` does not exist in Python 3, and is replaced
with `re.Pattern`.
While editing this code, I changed the type checks to us `isinstance`, which is
the conventional way of type checking.
From the docs on `type()`:
> The `isinstance()` built-in function is recommended for testing the type of an object, because it takes subclasses into account.
Differential Revision: https://reviews.llvm.org/D133130
yronglin [Sat, 3 Sep 2022 15:24:37 +0000 (23:24 +0800)]
[Clang][CodeGen] Avoid __builtin_assume_aligned crash when the 1st arg is array type
Avoid __builtin_assume_aligned crash when the 1st arg is array type(or string literal).
Open issue: https://github.com/llvm/llvm-project/issues/57169
Reviewed By: rjmccall
Differential Revision: https://reviews.llvm.org/D133202
Simon Pilgrim [Sat, 3 Sep 2022 14:48:33 +0000 (15:48 +0100)]
[CostModel][X86] Add CostKinds handling for fdiv ops
This was achieved with an updated version of the 'cost-tables vs llvm-mca' script D103695
As we're using 'typical' worst case values, not all cost entries come from a single CPU - e.g. the latency/throughput from haswell but the size-latency(uops) from zen1/alderlake-e due to 'double pumping'
As the uop count (used for TCK_SizeAndLatency) for divss/divps is typically so low, we need to override isExpensiveToSpeculativelyExecute to ensure we keep fdiv calls behind branches - although for some very recent cpu targets it might not be necessary any more and could be relaxed.
Sanjay Patel [Sat, 3 Sep 2022 14:12:13 +0000 (10:12 -0400)]
[SCCP] add helper function for replacing signed operations; NFC
Preliminary refactoring for planned enhancement in D133198.
Simon Pilgrim [Sat, 3 Sep 2022 14:23:41 +0000 (15:23 +0100)]
[X86] Fix fdiv throughput/latency/uops counts
Matches znver1/2 numbers from AMD SoG + Agner - no additional uops for folded instructions and znver1 double pumps 256-bit vectors
Matches skylake/icelake throughput numbers from Intel AoM + Agner/instlatx64
Noticed while adding fdiv CostKinds support
Christian Sigg [Sat, 3 Sep 2022 07:15:34 +0000 (09:15 +0200)]
[MLIR] Single lit config attribute for CMAKE_LIBRARY_OUTPUT_DIRECTORY
Replace the following config attributes with `mlir_lib_dir`:
- `mlir_runner_utils_dir`
- `linalg_test_lib_dir`
- `spirv_wrapper_library_dir`
- `vulkan_wrapper_library_dir`
- `mlir_integration_test_dir`
I'm going to clean up substitutions in separate changes.
Reviewed By: aartbik, mehdi_amini
Differential Revision: https://reviews.llvm.org/D133217
Sanjay Patel [Sat, 3 Sep 2022 12:57:00 +0000 (08:57 -0400)]
[InstCombine] reduce another or-xor bitwise logic pattern
~(A & ?) | (A ^ B) --> ~((A & ?) & B)
https://alive2.llvm.org/ce/z/mxex6V
This is similar to
9d218b61cc50 where we peeked through
another logic op to find a common operand.
Sanjay Patel [Fri, 2 Sep 2022 19:03:13 +0000 (15:03 -0400)]
[InstCombine] add tests for or-xor-nand; NFC
Simon Pilgrim [Sat, 3 Sep 2022 13:08:25 +0000 (14:08 +0100)]
[CostModel][X86] Add fdiv(double) throughput x87 costs for
Simon Pilgrim [Sat, 3 Sep 2022 12:47:41 +0000 (13:47 +0100)]
[AMDGPU] Add -verify-machineinstrs to attr-amdgpu-flat-work-group-size* tests
These were affected by D131825 (and reported on Issue #57149) - adding the verification will help ensure that we don't hit this again on builds with EXPENSIVE_CHECKS enabled
Simon Pilgrim [Sat, 3 Sep 2022 12:41:33 +0000 (13:41 +0100)]
[DAG] canCreateUndefOrPoison - add freeze(insert_subvector(x,y,c)) -> insert_subvector(freeze(x),freeze(y),c) support
We already have plenty of assertions in place to ensure that the insertion index is constant and inrange
Simon Pilgrim [Sat, 3 Sep 2022 12:27:08 +0000 (13:27 +0100)]
[X86] Add test showing failure to fold freeze(insert_subvector(x,y,c)) -> insert_subvector(freeze(x),freeze(y),c)
If at least one of x and y are known never poison.
Simon Pilgrim [Sat, 3 Sep 2022 12:12:15 +0000 (13:12 +0100)]
[TTI] Add isExpensiveToSpeculativelyExecute wrapper
CGP uses a raw `getInstructionCost(I, TargetTransformInfo::TCK_SizeAndLatency) >= TCC_Expensive` check to see if its better to move an expensive instruction used in a select behind a branch instead.
This is causing issues with upcoming improvements to TCK_SizeAndLatency costs on X86 as we need to use TCK_SizeAndLatency as an uop count (so its compatible with various target-specific buffer sizes - see D132288), but we can have instructions that have a low TCK_SizeAndLatency value but should still be treated as 'expensive' (FDIV for example) - by adding a isExpensiveToSpeculativelyExecute wrapper we can keep the current behaviour but still add an x86 override in a future patch when the cost tables are updated to compensate.
Igor Zhukov [Sat, 3 Sep 2022 11:49:50 +0000 (18:49 +0700)]
[libc++] Implement P2273R3 (`constexpr` `unique_ptr`)
Reviewed By: mordante, #libc
Differential Revision: https://reviews.llvm.org/D131315
Mark de Wever [Sat, 3 Sep 2022 11:35:48 +0000 (13:35 +0200)]
[NFC][libc++] Uses the new way to mark Standard includes.
Mark de Wever [Sat, 3 Sep 2022 11:34:14 +0000 (13:34 +0200)]
[NFC][libc++][format] Removes unused code.
The code was for backwards compatibility with code no longer present in
format.
Mark de Wever [Sat, 3 Sep 2022 11:20:10 +0000 (13:20 +0200)]
[NFC][libc++] Removes GCC-11 support.
GCC-11 isn't supported in libc++ so remove UNSUPPORTED directives.
Simon Pilgrim [Sat, 3 Sep 2022 10:10:51 +0000 (11:10 +0100)]
[X86] Fix fmul throughput/latency/uops counts
Matches numbers from AMD SoG + Agner - should always be on FPU Pipes 0+1, no additional uops for folded instructions and znver1 double pumps 256-bit vectors and is always latency = 4cy for f64 multiplies
Noticed while adding fmul CostKinds support to the x86 cost models in rG0735200e3f50 and znver1 wasn't being flagged as requiring 2uop for 256-bit vectors
Simon Pilgrim [Sat, 3 Sep 2022 09:42:20 +0000 (10:42 +0100)]
[CostModel][X86] Add CostKinds handling for fmul ops
This was achieved with an updated version of the 'cost-tables vs llvm-mca' script D103695
As we're using 'typical' worst case values, not all cost entries come from a single CPU - e.g. the latency/throughput from haswell but the size-latency(uops) from zen1/alderlake-e due to 'double pumping'
Simon Pilgrim [Sat, 3 Sep 2022 08:59:14 +0000 (09:59 +0100)]
[CostModel][X86] Remove unused float x87 costs
We only need the double costs for SSE1 fallback
Junduo Dong [Sat, 3 Sep 2022 08:38:37 +0000 (01:38 -0700)]
Revert "[Clang] change default storing path of `-ftime-trace`"
This reverts commit
38941da066a7b785ba4771710189172e94e37824.
Junduo Dong [Sat, 3 Sep 2022 08:37:55 +0000 (01:37 -0700)]
Revert "[driver][clang] remove the check-time-trace test on the platform "PS4/PS5/Hexagon""
This reverts commit
39221ad55752c246bb8448a181847103432e12b2.
Alexey Lapshin [Wed, 31 Aug 2022 12:13:26 +0000 (15:13 +0300)]
[DWARFLinker] Refactor clang modules loading code.
Current implementation of registerModuleReference() function not only
"registers" module reference, but also clones referenced module
(inside loadClangModule()). That may lead to cloning the module with
incorrect options (registerModuleReference() examines module references
and additionally accumulates MaxDwarfVersion and accel tables info).
Since accumulated options may differ from the current values,
it is incorrect to clone modules before options are fully accumulated.
This patch separates "cloning" code from "registering" code. So,
that accumulating option is done in the "registering stage" and
"cloning" is done after all modules are registered and options accumulated.
It also adds a callback for loaded compile units which can be used for
D132755 and D132371(to allow doing options accumulation outside
of DWARFLinker).
Differential Revision: https://reviews.llvm.org/D133047
Mark de Wever [Sat, 3 Sep 2022 08:19:35 +0000 (10:19 +0200)]
[libc++] Fixes generated output CI job.
It seems there was another file with the same issue, which didn't show
up initially.
Mark de Wever [Fri, 2 Sep 2022 15:53:28 +0000 (17:53 +0200)]
[NFC][libc++] Moves transitive includes location.
As discussed in D132284 they will be moved to the end.
Reviewed By: #libc, Mordante
Differential Revision: https://reviews.llvm.org/D133212
Mark de Wever [Sat, 3 Sep 2022 08:04:44 +0000 (10:04 +0200)]
[libc++] Fixes generated output CI job.
Benjamin Kramer [Sat, 3 Sep 2022 07:55:20 +0000 (09:55 +0200)]
Christian Sigg [Sat, 3 Sep 2022 06:49:51 +0000 (08:49 +0200)]
Resubmit "[MLIR] Remove unused config attributes from lit.site.cfg.py"
This resubmits commit 0816b62, reverted in commit 328bbab, but without removing the config.target_triple.
Lit checks UNSUPPORTED tags in the input against the config.target_triple (https://llvm.org/docs/TestingGuide.html#constraining-test-execution).
The original commit made the following bots start failing, because unsupported tests were no longer skipped:
- s390x: https://lab.llvm.org/buildbot/#/builders/199/builds/9247
- Windows: https://lab.llvm.org/buildbot/#/builders/13/builds/25321
- Sanitizer: https://lab.llvm.org/buildbot/#/builders/5/builds/27187
owenca [Thu, 1 Sep 2022 06:19:08 +0000 (23:19 -0700)]
[clang-format] Fix a bug in merging blocks with a wrapped l_brace
When the opening brace of a control statement block is wrapped, we
must check the previous line to determine whether to try to merge
the block.
Fixes #38639.
Fixes #48007.
Fixes #57421.
Differential Revision: https://reviews.llvm.org/D133093
Lang Hames [Sat, 3 Sep 2022 03:55:35 +0000 (20:55 -0700)]
[ORC-RT] Refactor ORC runtime CMake for future test tool(s).
We want to move functionality from the LLVM ORCTargetProcess library into the
ORC runtime, and this will mean implementing remote-executor testing tools
(like llvm-jitlink-executor and lli-child-target) in the ORC runtime.
This patch refactors the ORC runtime build system to introduce an
add_orc_tool function that can be used to add new test tools. The code is
modeled on existing functions for adding unit tests.
A placeholder orc-rt-executor tool and test are added to verify that the
config changes behave as expected.
Reviewed By: phosek
Differential Revision: https://reviews.llvm.org/D133084
Junduo Dong [Sat, 3 Sep 2022 02:45:26 +0000 (19:45 -0700)]
[driver][clang] remove the check-time-trace test on the platform "PS4/PS5/Hexagon"
One of the test cases in that test is designed to test the compiling
jobs with a linking stage, but the PS4/PS5/Hexagon platform requires
an external linker that isn't present.
So this test do not support the "PS4/PS5/Hexagon".
LLVM GN Syncbot [Sat, 3 Sep 2022 02:43:17 +0000 (02:43 +0000)]
[gn build] Port
bc8fd9c6335f