- Jun 01, 2021
-
-
Nathan Chancellor authored
This reverts commit 4f2fd381. The Linux kernel fails to build after this commit. See https://reviews.llvm.org/D99481 for a reproducer. Signed-off-by:
Nathan Chancellor <nathan@kernel.org>
-
Arthur Eubanks authored
-
Albion Fung authored
The code gen for f32 to i32 bitcast is not currently the most efficient; this patch removes some unneccessary instructions gerneated. Differential revision: https://reviews.llvm.org/D100782
-
Bjorn Pettersson authored
The tightened checks from commit 722c39fe did not work fully for buildbots using symlinks in repo paths. This patch is not fully reverting 722c39fe, as we still match that there is a "/lib" somewhere in the path before "/clang/". So this is once again a bit fragile in case someone would put their repo in a base directory, for example, named "/scratch/lib/foo/clang/llvm-project/". But it is atleast a bit better than the original checks (avoiding the problem that commit 722c39fe was solving).
-
Congzhe Cao authored
This patch fixes pr43326 and pr48212. Currently when we move reduction phis to the right place, loop interchange assumes the first phi in loop headers is an induction phi, skips the first phi and assumes the rest of phis are candidate reduction phis to move. However, it may not always be the case. This patch loops over all phis in loop headers and considers a phi node as a candidate reduction phi to move only when it is indeed a reduction phi across outer and inner loop. Reviewed By: Whitney Differential Revision: https://reviews.llvm.org/D102743
-
Florian Hahn authored
Also remove mustprogress function attribute from one of the tests Extends test coverage for D103382.
-
Martin Storsjö authored
Avoid including a header that is known not to work with clang in MSVC mode when compiling as C. (Alternatively, this could be something like "XFAIL: clang && msvc", but I think it's more useful to actually check the rest of the test instead of expecting the whole test to fail.) Differential Revision: https://reviews.llvm.org/D103400
-
Martin Storsjö authored
This was added inconsistently in 19fd9039; Windows doesn't have the aligned_alloc function (neither MSVC nor MinGW toolchains) and we don't define _LIBCPP_HAS_ALIGNED_ALLOC while building libcxx. Differential Revision: https://reviews.llvm.org/D103399
-
Martin Storsjö authored
This define was out of sync with the corresponding define in tests, it was added inconsistently in 171c77b7. Modern MSVC environments do have these typedefs and functions. Differential Revision: https://reviews.llvm.org/D103398
-
Martin Storsjö authored
While the code uses the type name `std::mbstate_t`, the warning message mentions the original underlying type, which is a C library internal type name. On Windows this type is called `_Mbstatet` instead of `__mbstate_t`. Use expect-warning-re to avoid spelling out the literal name of the type. Due to issues with the detection of the clang-verify feature, these tests have been skipped in the Windows CI configuration so far. Differential Revision: https://reviews.llvm.org/D103309
-
Florian Hahn authored
Update isFirstOrderRecurrence to explore all uses of a recurrence phi and check if we can sink them. If there are multiple users to sink, they are all mapped to the previous instruction. Fixes PR44286 (and another PR or two). Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D84951
-
Andi Drebes authored
Prefix all operations from the ODS of the `Math` dialect with `Math_` in order to avoid name clashes when including `MathOps.td` in other TableGen files (e.g., for `FloatUnaryOp`, which also exists in `Standard`). Reviewed By: jpienaar, mehdi_amini Differential Revision: https://reviews.llvm.org/D103248
-
Qiu Chaofan authored
Reviewed By: nemanjai Differential Revision: https://reviews.llvm.org/D103386
-
Nico Weber authored
-
Christopher Di Bella authored
Differential Revision: https://reviews.llvm.org/D103329
-
Andi Drebes authored
The `::mlir` namespace for operations from standard is currently defined by enclosing the header file generated from the ODS in `Ops.td` in a namespace in `Ops.h`. However, when referencing operations from `Ops.td` in other TableGen files, this causes the generated C++ code to refer to classes from the global namespace instead of `::mlir`. By defining the namespace through the `cppNamespace` field for `StandardOps_Dialect` directly in `Ops.td` instead, the ODS becomes reusable in other TableGen files through simple inclusion. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D103234
-
Arthur Eubanks authored
These depend on pointee types.
-
Abbas Sabra authored
https://docs.microsoft.com/en-us/cpp/extensions/abstract-cpp-component-extensions?view=msvc-160 Note: like the already supported "sealed" keyword, the "abstract" keyword is supported by MSVC by default. This re-commits 818338ad with added initialization of Parser::Ident_abstract. Differential revision: https://reviews.llvm.org/D102517
-
Harald van Dijk authored
Fixes bug https://llvm.org/PR48939. Differential Revision: https://reviews.llvm.org/D102359
-
Arthur Eubanks authored
These were found with D103412.
-
Andrea Di Biagio authored
This is based on the assumption that most simulated instructions don't define more than one or two registers. This is true for example on x86, where most instruction definitions don't declare more than one register write. The default code region size has been increased from 8 to 16. This is based on the assumption that, for small microbenchmarks, the typical code snippet size is often less than 16 instructions. mca::Instruction now uses bitfields to pack flags. No functional change intended.
-
Arthur Eubanks authored
Needs REQUIRES.
-
- May 31, 2021
-
-
Louis Dionne authored
Make sure we provide the correct It::difference_type member and update the tests and synopses to be accurate. Supersedes D102657 and D103101 (thanks to the original authors). Differential Revision: https://reviews.llvm.org/D103273
-
Arthur Eubanks authored
It breaks up the function pass manager in the codegen pipeline. With empty parameters, it looks at the -mllvm flag -rewrite-map-file. This is likely not in use. Add a check that we only have one function pass manager in the codegen pipeline. Some tests relied on the fact that we had a module pass somewhere in the codegen pipeline. addr-label.ll crashes on ARM due to this change. This is because a ARMConstantPoolConstant containing a BasicBlock to represent a blockaddress may hold an invalid pointer to a BasicBlock if the blockaddress is invalidated by its BasicBlock getting removed. In that case all referencing blockaddresses are RAUW a constant int. Making ARMConstantPoolConstant::CVal a WeakVH fixes the crash, but I'm not sure that's the right fix. As a workaround, create a barrier right before ISel so that IR optimizations can't happen while a ARMConstantPoolConstant has been created. Reviewed By: rnk, MaskRay, compnerd Differential Revision: https://reviews.llvm.org/D99707
-
Arthur O'Dwyer authored
Give each of the relevant functional operators a `__result_type` instead, so that we can keep using those typedefs in <valarray> even when the public binder typedefs are removed in C++20. Differential Revision: https://reviews.llvm.org/D103371
-
Anirudh Prasad authored
- This patch is the second (and hopefully final) part of providing HLASM syntax for inline asm statements for z/OS to LLVM (continuing on from https://reviews.llvm.org/D98276) - This second part deals with providing label support - As mentioned in https://reviews.llvm.org/D98276, if the first token is not a space we process the first token as a label, and the remaining tokens as a possible machine instruction - To achieve this, a new `parseAsHLASMLabel` function is introduced. This function processes the first token, validates whether it is an "acceptable" label according to HLASM standards, and then emits it - After handling and emitting the label, call the `parseAsMachineInstruction` instruction to process the remaining tokens as a machine instruction. Reviewed By: uweigand Differential Revision: https://reviews.llvm.org/D103320
-
Daniil Fukalov authored
1. Removed redundant includes, 2. Removed never defined and used `releaseMemory()`. 3. Fixed member functions names first letter case. 4. Renamed duplicate (in nested struct `NonLocalPointerInfo`) name `NonLocalDeps` to `NonLocalDepsMap`. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D102358
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in LinalgInterfaces.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103404
-
Mikhail Goncharov authored
This reverts commit 818338ad. Tests fail under sanitizer: https://lab.llvm.org/buildbot/#/builders/5/builds/8150
-
Tobias Gysi authored
Adding methods to access operand properties via OpOperands and mark outdated methods as deprecated. Differential Revision: https://reviews.llvm.org/D103394
-
Sanjay Patel authored
I accidentaly pushed a draft of D103280 that was discussed during the review, but it was not supposed to be the final version. Rather than revert and recommit, I'm updating the existing code. This way we have a record of the codegen diff that would result if we decide to remove this predicate in the future.
-
Nico Weber authored
-
Frederik Gossen authored
Differential Revision: https://reviews.llvm.org/D103403
-
Roman Lebedev authored
ExprValueMap is a map from SCEV * to a set-vector of (Value *, ConstantInt *) pair, and while the map itself will likely be big-ish (have many keys), it is a reasonable assumption that each key will refer to a small-ish number of pairs. In particular looking at n=512 case from https://bugs.llvm.org/show_bug.cgi?id=50384, the small-size of 4 appears to be the sweet spot, it results in the least allocations while minimizing memory footprint. ``` $ for i in $(ls heaptrack.opt.*.gz); do echo $i; heaptrack_print $i | tail -n 6; echo ""; done heaptrack.opt.0-orig.gz total runtime: 14.32s. calls to allocation functions: 8222442 (574192/s) temporary memory allocations: 2419000 (168924/s) peak heap memory consumption: 190.98MB peak RSS (including heaptrack overhead): 239.65MB total memory leaked: 67.58KB heaptrack.opt.1-n1.gz total runtime: 13.72s. calls to allocation functions: 7184188 (523705/s) temporary memory allocations: 2419017 (176338/s) peak heap memory consumption: 191.38MB peak RSS (including heaptrack overhead): 239.64MB total memory leaked: 67.58KB heaptrack.opt.2-n2.gz total runtime: 12.24s. calls to allocation functions: 6146827 (502355/s) temporary memory allocations: 2418997 (197695/s) peak heap memory consumption: 163.31MB peak RSS (including heaptrack overhead): 211.01MB total memory leaked: 67.58KB heaptrack.opt.3-n4.gz total runtime: 12.28s. calls to allocation functions: 6068532 (494260/s) temporary memory allocations: 2418985 (197017/s) peak heap memory consumption: 155.43MB peak RSS (including heaptrack overhead): 201.77MB total memory leaked: 67.58KB heaptrack.opt.4-n8.gz total runtime: 12.06s. calls to allocation functions: 6068042 (503321/s) temporary memory allocations: 2418992 (200646/s) peak heap memory consumption: 166.03MB peak RSS (including heaptrack overhead): 213.55MB total memory leaked: 67.58KB heaptrack.opt.5-n16.gz total runtime: 12.14s. calls to allocation functions: 6067993 (499958/s) temporary memory allocations: 2418999 (199307/s) peak heap memory consumption: 187.24MB peak RSS (including heaptrack overhead): 233.69MB total memory leaked: 67.58KB ``` While that test may be an edge worst-case scenario, https://llvm-compile-time-tracker.com/compare.php?from=dee85d47d9f15fc268f7b18f279dac2774836615&to=98a57e31b1947d5bcdf4a5605ac2ab32b4bd5f63&stat=instructions agrees that this also results in improvements in the usual situations.
-
Uday Bondhugula authored
Fix warnings in AffineOps.cpp. Differential Revision: https://reviews.llvm.org/D103374
-
Pushpinder Singh authored
This patch splits the code path for host and device malloc. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D103389
-
Alexey Lapshin authored
During reviewing D102277 it was decided to remove lazy options processing from llvm-objcopy CopyConfig structure. This patch transforms processing of ELF lazy options into the in-place processing. Differential Revision: https://reviews.llvm.org/D103260
-
Mikhail Goncharov authored
-
Sanjay Patel authored
sext (vsetcc X, Y) --> vsetcc (zext X), (zext Y) -- (when the zexts are free and a bunch of other conditions) We have a couple of similar folds to this already for vector selects, but this pattern slips through because it is only a setcc. The tests are based on the motivating case from: https://llvm.org/PR50055 ...but we need extra logic to get that example, so I've left that as a TODO for now. Differential Revision: https://reviews.llvm.org/D103280
-
Juneyoung Lee authored
-