| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
| |
-fno-inline-functions.
This behaves much like -fno-inline in gcc, but based on a discussion with
Daniel it was decided that -fno-inline-functions should subsume -fno-inline.
Please speak up if you object. The -fno-inline flag remains ignored.
Final part of rdar://10972766
llvm-svn: 152754
|
| |
|
|
|
|
| |
and metadata for "non-lazy" class and categories.
llvm-svn: 152751
|
| |
|
|
|
|
|
|
| |
scoped enumeration members. Later uses of an enumeration temploid as a nested
name specifier should cause its instantiation. Plus some groundwork for
explicit specialization of member enumerations of class templates.
llvm-svn: 152750
|
| |
|
|
|
|
|
| |
(Why are we keeping all of this code around anyway? Say the word and I'll
start swinging the delete hammer.)
llvm-svn: 152749
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Like GCC, provide a NULL conversion to non-pointer conversion as a separate
flag, on by default. GCC's flag is "conversion-null" which we provide for
cross compatibility, but in the interests of consistency (with
-Wint-conversion, -Wbool-conversion, etc) the canonical Clang flag is called
-Wnull-conversion.
Patch by Lubos Lunak.
Review feedback by myself, Chandler Carruth, and Chad Rosier.
llvm-svn: 152745
|
| |
|
|
|
|
| |
for misc. objc meta-data.
llvm-svn: 152743
|
| |
|
|
| |
llvm-svn: 152740
|
| |
|
|
|
|
| |
qualified name lookups into transparent contexts.
llvm-svn: 152739
|
| |
|
|
| |
llvm-svn: 152738
|
| |
|
|
|
|
| |
in the callee.
llvm-svn: 152734
|
| |
|
|
|
|
|
| |
Add the _class_ro_t.reserved field for 64bit targets.
// rdar://11040024
llvm-svn: 152731
|
| |
|
|
|
|
| |
MaterializeTemporaryExpr.
llvm-svn: 152730
|
| |
|
|
| |
llvm-svn: 152725
|
| |
|
|
| |
llvm-svn: 152721
|
| |
|
|
|
|
| |
longer needed as the CFG is fully linearized.
llvm-svn: 152720
|
| |
|
|
|
|
|
|
|
|
| |
- As with DiagnosticBuilder, it is very important that SemaDiagnosticBuilder be
completely inline to ensure that the compiler can rip it apart and sink it to
registers.
This is good for another 30k reduction in code size.
llvm-svn: 152708
|
| |
|
|
|
|
|
|
| |
args.
Fixes rdar://11042577
llvm-svn: 152691
|
| |
|
|
|
|
| |
field. // rdar://11040024
llvm-svn: 152685
|
| |
|
|
|
|
| |
rdar://10963572
llvm-svn: 152684
|
| |
|
|
|
|
|
|
|
|
|
| |
function templates as well.
A future commit will mangle the added name with the template args
like classes are mangled.
Fixes rdar://10986010
llvm-svn: 152683
|
| |
|
|
| |
llvm-svn: 152677
|
| |
|
|
|
|
| |
respectively.
llvm-svn: 152676
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- This is much more important than it appears at first glance...
The intended design of DiagnosticBuilder was that it never escape and that all
its members would get lowered to registers by the compiler. By fixing Emit here,
the compiler can completely eliminate the DiagnosticBuilder object and never
need to push those registers back into it.
Unfortunately, Sema has broken DiagnosticBuilder in other ways (by introducing
SemaDiagnosticBuilder), so we don't get the fill impact of this, but it is still
good for 30k reduction in code size. I'll work on fixing the
SemaDiagnosticBuilder problems next.
llvm-svn: 152669
|
| |
|
|
|
|
| |
constant expressions.
llvm-svn: 152665
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, only diagnostics thrown by the cc1 process were
actually honoring the diagnostic options given on the command line,
like -Werror.
Reuse the existing code in Frontend currently used for cc1,
adjusting it to not interpret -Wl, linker flags as warnings.
Also fix a faulty test exposed by this change.
It wasn't actually testing anything, and was giving this warning:
clang-3: warning: argument unused during compilation: '-verify'
Which -Werror didn't turn into an error because it was output
by the driver, not the cc1 process, and diagnostic options
weren't parsed by the driver. And you couldn't see the warning
when running the test suite.
Fixes PR12181.
Patch by Dylan Noblesmith <nobled@dreamwidth.org>.
llvm-svn: 152660
|
| |
|
|
|
|
|
|
|
|
|
| |
inlining to be the reverse of their declaration.
This optimizes running time under inlining up to 20% since we do not
re-analyze the utility functions which are usually defined first in the
translation unit if they have already been analyzed while inlined into
the root functions.
llvm-svn: 152653
|
| |
|
|
|
|
|
|
|
|
|
| |
BFS should give slightly better performance. Ex: Suppose, we have two
roots R1 and R2. A callee function C is reachable through both. However,
C is not inlined when analyzing R1 due to inline stack depth limit. With
DFS, C will be analyzed as top level even though it would be analyzed as
inlined through R2. On the other hand, BFS could avoid analyzing C as
top level.
llvm-svn: 152652
|
| |
|
|
|
|
| |
collecting function Decls.
llvm-svn: 152651
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
AnalysisConsumer.
As a result:
- We now analyze the C++ methods which are defined within the
class body. These were completely skipped before.
- Ensure that AST checkers are called on functions in the
order they are defined in the Translation unit.
llvm-svn: 152650
|
| |
|
|
|
|
| |
function.
llvm-svn: 152649
|
| |
|
|
| |
llvm-svn: 152648
|
| |
|
|
|
|
| |
powerpc_types and add testing for the (long) double there.
llvm-svn: 152647
|
| |
|
|
| |
llvm-svn: 152644
|
| |
|
|
|
|
|
|
|
|
| |
by ~%.3/~100k in my build -- simply by eliminating the horrible code bloat coming
from the .clear() of the SmallVector<FixItHint>, which does a std::~string, etc.
- My understanding is we don't ever emit arbitrary numbers of fixits, so I just
moved us to using a statically sized array like we do for arguments and
ranges.
llvm-svn: 152639
|
| |
|
|
| |
llvm-svn: 152633
|
| |
|
|
| |
llvm-svn: 152632
|
| |
|
|
| |
llvm-svn: 152627
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
void f () {
int g (int a, int b=4);
{
int g(int a, int b=5);
}
}
should compile.
llvm-svn: 152621
|
| |
|
|
|
|
| |
parameter's declaration are ignored when determining the parameter's type.
llvm-svn: 152619
|
| |
|
|
|
|
| |
at the end of the parameter list.
llvm-svn: 152618
|
| |
|
|
| |
llvm-svn: 152615
|
| |
|
|
|
|
|
|
|
| |
don't, and clean up the places that do it.
The change to ASTWriter is surprising, but the deleted code is a no-op as of
r152608.
llvm-svn: 152609
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The deferred lookup table building step couldn't accurately tell which Decls
should be included in the lookup table, and consequently built different tables
in some cases.
Fix this by removing lazy building of DeclContext name lookup tables. In
practice, the laziness was frequently not worthwhile in C++, because we
performed lookup into most DeclContexts. In C, it had a bit more value,
since there is no qualified lookup.
In the place of lazy lookup table building, we simply don't build lookup tables
for function DeclContexts at all. Such name lookup tables are not useful, since
they don't capture the scoping information required to correctly perform name
lookup in a function scope.
The resulting performance delta is within the noise on my testing, but appears
to be a very slight win for C++ and a very slight loss for C. The C performance
can probably be recovered (if it is a measurable problem) by avoiding building
the lookup table for the translation unit.
llvm-svn: 152608
|
| |
|
|
|
|
|
|
| |
clear the error from raw_fd_ostream, otherwise we will crash.
rdar://10976410
llvm-svn: 152605
|
| |
|
|
|
|
|
|
|
| |
iterators instead of
ObjCInterfaceDecl::getReferencedProtocols(), because the iterators are safe to use
even if the caller did not check that the interface is a definition.
llvm-svn: 152597
|
| |
|
|
|
|
| |
rdar://11020003
llvm-svn: 152596
|
| |
|
|
|
|
|
|
|
| |
the diagnostic for assigning to a copied block capture. This has
the pleasant side-effect of letting us special-case the diagnostic
for assigning to a copied lambda capture as well, without introducing
a new non-modifiable enumerator for it.
llvm-svn: 152593
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
vcvarsall.bat.
FYI,
On VS10, %INCLUDE% contains;
(VS10)\VC\INCLUDE
(VS10)\VC\ATLMFC\INCLUDE
(SDK70A)\include
On VS11,
(VS11)\VC\INCLUDE
(VS11)\VC\ATLMFC\INCLUDE
(SDK80)\include\shared
(SDK80)\include\um
(SDK80)\include\winrt
FIXME: It may be enabled also on mingw.
llvm-svn: 152589
|
| |
|
|
| |
llvm-svn: 152587
|
| |
|
|
|
|
| |
multiple files.
llvm-svn: 152586
|