- May 15, 2020
-
-
Scott Linder authored
This has been duplicated since before 2372a193, but that commit has it appearing twice in the space of 10 lines of the same function body. It could also be hoisted up to the point just after where the last special-case is considered, but I want to keep the intent of the original authors. Committed as obvious without a review.
-
Thomas Lively authored
Summary: This new custom DAG combine fixes a codegen issue with the wasm_simd128.h intrinsics. Clang lowers the return (v128_t)(__f32x4){__a, __a, __a, __a}; body of f32x4_splat to a splat shuffle of a bitcasted vector, as seen in the new simd-shuffle-bitcast.ll test. The bitcast interfered with the target-independent DAG combine that combines splat shuffles into BUILD_VECTOR nodes, so this patch introduces a new custom DAG combine to hoist the bitcast out of the shuffle, allowing the target-independent combine to work as intended. Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D80021
-
Hongtao Yu authored
This is fixing a thinLTO module collision issue for thin archives. The problem is that we always use a zero offset to name members in a thin archive and that causes the following build error: ld.lld: error: Expected at most one ThinLTO module per bitcode file which happens to a thin archive that has two members with the same object file name (whose paths will be ignored by thinLTO driver) The fix here is to use real member offset instead as is done for non-thin archives. Differential Revision: https://reviews.llvm.org/D79880
-
Eli Friedman authored
This unifies SETCC operations along the lines of other operations. Differential Revision: https://reviews.llvm.org/D79975
-
Christopher Tetreault authored
Reviewers: deadalnix, efriedma, rengolin, jyknight, joerg Reviewed By: joerg Subscribers: tschuett, hiraditya, rkruppe, psnobl, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79915
-
Matt Arsenault authored
This should not be allowed to change the address space of the source and result, so the pointer types should match. The only emitter of this seems to be a disable clang change, so no tests to update.
-
Daniel Grumberg authored
-
Jinsong Ji authored
Only add CMAKE_EXE_LINKER_FLAGS when in a standalone bulid. Or else CMAKE_EXE_LINKER_FLAGS contains flags for build compiler of Clang/llvm. This might not be the same as what the COMPILER_RT_TEST_COMPILER supports. eg: the build compiler use lld linker and we use it to build clang with default ld linker then to be tested clang will complain about lld options like --color-diagnostics. Reviewed By: phosek Differential Revision: https://reviews.llvm.org/D78373
-
Louis Dionne authored
It doesn't appear to be needed anymore with the Clang on our build bots.
-
Siva Chandra Reddy authored
Reviewers: phosek Differential Revision: https://reviews.llvm.org/D79725
-
Louis Dionne authored
We already set it using -rpath when linking test executables, and using DYLD_LIBRARY_PATH causes problems when running other commands that shouldn't run against the just-built libc++ (e.g. `ls` in a ShTest). rdar://63241847
-
Siva Chandra Reddy authored
A new utils library named 'fputil' is added. This library is used in math tests and the MPFR wrapper. The math implementations will be modified to use this library in a later round. Reviewers: phosek Differential Revision: https://reviews.llvm.org/D79724
-
Fangrui Song authored
Announced on https://lists.llvm.org/pipermail/llvm-dev/2020-May/141416.html Similar to D79371, but for `multiclass B` (convenience helper for defining --foo and --no-foo) Some changed options are also used by gold, but I haven't seen their one-dash use cases outside of lld's testsuite.
-
aartbik authored
Summary: First, compact implementation of lowering to LLVM IR. A bit more challenging than the constant mask due to the dynamic indices, of course. I like to hear if there are more efficient ways of doing this in LLVM, but this for now at least gives us a functional reference implementation. Reviewers: nicolasvasilache, ftynse, bkramer, reidtatge, andydavis1, mehdi_amini Reviewed By: nicolasvasilache Subscribers: mehdi_amini, rriddle, jpienaar, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, liufengdb, stephenneuendorffer, Joonsoo, grosul1, frgossen, Kayjukh, jurahul, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79954
-
Sourabh Singh Tomar authored
This fixes bot failure seen in http://lab.llvm.org:8011/builders/llvm-clang-win-x-armv7l/builds/7378 by adding `REQUIRES: x86_64-linux` to the test case
-
Louis Dionne authored
Since we're using the new testing format, DYLD_LIBRARY_PATH is not passed to the compiler -- it's only passed to the programs we run as an argument to the %{exec} substitution.
-
Thomas Lively authored
Summary: Move instructions that have recently been implemented in V8 from the `unimplemented-simd128` target feature to the `simd128` target feature. The updated instructions match the update at https://github.com/WebAssembly/simd/pull/223. Reviewers: aheejin Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D79973
-
Nicolas Vasilache authored
DimOp folding is using bare accesses to underlying SubViewOp operands. This is generally incorrect and is fixed in this revision. Differential Revision: https://reviews.llvm.org/D80017
-
Wouter van Oortmerssen authored
BuildMI requires this debug loc to be from the same sub program as the variable metadata passed in. Differential Revision: https://reviews.llvm.org/D80019
-
Sourabh Singh Tomar authored
This fixes bot failure seen in http://lab.llvm.org:8011/builders/llvm-clang-win-x-armv7l/builds/7378 by adding `REQUIRES: x86_64-linux` to the test case
-
Nikita Popov authored
The "null-pointer-is-valid" attribute needs to be checked by many pointer-related combines. To make the check more efficient, convert it from a string into an enum attribute. In the future, this attribute may be replaced with data layout properties. Differential Revision: https://reviews.llvm.org/D78862
-
Stephen Neuendorffer authored
It is possible for optimizations to create SSA code which violates the dominance property in unreachable blocks. Equivalently, dominance computed using normal mechanisms is undefined in unreachable blocks. See discussion here: https://llvm.discourse.group/t/rfc-allowing-dialects-to-relax-the-ssa-dominance-condition/833/51 This patch only checks the dominance condition inside blocks which are reachable from the the entry block of their region. Note that the dominance conditions of regions contained in an unreachable block are still checked. Differential Revision: https://reviews.llvm.org/D79922
-
Simon Pilgrim authored
Avoid repeated isa<> and cast<> by just performing a dyn_cast<ConstantSDNode>
-
Jay Foad authored
Remove Use::setPrev. It provided no value because it had the same accessibility as the underlying field Prev, and there was no corresponding setNext anyway. Simplify Use::removeFromList.
-
Sanjay Patel authored
This broke when we started canonicalizing more code to funnel shift. See D79718 and D79827 for related test/transforms.
-
Louis Dionne authored
This is already handled by setting cxx_runtime_root instead -- I don't see a reason to have two ways of setting the runtime path of the library we're running against.
-
Craig Topper authored
It makes more sense to turn these into real instructions a little earlier in the pipeline. I've made sure to adjust the memoperand so the spill/reload comments are printed correctly.
-
Alexey Lapshin authored
Summary: Apply clang-format to X86ISelLowering.h Reviewed by: aeubanks Differential Revision: https://reviews.llvm.org/D80005
-
Yonghong Song authored
Such a builtin function is mostly useful to preserve btf type id for non-global data. For example, extern void foo(..., void *data, int size); int test(...) { struct t { int a; int b; int c; } d; d.a = ...; d.b = ...; d.c = ...; foo(..., &d, sizeof(d)); } The function "foo" in the above only see raw data and does not know what type of the data is. In certain cases, e.g., logging, the additional type information will help pretty print. This patch implemented a BPF specific builtin u32 btf_type_id = __builtin_btf_type_id(param, flag) which will return a btf type id for the "param". flag == 0 will indicate a BTF local relocation, which means btf type_id only adjusted when bpf program BTF changes. flag == 1 will indicate a BTF remote relocation, which means btf type_id is adjusted against linux kernel or future other entities. Differential Revision: https://reviews.llvm.org/D74668
-
Simon Pilgrim authored
Avoid raw cast<ConstantSDNode> calls.
-
Simon Pilgrim authored
-
Louis Dionne authored
Because of Python's funny scoping rules with lambdas, we were always using the value of `macro` as set in the last iteration of the loop. This problem was introduced by e7bdfba4.
-
Louis Dionne authored
Otherwise, specifying (for example) the libc++.dylib from macos10.13 but the libc++abi.dylib from macos10.12 would end up adding library paths for both the 10.12 and 10.13 dylibs, which would each contain a copy of both libc++abi.dylib and libc++.dylib. By using a separate directory for libc++.dylib and libc++abi.dylib, those do not conflict anymore. The back-deployment roots were updated to match this change.
-
Anna Welker authored
Adds support to build pre-incrementing scatters. If the increment (i.e., add instruction) that is merged into the scatter is the loop increment, an incrementing write-back scatter can be built, which then assumes the role of the loop increment. Differential Revision: https://reviews.llvm.org/D79859
-
Fangrui Song authored
Similar to D74882. This reverts much code from commit bd8cfe65 (D68323) and fixes some problems before D68323. Sorry for the churn but D68323 was a mistake. Namespace qualifiers avoid bugs where the definition does not match the declaration from the header. See https://llvm.org/docs/CodingStandards.html#use-namespace-qualifiers-to-implement-previously-declared-functions (D74515) Differential Revision: https://reviews.llvm.org/D79982
-
Louis Dionne authored
It's just confusing to have them all over the place.
-
Anna Thomas authored
Summary: This change exposes the vector name mangling with LLVM ISA (used as part of vector-function-abi-variant) as a utility. This can then be used by front-ends that add this attribute. Note that all parameters passed in to the function will be mangled with the "v" token to identify that they are of of vector type. So, it is the responsibility of the caller to confirm that all parameters in the vectorized variant is of vector type. Added unit test to show vector name mangling. Reviewed-By: fpetrogalli, simoll Differential Revision: https://reviews.llvm.org/D79867
-
Yvan Roux authored
Use smart pointer instead of new/delete.
-
LLVM GN Syncbot authored
-
Yonghong Song authored
The builtin function u32 btf_type_id = __builtin_btf_type_id(param, 0) can help preserve type info for the following use case: extern void foo(..., void *data, int size); int test(...) { struct t { int a; int b; int c; } d; d.a = ...; d.b = ...; d.c = ...; foo(..., &d, sizeof(d)); } The function "foo" in the above only see raw data and does not know what type of the data is. In certain cases, e.g., logging, the additional type information will help pretty print. This patch handles the builtin in BPF backend. It includes an IR pass to translate the IR intrinsic to a load of a global variable which carries the metadata, and an MI pass to remove the intermediate load of the global variable. Finally, in AsmPrinter pass, proper instruction are generated. In the above example, the second argument for __builtin_btf_type_id() is 0, which means a relocation for local adjustment, i.e., w.r.t. bpf program BTF change, will be generated. The value 1 for the second argument means a relocation for remote adjustment, e.g., against vmlinux. Differential Revision: https://reviews.llvm.org/D74572
-