- Mar 09, 2022
-
-
Arthur Eubanks authored
-
Louis Dionne authored
I think that was left after we removed _CONSTEXPR_TERNARY based on a review comment -- the #undef was never removed.
-
Valentin Clement authored
This patch lowers the `associate` construct. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D121239 Co-authored-by:
V Donaldson <vdonaldson@nvidia.com> Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
Amir Ayupov authored
Address fuzzer crash on malformed input Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D121070
-
Lei Zhang authored
Reviewed By: hanchung Differential Revision: https://reviews.llvm.org/D121247
-
Lei Zhang authored
It's fine to use any integer (vector) values regardless of the signedness. The opcode decides how to interpret the bits. Reviewed By: hanchung Differential Revision: https://reviews.llvm.org/D121238
-
Lei Zhang authored
Reviewed By: hanchung Differential Revision: https://reviews.llvm.org/D121227
-
Tue Ly authored
Add testing macros for errno and floating point exceptions. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D121235
-
Mehdi Amini authored
This reverts commit b743850b. This didn't produce the expected result.
-
spupyrev authored
Differential Revision: https://reviews.llvm.org/D120508
-
Mehdi Amini authored
This feels like a layering violation, but it fixes the build. Fixes #54242 tools/mlir/lib/Dialect/GPU/CMakeFiles/obj.MLIRGPUTransforms.dir/Transforms/SerializeToHsaco.cpp.o:SerializeToHsaco.cpp:function (anonymous namespace)::SerializeToHsacoPass::optimizeLlvm(llvm::Module&, llvm::TargetMachine&): error: undefined reference to 'mlir::makeOptimizingTransformer(unsigned int, unsigned int, llvm::TargetMachine*)'
-
River Riddle authored
There is nothing specific to FuncOp about the check, it can be changed to be interface based. Differential Revision: https://reviews.llvm.org/D121194
-
River Riddle authored
This pass doesn't rely on any specific characteristics of FuncOp, and can just be a generic operation pass. Differential Revision: https://reviews.llvm.org/D121193
-
River Riddle authored
It is currently a module pass, but shouldn't be. All of the patterns are local conversions, and don't require anything about functions/modules. Differential Revision: https://reviews.llvm.org/D121192
-
River Riddle authored
These passes generally don't rely on any special aspects of FuncOp, and moving allows for these passes to be used in many more situations. The passes that obviously weren't relying on invariants guaranteed by a "function" were updated to be generic pass, the rest were updated to be FunctionOpinterface InterfacePasses. The test updates are NFC switching from implicit nesting (-pass -pass2) form to the -pass-pipeline form (generic passes do not implicitly nest as op-specific passes do). Differential Revision: https://reviews.llvm.org/D121190
-
River Riddle authored
Differential Revision: https://reviews.llvm.org/D121189
-
River Riddle authored
FuncOp isn't really important to hardcode here, it is only used to act as a root operation for the transformation. Differential Revision: https://reviews.llvm.org/D121195
-
River Riddle authored
A lot of test passes are currently anchored on FuncOp, but this dependency is generally just historical. A majority of these test passes can run on any operation, or can operate on a specific interface (FunctionOpInterface/SymbolOpInterface). This allows for greatly reducing the API dependency on FuncOp, which is slated to be moved out of the Builtin dialect. Differential Revision: https://reviews.llvm.org/D121191
-
Louis Dionne authored
This extension is a portability trap for users, since no other standard library supports it. Furthermore, the Standard explicitly allows implementations to reject std::allocator<cv T>, so allowing it is really going against the current. This was discovered in D120684: this extension required `const_cast`ing in `__construct_range_forward`, a fishy bit of code that can be removed if we don't support the extension anymore. This is a re-application of dbc647643577, which was reverted in 9138666f because it broke std::shared_ptr<T const>. Tests have now been added and we've made sure that std::shared_ptr<T const> wouldn't be broken in this version. Differential Revision: https://reviews.llvm.org/D120996
-
Michael Jones authored
There were some "TODO" messages that were for things that I have already completed. This patch removes those. Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D121232
-
Michael Jones authored
Previously, the entire support/CPP folder was in one header library, which meant that a lot of headers were included where they shouldn't be. This patch splits each header into its own target, as well as adjusting each place they were included to only include what is used. Reviewed By: sivachandra, lntue Differential Revision: https://reviews.llvm.org/D121237
-
Louis Dionne authored
-
Peter Klausler authored
F18 presently has fatal and non-fatal diagnostic messages. We'd like to make non-fatal warnings stand out better in the output of the compiler. This will turn out to be a large change that affects many files. This patch is just the first part. It converts a Boolean isFatal_ data member of the message classes into a severity code, and defines four of these codes (Error, Warning, Portability, and a catch-all Other). Later patches will result from sweeping over the parser and semantics, changing most non-fatal diagnostic messages into warnings and portability notes. Differential Revision: https://reviews.llvm.org/D121228
-
Rong Xu authored
Allow users to use multiple of --enable-fs-discriminator option. When this option is specified multiple times, the last instance wins.
-
Fangrui Song authored
Combined with the previous change, lld executable is ~2K smaller and some code paths using InputSection::getParent are more efficient. The fragmented headers lead to a design limitation that OutputSection has to be incomplete, so we cannot use static_cast.
-
Fangrui Song authored
Add an OutputDesc class inheriting from SectionCommand. An OutputDesc wraps an OutputSection. This change allows InputSection::getParent to be inlined. Differential Revision: https://reviews.llvm.org/D120650
-
Andrzej Warzynski authored
This patch adds support for dumping the pre-FIR tree in `flang-new -fc1`, i.e. Flang's frontend driver. This flag is functionally identical to `-pft-test` in `bbc` and semantically similar to `-fdebug-dump-parse-tree` from `flang-new -fc1`. Differential Revision: https://reviews.llvm.org/D121198
-
Valentin Clement authored
This patch lowers the computed and assigned goto statements. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: PeteSteinfeld, schweitz Differential Revision: https://reviews.llvm.org/D121219 Co-authored-by:
V Donaldson <vdonaldson@nvidia.com> Co-authored-by:
Jean Perier <jperier@nvidia.com>
-
Mahesh Ravishankar authored
Commit rG1a2bb03e introduced a pattern to convert dynamic dimensions in operands of `GenericOp`s to static values based on indexing maps and shapes of other operands. The logic is directly usable to any `LinalgOp`. Move that pattern as an `OpInterfaceRewritePattern`. Differential Revision: https://reviews.llvm.org/D120968
-
Lei Zhang authored
This is a pass that can be used by downstream consumers directly to avoid the boilerplate to wrap around the `populate*Patterns`. Reviewed By: ThomasRaoux Differential Revision: https://reviews.llvm.org/D121222
-
Arthur O'Dwyer authored
https://en.wikipedia.org/wiki/Heapsort#Bottom-up_heapsort In `pop_heap` specifically, the item we insert at the top and sift downward is guaranteed to be leaf-sized, so we expect it to go pretty far down. Sift it down as if it were INT_MIN, and then bubble it back up if needed. Also known as "heapsort with bounce." Numbers are here: https://godbolt.org/z/cvfnYW6fe Fixes #10008. Differential Revision: https://reviews.llvm.org/D118003
-
Arthur O'Dwyer authored
Reviewed as part of D118003.
-
Amir Ayupov authored
Convert simple hammocks into cmov based on misprediction rate. Test Plan: - Assembly test: `cmov-conversion.s` - Testing on a binary: # Bootstrap clang with `-x86-cmov-converter-force-all` and `-Wl,--emit-relocs` (Release build) # Collect perf.data: - `clang++ <opts> bolt/lib/Core/BinaryFunction.cpp -E > bf.cpp` - `perf record -e cycles:u -j any,u -- clang-15 bf.cpp -O2 -std=c++14 -c -o bf.o` # Optimize clang-15 with and w/o -cmov-conversion: - `llvm-bolt clang-15 -p perf.data -o clang-15.bolt` - `llvm-bolt clang-15 -p perf.data -cmov-conversion -o clang-15.bolt.cmovconv` # Run perf experiment: - test: `clang-15.bolt.cmovconv`, - control: `clang-15.bolt`, - workload (clang options): `bf.cpp -O2 -std=c++14 -c -o bf.o` Results: ``` task-clock [delta: -360.21 ± 356.75, delta(%): -1.7760 ± 1.7589, p-value: 0.047951, balance: -6] instructions [delta: 44061118 ± 13246382, delta(%): 0.0690 ± 0.0207, p-value: 0.000001, balance: 50] icache-misses [delta: -5534468 ± 2779620, delta(%): -0.4331 ± 0.2175, p-value: 0.028014, balance: -28] branch-misses [delta: -1624270 ± 1113244, delta(%): -0.3456 ± 0.2368, p-value: 0.030300, balance: -22] ``` Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D120177 -
Lang Hames authored
When an external symbol is converted to an absolute it should be demoted to local scope so that the symbol does not become a new definition within this LinkGraph.
-
Mahesh Ravishankar authored
A `tensor.cast` consumer can be folded with its producer. This is beneficial only if the result of the tensor cast is more static than the source. This patch adds a utility function to check that this is the case, and adds a couple of canonicalizations patterns that fold an operation with `tensor.cast` conusmers. Reviewed By: gysit Differential Revision: https://reviews.llvm.org/D120950
-
Chia-hung Duan authored
It's valid to create a TypedArrayAttr or MixedContainerType with nullptr, e.g., std::vector<mlir::Attribute> attrs = {mlir::StringAttr()}; builder.createArrayAttr(attrs); The predicate didn't check if it's a nullptr and it ended up a crash in the attribute static verifier. We always check if an attribute is null so it's better to align the check for these two container type attr. Reviewed By: rdzhabarov Differential Revision: https://reviews.llvm.org/D121178 -
Simon Pilgrim authored
[X86] convertIntLogicToFPLogic - enable fp-logic on pre-AVX targets for supported fp predicates (PR34563) If the SETCC fp-condcode is supported on SSE as a single CMPPS/PD op then we can use convertIntLogicToFPLogic to reduce EFLAGS and XMM->GPR traffic like we do for AVX targets. Differential Revision: https://reviews.llvm.org/D121210
-
Simon Pilgrim authored
Identify FP CondCode that can be performed by a non-AVX SSE CMP op Pulled out of D121210
-
Craig Topper authored
Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D120854
-
Craig Topper authored
Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D120785
-