- Nov 05, 2020
-
-
Fangrui Song authored
[mlir] Change deprecated -Werror-implicit-function-declaration to -Werror=implicit-function-declaration This -Werror- form has been deprecated since 2007 (GCC r122017). And only enable it for CMAKE_C_FLAGS. C++ does not need it.
-
Valentin Clement authored
This patch upstream the lowering of Wait directive that was initially done in https://github.com/flang-compiler/f18-llvm-project/pull/532 Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D90489
-
Vy Nguyen authored
Reland: a2291a58. New fixes for the breakages reported in D85927 include: - declare a weak decl for `dl_iterate_phdr`, because it does not exist on older APIs - Do not enable leak-sanitizer if api_level is less than 29, because of `ld.lld: error: undefined symbol: __aeabi_read_tp` for armv7, API level 16. - Put back the interceptor for `memalign` but still opt out intercepting `__libc_memalign` and `cfree` because both of these don't exist in Bionic. Reviewed By: srhines, vitalybuka Differential Revision: https://reviews.llvm.org/D89251
-
Fangrui Song authored
[X86] Enable shrink-wrapping for no-frame-pointer non-nounwind functions on platforms not using compact unwind The current compact unwind scheme does not work when the prologue is not at the start (the instructions before the prologue cannot be described). (Technically this is fixable, but it requires multiple compact unwind descriptors for one function.) rL255175 chose to not perform shrink-wrapping for no-frame-pointer functions not marked as nounwind to work around PR25614. This is overly limited, as platforms not supporting compact unwind (all non-Darwin) does not need the workaround. This patch restricts the limitation to compact unwind platforms. Reviewed By: qcolombet Differential Revision: https://reviews.llvm.org/D89930
-
Vy Nguyen authored
Extracted from D89251
-
Valentin Clement authored
This patch upstream the lowering of Init and Shutdown directives that was initially done in https://github.com/flang-compiler/f18-llvm-project/pull/529 Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D90488
-
Rahul Joshi authored
- The ODS description was using an old syntax that was updated during the review. This fixes the ODS description to match the current syntax. Differential Revision: https://reviews.llvm.org/D90797
-
Vitaly Buka authored
Extracted from D89251
-
Baptiste Saleil authored
The use of the new types introduced for PowerPC MMA instructions needs to be restricted. We add a PowerPC function checking that the given type is valid in a context in which we don't allow MMA types. This function is called from various places in Sema where we want to prevent the use of these types. Differential Revision: https://reviews.llvm.org/D82035
-
Arthur O'Dwyer authored
This undefined behavior was found by applying Lénárd Szolnoki's proposal to disable implicit conversion of default_delete<D> to default_delete<B>. The offending part of the test is circa line 243. The wording that makes it undefined behavior is http://eel.is/c++draft/expr.delete#3 . Differential Revision: https://reviews.llvm.org/D90536
-
Vitaly Buka authored
Depends on D90792. Differential Revision: https://reviews.llvm.org/D90793
-
Vitaly Buka authored
Depends on D90791. Differential Revision: https://reviews.llvm.org/D90792
-
Vitaly Buka authored
Differential Revision: https://reviews.llvm.org/D90790
-
Duncan P. N. Exon Smith authored
Change `Module::Umbrella` from a `const void *` to a `PointerUnion` of `FileEntry` and `DirectoryEntry`. We can drop the `HasUmbrellaDir` bit (since `PointerUnion` includes that). This change makes it safer to update to `FileEntryRef` and `DirectoryEntryRef` in a future patch. Differential Revision: https://reviews.llvm.org/D90481
-
Arthur Eubanks authored
This allows targets to skip optional optimization passes at -O0. Reviewed By: ychen Differential Revision: https://reviews.llvm.org/D90777
-
Arthur Eubanks authored
This reverts commit 7a83aa05. Causing buildbot failures.
-
Arthur Eubanks authored
This allows targets to skip optional optimization passes at -O0. Reviewed By: ychen Differential Revision: https://reviews.llvm.org/D90777
-
Jonas Devlieghere authored
The lldb.debugger et al convenience variables are only available from the interactive script interpreter. In all other scenarios, they are None (since fc1fd6bf) before that they were default initialized. The crashlog script was hacking around that by setting the lldb.debugger to a newly created debugger instance when running outside of the script interpreter, which works fine until lldb creates a script interpreter instance under the hood and clears the variables. This was resulting in an AttributeError when invoking the script directly (from outside of lldb): AttributeError: 'NoneType' object has no attribute 'GetSourceManager' This patch fixes that by passing around the debugger instance. rdar://64775776 Differential revision: https://reviews.llvm.org/D90706
-
Valentin Clement authored
This patch upstream the lowering of Update directive that was initially done in https://github.com/flang-compiler/f18-llvm-project/pull/528 Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D90472
-
Eric Astor authored
-
Eric Astor authored
Allow single-quoted strings and double-quoted character values, as well as doubled-quote escaping. Reviewed By: thakis Differential Revision: https://reviews.llvm.org/D89731
-
Cameron McInally authored
Hook up legalizations for VECREDUCE_SEQ_FMUL. This is following up on the VECREDUCE_SEQ_FADD work from D90247. Differential Revision: https://reviews.llvm.org/D90644
-
Mircea Trofin authored
Differential Revision: https://reviews.llvm.org/D90724
-
Valentin Clement authored
This patch upstream the lowering of Enter Data directive that was initially done in https://github.com/flang-compiler/f18-llvm-project/pull/526 Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D90470
-
Edd Dawson authored
Differential Revision: https://reviews.llvm.org/D90680
-
Louis Dionne authored
-
Louis Dionne authored
The implementation is not really satisfactory, but it's better than being in the legacy config, which causes other issues.
-
Craig Topper authored
The operations in these patterns shouldn't be effected by sign bits. And the pattern is starting from a sign_extend_inreg so we aren't expecting sign bits to be passed through either. Differential Revision: https://reviews.llvm.org/D90739
-
Valentin Clement authored
This patch upstream the lowering of Exit Data construct that was initially done in https://github.com/flang-compiler/f18-llvm-project/pull/527 Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D90467
-
Nikita Popov authored
If getClobberingMemoryAccess() is called with an explicit MemoryLocation, but the starting access happens to be a call, the provided location is currently ignored, and alias analysis queries will be performed against the call instruction instead. Something similar happens if the starting access is a load with a MemoryDef. Change the implementation to not set Q.Inst in the first place if we want to perform a MemoryLocation-based query, to make sure it can't be turned into an Instruction-based query along the way... Additionally, remove the special handling that lifetime.start intrinsics currently get. They simply report NoAlias for clobbers between lifetime.start and other calls, but that's obviously not right if the other call is something like a memset or memcpy. The default behavior we get from getModRefInfo() will already do the right thing here. Differential Revision: https://reviews.llvm.org/D88782
-
Steven Wan authored
-
Steven Wan authored
`mftb` and `mftbl` are equivalent, there is no need to have two names for doing the same thing, rename `mftbl` to only have `mftb`. Differential Revision: https://reviews.llvm.org/D89506
-
Alexandre Eichenberger authored
[mlir][std] Add SignedCeilDivIOp and SignedFloorDivIOp with std to std lowering triggered by -std-expand-divs option. The new operations support positive/negative nominator/denominator numbers. Differential Revision: https://reviews.llvm.org/D89726 Signed-off-by:
Alexandre Eichenberger <alexe@us.ibm.com>
-
Craig Topper authored
fsl/fsr take their shift amount in $rs2 or an immediate. The sources are $rs1 and $rs3. fshl/fshr ISD opcodes both concatenate operand 0 in the high bits and operand 1 in the lower bits. fshl returns the high bits after shifting and fshr returns the low bits. So a shift amount of 0 returns operand 0 for fshl and operand 1 for fshr. fsl/fsr concatenate their operands in different orders such that $rs1 will be returned for a shift amount of 0. So $rs1 needs to come from operand 0 of fshl and operand 1 of fshr. Differential Revision: https://reviews.llvm.org/D90735
-
Duncan P. N. Exon Smith authored
Move `DirectoryEntry` and `DirectoryEntryRef` into their own header, similar to the creation of FileEntry.h. No functionality change here, just preparing to include it in more places to allow wider adoption of `DirectoryEntryRef` without requiring all of `FileManager.h`. Differential Revision: https://reviews.llvm.org/D90478
-
Fraser Cormack authored
Summary: For vector element types which are not byte-sized, we would generate incorrect scalar offsets and produce incorrect codegen. This optimization could potentially be supported in the future, e.g. by loading in bytes, then shifting and masking out the remaining bits of the vector element. However, without an upstream target to test against it's best to avoid the bad codegen in the simplest possible way. Related to this bug: https://bugs.llvm.org/show_bug.cgi?id=27600 Reviewed by: foad Differential Revision: https://reviews.llvm.org/D78568
-
Louis Dionne authored
-
Mehdi Amini authored
Refactor PyPrintAccumulatorm, PyFileAccumulator, and PySinglePartStringAccumulator from IRModules.cpp to PybindUtils.h These are reusable utilities across bindings. Differential Revision: https://reviews.llvm.org/D90737
-
Mehdi Amini authored
This is a generic utility that can be reused beyond the IR bindings. Differential Revision: https://reviews.llvm.org/D90736
-
cchen authored
Clang now asserts for the below case: ``` void clang::CodeGen::CGOpenMPRuntime::createOffloadEntriesAndInfoMetadata(): Assertion `std::get<0>(E) && "All ordered entries must exist!"' failed. ``` The reason why Clang hit the assert is because in `emitTargetDataCalls`, both `BeginThenGen` and `BeginElseGen` call `registerTargetRegionEntryInfo` and try to register the Entry in OffloadEntriesTargetRegion with same key. If changing the expression in if clause to any constant expression, then the assert disappear. (https://godbolt.org/z/TW7haj) The assert itself is to avoid user from accessing elements out of bound inside `OrderedEntries` in `createOffloadEntriesAndInfoMetadata`. In this patch, I add a check in `registerTargetRegionEntryInfo` to avoid register the target region more than once. A test case that triggers assert: https://godbolt.org/z/4cnGW8 Reviewed By: ABataev Differential Revision: https://reviews.llvm.org/D90704
-