- Feb 28, 2021
-
-
Gabor Horvath authored
Differential Revision: https://reviews.llvm.org/D97605
-
- Feb 27, 2021
-
-
Sanjay Patel authored
In the example based on: https://llvm.org/PR49218 ...we are crashing because poison is a subclass of undef, so we merge blocks and create: PHI node has multiple entries for the same basic block with different incoming values! %k3 = phi i64 [ poison, %entry ], [ %k3, %g ], [ undef, %entry ] If both poison and undef values are incoming, we soften the poison values to undef. Differential Revision: https://reviews.llvm.org/D97495
-
Wang, Pengfei authored
Per the discussion in D97453. We currently disable it due to it's not a common scenario and has some problem in implementation. Differential Revision: https://reviews.llvm.org/D97453
-
Stephen Kelly authored
Differential Revision: https://reviews.llvm.org/D97150
-
Stephen Kelly authored
Differential Revision: https://reviews.llvm.org/D97153
-
Stephen Kelly authored
Differential Revision: https://reviews.llvm.org/D97152
-
Stephen Kelly authored
Differential Revision: https://reviews.llvm.org/D97151
-
Stephen Kelly authored
Differential Revision: https://reviews.llvm.org/D97149
-
Stephen Kelly authored
Differential Revision: https://reviews.llvm.org/D97147
-
Stephen Kelly authored
Differential Revision: https://reviews.llvm.org/D97145
-
Stephen Kelly authored
Differential Revision: https://reviews.llvm.org/D97144
-
Stephen Kelly authored
Differential Revision: https://reviews.llvm.org/D96222
-
Ella Ma authored
[llvm] Add assertions for the smart pointers with the possibility to be null in DWARFLinker::loadClangModule Split from D91844. The local variable `Unit` in function `DWARFLinker::loadClangModule` in file `llvm/lib/DWARFLinker/DWARFLinker.cpp`. If the variable is not set in the loop below its definition, it will trigger a null pointer dereference after the loop. Patch By: OikawaKirie Reviewed By: avl Differential Revision: https://reviews.llvm.org/D97185
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Vitaly Buka authored
-
Fangrui Song authored
-
Eric Schweitz authored
This function will be used in subsequent upstreaming merges. Author: Jean Perier Differential Revision: https://reviews.llvm.org/D97502
-
River Riddle authored
This also exposed a bug in Dialect loading where it was not correctly identifying identifiers that had the dialect namespace as a prefix. Differential Revision: https://reviews.llvm.org/D97431
-
Rob Suderman authored
Includes a lowering for tosa.const, tosa.if, and tosa.while to Standard/SCF dialects. TosaToStandard is used for constant lowerings and TosaToSCF handles the if/while ops. Resubmission of https://reviews.llvm.org/D97518 with ASAN fixes. Differential Revision: https://reviews.llvm.org/D97529
-
Jessica Clarke authored
This should now be about as style-conforming as TableGen'ed code ever can reasonably be.
-
Fangrui Song authored
-
Eric Schweitz authored
- add ops: rebox, insert_on_range, absent, is_present - embox, coordinate_of: replace old hand-written parser/pretty-printer with assembly format - remove dead floating point ops, since buitlins work for all types - update call op - update documentation - misc. NFC to formatting - add op round trip tests Authors: Eric Schweitz, Jean Perier, Zachary Selk, Kiran Chandramohan, et.al. Differential Revision: https://reviews.llvm.org/D97500
-
Heejin Ahn authored
D97247 added the reverse mapping from unwind destination to their source, but it had a critical bug; sources can be multiple, because multiple BBs can have a single BB as their unwind destination. This changes `WasmEHFuncInfo::getUnwindSrc` to `getUnwindSrcs` and makes it return a vector rather than a single BB. It does not return the const reference to the existing vector but creates a new vector because `WasmEHFuncInfo` stores not `BasicBlock*` or `MachineBasicBlock*` but `PointerUnion` of them. Also I hoped to unify those methods for `BasicBlock` and `MachineBasicBlock` into one using templates to reduce duplication, but failed because various usages require `BasicBlock*` to be `const` but it's hard to make it `const` for `MachineBasicBlock` usages. Fixes https://github.com/emscripten-core/emscripten/issues/13514. (More precisely, fixes https://github.com/emscripten-core/emscripten/issues/13514#issuecomment-784708744) Reviewed By: dschuff, tlively Differential Revision: https://reviews.llvm.org/D97583
-
Sam Clegg authored
Specifically: - InputChunk::outputOffset -> outSecOffset - Symbol::get/setVirtualAddress -> get/setVA - add InputChunk::getOffset helper that takes an offset These are mostly in preparation for adding support for SHF_MERGE/SHF_STRINGS but its also good to align with ELF where possible. Differential Revision: https://reviews.llvm.org/D97595
-
Kevin Zhou authored
Currently, the IslAst library is a C library that would be incompatible with the rest of the LLVM because LLVM is written in C++. I took one function, IsInnermostParallel(), and refactored it so that it would take the C++ wrapper object instead of using reference counters with the C ISL library. As well, all the references that use IsInnermostParallel() will use manage_copy() since they are still expecting the C object. Reviewed By: Meinersbur Differential Revision: https://reviews.llvm.org/D97425
-
Fangrui Song authored
If a global object is listed in `@llvm.used`, place it in a unique section with the `SHF_GNU_RETAIN` flag. The section is a GC root under `ld --gc-sections` with LLD>=13 or GNU ld>=2.36. For front ends which do not expect to see multiple sections of the same name, consider emitting `@llvm.compiler.used` instead of `@llvm.used`. SHF_GNU_RETAIN is restricted to ELFOSABI_GNU and ELFOSABI_FREEBSD in binutils. We don't do the restriction - see the rationale in D95749. The integrated assembler has supported SHF_GNU_RETAIN since D95730. GNU as>=2.36 supports section flag 'R'. We don't need to worry about GNU ld support because older GNU ld just ignores the unknown SHF_GNU_RETAIN. With this change, `__attribute__((retain))` functions/variables emitted by clang will get the SHF_GNU_RETAIN flag. Differential Revision: https://reviews.llvm.org/D97448
-
Fangrui Song authored
For ELF targets, GCC 11 will set SHF_GNU_RETAIN on the section of a `__attribute__((retain))` function/variable to prevent linker garbage collection. (See AttrDocs.td for the linker support). This patch adds `retain` functions/variables to the `llvm.used` list, which has the desired linker GC semantics. Note: `retain` does not imply `used`, so an unused function/variable can be dropped by Sema. Before 'retain' was introduced, previous ELF solutions require inline asm or linker tricks, e.g. `asm volatile(".reloc 0, R_X86_64_NONE, target");` (architecture dependent) or define a non-local symbol in the section and use `ld -u`. There was no elegant source-level solution. With D97448, `__attribute__((retain))` will set `SHF_GNU_RETAIN` on ELF targets. Differential Revision: https://reviews.llvm.org/D97447 -
Kazu Hirata authored
-
Jianzhou Zhao authored
This prevents from getting THP ranges more and more. Did not see any issues in practice, just found this by code review. Reviewed By: eugenis, vitalybuka Differential Revision: https://reviews.llvm.org/D97593
-
Jessica Paquette authored
There are existing patterns for FMOVHi, FMOVSi, and FMOVDi in AArch64InstrFormats.td. Importing these allows us to remove the manual selection code for FMOV. It also allows us to select FMOVHi for non-zero constants when we have full fp-16 support. Refactor some of the code in AArch64InstrFormats.td so that we can create equivalent custom renderers in GlobalISel. Differential Revision: https://reviews.llvm.org/D97511
-
Fangrui Song authored
-
Jacques Pienaar authored
Allows querying regions too via OpAdaptor's generated. This does not yet move region verification to adaptor nor require regions for ops where needed. Differential Revision: https://reviews.llvm.org/D97519
-
Ryan Prichard authored
This reverts commit 680f836c. Disable the non-default-rounding-mode scalbn[f] tests when we're using the MSVC libraries. Differential Revision: https://reviews.llvm.org/D91841
-
Vladimir Vereschaka authored
Added supporting CC_PRINT_PROC_STAT and CC_PRINT_PROC_STAT_FILE environment variables to trigger clang driver reporting the process statistics into specified file (alternate for -fproc-stat-report option). Differential Revision: https://reviews.llvm.org/D97094
-
Fangrui Song authored
Many optimizers (e.g. GlobalOpt/ConstantMerge) do not respect linker semantics for comdat and may not discard the sections as a unit. The interconnected `__llvm_prf_{cnts,data}` sections (in comdat for ELF) are similar to D97432: `__profd_` is not directly referenced, so `__profd_` may be discarded while `__profc_` is retained, breaking the interconnection. We currently conservatively add all such sections to `llvm.used` and let the linker do GC for ELF. In D97448, we will change GlobalObject's in the llvm.used list to use SHF_GNU_RETAIN, causing the metadata sections to be unnecessarily retained (some `check-profile` tests check for GC). Use `llvm.compiler.used` to retain the current GC behavior. Differential Revision: https://reviews.llvm.org/D97585 -
Eric Schweitz authored
-
Matheus Izvekov authored
See bug #48856 Definitions of classes with member function pointers and default spaceship operator were getting accepted with no diagnostic on release build, and triggering assert on builds with runtime checks enabled. Diagnostics were only produced when actually comparing instances of such classes. This patch makes it so Spaceship and Less operators are not considered as builtin operator candidates for function pointers, producing equivalent diagnostics for the cases where pointers to member function and pointers to data members are used instead. Reviewed By: rsmith Differential Revision: https://reviews.llvm.org/D95409
-
Rob Suderman authored
Both identity ops can be loweried by replacing their results with their inputs. We keep this as a linalg lowering as other backends may choose to create copies. Differential Revision: https://reviews.llvm.org/D97517
-
Arthur Eubanks authored
And clarify in the "writing a pass" docs that both the legacy and new PMs are being used for the codegen/optimization pipelines. Reviewed By: ychen, asbirlea Differential Revision: https://reviews.llvm.org/D97515
-