| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
Patch by David Chisnall.
llvm-svn: 68043
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
productions (except the already broken ObjC cases like @class X,Y;) in
the parser that can produce more than one Decl return a DeclGroup instead
of a Decl, etc.
This allows elimination of the Decl::NextDeclarator field, and exposes
various clients that should look at all decls in a group, but which were
only looking at one (such as the dumper, printer, etc). These have been
fixed.
Still TODO:
1) there are some FIXME's in the code about potentially using
DeclGroup for better location info.
2) ParseObjCAtDirectives should return a DeclGroup due to @class etc.
3) I'm not sure what is going on with StmtIterator.cpp, or if it can
be radically simplified now.
4) I put a truly horrible hack in ParseTemplate.cpp.
I plan to bring up #3/4 on the mailing list, but don't plan to tackle
#1/2 in the short term.
llvm-svn: 68002
|
| |
|
|
|
|
|
|
| |
really intending to take ownership of this; I wrote this mostly because
I was curious about how the ARM ABI works. It should be a decent start,
though.
llvm-svn: 67969
|
| |
|
|
| |
llvm-svn: 67923
|
| |
|
|
| |
llvm-svn: 67910
|
| |
|
|
| |
llvm-svn: 67899
|
| |
|
|
|
|
| |
types don't get generated when blocks aren't used.
llvm-svn: 67898
|
| |
|
|
| |
llvm-svn: 67896
|
| |
|
|
| |
llvm-svn: 67895
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
LHS type and the computation result type; this encodes information into
the AST which is otherwise non-obvious. Fix Sema to always come up with the
right answer for both of these types. Fix IRGen and the analyzer to
account for these changes. This fixes PR2601. The approach is inspired
by PR2601 comment 2.
Note that this changes real *= complex in CodeGen from a silent
miscompilation to an explicit error.
I'm not really sure that the analyzer changes are correct, or how to
test them... someone more familiar with the analyzer should check those
changes.
llvm-svn: 67889
|
| |
|
|
|
|
| |
The llvm optimizer and code generator are not yet ready to support optimized code debugging.
llvm-svn: 67876
|
| |
|
|
|
|
| |
remove a redundant error in CodeGen.
llvm-svn: 67868
|
| |
|
|
|
|
| |
ir gen. No intended change in functionality.
llvm-svn: 67857
|
| |
|
|
|
|
|
|
| |
- Temporarily undef'ed __OBJC2__ in nonfragile objc abi mode
as it was forcing ivar synthesis in a certain project which clang
does not yet support.
llvm-svn: 67766
|
| |
|
|
|
|
|
| |
CodeGenModule. Once there, add a new NoCommon option to
it and implement -fno-common.
llvm-svn: 67735
|
| |
|
|
|
|
| |
is not in use).
llvm-svn: 67713
|
| |
|
|
| |
llvm-svn: 67697
|
| |
|
|
|
|
| |
from previous block literals.
llvm-svn: 67696
|
| |
|
|
| |
llvm-svn: 67674
|
| |
|
|
| |
llvm-svn: 67650
|
| |
|
|
| |
llvm-svn: 67603
|
| |
|
|
| |
llvm-svn: 67577
|
| |
|
|
| |
llvm-svn: 67551
|
| |
|
|
| |
llvm-svn: 67501
|
| |
|
|
| |
llvm-svn: 67499
|
| |
|
|
|
|
|
|
| |
functionality, fixing a crash on the attached testcase. Eliminate the
BuiltinFunctions cache, as it can contain dangling pointers. This fixes
a bunch of valgrind errors on test/CodeGen/builtins.c
llvm-svn: 67484
|
| |
|
|
|
|
| |
the end of the module.
llvm-svn: 67482
|
| |
|
|
| |
llvm-svn: 67481
|
| |
|
|
|
|
| |
some tests into the alias.c file.
llvm-svn: 67479
|
| |
|
|
|
|
|
|
| |
variables.
No intended functionality change.
llvm-svn: 67478
|
| |
|
|
| |
llvm-svn: 67477
|
| |
|
|
|
|
|
|
|
| |
to something like:
define void @bar(%struct.foo* noalias sret %agg.result) nounwind {
instead of:
define void @bar(%struct.foo* noalias sret %agg.result, ...) nounwind {
llvm-svn: 67475
|
| |
|
|
|
|
| |
build. This shaves another 3% off.
llvm-svn: 67460
|
| |
|
|
|
|
|
|
|
| |
in release-assert builds. For automatic variables, explicitly set
a name with setName that does not make a temporary std::string.
This speeds up -emit-llvm-only -disable-free on PR3810 by 4.6%
llvm-svn: 67459
|
| |
|
|
|
|
|
| |
ctor function. This avoids creating a temporary std::string for the name,
speeding up the testcase in PR3810 by 3.8%
llvm-svn: 67457
|
| |
|
|
|
|
| |
copy_helpers and dispose_helpers as necessary for them.
llvm-svn: 67453
|
| |
|
|
|
|
| |
category or protocol.
llvm-svn: 67450
|
| |
|
|
|
|
|
| |
very simple places, reimplement the deferred decl emission logic to not be O(N^2),
fixing PR3810.
llvm-svn: 67447
|
| |
|
|
|
|
| |
function definition.
llvm-svn: 67446
|
| |
|
|
|
|
| |
code path.
llvm-svn: 67445
|
| |
|
|
|
|
| |
GetAddrOfFunction. This is simpler and more efficient.
llvm-svn: 67444
|
| |
|
|
|
|
|
| |
CreateFunctionPrototypeIR, though my next patch will eliminate
it entirely.
llvm-svn: 67443
|
| |
|
|
|
|
|
|
| |
1. it wasn't applying to definitions, only declarations, e.g. int x __asm("foo")
2. multiple definitions were conflicting, they weren't getting merged.
3. the code was duplicated in several places.
llvm-svn: 67442
|
| |
|
|
| |
llvm-svn: 67441
|
| |
|
|
| |
llvm-svn: 67440
|
| |
|
|
| |
llvm-svn: 67439
|
| |
|
|
|
|
| |
more optimistic that it will work (optimizing for the common case).
llvm-svn: 67438
|
| |
|
|
| |
llvm-svn: 67437
|
| |
|
|
|
|
| |
type).
llvm-svn: 67436
|
| |
|
|
|
|
|
|
| |
speeding up PR3810
by ~2%.
llvm-svn: 67434
|