| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 150209
|
| |
|
|
|
|
|
| |
This looks like it had a small, but measurable performance improvement on -O0
compile time for our ObjC tests.
llvm-svn: 150208
|
| |
|
|
|
|
| |
properly support them.
llvm-svn: 150207
|
| |
|
|
|
|
|
|
| |
has been declared in its primary class, superclass,
or in one of their protocols, no need to issue unimplemented method.
// rdar://10823023
llvm-svn: 150206
|
| |
|
|
| |
llvm-svn: 150205
|
| |
|
|
|
|
| |
checking. Fixes PR10620 / <rdar://problem/9958362> .
llvm-svn: 150204
|
| |
|
|
|
|
|
|
| |
enable us to track the depth of parsing and what is being parsed. This
helps when trying to track down difficult type parsing issues and is only
enabled in non-production builds.
llvm-svn: 150203
|
| |
|
|
|
|
|
| |
It was never updated for API changes in r149311/r149336/r149339
and r147688.
llvm-svn: 150202
|
| |
|
|
|
|
|
| |
Hardcoding the location of the build directory seems like it would
break at `make install`/packaging time.
llvm-svn: 150201
|
| |
|
|
|
|
|
| |
Double fields of by-value class objects should be passed in floating point
registers.
llvm-svn: 150200
|
| |
|
|
|
|
|
|
| |
unused and wasted space for nothing.
- per PR11952.
llvm-svn: 150199
|
| |
|
|
| |
llvm-svn: 150198
|
| |
|
|
|
|
|
|
|
|
|
| |
Unify default construction of error_code uses on this idiom so that users don't
feel compelled to make static globals for naming convenience. (unfortunately I
couldn't make the original ctor private as some APIs don't return their result,
instead using an out parameter (that makes sense to default construct) - which
is a bit of a pity. I did, however, find/fix some cases of unnecessary default
construction of error_code before I hit the unfixable cases)
llvm-svn: 150197
|
| |
|
|
|
|
| |
class objects follow the same rules as those returning struct objects.
llvm-svn: 150196
|
| |
|
|
|
|
|
|
| |
for it.
Also fix a logic error for a missing return stmt. Oops.
llvm-svn: 150195
|
| |
|
|
|
|
| |
list; it is not an expression.
llvm-svn: 150194
|
| |
|
|
| |
llvm-svn: 150193
|