| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes global live range splitting behave identically with and
without register mask operands.
This is not necessarily the best way of using register masks for live
range splitting. It would be more efficient to first split global live
ranges around calls (i.e., register masks), and reserve the fine grained
per-physreg interference guidance for global live ranges that do not
cross calls.
For now the goal is to produce identical assembly when enabling register
masks.
llvm-svn: 150259
|
| |
|
|
| |
llvm-svn: 150258
|
| |
|
|
|
|
| |
the compiler in r144100
llvm-svn: 150257
|
| |
|
|
|
|
|
|
|
|
|
|
| |
default is '=', and reword the warning about explicitly capturing
'this' in such lambdas to indicate that only explicit capture is
banned.
Introduce Fix-Its for this and other "save the programmer from
themself" rules regarding what can be explicitly captured and what
must be implicitly captured.
llvm-svn: 150256
|
| |
|
|
|
|
|
|
| |
nested captures. We currently don't get odr-use correct in array
bounds, so that bit is commented out while we sort out what we need to
do.
llvm-svn: 150255
|
| |
|
|
| |
llvm-svn: 150254
|
| |
|
|
| |
llvm-svn: 150253
|
| |
|
|
|
|
|
|
| |
have finished parsing the body, so that name lookup will never find
anything within the closure type. Then, add this operator() and the
conversion function (if available) before completing the class.
llvm-svn: 150252
|
| |
|
|
| |
llvm-svn: 150251
|
| |
|
|
|
|
|
|
| |
This allows BBVectorize to check the "unknown instruction" list in the
alias sets. This is important to prevent instruction fusing from reordering
function calls. Resolves PR11920.
llvm-svn: 150250
|
| |
|
|
| |
llvm-svn: 150249
|
| |
|
|
|
|
|
|
| |
These query functions are safe for external use and, furthermore,
are the only way to make queries against the "unknown instructions" array.
BBVectorize will use these functions.
llvm-svn: 150248
|
| |
|
|
|
|
| |
don't assume it is a boolean.
llvm-svn: 150247
|
| |
|
|
|
|
|
|
|
|
| |
is that patterns no longer match for vectors of booleans, because you only get
ConstantDataVector when the vector element type is i8, i16, etc, not when it is
i1). Original commit message:
Remove some dead code and tidy things up now that vectors use ConstantDataVector
instead of always using ConstantVector.
llvm-svn: 150246
|
| |
|
|
|
|
|
|
|
| |
pointer from MCInstrDesc.
Make them accessible through MCInstrInfo. They are only used for debugging purposes so this doesn't
have an impact on performance. X86MCTargetDesc.o goes from 630K to 461K on x86_64.
llvm-svn: 150245
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
o Correct the handling of the restrictions on usage of cv-qualified and
ref-qualified function types.
o Fix a bug where such types were rejected in template type parameter default
arguments, due to such arguments not being treated as a template type arg
context.
o Remove the ExtWarn for usage of such types as template arguments; that was
a standard defect, not a GCC extension.
o Improve the wording and unify the code for diagnosing cv-qualifiers with the
code for diagnosing ref-qualifiers.
llvm-svn: 150244
|
| |
|
|
| |
llvm-svn: 150243
|
| |
|
|
| |
llvm-svn: 150242
|
| |
|
|
|
|
|
|
|
|
|
| |
to pretty-print such function types better, and to fix a case where we were not
instantiating templates in lexical order. In passing, move the Variadic bit from
Type's bitfields to FunctionProtoType to get the Type bitfields down to 32 bits.
Also ensure that we always substitute the return type of a function when
substituting explicitly-specified arguments, since that can cause us to bail
out with a SFINAE error before we hit a hard error in parameter substitution.
llvm-svn: 150241
|
| |
|
|
| |
llvm-svn: 150240
|
| |
|
|
| |
llvm-svn: 150239
|
| |
|
|
|
|
|
|
|
|
| |
This changes function prolog in such a way as to avoid out-of-bounds
stack store in the case when coerce-to type has a larger storage size
than the real argument type.
Fixes PR11905.
llvm-svn: 150238
|
| |
|
|
|
|
|
| |
expression. Implement C++11 [expr.prim.lambda]p12's requirement that
capturing a variable will odr-use it.
llvm-svn: 150237
|
| |
|
|
|
|
| |
per C++ [expr.prim.lambda]p6.
llvm-svn: 150236
|
| |
|
|
|
|
|
| |
the variables captured by a lambda to the fields that store the
captured values. To be used in IRgen.
llvm-svn: 150235
|
| |
|
|
|
|
|
| |
incomplete class type which has an overloaded operator&, it's now just
unspecified whether the overloaded operator or the builtin is used.
llvm-svn: 150234
|
| |
|
|
| |
llvm-svn: 150233
|
| |
|
|
|
|
|
|
| |
the stub SDK to try and ensure we always pick up the right archs when they
should be able to be used.
- Also, warn when we drop an architecture.
llvm-svn: 150232
|
| |
|
|
| |
llvm-svn: 150231
|
| |
|
|
|
|
|
|
|
| |
This is a relatively noisy warning for a codebase not explicitly designed for
it (effectively enforcing a stylistic constraint about the use of defaults
in switches over enums) & there's nothing Clang does to clean up the noise
when compared to GCC's implementation so the same decision seems suitable.
llvm-svn: 150230
|
| |
|
|
| |
llvm-svn: 150229
|
| |
|
|
| |
llvm-svn: 150228
|
| |
|
|
| |
llvm-svn: 150227
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Creates a configurable regalloc pipeline.
Ensure specific llc options do what they say and nothing more: -reglloc=... has no effect other than selecting the allocator pass itself. This patch introduces a new umbrella flag, "-optimize-regalloc", to enable/disable the optimizing regalloc "superpass". This allows for example testing coalscing and scheduling under -O0 or vice-versa.
When a CodeGen pass requires the MachineFunction to have a particular property, we need to explicitly define that property so it can be directly queried rather than naming a specific Pass. For example, to check for SSA, use MRI->isSSA, not addRequired<PHIElimination>.
CodeGen transformation passes are never "required" as an analysis
ProcessImplicitDefs does not require LiveVariables.
We have a plan to massively simplify some of the early passes within the regalloc superpass.
llvm-svn: 150226
|
| |
|
|
| |
llvm-svn: 150225
|
| |
|
|
| |
llvm-svn: 150224
|
| |
|
|
|
|
|
|
|
| |
used so profusely
in many APIs and large codebases that this made the deprecated warning trigger happy to
the point of not being useful.
llvm-svn: 150223
|
| |
|
|
|
|
| |
rdar://10838899
llvm-svn: 150222
|
| |
|
|
|
|
| |
the same way we do for non-template classes. <rdar://problem/10791194>.
llvm-svn: 150221
|
| |
|
|
|
|
|
| |
When checking a local live range for interference, restrict the binary
search to the single block.
llvm-svn: 150220
|
| |
|
|
|
|
|
| |
Provide API to get a list of register mask slots and bits in a basic
block.
llvm-svn: 150219
|
| |
|
|
|
|
|
|
| |
No looping and binary searches necessary.
Return a pointer to the containing block instead of just a bool.
llvm-svn: 150218
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
parser. Specifically:
- ClangUserExpression now keeps weak pointers to the
structures it needs and then locks them when needed.
This ensures that they continue to be valid without
leaking memory if the ClangUserExpression is long
lived.
- ClangExpressionDeclMap, instead of keeping a pointer
to an ExecutionContext, now contains an
ExecutionContext. This prevents bugs if the pointer
or its contents somehow become stale. It also no
longer requires that ExecutionContexts be passed
into any function except its initialization function,
since it can count on the ExecutionContext still
being around.
There's a lot of room for improvement (specifically,
ClangExpressionDeclMap should also use weak pointers
insetad of shared pointers) but this is an important
first step that codifies assumptions that already
existed in the code.
llvm-svn: 150217
|
| |
|
|
|
|
| |
the checker over postgres and sqlite.
llvm-svn: 150216
|
| |
|
|
|
|
| |
(use of return instead of continue), wording.
llvm-svn: 150215
|
| |
|
|
| |
llvm-svn: 150214
|
| |
|
|
|
|
| |
wrong reason; plus a minor code change to the CPP side of the test which eases debugging efforts
llvm-svn: 150213
|
| |
|
|
| |
llvm-svn: 150212
|
| |
|
|
|
|
|
| |
by GetClangDeclContextContainingDIE, for better
debuggability.
llvm-svn: 150211
|
| |
|
|
| |
llvm-svn: 150210
|