| Commit message (Collapse) | Author | Age | Files | Lines | 
| | 
| 
| 
|  | 
llvm-svn: 150390
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
while reworking how we handle wanting to emit only parts of structures.
Fixes PR11970.
llvm-svn: 150388
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
instead of having a special-purpose function.
- ActOnCXXDirectInitializer, which was mostly duplication of
  AddInitializerToDecl (leading e.g. to PR10620, which Eli fixed a few days
  ago), is dropped completely.
- MultiInitializer, which was an ugly hack I added, is dropped again.
- We now have the infrastructure in place to distinguish between
  int x = {1};
  int x({1});
  int x{1};
-- VarDecl now has getInitStyle(), which indicates which of the above was used.
-- CXXConstructExpr now has a flag to indicate that it represents list-
   initialization, although this is not yet used.
- InstantiateInitializer was renamed to SubstInitializer and simplified.
- ActOnParenOrParenListExpr has been replaced by ActOnParenListExpr, which
  always produces a ParenListExpr. Placed that so far failed to convert that
  back to a ParenExpr containing comma operators have been fixed. I'm pretty
  sure I could have made a crashing test case before this.
The end result is a (I hope) considerably cleaner design of initializers.
More importantly, the fact that I can now distinguish between the various
initialization kinds means that I can get the tricky generalized initializer
test cases Johannes Schaub supplied to work. (This is not yet done.)
This commit passed self-host, with the resulting compiler passing the tests. I
hope it doesn't break more complicated code. It's a pretty big change, but one
that I feel is necessary.
llvm-svn: 150318
 | 
| | 
| 
| 
| 
| 
|  | 
examples seem to work.  Tests coming up soon.
llvm-svn: 150293
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
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
 | 
| | 
| 
| 
|  | 
llvm-svn: 150210
 | 
| | 
| 
| 
| 
| 
| 
|  | 
This looks like it had a small, but measurable performance improvement on -O0
compile time for our ObjC tests.
llvm-svn: 150208
 | 
| | 
| 
| 
| 
| 
| 
|  | 
Double fields of by-value class objects should be passed in floating point
registers.
llvm-svn: 150200
 | 
| | 
| 
| 
| 
| 
|  | 
class objects follow the same rules as those returning struct objects.
llvm-svn: 150196
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
difference in the qual type. This is a workaround for the fact that
the type isn't artificial but the this decl is, however, we don't
have any way of representing it in the current metadata. For now,
however, just don't cache the full type.
Fixes rdar://10831526 and probably a couple of others.
llvm-svn: 150159
 | 
| | 
| 
| 
|  | 
llvm-svn: 150147
 | 
| | 
| 
| 
|  | 
llvm-svn: 150146
 | 
| | 
| 
| 
| 
| 
|  | 
lvalue-to-rvalue conversions in constant expressions.
llvm-svn: 150145
 | 
| | 
| 
| 
|  | 
llvm-svn: 150141
 | 
| | 
| 
| 
|  | 
llvm-svn: 150140
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
other users.
While at it make it value-initializable to get rid of static ctors.
llvm-svn: 150070
 | 
| | 
| 
| 
|  | 
llvm-svn: 150058
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
and then use it for forward decl names.
Part of rdar://10209967 and rdar://10400981
llvm-svn: 150040
 | 
| | 
| 
| 
| 
| 
|  | 
registers.
llvm-svn: 150035
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
caching of results after we create them.
Fixes rdar://10809898
llvm-svn: 150025
 | 
| | 
| 
| 
|  | 
llvm-svn: 150021
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
operator overloads out of line.
This seems to negatively affect compile time onsome ObjC tests
(which use a lot of partial diagnostics I assume). I have to come
up with a way to keep them inline without including Diagnostic.h
everywhere. Now adding a new diagnostic requires a full rebuild
of e.g. the static analyzer which doesn't even use those diagnostics.
This reverts commit 6496bd10dc3a6d5e3266348f08b6e35f8184bc99.
This reverts commit 7af19b817ba964ac560b50c1ed6183235f699789.
This reverts commit fdd15602a42bbe26185978ef1e17019f6d969aa7.
This reverts commit 00bd44d5677783527d7517c1ffe45e4d75a0f56f.
This reverts commit ef9b60ffed980864a8db26ad30344be429e58ff5.
llvm-svn: 150006
 | 
| | 
| 
| 
|  | 
llvm-svn: 150000
 | 
| | 
| 
| 
|  | 
llvm-svn: 149996
 | 
| | 
| 
| 
|  | 
llvm-svn: 149995
 | 
| | 
| 
| 
| 
| 
|  | 
consistency with NamedDecls.
llvm-svn: 149981
 | 
| | 
| 
| 
|  | 
llvm-svn: 149976
 | 
| | 
| 
| 
|  | 
llvm-svn: 149975
 | 
| | 
| 
| 
|  | 
llvm-svn: 149974
 | 
| | 
| 
| 
|  | 
llvm-svn: 149973
 | 
| | 
| 
| 
|  | 
llvm-svn: 149945
 | 
| | 
| 
| 
| 
| 
|  | 
CodeGenModule.
llvm-svn: 149943
 | 
| | 
| 
| 
| 
| 
|  | 
std::vector.
llvm-svn: 149936
 | 
| | 
| 
| 
| 
| 
|  | 
445.gobmk by ~1.7%.
llvm-svn: 149935
 | 
| | 
| 
| 
|  | 
llvm-svn: 149933
 | 
| | 
| 
| 
| 
| 
|  | 
info for properties that are synthesized by the compiler by default.
llvm-svn: 149929
 | 
| | 
| 
| 
|  | 
llvm-svn: 149928
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
avoid
allocating an std::string.
llvm-svn: 149924
 | 
| | 
| 
| 
|  | 
llvm-svn: 149916
 | 
| | 
| 
| 
|  | 
llvm-svn: 149915
 | 
| | 
| 
| 
|  | 
llvm-svn: 149881
 | 
| | 
| 
| 
| 
| 
|  | 
before inserting into the vector. Fixes PR11930.
llvm-svn: 149855
 | 
| | 
| 
| 
|  | 
llvm-svn: 149801
 | 
| | 
| 
| 
| 
| 
| 
|  | 
(I was going to fix the TODO about DenseMap too, but
that would break self-host right now. See PR11922.)
llvm-svn: 149799
 | 
| | 
| 
| 
|  | 
llvm-svn: 149798
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
We had been generating load/store instructions with the default alignment
for the vector element type, even when the pointer argument had less alignment.
<rdar://problem/10538555>
llvm-svn: 149794
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
of Diagnostic.h.
Fix all the files that depended on transitive includes of Diagnostic.h.
With this patch in place changing a diagnostic no longer requires a full rebuild of the StaticAnalyzer.
llvm-svn: 149781
 | 
| | 
| 
| 
|  | 
llvm-svn: 149734
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
That llvm change removed the -trap-func backend option, so that using
-ftrap-function with clang would cause the backend to complain.  Fix it
by adding the trap function name to the CodeGenOptions and passing it through
to the TargetOptions.
llvm-svn: 149679
 | 
| | 
| 
| 
|  | 
llvm-svn: 149638
 |