- Aug 07, 2020
-
-
Evgenii Stepanov authored
This change fixes errors reported by Control Flow Integrity (CFI) checking when using `std::packaged_task`. The errors mostly stem from casting the underlying storage (`__buf_`) to `__base*`, even if it is uninitialized. The solution is to wrap `__base*` access to `__buf_` behind a getter marked with _LIBCPP_NO_CFI. Differential Revision: https://reviews.llvm.org/D82627
-
Matt Arsenault authored
-
MaheshRavishankar authored
Differential Revision: https://reviews.llvm.org/D85461
-
Jonas Devlieghere authored
Update tests that were creating an empty LaunchInfo instead of using the one coming from the target. This ensures target properties are honored.
-
Aleksandr Platonov authored
Inside clangd, clang-tidy checks don't see preprocessor events in the preamble. This leads to `Token::PtrData == nullptr` for tokens that the macro is defined to. E.g. `#define SIGTERM 15`: - Token::Kind == tok::numeric_constant (Token::isLiteral() == true) - Token::UintData == 2 - Token::PtrData == nullptr As the result of this, bugprone-bad-signal-to-kill-thread check crashes at null-dereference inside clangd. Reviewed By: hokein Differential Revision: https://reviews.llvm.org/D85417
-
dfukalov authored
Add cases of fused fmul+fadd/fsub with f16 and f64 operands to cost model. Also added operations with contract attribute. Fixed line endings in test. Reviewed By: rampitec Differential Revision: https://reviews.llvm.org/D84995
-
Matt Arsenault authored
Use the same basic strategy as LegalizeVectorTypes. Try to index into smaller pieces if there's a constant index, and otherwise fall back to a stack temporary.
-
Arthur Eubanks authored
As mentioned in http://lists.llvm.org/pipermail/llvm-dev/2020-July/143395.html, loop-unswitch has not been ported to the NPM. Instead people are using simple-loop-unswitch. Pin all tests in Transforms/LoopUnswitch to legacy PM and replace all other uses of loop-unswitch with simple-loop-unswitch. One test that didn't fit into the above was 2014-06-21-congruent-constant.ll which seems to only pass with loop-unswitch. That is also pinned to legacy PM. Now all tests containing "-loop-unswitch" anywhere in the test succeed with NPM turned on by default. Reviewed By: ychen Differential Revision: https://reviews.llvm.org/D85360
-
Aaron En Ye Shi authored
Instead of accepting the same arguments as regular linker, the static linker will only accept input files. Reviewed By: yaxunl Differential Revision: https://reviews.llvm.org/D85442
-
Fred Riss authored
In order to be able to run the debugserver tests against the Rosetta debugserver, detect the Rosetta run configuration and return the system Rosetta debugserver.
-
Arthur Eubanks authored
All tests have corresponding NPM RUN lines. Reviewed By: ychen Differential Revision: https://reviews.llvm.org/D85395
-
Matt Arsenault authored
Somehow the new FP atomic buffer intrinsics ended up using the legacy style for buffer intrinsics.
-
Sterling Augustine authored
wattr_get is a macro, and the documentation states: "The parameter opts is reserved for future use, applications must supply a null pointer." In practice, passing a variable there is harmless, except that it is unused inside the macro, which causes unused variable warnings. The various places where
-
Matt Arsenault authored
This was caching the wrong register to re-use later.
-
Simon Pilgrim authored
-
Mircea Trofin authored
-
Matt Arsenault authored
-
Matt Arsenault authored
Try to use AGPR banks for the various merge/unmerge type operations. Previously these would introduce copies to VGPR.
-
Matt Arsenault authored
-
Alexey Bataev authored
-
Alexey Bataev authored
Summary: Introduced OMPChildren class to handle all associated clauses, statement and child expressions/statements. It allows to represent some directives more correctly (like flush, depobj etc. with pseudo clauses, ordered depend directives, which are standalone, and target data directives). Also, it will make easier to avoid using of CapturedStmt in directives, if required (atomic, tile etc. directives). Also, it simplifies serialization/deserialization of the executable/declarative directives. Reduces number of allocation operations for mapper declarations. Reviewers: jdoerfert Subscribers: yaxunl, guansong, jfb, cfe-commits, sstefan1, aaron.ballman, caomhin Tags: #clang Differential Revision: https://reviews.llvm.org/D83261
-
Simon Pilgrim authored
Also fix some undef vector elements in the similar vector tests that I missed.
-
Mircea Trofin authored
We don't want mandatory events in the training log. We do want to handle them, to keep the native size accounting accurate, but that's all. Fixed the code, also expanded the test to capture this. Differential Revision: https://reviews.llvm.org/D85373
-
- Aug 06, 2020
-
-
Joel E. Denny authored
D85342 broke this case. The new test case presents an example. Reviewed By: grokos Differential Revision: https://reviews.llvm.org/D85369
-
Raphael Isemann authored
Just adds the respective accessor functions to ASTContextMetadata instead of directly exposing the OriginMap to the whole world.
-
Simon Pilgrim authored
Add full vector coverage (that currently are not folded).
-
Simon Pilgrim authored
We already need to include raw_ostream.h, also add missing StringRef.h implicit dependency.
-
Fangrui Song authored
GNU ld allows sections after a non-SHF_ALLOC section to be covered by PT_LOAD (PR37607) and assigns addresses to non-SHF_ALLOC output sections (similar to SHF_ALLOC NOBITS sections. The location counter is not advanced). This patch tries to fix PR37607 (remove a special case in `Writer<ELFT>::createPhdrs`). To make the created PT_LOAD meaningful, we cannot reset dot to 0 for a middle non-SHF_ALLOC output section. This results in removal of two special cases in LinkerScript::assignOffsets. Non-SHF_ALLOC non-orphan sections can have non-zero addresses like in GNU ld. The zero address rule for non-SHF_ALLOC sections is weakened to apply to orphan only. This results in a special case in createSection and findOrphanPos, respectively. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D85100
-
Matt Arsenault authored
These intrinsics are missing mangling for both the pointer and data type.
-
Matt Arsenault authored
This produces worse results right now for i8 vectors, but that should be addressed when we actually try to optimize packed vectors.
-
Sanjay Patel authored
I skimmed the existing users of these matchers and don't see any problems (eg, the caller assumes the matched value was a select instruction without checking). So I think we can generalize the matching to allow the new intrinsics or the cmp+select idioms. I did not find any unit tests for the matchers, so added some basics there. The instsimplify tests are adapted from existing tests for the cmp+select pattern and cover the folds in simplifyICmpWithMinMax(). Differential Revision: https://reviews.llvm.org/D85230
-
Matt Arsenault authored
Doesn't really save any code until global value is handled too.
-
Matt Arsenault authored
Not sure this is the right place for this helper.
-
jasonliu authored
If a function is in a unique section, putting all jump tables in .rodata will prevent functions that have a jump table to get garbage collect by the linker. Therefore, we need to put jump table into a unique section as well. Reviewed By: Xiangling_L Differential Revision: https://reviews.llvm.org/D84761
-
Matt Arsenault authored
Not sure why we handle this removed instruction on newer subtargets for this one and no others, but maintain compatibility with the DAG.
-
Matt Arsenault authored
-
Matt Arsenault authored
We really need to put this undef padding stuff into a helper somewhere, but leave that for when this is moved to generic code.
-
Matt Arsenault authored
-
Tim Keith authored
Add `-fimplicit-none-type-always` to treat each specification-part like it has `IMPLICIT NONE`. This is helpful for enforcing good Fortran programming practices. We might consider something similar for `IMPLICIT NONE(EXTERNAL)` as well. Add `-fimplicit-none-type-never` to ignore occurrences of `IMPLICIT NONE` and `IMPLICIT NONE(TYPE)`. This is to handle cases like the one below, which violates the standard but it accepted by some compilers: ``` subroutine s(a, n) implicit none real :: a(n) integer :: n end ``` Differential Revision: https://reviews.llvm.org/D85363
-
Matt Arsenault authored
If we were to have an operation with an s16 def that needs to be executed in a waterfall loop, not having s16 legal would place an avoidable burden on RegBankSelect to widen it.
-