- Nov 11, 2021
-
-
Jay Foad authored
-
Jay Foad authored
When printing a LiveInterval, tweak the use of single and double spaces to try to make it clearer that the valnos are associated with the preceding range or subrange, not the following subrange. Compare the output before and then after this patch: %1 [32r,144r:0) 0@32r L000000000000000C [32r,144r:0) 0@32r L00000000000000F3 [32r,32d:0) 0@32r weight:0.000000e+00 %1 [32r,144r:0) 0@32r L000000000000000C [32r,144r:0) 0@32r L00000000000000F3 [32r,32d:0) 0@32r weight:0.000000e+00 Differential Revision: https://reviews.llvm.org/D113671
-
Jay Foad authored
-
Kazu Hirata authored
-
Stephan Herhut authored
Fusing into a reduction is only valid if doing so does not erase information on a reduction dimensions size. Differential Revision: https://reviews.llvm.org/D113500
-
Valentin Clement authored
This patch adds conversion for !fir.field types. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D113669 Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
Valentin Clement authored
The `fir.select_case` operation is converted to a if-then-else ladder. Conversion of `fir.select_case` operation with character is not implemented yet. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: kiranchandramohan, mehdi_amini Differential Revision: https://reviews.llvm.org/D113484 Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
Valentin Clement authored
`fir.dispatch`, `fir.dispatch_table` and `fir.dt_entry` are operations for type-bound procedures. This patch just adds placeholder conversion pattern that currently fails since F2003 is not implemented yet. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D113662
-
Zahira Ammarguellat authored
support default values for C/C++. FPP-MODEL=PRECISE enables FFP-CONTRACT(FMA is enabled). Fix for https://bugs.llvm.org/show_bug.cgi?id=50222
-
Jay Foad authored
Also add subranges to an existing live interval when introducing a new subreg def. Differential Revision: https://reviews.llvm.org/D113044
-
Jay Foad authored
In TwoAddressInstructionPass::processTiedPairs when updating live intervals after moving the last use of RegB back to the newly inserted copy, update any affected subranges as well as the main range. Differential Revision: https://reviews.llvm.org/D110411
-
Benjamin Kramer authored
-
Nicolas Vasilache authored
-
Simon Pilgrim authored
Now that FoldConstantArithmetic can fold bitcasted constants, we should peek through bitcasts of binop operands to try and find foldable constants
-
Raphael Isemann authored
-
Raphael Isemann authored
-
Simon Pilgrim authored
[DAG] FoldConstantArithmetic - fold intop(bitcast(buildvector(c1)),bitcast(buildvector(c1))) -> bitcast(intop(buildvector(c1'),buildvector(c2'))) Enable FoldConstantArithmetic to constant fold bitcasted constant build vectors. These have typically been bitcasted for type legalization purposes. By extracting the raw constant bit data, performing the constant fold, and then casting the constant bit data back to the (legalized) type, we can perform constant folding on integer types after legalization. This in particular helps 32-bit targets which need to handle vXi64 build vectors - during legalization the (unsupported) i64 elements are split to create a bitcasted v2Xi32 build vector. Addresses some regressions in D113192. Differential Revision: https://reviews.llvm.org/D113564
-
David Spickett authored
This adds a specific unwind plan for AArch64 Linux sigreturn frames. Previously we assumed that the fp would be valid here but it is not. https://github.com/torvalds/linux/blob/master/arch/arm64/kernel/vdso/sigreturn.S On Ubuntu Bionic it happened to point to an old frame info which meant you got what looked like a correct backtrace. On Focal, the info is completely invalid. (probably due to some code shuffling in libc) This adds an UnwindPlan that knows that the sp in a sigreturn frame points to an rt_sigframe from which we can offset to get saved sp and pc values to backtrace correctly. Based on LibUnwind's change: https://reviews.llvm.org/D90898 A new test is added that sets all compares the frames from the initial signal catch to the handler break. Ensuring that the stack/frame pointer, function name and register values match. (this test is AArch64 Linux specific because it's the only one with a specific unwind plan for this situation) Fixes https://bugs.llvm.org/show_bug.cgi?id=52165 Reviewed By: omjavaid, labath Differential Revision: https://reviews.llvm.org/D112069
-
Diana Picus authored
Convert !fir.alloca into !llvm.alloca. This also contains a fix for verifyInType in FIROps.cpp, to make sure we can handle a !fir.ptr<!fir.array<?xN>>. Differential Revision: https://reviews.llvm.org/D113563 Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com> Co-authored-by:
Jean Perier <jperier@nvidia.com>
-
Andrzej Warzynski authored
This is part of the upstreaming effort from the `fir-dev` branch in [1]. [1] https://github.com/flang-compiler/f18-llvm-project Differential Revision: https://reviews.llvm.org/D113571 Patch originally written by: Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com> Co-authored-by:
Jean Perier <jperier@nvidia.com>
-
Valentin Clement authored
This patch adds the !fir.vector type conversion. The type is converted to the builtin vector type. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D113657 Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
Luís Ferreira authored
This is part of https://github.com/dlang/projects/issues/81 . This patch enables support for D programming language demangler by using a pretty printed stacktrace with demangled D symbols, when present. Signed-off-by:
Luís Ferreira <contact@lsferreira.net> Reviewed By: JDevlieghere, teemperor Differential Revision: https://reviews.llvm.org/D110578
-
Andrzej Warzynski authored
Some header `#include`s that belong in TypeConverter.h rather than in CodeGen.cpp are moved accordingly. As TypeConverter.h is currently only used in CodeGen.cpp, this wouldn't cause any build issues (ultimately, all the required headers are included). However, this would become a problem when including TypeConverter.h elsewhere. Also, from [1], "(...) include all of the header files that you are using ". This is currently not the case in TypeConverter.h and hence the `#include`s should be moved. I've also added missing namespace qualifiers in a few places in TypeConverter.h [1] https://llvm.org/docs/CodingStandards.html#include-as-little-as-possible Differential Revision: https://reviews.llvm.org/D113569
-
Matthias Springer authored
* Move "linalg.inplaceable" attr name literals to BufferizableOpInterface. * Use `memref.copy` by default. Override to `linalg.copy` in ComprehensiveBufferizePass. These are the last remaining code dependencies on Linalg in Comprehensive Bufferize. The next commit will make ComprehensiveBufferize independent of the Linalg dialect. Differential Revision: https://reviews.llvm.org/D113457
-
Valentin Clement authored
This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: awarzynski Differential Revision: https://reviews.llvm.org/D113566 Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
Matthias Springer authored
This simplifies the signature of `bufferize`. Differential Revision: https://reviews.llvm.org/D113388
-
Simon Tatham authored
As of D105532, a couple of llvm-readobj options have slightly changed their spellings. '-file-headers' has become '--file-header', and '-symbols' has become '--symbols'. A modern llvm-readobj will respond to those single-dash spellings by trying to parse them as combinations of single-letter options, so that you get "unknown argument '-f'" for -file-headers, and "unknown argument '-y'" for the second letter of -symbols. extract_symbols.py was still invoking llvm-readobj with those old single-dash spellings. Changed them to the newly canonical ones, which as far as I can tell still work on llvm-readobj from before the change. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D113556
-
Florian Hahn authored
With fullfp16, it is cheaper to cast the {U,S}INT_TO_FP operand to i16 first, rather than promoting it to i32. The custom lowering for {U,S}INT_TO_FP already supports that, it just needs to be used. Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D113601
-
duanbo.db authored
The way function gets the induction variable is by judging whether StepInst or IndVar in the phi statement is one of the operands of CMP. But if the LatchCmpOp0/LatchCmpOp1 is a constant, the subsequent comparison may result in null == null, which is meaningless. This patch fixes the typo. Reviewed By: Whitney Differential Revision: https://reviews.llvm.org/D112980
-
Fangrui Song authored
-
Fangrui Song authored
Currently any API level>=16 uses default PIE. If API level<16 is too old to be supported, we can clean up some code. Reviewed By: danalbert Differential Revision: https://reviews.llvm.org/D113370
-
Igor Kudrin authored
An orphan section should be placed in the same memory region as its anchor section if the latter specifies the memory region explicitly. If there is no explicit assignment for the anchor section in the linker script, its memory region is selected by matching attributes, and the same should be done for the orphan section. Before the patch, some scripts that were handled smoothly in GNU ld caused an "error: no memory region specified for section" in lld. Differential Revision: https://reviews.llvm.org/D112925
-
Nicolas Vasilache authored
-
Qiu Chaofan authored
-
Nicolas Vasilache authored
This revision adds an implementation of 2-D vector.transpose for 4x8 and 8x8 for AVX2 and surfaces it to the Linalg level of control. Reviewed By: dcaballe Differential Revision: https://reviews.llvm.org/D113347
-
David Green authored
This extends performFpToIntCombine to work on FP16 vectors as well as the f32 and f64 vectors it already supported. Differential Revision: https://reviews.llvm.org/D113297
-
Lang Hames authored
-
Mehdi Amini authored
This decouples the printing/parsing from the "context" in which the parsing occurs. This will allow to invoke these methods directly using an OpAsmParser/OpAsmPrinter. Differential Revision: https://reviews.llvm.org/D113637
-
Bin Cheng authored
The function BranchProbabilityInfo::SccInfo::getSccExitBlocks is supposed to collect all exit blocks for SCC rather than all exiting blocks. This patch fixes the typo. Reviewed By: ebrevnov Differential Revision: https://reviews.llvm.org/D113344
-
Craig Topper authored
At least I think that's what the 32 here is. Use RegisterBitWidth instead. While there replace zext with zextOrSelf to simplify the code. Reviewed By: samparker, dmgreen Differential Revision: https://reviews.llvm.org/D113495
-