- Jun 24, 2023
-
-
Pedro Falcato authored
Add -fcheck-new and -fno-check-new, from GCC, which make the compiler not assume pointers returned from operator new are non-null. Fixes #16931. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D125272
-
Vitaly Buka authored
We expect log messages from enother thread triggered by actions.
-
Thorsten Schütt authored
Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D153643
-
Johannes Doerfert authored
This is just a cleanup commit, a follow up will make this way more structured.
-
Johannes Doerfert authored
We now consistently use `CallBase::getCalledOperand` rather than `getCalledFunction`, as we do not want the type checked performed by the latter. This exposed various missing checks to handle mismatches properly, but it is good to have them explicit now. In a follow up we might want to flag certain calls as UB, but for now, we allow everything to cut down on unexpected differences.
-
Kai Sasaki authored
-
Youngsuk Kim authored
Partial progress towards replacing in-tree uses of `Type::getPointerTo()`. If `getPointerTo()` is used solely to support an unnecessary bitcast, remove the bitcast. Reviewed By: barannikov88, nikic Differential Revision: https://reviews.llvm.org/D153307
-
Mehdi Amini authored
When initializing DialectInterfaceCollection, we wouldn't have the missing interface name in the error. Differential Revision: https://reviews.llvm.org/D153676
-
Mehdi Amini authored
These aren't detected during testing most of the time because the way we are setting up mlir-opt and the fact that we always use func.func: it'll trigger the load of the InlinerInterface extension for the FuncDialect which itself loads these dialects unconditionally.
-
Fangrui Song authored
-
Kazu Hirata authored
[LegacyPM] Remove unused declarations createLowerMatrixIntrinsicsPass and createLowerMatrixIntrinsicsMinimalPass The corresponding function definitions were removed by: commit 27643229 Author: Kazu Hirata <kazu@google.com> Date: Fri Jun 23 01:32:38 2023 -0700
-
Kazu Hirata authored
The corresponding function definition was removed by: commit 15977742 Author: Arthur Eubanks <aeubanks@google.com> Date: Tue Dec 20 13:36:20 2022 -0800
-
Kazu Hirata authored
The corresponding function definitions were removed by: commit c8b8d6ba Author: Arthur Eubanks <aeubanks@google.com> Date: Thu Feb 9 17:22:56 2023 -0800
-
Kazu Hirata authored
[LegacyPM] Remove unused declarations initializeCorrelatedValuePropagationPass and initializeJumpThreadingPass The corresponding function definitions were removed by: commit 7c3c9814 Author: Arthur Eubanks <aeubanks@google.com> Date: Wed Mar 8 15:07:17 2023 -0800
-
LLVM GN Syncbot authored
-
Alex Brachet authored
This reverts commit 44265dc3.
-
varconst authored
-
LLVM GN Syncbot authored
-
Douglas Yung authored
Revert "[llvm-profdata] Refactoring Sample Profile Reader to increase FDO build speed using MD5 as key to Sample Profile map" This reverts commit 31af18bc. This change is causing build failures on many Windows build bots: https://lab.llvm.org/buildbot/#/builders/216/builds/22833 https://lab.llvm.org/buildbot/#/builders/123/builds/19602 https://lab.llvm.org/buildbot/#/builders/172/builds/28315 https://lab.llvm.org/buildbot/#/builders/119/builds/13870 https://lab.llvm.org/buildbot/#/builders/233/builds/794 https://lab.llvm.org/buildbot/#/builders/235/builds/387 https://lab.llvm.org/buildbot/#/builders/13/builds/36921 https://lab.llvm.org/buildbot/#/builders/127/builds/50510
-
Douglas Yung authored
This reverts commit a2e7f261. The original patch (31af18bc) will be reverted, so reverting this follow-up patch first.
-
Robert Suderman authored
Used the cephes numerical approximation for `math.atan`. This is a significant accuracy improvement over the previous taylor series approximation. Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D153656
-
Alex Bradbury authored
Without the changes from D153598. Original commit message: For the same reasons as D151284, this requires custom lowering of the truncate libcall on hard float ABIs (the normal libcall code path is used on soft ABIs). The extend operation is implemented by a shift just as in the standard legalisation, but needs to be custom lowered because i32 isn't a legal type on RV64. This patch aims to make the minimal changes that result in correct codegen for the bfloat.ll tests. Differential Revision: https://reviews.llvm.org/D151663
-
Craig Topper authored
After D153170 the tables are now sorted by extension name so we can use that to avoid a linear search. Reviewed By: asb, MaskRay Differential Revision: https://reviews.llvm.org/D153598
-
Craig Topper authored
This was committed with D153598 merged into it. Reverting to recommit as separate patches. This reverts commit 690b1c84.
-
Johannes Doerfert authored
-
Johannes Doerfert authored
Instead of creating an AA for an IR attribute we can first check if it is implied/known. If so, we can save the time to create the AA, figure out it is implied, fix it, and later manifest it in the IR (redundantly). Other IR attributes can be added to the list in `AA::hasAssumedIRAttr` later on, for now we support 8 different ones.
-
Johannes Doerfert authored
This will make it easier to create less trivial AAs in the future as we can simply return `nullptr` rather than an AA with in invalid state.
-
LLVM GN Syncbot authored
-
Teresa Johnson authored
D63932 added a module flag to indicate that we are executing the regular LTO post merge pipeline, so that GlobalDCE could perform more aggressive optimization for Dead Virtual Function Elimination. This caused issues trying to reuse bitcode that had already been through the LTO pipeline (see context in D139816). Instead support this by passing down a parameter flag to the GlobalDCEPass constructor, which is the more usual way for indicating this information. Most test changes are to remove incidental uses of this flag. Of the 2 real uses, llvm/test/LTO/ARM/lto-linking-metadata.ll is now obsolete and removed in this patch, and the virtual-functions-visibility-post-lto.ll test is updated to use the regular LTO default pipeline where this parameter is set to true. Differential Revision: https://reviews.llvm.org/D153655
-
Craig Topper authored
The operands may need to be available at different times.
-
Matt Arsenault authored
-
Matt Arsenault authored
These are basically the same thing and only differ for strictfp, so add both for future proofing. Note all the elementwise functions are currently broken for strictfp, and use non-constrained ops. Add a test that demonstrates this, but doesn't attempt to fix it.
-
Hongtao Yu authored
Compiler-generated static symbols, such as the global initializers, can shared the same name and can coexist in the binary. As a result, their pseudo probes are all kept in the binary too. This could cause multiple call probes decoded against one callsite, as probes are decoded against there owning functions by name. I'm temporarily disabling an assert to keep the debug build green until we have a better fix. Reviewed By: wenlei Differential Revision: https://reviews.llvm.org/D153588
-
Matt Arsenault authored
-
Johannes Doerfert authored
If the user wants to avoid running additional passes, they can now initialize the AnalysisGetter accordingly.
-
Johannes Doerfert authored
It was never really useful to track #iterations, though it helped during the initial development. What we should track, in a follow up, are potentially #updates. That is also what we should restrict instead of the #iterations.
-
Matt Arsenault authored
Pass all arguments so now assumes work.
-
Matt Arsenault authored
Introduce a full featured wrapper around computeKnownFPClass to start replacing the uses with.
-
Paul Kirth authored
Fat LTO objects contain both LTO compatible IR, as well as generated object code. This allows users to defer the choice of whether to use LTO or not to link-time. This is a feature available in GCC for some time, and makes the existing -ffat-lto-objects flag functional in the same way as GCC's. Within LLVM, we add a new EmbedBitcodePass that serializes the module to the object file, and expose a new pass pipeline for compiling fat objects. The new pipeline initially clones the module and runs the selected (Thin)LTOPrelink pipeline, after which it will serialize the module into a `.llvm.lto` section of an ELF file. When compiling for (Thin)LTO, this normally the point at which the compiler would emit a object file containing the bitcode and metadata. After that point we compile the original module using the PerModuleDefaultPipeline used for non-LTO compilation. We generate standard object files at the end of this pipeline, which contain machine code and the new `.llvm.lto` section containing bitcode. Since the two pipelines operate on different copies of the module, we can be sure that the bitcode in the `.llvm.lto` section and object code in `.text` are congruent with the existing output produced by the default and LTO pipelines. Original RFC: https://discourse.llvm.org/t/rfc-ffat-lto-objects-support/63977 Earlier versions of this patch were missing REQUIRES lines for llc related tests in Transforms/EmbedBitcode. Those tests are now under CodeGen/X86, which should avoid running the check on unsupported platforms. Reviewed By: tejohnson, MaskRay, nikic Differential Revision: https://reviews.llvm.org/D146776
-
Sami Tolvanen authored
With `-fsanitize=kcfi` (Kernel Control-Flow Integrity), Clang emits "kcfi" operand bundles to indirect call instructions. Similarly to the target-specific lowering added in D119296, implement KCFI operand bundle lowering for RISC-V. This patch disables the generic KCFI pass for RISC-V in Clang, and adds the KCFI machine function pass in `RISCVPassConfig::addPreSched` to emit target-specific `KCFI_CHECK` pseudo instructions before calls that have KCFI operand bundles. The machine function pass also bundles the instructions to ensure we emit the checks immediately before the calls, which is not possible with the generic pass. `KCFI_CHECK` instructions are lowered in `RISCVAsmPrinter` to a contiguous code sequence that traps if the expected hash in the operand bundle doesn't match the hash before the target function address. This patch emits an `ebreak` instruction for error handling to match the Linux kernel's `BUG()` implementation. Just like for X86, we also emit trap locations to a `.kcfi_traps` section to support error handling, as we cannot embed additional information to the trap instruction itself. Relands commit 62fa708c with fixed tests. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D148385
-