| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
Fixes a bug with analysis of data-sharing attributes in templates.
llvm-svn: 268020
|
|
|
|
|
|
|
|
|
|
|
|
| |
SymbolInfo.
Reviewers: bkramer
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D19647
llvm-svn: 268019
|
|
|
|
|
|
|
| |
This enables GNU C++ extension "Variable length array" by default.
Differential Revision: http://reviews.llvm.org/D18823
llvm-svn: 268018
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: bkramer
Subscribers: cfe-commits, klimek, djasper
Differential Revision: http://reviews.llvm.org/D19648
llvm-svn: 268017
|
|
|
|
|
| |
FIXME: We currently don't support folding constant pshufb shuffle masks containing undef elements.
llvm-svn: 268016
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The goal is for each operand type to have its own parse function and
at the same time share common code for tracking state as different
instruction types share operand types (e.g. glc/glc_flat, etc).
Introduce parseAMDGPUOperand which can parse any optional operand.
DPP and Clamp/OMod have custom handling for now. Sam also suggested
to have class hierarchy for operand types instead of table. This
can be done in separate change.
Remove parseVOP3OptionalOps, parseDS*OptionalOps, parseFlatOptionalOps,
parseMubufOptionalOps, parseDPPOptionalOps.
Reduce number of definitions of AsmOperand's and MatchClasses' by using common base class.
Rename AsmMatcher/InstPrinter methods accordingly.
Print immediate type when printing parsed immediate operand.
Use 'off' if offset/index register is unused instead of skipping it to make it more readable (also agreed with SP3).
Update tests.
Reviewers: tstellarAMD, SamWot, artem.tamazov
Subscribers: qcolombet, arsenm, llvm-commits
Differential Revision: http://reviews.llvm.org/D19584
llvm-svn: 268015
|
|
|
|
| |
llvm-svn: 268014
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D19599
llvm-svn: 268013
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D18645
llvm-svn: 268012
|
|
|
|
|
|
|
| |
We neglected to transfer operand bundles for some transforms. These
were found via inspection, I'll try to come up with some test cases.
llvm-svn: 268011
|
|
|
|
|
|
|
| |
We neglected to transfer operand bundles for some transforms. These
were found via inspection, I'll try to come up with some test cases.
llvm-svn: 268010
|
|
|
|
|
|
| |
case. Rename previously added test
llvm-svn: 268009
|
|
|
|
|
|
|
| |
We neglected to transfer operand bundles when performing argument
promotion.
llvm-svn: 268008
|
|
|
|
| |
llvm-svn: 268007
|
|
|
|
|
|
|
| |
The option -Rpass=loop-distribute now reports the loops that were
distributed.
llvm-svn: 268006
|
|
|
|
|
|
| |
Next patch will add another use for 'Function' inside the class.
llvm-svn: 268005
|
|
|
|
|
|
|
| |
SLPVectorizing a call site should result in further propagation of its
bundles.
llvm-svn: 268004
|
|
|
|
|
|
|
| |
Also, do not crash when calculating a cost model for loop-invariant
token values.
llvm-svn: 268003
|
|
|
|
|
|
|
|
|
| |
This was being treated the same as private, which has an immediate
offset. For unknown, it probably means it's for a computation not
actually being used for accessing memory, so it should not have a
nontrivial addressing mode.
llvm-svn: 268002
|
|
|
|
|
|
|
| |
Unreachable blocks may not be in the dominator tree,
so don't crash on them.
llvm-svn: 268001
|
|
|
|
|
|
|
|
|
| |
We neglected to transfer operand bundles when performing argument
promotion.
This fixes PR27568.
llvm-svn: 267986
|
|
|
|
|
|
| |
included in one place. Just define the class directly in the cpp file. NFC
llvm-svn: 267985
|
|
|
|
|
|
| |
duplicating parts of it. NFC
llvm-svn: 267984
|
|
|
|
| |
llvm-svn: 267983
|
|
|
|
| |
llvm-svn: 267982
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch does the following:
* Remove <__config> includes from some container tests.
* Guards uses of std::launch::any in async tests because it's an extension.
* Move "test/std/extensions" to "test/libcxx/extensions"
* Moves various non-standard tests including those in "sequences/vector",
"std/localization" and "utilities/meta".
llvm-svn: 267981
|
|
|
|
|
|
|
| |
We don't preserve AAResults, because, for one, we don't preserve SCEV-AA.
That fixes PR25281.
llvm-svn: 267980
|
|
|
|
|
|
|
| |
r267917 produces corrupted debug info because it didn't apply
relocations to right offsets.
llvm-svn: 267979
|
|
|
|
|
|
| |
The pass itself was removed in rL247167.
llvm-svn: 267978
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In case of missing live intervals for a physical registers
getLanesWithProperty() would report 0 which was not a safe default in
all situations. Add a parameter to pass in a safe default.
No testcase because in-tree targets do not skip computing register unit
live intervals.
Also cleanup the getXXX() functions to not perform the
RequireLiveIntervals checks anymore so we do not even need to return
safe defaults.
llvm-svn: 267977
|
|
|
|
|
|
|
|
|
| |
With the DetectDeadLanes pass in place we cannot run into situations
anymore where defs suddenly become dead.
Also add a missing check so we do not try to add an undef flag to a
physreg (found by visual inspection, no failing test).
llvm-svn: 267976
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
if we are parsing a template specialization.
This commit makes changes to clear the TemplateParamScope bit and set
the TemplateParamParent field of the current scope to null if a template
specialization is being parsed.
Before this commit, Sema::ActOnStartOfLambdaDefinition would check
whether the parent template scope had any decls to determine whether
or not a template specialization was being parsed. This wasn't correct
since it couldn't distinguish between a real template specialization and
a template defintion with an unnamed template parameter (only template
parameters with names are added to the scope's decl list). To fix the
bug, this commit changes the code to check the pointer to the parent
template scope rather than the decl list.
rdar://problem/23440346
Differential Revision: http://reviews.llvm.org/D19175
llvm-svn: 267975
|
|
|
|
|
|
|
|
| |
Reviewers: eugenis
Differential Revision: http://reviews.llvm.org/D19706
llvm-svn: 267974
|
|
|
|
|
|
|
|
|
| |
Testing the concrete implementation of INVOKE means calling the implementation
specific names `__invoke` and `__invoke_constexpr`. For this reason the test
are non-standard. For this reason it's best if the tests live outside of the
`test/std` directory.
llvm-svn: 267973
|
|
|
|
|
|
|
|
|
|
| |
separated from teams directive by multiple curly brackets
http://reviews.llvm.org/D18474
This patch fixes a bug in code generation of the correct OpenMP runtime library call in presence of target and teams, when target is separated by teams with multiple curly brackets. The current implementation will not be able to see the teams directive inside target and issue a call to tgt_target instead of the correct one tgt_target_teams.
llvm-svn: 267972
|
|
|
|
| |
llvm-svn: 267971
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We need to keep loop hints from the original loop on the new vector loop.
Failure to do this meant that, for example:
void foo(int *b) {
#pragma clang loop unroll(disable)
for (int i = 0; i < 16; ++i)
b[i] = 1;
}
this loop would be unrolled. Why? Because we'd vectorize it, thus dropping the
hints that unrolling should be disabled, and then we'd unroll it.
llvm-svn: 267970
|
|
|
|
|
|
|
|
| |
mangled name if it happened to be declared in an 'extern "C++"' context. This
also causes us to use the '_ZL' mangling rather than the '_Z' mangling for
internal-linkage entities that are wrapped in a language linkage construct.
llvm-svn: 267969
|
|
|
|
| |
llvm-svn: 267968
|
|
|
|
| |
llvm-svn: 267967
|
|
|
|
|
|
| |
This handles SSE and SSE2 cmp_* and comiXX_* intrinsics.
llvm-svn: 267966
|
|
|
|
|
|
| |
We didn't check that the file was large enough to hold a super block.
llvm-svn: 267965
|
|
|
|
|
|
| |
previously called in multiple cases. This seems to help the inliner reduce code. NFC
llvm-svn: 267964
|
|
|
|
| |
llvm-svn: 267963
|
|
|
|
| |
llvm-svn: 267962
|
|
|
|
| |
llvm-svn: 267961
|
|
|
|
|
|
|
|
|
|
| |
On s390*-linux, sigcontext just doesn't contain any information that could
be used to recover the type of access, so there's no way to fix this, short
of emulating the faulting instruction.
Differential Revision: http://reviews.llvm.org/D19655
llvm-svn: 267960
|
|
|
|
| |
llvm-svn: 267959
|
|
|
|
| |
llvm-svn: 267958
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Usually these parameters are used solely to initialize the field in the
initializer list, and there is no real shadowing confusion.
There is a new warning under -Wshadow called
-Wshadow-field-in-constructor-modified. It attempts to find
modifications of such constructor parameters that probably intended to
modify the field.
It has some false negatives, though, so there is another warning group,
-Wshadow-field-in-constructor, which always warns on this special case.
For users who just want the old behavior and don't care about these fine
grained groups, we have a new warning group called -Wshadow-all that
activates everything.
Fixes PR16088.
Reviewers: rsmith
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D18271
llvm-svn: 267957
|