| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 64100
|
|
|
|
| |
llvm-svn: 64099
|
|
|
|
| |
llvm-svn: 64096
|
|
|
|
|
|
| |
switch block and end block.
llvm-svn: 64072
|
|
|
|
| |
llvm-svn: 64069
|
|
|
|
| |
llvm-svn: 64068
|
|
|
|
| |
llvm-svn: 64064
|
|
|
|
| |
llvm-svn: 64059
|
|
|
|
|
|
| |
fixes and cleanup.
llvm-svn: 64053
|
|
|
|
|
|
| |
cleanup blocks if necessary
llvm-svn: 64051
|
|
|
|
| |
llvm-svn: 64043
|
|
|
|
| |
llvm-svn: 64014
|
|
|
|
|
|
| |
Fixes PR3491.
llvm-svn: 63879
|
|
|
|
| |
llvm-svn: 63678
|
|
|
|
|
|
| |
- Inefficient & leaks memory currently, will be cleaned up subsequently.
llvm-svn: 63567
|
|
|
|
|
|
|
| |
- Lift CGFunctionInfo creation above ReturnTypeUsesSret and
EmitFunction{Epi,Pro}log.
llvm-svn: 63553
|
|
|
|
|
|
| |
case correctly.
llvm-svn: 63068
|
|
|
|
|
|
| |
a unified return).
llvm-svn: 63038
|
|
|
|
|
|
| |
struct.
llvm-svn: 62585
|
|
|
|
| |
llvm-svn: 61973
|
|
|
|
| |
llvm-svn: 61290
|
|
|
|
| |
llvm-svn: 61288
|
|
|
|
|
|
|
|
|
|
|
|
| |
Emit the size even if the declared type is a variably modified type. This lets us handle
void f(int n) {
int (*a)[n];
printf("size: %d\n", sizeof(*a));
}
llvm-svn: 61285
|
|
|
|
| |
llvm-svn: 61284
|
|
|
|
| |
llvm-svn: 60939
|
|
|
|
| |
llvm-svn: 60324
|
|
|
|
|
|
|
|
|
| |
assert if the name is not an identifier. Update callers to do the right
thing and avoid this method in unsafe cases. This also fixes an objc
warning that was missing a space, and migrates a couple more to taking
IdentifierInfo and QualTypes instead of std::strings.
llvm-svn: 59936
|
|
|
|
| |
llvm-svn: 59887
|
|
|
|
|
|
|
|
| |
representing the names of declarations in the C family of
languages. DeclarationName is used in NamedDecl to store the name of
the declaration (naturally), and ObjCMethodDecl is now a NamedDecl.
llvm-svn: 59441
|
|
|
|
| |
llvm-svn: 59426
|
|
|
|
|
|
|
|
|
|
| |
- Use dotted notation for blocks related to a particular statement
type.
- Use .end for landing pads.
No functionality change in NDEBUG mode. :)
llvm-svn: 59210
|
|
|
|
|
|
|
|
|
| |
something that is not an int.
- Ignore these cases for now, added FIXME that we should also boolize
them.
llvm-svn: 59184
|
|
|
|
| |
llvm-svn: 59129
|
|
|
|
|
|
| |
codegen stuff like "if (!(X && Y))"
llvm-svn: 59115
|
|
|
|
|
|
|
|
|
|
| |
CodeGenFunction.cpp. Change VisitConditionalOperator to use
constant fold instead of codegen'ing a constant conditional.
Change ForStmt to use EmitBranchOnBoolExpr, this shrinks
expr.c very slightly to 40239 lines.
llvm-svn: 59113
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- EmitStmt is no longer required to finish with a current insertion
point defined (i.e. it does not need to make dummy
blocks). Instead, it can clear the insertion point in the builder
which indicates that the current insertion point is unreachable.
- CodeGenFunction provides HaveInsertPoint and EnsureInsertPoint
which respectively test if there is an insert point and ensure an
insertion point exists (by making a dummy block).
- Clearly mark functions in CodeGenFunction which can be called with
no insertion point defined. Currently this is a limited set, and
EmitStmt simply EnsureInsertPoint()s before emitting subsequent IR.
Remove EmitDummyBlock, which is no longer needed. Clients who haven't
already cleared the insertion point (typically via EmitBranch) can do
so by hand.
Remove isDummyBlock, which has effectively been renamed to
HaveInsertPoint.
The main thrust of this change is that we no longer have create dummy
blocks just to destroy them a short time later in EmitBlock in the
common case that there is no unreachable code following something like
a goto.
Additionally, this means that we are not using the hokey condition in
isDummyBlock that a block without a name is a dummy block. Guess how
well that works when we never emit block names!
llvm-svn: 59089
|
|
|
|
| |
llvm-svn: 59081
|
|
|
|
|
|
|
|
| |
the size of the -O0 output on some cases. For example, on expr.c from
176.gcc, it shrinks the .ll file from 43164 to 42835 lines, and removed
references to two external symbols.
llvm-svn: 59034
|
|
|
|
|
|
| |
- Was confusing and only used in one small part of the code.
llvm-svn: 59020
|
|
|
|
|
|
| |
- No functionality change.
llvm-svn: 59017
|
|
|
|
|
|
| |
now).
llvm-svn: 58681
|
|
|
|
|
|
| |
in the driver (this means we no longer run the verifier per function, however).
llvm-svn: 58307
|
|
|
|
|
|
| |
for Obj-C methods.
llvm-svn: 57769
|
|
|
|
|
|
|
|
|
| |
simplifies clients.
Also, add assert that RegionStack is empty when the CGDebugInfo is
destroyed.
llvm-svn: 57684
|
|
|
|
|
|
| |
of the function.
llvm-svn: 56752
|
|
|
|
| |
llvm-svn: 56291
|
|
|
|
| |
llvm-svn: 56102
|
|
|
|
|
|
| |
- Factor out EmitFunction{Pro,Epi}log
llvm-svn: 56031
|
|
|
|
|
|
| |
StartObjCMethod.
llvm-svn: 56030
|
|
|
|
|
|
|
| |
- For the time being this means our emitted code is somewhat worse,
especially for aggregates. This will be fixed.
llvm-svn: 56013
|